diff --git a/.gitignore b/.gitignore index f049c86ec2..d786d1c049 100644 --- a/.gitignore +++ b/.gitignore @@ -3,26 +3,27 @@ *.pyo *.sqlite *.sqlite3 -settings_local.py -/celerybeat-schedule -document_storage/ -/misc/mayan.geany -mayan/media/document_cache/ -build/ -_build/ -gpg_home/ -/mayan/media/static/ -/whoosh_index/ -/fabfile_install -/venv/ -.coverage -/dist/ -.idea/ -static_collected/ *egg-info* -mayan/settings/local.py -.vagrant -.tox/ -coverage.xml +.coverage .coverage.tox* +.idea/ +.tox/ +.vagrant +_build/ +build/ +coverage.xml +document_storage/ +gpg_home/ htmlcov/ +mayan/media/ +mayan/media/document_cache/ +mayan/settings/local.py +settings_local.py +static_collected/ +/celerybeat-schedule +/fabfile_install +/dist/ +/misc/mayan.geany +/mayan/media/static/ +/venv/ +/whoosh_index/ diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index c9c0de6789..94741880ab 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -21,7 +21,7 @@ test:mysql: - 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 + - coverage run manage.py test --mayan-apps --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 @@ -30,12 +30,12 @@ test:postgres: - 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 + - coverage run manage.py test --mayan-apps --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 + - coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.gitlab-ci --nomigrations - bash <(curl https://raw.githubusercontent.com/codecov/codecov-bash/master/codecov) -t $CODECOV_TOKEN diff --git a/.travis.yml b/.travis.yml index fbe358ff14..7eeca9378e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,5 @@ +dist: trusty +sudo: required language: python python: - 2.7 @@ -8,7 +10,7 @@ env: - DB=sqlite before_install: - sudo apt-get update -qq - - sudo apt-get install -qq python-dev gcc tesseract-ocr tesseract-ocr-deu unpaper ghostscript libjpeg-dev libpng-dev poppler-utils libreoffice + - sudo apt-get install -qq python-dev python-pip gcc tesseract-ocr tesseract-ocr-deu ghostscript libjpeg-dev libpng-dev libtiff-dev poppler-utils libreoffice install: - "pip install -r requirements/testing.txt" - if [[ $DB == mysql ]]; then pip install -q mysql-python; fi @@ -17,9 +19,9 @@ before_script: - mysql -e 'create database mayan_edms;' - psql -c 'create database mayan_edms;' -U postgres script: - - if [[ $DB == mysql ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi - - if [[ $DB == postgres ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi - - if [[ $DB == sqlite ]]; then coverage run manage.py runtests --settings=mayan.settings.testing.base --nomigrations; fi + - if [[ $DB == mysql ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_mysql --nomigrations; fi + - if [[ $DB == postgres ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.travis.db_postgres --nomigrations; fi + - if [[ $DB == sqlite ]]; then coverage run manage.py test --mayan-apps --settings=mayan.settings.testing.base --nomigrations; fi after_success: - coveralls branches: diff --git a/.tx/config b/.tx/config index 0f019a35cc..b210567710 100644 --- a/.tx/config +++ b/.tx/config @@ -19,6 +19,12 @@ source_lang = en source_file = mayan/apps/authentication/locale/en/LC_MESSAGES/django.po type = PO +[mayan-edms.cabinets-2-0] +file_filter = mayan/apps/cabinets/locale//LC_MESSAGES/django.po +source_lang = en +source_file = mayan/apps/cabinets/locale/en/LC_MESSAGES/django.po +type = PO + [mayan-edms.checkouts-2-0] file_filter = mayan/apps/checkouts/locale//LC_MESSAGES/django.po source_lang = en @@ -91,12 +97,6 @@ source_lang = en source_file = mayan/apps/folders/locale/en/LC_MESSAGES/django.po type = PO -[mayan-edms.installation-2-0] -file_filter = mayan/apps/installation/locale//LC_MESSAGES/django.po -source_lang = en -source_file = mayan/apps/installation/locale/en/LC_MESSAGES/django.po -type = PO - [mayan-edms.linking-2-0] file_filter = mayan/apps/linking/locale//LC_MESSAGES/django.po source_lang = en @@ -127,12 +127,6 @@ source_lang = en source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po type = PO -[mayan-edms.mirroring-2-0] -file_filter = mayan/apps/mirroring/locale//LC_MESSAGES/django.po -source_lang = en -source_file = mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po -type = PO - [mayan-edms.motd-2-0] file_filter = mayan/apps/motd/locale//LC_MESSAGES/django.po source_lang = en diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5e114863e9..ce1fd62061 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -17,7 +17,7 @@ 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. +with deployments, webservers, cloud providers, etc. - Do not open issues asking for **support or consulting**. Code @@ -40,7 +40,19 @@ following 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. Write a test which shows that the bug was fixed or that the feature works as + expected. +1. Sign your work. Your signature certifies your submission according to the + articles of the [Developer Certificate of Origin](https://gitlab.com/mayan-edms/mayan-edms/blob/master/DCO). + The sign-off should be in the form: + + ```` + Signed-off-by: John Doe + ```` + + You must use your real name and email, pseudonyms or anonymous contributions + are not allowed. If you set your user.name and user.email git configs, you can + sign your commit automatically with git commit -s. 1. Submit a merge request for your changes. Feature requests @@ -64,8 +76,3 @@ 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. diff --git a/DCO b/DCO new file mode 100644 index 0000000000..716561d5d2 --- /dev/null +++ b/DCO @@ -0,0 +1,36 @@ +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +660 York Street, Suite 102, +San Francisco, CA 94110 USA + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. diff --git a/HISTORY.rst b/HISTORY.rst index 6eba4f722d..17d8cb091c 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -1,4 +1,25 @@ -2.2 (2016-XX-XX) +XX (2017-XX-XX) +=============== +- Add Django-mathfilters. +- Improve render of documents with no pages. + +2.3 (2017-06-08) +================ +- Allow for bigger indexing expression templates. +- Auto select checkbox when updating metadata values. GitLab issue #371. +- Added support for passing the options allow-other and allow-root to the + FUSE index mirror. GitLab issue #385 +- Add support for check for the latest released version of Mayan from the + About menu. +- Support for rebuilding specific indexes. GitLab issue #372. +- Rewrite document indexing code to be faster and use less locking. +- Use a predefined file path for the file lock. +- Catch documents with not document version when displaying their thumbnails. +- Document page navigation fix when using Mayan as a sub URL app. +- Add support for indexing on workflow state changes. +- Add search model list API endpoint. + +2.2 (2017-04-26) ================ - Remove the installation app (GitLab #301). - Add support for document page search @@ -8,13 +29,54 @@ - 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 + the user links. - New Dashboard view - Moved licenses to their own module in every app - Update project to work with Django 1.10.4. - Tags are alphabetically ordered by label (GitLab #342). - Stop loading theme fonts from the web (GitLab #343). - Add support for attaching multiple tags (GitLab #307). +- Integrate the Cabinets app. + +2.1.11 (2017-03-14) +=================== +- Added a quick rename serializer to the document type API serializer. +- Added per document type, workflow list API view. +- Mayan EDMS was adopted a version 1.1 of the Linux Foundation Developer Certificate of Origin. +- Added the detail url of a permission in the permission serializer. +- Added endpoints for the ACL app API. +- Implemented document workflows transition ACLs. GitLab issue #321. +- Add document comments API endpoints. GitHub issue #249. +- Add support for overriding the Celery class. +- Changed the document upload view in source app to not use the HTTP referer + URL blindly, but instead recompose the URL using known view name. Needed + when integrating Mayan EDMS into other app via using iframes. +- Addes size field to the document version serializer. +- Removed the serializer from the deleted document restore API endpoint. +- Added support for adding or editing document types to smart links via the + API. + +2.1.10 (2017-02-13) +=================== +- Update Makefile to use twine for releases. +- Add Makefile target to make test releases. + +2.1.9 (2017-02-13) +================== +- Update make file to Workaround long standing pypa wheel bug #99 + +2.1.8 (2017-02-12) +================== +- Fixes in the trashed document API endpoints. +- Improved tags API PUT and PATCH endpoints. +- Bulk document adding when creating and editing tags. +- The version of django-mptt is preserved in case mayan-cabinets is installed. +- Add Django GPG API endpoints for singing keys. +- Add API endpoints for the document states (workflows) app. +- Add API endpoints for the messsage of the day (MOTD) app. +- Add Smart link API endpoints. +- Add writable versions of the Document and Document Type serializers (GitLab issues #348 and #349). +- Close GitLab issue #310 "Metadata's lookup with chinese messages when new document" 2.1.7 (2017-02-01) ================== @@ -26,7 +88,7 @@ the user links - Enable the parser and validation fields of the metadata serializer. 2.1.6 (2016-11-23) -================= +================== - Fix variable name typo in the rotation transformation class. - Update translations diff --git a/MANIFEST.in b/MANIFEST.in index 4c59f9ed98..4d82143547 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,3 +1,3 @@ -include README.rst LICENSE HISTORY.rst -recursive-include mayan *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 LICENSE +include README.md LICENSE HISTORY.rst mayan/LICENSE +recursive-include mayan/apps *.txt *.html *.css *.ico *.png *.jpg *.js *.po *.mo *.ttf *.woff *.woff2 *.gif *.eot *.svg *.doc *.pdf *.tiff *.sig *.asc *.gpg *.zip global-exclude mayan/settings/local.py mayan/settings/travis/* mayan/media/* diff --git a/Makefile b/Makefile index 5a0fa048d2..cabdbcd49b 100644 --- a/Makefile +++ b/Makefile @@ -7,8 +7,8 @@ help: @echo "clean-pyc - Remove Python artifacts." @echo "clean - Remove Python and build artifacts." - @echo "test MODULE= - Run tests for a single App, module or test class." @echo "test-all - Run all tests." + @echo "test MODULE= - Run tests for a single App, module or test class." @echo "docs_serve - Run the livehtml documentation generator." @echo "translations_make - Refresh all translation files." @@ -23,11 +23,23 @@ help: @echo "sdist - Build the source distribution package." @echo "wheel - Build the wheel distribution package." @echo "release - Package (sdist and wheel) and upload a release." + @echo "test_release - Package (sdist and wheel) and upload to the PyPI test server." + @echo "release_test_via_docker_ubuntu - Package (sdist and wheel) and upload to the PyPI test server using an Ubuntu Docker builder." + @echo "release_test_via_docker_alpine - Package (sdist and wheel) and upload to the PyPI test server using an Alpine Docker builder." + @echo "release_via_docker_ubuntu - Package (sdist and wheel) and upload to PyPI using an Ubuntu Docker builder." + @echo "release_via_docker_alpine - Package (sdist and wheel) and upload to PyPI using an Alpine Docker builder." @echo "runserver - Run the development server." @echo "runserver_plus - Run the Django extension's development server." @echo "shell_plus - Run the shell_plus command." + @echo "docker_services_on - Launch and initialize production-like services using Docker (Postgres and Redis)." + @echo "docker_services_off - Stop and delete the Docker production-like services." + @echo "docker_services_frontend - Launch a front end instance that uses the production-like services." + @echo "docker_services_worker - Launch a worker instance that uses the production-like services." + @echo "docker_service_mysql_on - Launch and initialize a MySQL Docker container." + @echo "docker_service_mysql_off - Stop and delete the MySQL Docker container." + @echo "safety_check - Run a package safety check." @@ -52,7 +64,7 @@ test: ./manage.py test $(MODULE) --settings=mayan.settings.testing --nomigrations test-all: - ./manage.py runtests --settings=mayan.settings.testing --nomigrations + ./manage.py test --mayan-apps --settings=mayan.settings.testing --nomigrations # Documentation @@ -90,17 +102,33 @@ requirements_testing: # Releases -release: clean - python setup.py sdist bdist_wheel upload + +test_release: clean wheel + twine upload dist/* -r testpypi + @echo "Test with: pip install -i https://testpypi.python.org/pypi mayan-edms" + +release: clean wheel + twine upload dist/* -r pypi sdist: clean python setup.py sdist ls -l dist -wheel: clean - python setup.py bdist_wheel +wheel: clean sdist + pip wheel --no-index --no-deps --wheel-dir dist dist/*.tar.gz ls -l dist +release_test_via_docker_ubuntu: + docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "cp -r /host_source/* . && apt-get update && apt-get install make python-pip -y && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make test_release" + +release_via_docker_ubuntu: + docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source ubuntu:16.04 /bin/bash -c "cp -r /host_source/* . && apt-get update && apt-get install make python-pip -y && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make release" + +release_test_via_docker_alpine: + docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "cp -r /host_source/* . && apk update && apk add python2 py2-pip make && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make test_release" + +release_via_docker_alpine: + docker run --rm --name mayan_release -v $(HOME):/host_home:ro -v `pwd`:/host_source -w /source alpine /bin/busybox sh -c "cp -r /host_source/* . && apk update && apk add python2 py2-pip make && pip install -r requirements/build.txt && cp -r /host_home/.pypirc ~/.pypirc && make release" # Dev server @@ -113,9 +141,33 @@ runserver_plus: shell_plus: ./manage.py shell_plus --settings=mayan.settings.development +docker_services_on: + docker run -d --name redis -p 6379:6379 redis + docker run -d --name postgres -p 5432:5432 postgres + while ! nc -z 127.0.0.1 6379; do sleep 1; done + while ! nc -z 127.0.0.1 5432; do sleep 1; done + sleep 1 + ./manage.py initialsetup --settings=mayan.settings.testing.docker + +docker_services_off: + docker stop postgres redis + docker rm postgres redis + +docker_services_frontend: + ./manage.py runserver --settings=mayan.settings.testing.docker + +docker_services_worker: + ./manage.py celery worker --settings=mayan.settings.testing.docker -B -l INFO -O fair + +docker_service_mysql_on: + docker run -d --name mysql -p 3306:3306 -e MYSQL_ALLOW_EMPTY_PASSWORD=True -e MYSQL_DATABASE=mayan_edms mysql + while ! nc -z 127.0.0.1 3306; do sleep 1; done + +docker_service_mysql_off: + docker stop mysql + docker rm mysql # Security safety_check: safety check - diff --git a/README.md b/README.md new file mode 100644 index 0000000000..11072c1fe9 --- /dev/null +++ b/README.md @@ -0,0 +1,89 @@ +[![pypi][pypi]][pypi-url] +[![builds][builds]][builds-url] +[![coverage][cover]][cover-url] +![python][python] +![license][license] + +[pypi]: http://img.shields.io/pypi/v/mayan-edms.svg +[pypi-url]: http://badge.fury.io/py/mayan-edms + +[builds]: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg +[builds-url]: https://gitlab.com/mayan-edms/mayan-edms/pipelines + +[cover]: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master +[cover-url]: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master + +[python]: https://img.shields.io/pypi/pyversions/mayan-edms.svg +[python-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat + +[license]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat +[license-url]: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat + + +
+ + + +
+
+

+ Mayan EDMS is a document management system. Its main purpose is to store, + introspect, and categorize files, with a strong emphasis on preserving the + contextual and business information of documents. It can also OCR, preview, + label, sign, send, and receive thoses files. Other features of interest + are its workflow system, role based access control, and REST API. +

+ +

+ +

+ +
+ +

Installation

+ +The easiest way to use Mayan EDMS is by using the official +[Docker](https://www.docker.com/) image. Make sure Docker is properly installed +and working before attempting to install Mayan EDMS. + +With Docker properly installed, proceed to download the Mayan EDMS image using +the command: + +```bash + $ docker pull mayanedms/mayanedms:2.3 +``` + +After the image finishes downloading, initialize a Mayan EDMS container. + +```bash + $ docker run -d --name mayan-edms --restart=always -p 80:80 \ + -v mayan_data:/var/lib/mayan mayanedms/mayanedms:2.3 +``` + +Point your browser to the IP address 127.0.0.1 (or the alternate port chosen, +ie: 127.0.0.1:81) and use the automatically created admin account. + +All files will be stored in the Docker volume ``mayan_data`` + +If another web server is running on port 80 use a different port in the ``-p`` +option, ie: ``-p 81:80``. + +For the complete set of installation, configuration, upgrade, and backup +instructions visit the Mayan EDMS Docker Hub page at: +https://hub.docker.com/r/mayanedms/mayanedms/ + +

Important links

+ + +- [Homepage](http://www.mayan-edms.com) +- [Videos](https://www.youtube.com/channel/UCJOOXHP1MJ9lVA7d8ZTlHPw) +- [Documentation](http://mayan.readthedocs.io/en/stable/) +- [Paid support](http://www.mayan-edms.com/providers/) +- [Roadmap](https://gitlab.com/mayan-edms/mayan-edms/wikis/roadmap) +- [Contributing](https://gitlab.com/mayan-edms/mayan-edms/blob/master/CONTRIBUTING.md) +- [Community forum](https://groups.google.com/forum/#!forum/mayan-edms) +- [Community forum archive](http://mayan-edms.1003.x6.nabble.com/) +- [Source code, issues, bugs](https://gitlab.com/mayan-edms/mayan-edms) +- [Plug-ins, other related projects](https://gitlab.com/mayan-edms/) +- [Translations](https://www.transifex.com/rosarior/mayan-edms/) + diff --git a/README.rst b/README.rst index 67acd269bb..19d15170ca 100644 --- a/README.rst +++ b/README.rst @@ -1,65 +1,75 @@ -|PyPI badge| |Build Status| |Coverage badge| |Documentation| |License badge| |Python version| +|pypi| |builds| |coverage| |python| |license| -|Logo| -Description ------------ +.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/mayan_logo.png + :align: center + :width: 200 + :height: 200 -Free Open Source Electronic Document Management System. +Mayan EDMS is a document management system. Its main purpose is to store, +introspect, and categorize files, with a strong emphasis on preserving the +contextual and business information of documents. It can also OCR, preview, +label, sign, send, and receive thoses files. Other features of interest +are its workflow system, role based access control, and REST API. -`Website`_ +.. image:: https://gitlab.com/mayan-edms/mayan-edms/raw/master/docs/_static/overview.gif + :align: center -`Video demostration`_ -`Documentation`_ +The easiest way to use Mayan EDMS is by using the official Docker_ image. +Make sure Docker is properly installed and working before attempting to install +Mayan EDMS. -`Translations`_ - -`Mailing list (via Google Groups)`_ - -|Animation| - -License -------- - -This project is open sourced under `Apache 2.0 License`_. - -Installation ------------- - -To install Mayan EDMS, simply do: +With Docker properly installed, proceed to download the Mayan EDMS image using +the command: .. code-block:: bash - $ virtualenv venv - $ source venv/bin/activate - (venv) $ pip install mayan-edms - (venv) $ mayan-edms.py initialsetup - (venv) $ mayan-edms.py runserver + $ docker pull mayanedms/mayanedms:2.3 -Point your browser to 127.0.0.1:8000 and use the automatically created admin -account. +After the image finishes downloading, initialize a Mayan EDMS container. + +.. code-block:: bash + + $ docker run -d --name mayan-edms --restart=always -p 80:80 \ + -v mayan_data:/var/lib/mayan mayanedms/mayanedms:2.3 + +Point your browser to the IP address 127.0.0.1 (or the alternate port chosen, +ie: 127.0.0.1:81) and use the automatically created admin account. + +All files will be stored in the Docker volume ``mayan_data`` + +If another web server is running on port 80 use a different port in the ``-p`` +option, ie: ``-p 81:80``. + +For the complete set of installation, configuration, upgrade, and backup +instructions visit the Mayan EDMS Docker Hub page at: +https://hub.docker.com/r/mayanedms/mayanedms/ + +.. _Docker: https://www.docker.com/ -.. _Website: http://www.mayan-edms.com -.. _Video demostration: http://bit.ly/pADNXv -.. _Documentation: http://readthedocs.org/docs/mayan/en/latest/ -.. _Translations: https://www.transifex.com/projects/p/mayan-edms/ -.. _Mailing list (via Google Groups): http://groups.google.com/group/mayan-edms -.. _Apache 2.0 License: https://www.apache.org/licenses/LICENSE-2.0.txt +Important links -.. |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 -.. |PyPI badge| image:: http://img.shields.io/pypi/v/mayan-edms.svg?style=flat +- `Homepage `__ +- `Videos `__ +- `Documentation `__ +- `Paid support `__ +- `Roadmap `__ +- `Contributing `__ +- `Community forum `__ +- `Community forum archive `__ +- `Source code, issues, bugs `__ +- `Plug-ins, other related projects `__ +- `Translations `__ + + + +.. |pypi| image:: http://img.shields.io/pypi/v/mayan-edms.svg :target: http://badge.fury.io/py/mayan-edms -.. |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 +.. |builds| image:: https://gitlab.com/mayan-edms/mayan-edms/badges/master/build.svg + :target: https://gitlab.com/mayan-edms/mayan-edms/pipelines +.. |coverage| image:: https://codecov.io/gitlab/mayan-edms/mayan-edms/coverage.svg?branch=master :target: https://codecov.io/gitlab/mayan-edms/mayan-edms?branch=master -.. |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| +.. |python| image:: https://img.shields.io/pypi/pyversions/mayan-edms.svg +.. |license| image:: https://img.shields.io/pypi/l/mayan-edms.svg?style=flat diff --git a/contrib/scripts/process_messages.py b/contrib/scripts/process_messages.py index 09dd8d56fd..7f1874540e 100755 --- a/contrib/scripts/process_messages.py +++ b/contrib/scripts/process_messages.py @@ -5,10 +5,10 @@ import optparse import sh APP_LIST = ( - 'acls', 'appearance', 'authentication', 'checkouts', 'common', + 'acls', 'appearance', 'authentication', 'cabinets', 'checkouts', 'common', 'converter', 'django_gpg', 'document_comments', 'document_indexing', 'document_signatures', 'document_states', 'documents', 'dynamic_search', - 'events', 'folders', 'installation', 'linking', 'lock_manager', 'mailer', + 'events', 'folders', 'linking', 'lock_manager', 'mailer', 'metadata', 'mirroring', 'motd', 'navigation', 'ocr', 'permissions', 'rest_api', 'smart_settings', 'sources', 'statistics', 'storage', 'tags', 'user_management' diff --git a/docs/releases/2.1.10.rst b/docs/releases/2.1.10.rst new file mode 100644 index 0000000000..66f9252867 --- /dev/null +++ b/docs/releases/2.1.10.rst @@ -0,0 +1,75 @@ +================================ +Mayan EDMS v2.1.10 release notes +================================ + +Released: February 13, 2017 + +What's new +========== + +This is a micro release equal to the previews version from the user's point of view. +The version number was increase to workaround some issues with the Python +Package Index not allowing re-uploads. + +Changes +------------- + +- Update Makefile to use twine for releases. +- Add Makefile target to make test releases. + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* None + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.1.11.rst b/docs/releases/2.1.11.rst new file mode 100644 index 0000000000..06415422c8 --- /dev/null +++ b/docs/releases/2.1.11.rst @@ -0,0 +1,94 @@ +================================ +Mayan EDMS v2.1.11 release notes +================================ + +Released: March 14, 2017 + +What's new +========== + +This is a bug-fix release and all users are encouraged to upgrade. The focus +of this micro release was REST API improvement. + +Changes +------------- + +- Added a quick rename serializer to the document type API serializer. +- Added per document type, workflow list API view. The URL for this endpoint is + GET /api/document_states/document_type/{pk}/workflows/ +- Added Developer Certificate of Origin. Mayan EDMS was adopted a version 1.1 of + the Linux Foundation Developer Certificate of Origin. All commits must be + signed (`git commit -s`) in order to be merged. +- Added the detail url of a permission in the permission serializer. +- Added endpoints for the ACL app API. +- Implemented document workflows transition ACLs. GitLab issue #321. +- Add document comments API endpoints. GitHub issue #249. +- Add support for overriding the Celery class. The setting is named + MAYAN_CELERY_CLASS and expects a dotted python path to the class to use. +- Changed the document upload view in source app to not use the HTTP referer + URL blindly, but instead recompose the URL using known view name. Needed + when integrating Mayan EDMS into other app via using iframes. +- Addes size field to the document version serializer. +- Removed the serializer from the deleted document restore API endpoint + it doesn't need a serializer being just an action POST endpoint. +- Added support for adding or editing document types to smart links via the + API. + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* `Github issue #249 `_ Add document comments API [$50 US] +* `GitLab issue #321 `_ Transition ACLS +* `GitLab issue #357 `_ It should be possible to retrieve all workflows for a given DocumentType from the API + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.1.8.rst b/docs/releases/2.1.8.rst new file mode 100644 index 0000000000..ebe1ae8596 --- /dev/null +++ b/docs/releases/2.1.8.rst @@ -0,0 +1,83 @@ +=============================== +Mayan EDMS v2.1.8 release notes +=============================== + +Released: February 12, 2017 + +What's new +========== + +This is a bug-fix release and all users are encouraged to upgrade. The focus +of this micro release was REST API improvement. + +Changes +------------- + +- Fixes in the trashed document API endpoints. +- Improved tags API PUT and PATCH endpoints. +- Bulk document adding when creating and editing tags. +- The version of django-mptt is preserved in case mayan-cabinets is installed. +- Add Django GPG API endpoints for singing keys. +- Add API endpoints for the document states app. +- Add API endpoints for the messsage of the day (MOTD) app. +- Add Smart link API endpoints. +- Add writable versions of the Document and Document Type serializers (GitLab issues #348 and #349). + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* `GitLab issue #310 `_ Metadata's lookup with chinese messages when new document +* `GitLab issue #348 `_ REST API: Document version comments are not getting updated +* `GitLab issue #349 `_ REST API: Document Label, Description are not able to update + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.1.9.rst b/docs/releases/2.1.9.rst new file mode 100644 index 0000000000..f9c3333e86 --- /dev/null +++ b/docs/releases/2.1.9.rst @@ -0,0 +1,74 @@ +=============================== +Mayan EDMS v2.1.9 release notes +=============================== + +Released: February 13, 2017 + +What's new +========== + +This is a micro release equal to the previews version from the user's point of view. +The version number was increase to workaround some issues with the Python +Package Index not allowing re-uploads. + +Changes +------------- + +- Update make file to Workaround long standing pypa wheel bug #99 + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* None + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.2.rst b/docs/releases/2.2.rst index 9c01310a9a..556dcb5d30 100644 --- a/docs/releases/2.2.rst +++ b/docs/releases/2.2.rst @@ -2,32 +2,160 @@ Mayan EDMS v2.2 release notes ============================= -Released: XX, 2017 +Released: April 26, 2017 What's new ========== +API changes +----------- +Refactor of the metadata API URLs to use the resource/sub resource paradigm. + +Before: + +/api/metadata/metadata_types/ +/api/metadata/metadata_types/{pk}/ +/api/metadata/document/metadata/{pk}/ +/api/metadata/document/{pk}/metadata/ +/api/metadata/document_type/{document_type_pk}/metadata_types/optional/ +/api/metadata/document_type/{document_type_pk}/metadata_types/required/ + +After: + +/api/metadata/metadata_types/ +/api/metadata/metadata_types/{metadata_type_pk}/ +/api/metadata/document_types/{document_type_pk}/metadata_types/ +/api/metadata/document_types/{document_type_pk}/metadata_types/{metadata_type_pk}/ +/api/metadata/documents/{document_pk}/metadata/ +/api/metadata/documents/{document_pk}/metadata/{metadata_pk}/ + + +Document API URLs updated to use the resource/sub resource paradigm. +Before: + +/api/documents/document_version +/api/documents/document_pages + +After: +/api/documents//version/ +/api/documents//version//pages/ + +Fields that reference a resource by URL now have the suffix '_url' to differentiate +then from fields include the resource. + +Before: + +'document': '/api/documents/10' + +After: + +'document_url': '/api/documents/10' + +Removal of the document version revert API endpoint. To revert a document to a +previous version using the API, use the DELETE verb to delete the most recent +document version to be discarded. + +Pages data is no longer included as part of the version data. Instead a link to +the document version's pages has been added by the name 'pages_url'. This +resolved to '/api/documents//pages//pages'. + +- New API endpoints (initial work by @lokeshmanmode): + + - API endpoint to change an user's groups subscription. + - API endpoint that list all available permissions types. + - API endpoint to view or change a role's groups. + - API endpoint to view or change a role's permissions. + +Code cleanups +------------- +As with every release time was dedicated to improve the organization, size, and +readability of code. To this end the licenses of each app were moved to their +own module in every app, called licenses.py. As part of the code cleanup the +seldom used app called 'installation' which tracked runtime Python packages +installed alongside Mayan EDMS for debugging purposes has been removed. The +dependency on django-filetransfer has been removed by using +django-downloadviews which allows the creation of class based download views. + +Performance +----------- +The document language list has been moved from the document model to the +document form. This change speeds up loading time, document properties views +and API documentation views. This version includes the new image caching +pipeline which stores transformed (rotated, scaled, etc) versions of the +document's images resulting in an overall display loading speed up. The fonts +used are now loaded from Mayan EDMS itself and not from the web. This change +also allow Mayan EDMS to work in a completely off-line manner. + +Searching +--------- +Support for searching pages as well as documents has been added. This +functionality has been exposed in the API too. + +Security +-------- +This release enables the password validation for the user password validation +support provided by Django. This change allows administrator to set password +policies limiting the minimum amount of characters needed for example. For +more information on how to configure the password validation feature refer +to Django's documentation at: https://docs.djangoproject.com/en/1.11/topics/auth/passwords/#enabling-password-validation + +Sources +------- +To help test the interval sources (POP3 Email, IMAP Email, Watch folders) a +"Check now" button was added that allows users to trigger the source's +document fetching code instantly. Previously users had to wait until the next +scheduled interval to verify if their source's settings were correct. + +Testing +------- +The testing process has been simplified by adding a new option '--mayan-apps' +to the test runner that automatically tests all Mayan EDMS apps that report to +include tests. The app flag that indicates when an app has test was changed +from 'test' to the more explicit 'has_test'. The packaging manifest now +includes test files, this means that tests can now be executed in production. +The total number of tests was raised to 359 and the total coverage increased +to 81%. + +A custom test runner replacing the previous custom management command +called `runtests`. Testing for orphaned temporary files and orphaned file +handles is now optional and controlled by the COMMON_TEST_FILE_HANDLES and +COMMON_TEST_FILE_HANDLES settings. + +User interface +-------------- +To avoid warping on long full names or usernames, the user's full name or +username is no longer displayed in the main menu. Instead the word "Profile" +is displayed and the users's full name or username is displayed when the +"Profile" icon is clicked. Drop down menus support has been added and enabled +for several apps like documents, folders, and tags. This change make navigation +much faster and required less mouse travel. + +Support was added for a dashboard widgets and several default widgets are +included and enabled. + +A view to clone a document page transformation to other pages has been added. +A document page transformation navigation bug has been fixed. To aid visual +lookup, tags are now alphabetically ordered by label. + +A new workflow view that lists documents currently executing a workflow and +documents by their specific current workflow state has been added to the +main menu. Other changes ------------- -- 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 +- Cabinets app is now integrated as a core app. +- Now that the Cabinets app is included, the Folders app has been disabled + by default. To enable the Folders apps add the following line to your + settings/local.py file:: + + INSTALLED_APPS += ('folders',) + +- Fix height calculation in resize transformation. +- Improve upgrade instructions. +- Update project to work with Django 1.10. - Add support for attaching multiple tags to single or multiple documents. - Refactor the workflow for removing tags from single and multiple documents. - Move new version creation blocking from the documents app to the checkouts app. -- Sample documents moved to distribution to allow running all tests in production. - DEBUG now defaults to False. - Production settings don't override the DEBUG variable. DEBUG can be set to True on production install to debug errors live. @@ -38,20 +166,7 @@ Other changes - Addition of a new OCR backend using PyOCR. This backend tries first to do OCR using libtesseract. If libtesseract is not available the backend defaults to calling the Tesseract executable. -- Language list moved from document model to document form. -- Enable password validation for the user password change view, user password change API endpoint, current user view and current user API endpoint. -- New API endpoints (initial work by @lokeshmanmode): - - - API endpoint to change an user's groups subscription. - - API endpoint that list all available permissions types. - - API endpoint to view or change a role's groups. - - API endpoint to view or change a role's permissions. - - Make the lock_manager.backends.file_lock.FileLock the new default locking backend. -- Add view to clone a document page transformation to other pages. -- Document page transformation navigation bug fixed. -- Move test total to 359. -- Increase test coverage to 81%. - New transformations added: - Rotate 90 degrees @@ -62,11 +177,15 @@ Other changes - Gaussian blur - Unsharp masking +- Add tool to launch all workflows. GitLab issue #355 + Removals -------- - Removal of the OCR_TESSERACT_PATH configuration setting. - Removal of the Tesseract OCR backend. Replaced with a PyOCR backend. - Remove usage of pytesseract Python library. +- Installation app. +- Recent searches feature. Upgrading from a previous version --------------------------------- @@ -95,13 +214,13 @@ Manually upgrade/add the new requirements:: $ pip install --upgrade -r requirements.txt -Common steps -~~~~~~~~~~~~ - Remove deprecated requirements:: $ pip uninstall -y -r removals.txt +Common steps +~~~~~~~~~~~~ + Migrate existing database schema with:: $ mayan-edms.py performupgrade @@ -134,5 +253,6 @@ Bugs fixed or issues closed * `GitLab issue #328 `_ Upgrade Warning/Error during performupgrade (v2.1.3 to v2.1.4) * `GitLab issue #342 `_ Tags should be of unordered / unsorted data type * `GitLab issue #343 `_ Bootstrap's dependency on fonts.googleapis.com causes Mayan EDMS web interface load slowly if public internet is unreachable +* `GitLab issue #355 `_ Workflow changes only on new added documents .. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/2.3.rst b/docs/releases/2.3.rst new file mode 100644 index 0000000000..6830340100 --- /dev/null +++ b/docs/releases/2.3.rst @@ -0,0 +1,101 @@ +============================= +Mayan EDMS v2.3 release notes +============================= + +Released: June 08, 2017 + +What's new +========== + +This is a bug-fix and minor feature release and all users are encouraged to +upgrade. + +Changes +------------- +- Index node expression template field changed from a 128 character field to an + unlimited size text field to allow for complex indexing expressions. +- When updating the metadata of a document, any input in the value form field + will select the adjacent checkbox. +- Support for passing the FUSE option `allow-other` and `allow-root` was added + to the index mirroring management command. +- Added support for checking for the latest released version of Mayan from the + About menu. +- Added support for rebuilding specific indexes instead of only being able to + rebuild all index. GitLab issue #372. +- Rewrite document indexing code to be faster and use less locking. Thanks to + Macrobb Simpson (@Macrobb) for the initial implementation. +- Use a predefined file path for the file lock. +- Catch documents with not document version when displaying their thumbnails. +- Add custom script_prefix aware resolve function and use it for the + document page navigation views. Fixes an issue when Mayan is installed + as a sub URL app. Thanks to Gustavo Teixeira(@gsteixei) for the issue and + investigation. +- Support was added to update document indexes after workflow state changes. +- An helper was added to access a documents workflow by name. To this end + a new field was added to the Workflow class called `Internal name`. + This new field makes it much easier to get a document's workflow instance. + If for example a document has a workflow called `Publish` with the internal + name `publish_workflow`, it will be accessible in the indexing template as + {{ document.workflow.publish_workflow }}. The latest state of the workflow + can be accessed using {{ document.workflow.publish_workflow.get_current_state }}. +- Added a new API endpoint to display a list of all the available search models. + +Removals +-------- +* None + +Upgrading from a previous version +--------------------------------- + +Using PIP +~~~~~~~~~ + +Type in the console:: + + $ pip install -U mayan-edms + +the requirements will also be updated automatically. + +Using Git +~~~~~~~~~ + +If you installed Mayan EDMS by cloning the Git repository issue the commands:: + + $ git reset --hard HEAD + $ git pull + +otherwise download the compressed archived and uncompress it overriding the +existing installation. + +Next upgrade/add the new requirements:: + + $ pip install --upgrade -r requirements.txt + +Common steps +~~~~~~~~~~~~ + +Migrate existing database schema with:: + + $ mayan-edms.py performupgrade + +Add new static media:: + + $ mayan-edms.py collectstatic --noinput + +The upgrade procedure is now complete. + + +Backward incompatible changes +============================= + +* None + +Bugs fixed or issues closed +=========================== + +* `GitLab issue #371 `_ Auto select checkbox when updating metadata +* `GitLab issue #372 `_ (Feature request) Allow 'rebuild index' to rebuild only a selected index +* `GitLab issue #383 `_ Page not found when deployed to sub-uri +* `GitLab issue #385 `_ mountindex: how to specify FUSE mount option allow_other? + +.. _PyPI: https://pypi.python.org/pypi/mayan-edms/ diff --git a/docs/releases/index.rst b/docs/releases/index.rst index 65650cab3d..5ffd7316ef 100644 --- a/docs/releases/index.rst +++ b/docs/releases/index.rst @@ -22,7 +22,12 @@ versions of the documentation contain the release notes for any later releases. .. toctree:: :maxdepth: 1 + 2.3 2.2 + 2.1.11 + 2.1.10 + 2.1.9 + 2.1.8 2.1.7 2.1.6 2.1.5 diff --git a/docs/topics/deploying.rst b/docs/topics/deploying.rst index f16bbd59ad..8952357901 100644 --- a/docs/topics/deploying.rst +++ b/docs/topics/deploying.rst @@ -3,7 +3,8 @@ Advanced deployment =================== Mayan EDMS should be deployed like any other Django_ project and -preferably using virtualenv_. +preferably using virtualenv_. Below are some ways to deploy and use Mayan EDMS. +Do not use more than one method. Being a Django_ and a Python_ project, familiarity with these technologies is recommended to better understand why Mayan EDMS does some of the things it @@ -58,7 +59,7 @@ to /usr/bin/ with ... sudo ln -s /opt/local/bin/tesseract /usr/bin/tesseract -... alternatively set the paths in the ``settings/locals.py`` +Alternatively, set the paths in the ``settings/locals.py`` .. code-block:: python @@ -76,9 +77,9 @@ With Homebrew installed run the command: Set the Binary paths ******************** -Mayan EDMS by default will look in /usr/bin/ for the binary files it needs -so either you can symlink the binaries installed via brew in /usr/local/bin/ -to /usr/bin/ with ... +Mayan EDMS by default will look in /usr/bin/ for the binary files it needs. +You can symlink the binaries installed via brew in /usr/local/bin/ +to /usr/bin/ with: .. code-block:: bash @@ -87,7 +88,7 @@ to /usr/bin/ with ... sudo ln -s /usr/local/bin/pdftotext /usr/bin/pdftotext && \ sudo ln -s /usr/local/bin/gs /usr/bin/gs -... alternatively set the paths in the ``settings/locals.py`` +Alternatively, set the paths in the ``settings/locals.py`` .. code-block:: python @@ -265,15 +266,18 @@ Make the installation directory readable and writable by the webserver user:: chown www-data:www-data /usr/share/mayan-edms -R -Restart the services:: +Enable and restart the services [1_]:: systemctl enable supervisor systemctl restart supervisor systemctl restart nginx +[1]: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740 + .. _Debian: http://www.debian.org/ .. _Django: http://www.djangoproject.com/ .. _Python: http://www.python.org/ .. _SQLite: https://www.sqlite.org/ .. _Ubuntu: http://www.ubuntu.com/ .. _virtualenv: http://www.virtualenv.org/en/latest/index.html +.. _1: https://bugs.launchpad.net/ubuntu/+source/supervisor/+bug/1594740 diff --git a/docs/topics/development.rst b/docs/topics/development.rst index 46fcf90bd4..91312b2165 100644 --- a/docs/topics/development.rst +++ b/docs/topics/development.rst @@ -16,8 +16,8 @@ request on GitLab_. Project philosophies -------------------- -How to think about Mayan EDMS when doing changes or adding new features, -why things are the way they are in Mayan EDMS. +How to think about Mayan EDMS when doing changes or adding new features; +why things are the way they are in Mayan EDMS: - Functionality must be as market/sector independent as possible, code for the 95% of use cases. @@ -36,7 +36,7 @@ why things are the way they are in Mayan EDMS. not viable/mature/efficient. - Each app is as independent and self contained as possible. Exceptions, the basic requirements: navigation, permissions, common, main. -- If an app is meant to be used by more than one other app it should be as +- If an app is meant to be used by more than one other app, it should be as generic as possible in regard to the project and another app will bridge the functionality. - Example: since indexing (document_indexing) only applies to documents, the @@ -48,7 +48,7 @@ Coding conventions Follow PEP8 ~~~~~~~~~~~ -Whenever possible, but don't obsess over things like line length. +Whenever possible, but don't obsess over things like line length: .. code-block:: bash @@ -103,9 +103,9 @@ Example: ) from .models import Index, IndexInstanceNode, DocumentRenameCount -All local app module imports are in relative form, local app module name is to +All local app module imports are in relative form. Local app module name is to be referenced as little as possible, unless required by a specific feature, -trick, restriction, ie: Runtime modification of the module's attributes. +trick, restriction (e.g., Runtime modification of the module's attributes). Incorrect: @@ -128,7 +128,7 @@ Dependencies Mayan EDMS apps follow a hierarchical model of dependency. Apps import from their parents or siblings, never from their children. Think plugins. A parent app must never assume anything about a possible existing child app. The -documents app and the Document model are the basic entities they must never +documents app and the Document model are the basic entities; they must never import anything else. The common and main apps are the base apps. @@ -423,3 +423,16 @@ Wheel package $ pip install /dist/mayan_edms-x.y.z-py2-none-any.whl $ mayan-edms.py initialsetup $ mayan-edms.py runserver + + +Version numbering +~~~~~~~~~~~~~~~~~ + +Mayan EDMS uses the Semantic Versioning (http://semver.org/) method to choose +version numbers along with Python's PEP-0440 (https://www.python.org/dev/peps/pep-0440/) +to format them. + +X.YaN # Alpha release +X.YbN # Beta release +X.YrcN # Release Candidate +X.Y # Final release diff --git a/docs/topics/faq.rst b/docs/topics/faq.rst index dedf95428f..987e0d2a43 100644 --- a/docs/topics/faq.rst +++ b/docs/topics/faq.rst @@ -126,3 +126,10 @@ dependent support Python 3 then will the project move to fully support Python 3. Make sure that the Celery BEAT scheduler is running correctly as it is the element that triggers the periodics tasks. + +**Q: How to do LDAP authentication** + +A sample settings file called ldap_connection_settings.py is included in the +contrib/settings/ folder of the repository showing how to setup LDAP +authentication. + diff --git a/docs/topics/features.rst b/docs/topics/features.rst index 33d32c7159..3d93dc0145 100644 --- a/docs/topics/features.rst +++ b/docs/topics/features.rst @@ -30,7 +30,7 @@ Features * Dynamic default values for metadata. * Metadata fields can have an initial value, which can be static or determined - by an user provided template code snippet. + by a template code snippet provided by the user. * Documents can be uploaded from different sources. @@ -68,7 +68,7 @@ Features * Multi page document support. - * Multiple page PDFs and TIFFs files are supported. + * Multiple page PDF and TIFF files are supported. * Automatic OCR processing. diff --git a/docs/topics/installation.rst b/docs/topics/installation.rst index 095b052d39..73bf5fc18b 100644 --- a/docs/topics/installation.rst +++ b/docs/topics/installation.rst @@ -2,7 +2,7 @@ Installation ============ The easiest way to use Mayan EDMS is by using the official Docker_ image. -Make sure Docker_ is properly installed and working before attempting to install +Make sure Docker is properly installed and working before attempting to install Mayan EDMS. With Docker properly installed, proceed to download the Mayan EDMS image using @@ -10,102 +10,25 @@ the command: .. code-block:: bash - docker pull mayanedms/mayanedms + $ docker pull mayanedms/mayanedms:2.3 After the image finishes downloading, initialize a Mayan EDMS container. .. code-block:: bash - docker run --rm -v mayan_media:/var/lib/mayan \ - -v mayan_settings:/etc/mayan mayanedms/mayanedms mayan:init + $ docker run -d --name mayan-edms --restart=always -p 80:80 \ + -v mayan_data:/var/lib/mayan mayanedms/mayanedms:2.3 -With initialization complete, launch the container. If another web server is -running on port 80 use a different port in the -p option, ie: -p 81:80. +Point your browser to the IP address 127.0.0.1 (or the alternate port chosen, +ie: 127.0.0.1:81) and use the automatically created admin account. -.. code-block:: bash +All files will be stored in the Docker volume ``mayan_data`` - docker run -d --name mayan-edms --restart=always -p 80:80 \ - -v mayan_media:/var/lib/mayan -v mayan_settings:/etc/mayan \ - mayanedms/mayanedms - -Point your browser to 127.0.0.1 (or the alternate port chosen, ie: 127.0.0.1:81) -and use the automatically created admin account. - -All files will be stored in the following two volumes: - -- mayan_media -- mayan_settings - -Stopping and starting ---------------------- -To stop the container use:: - - docker stop mayan-edms - -To start the container again:: - - docker start mayan-edms - -Configuring ------------ -To edit the settings file, check the physical location of the `mayan_settings` -volume using:: - - docker volume inspect mayan_settings - -Which should produce an output similar to this one: - -.. code-block:: bash - - [ - { - "Name": "mayan_settings", - "Driver": "local", - "Mountpoint": "/var/lib/docker/volumes/mayan_settings/_data", - "Labels": null, - "Scope": "local" - } - ] - -In this case the physical location of the `mayan_settings` volume is -`/var/lib/docker/volumes/mayan_settings/_data`. Edit the settings file with your -favorite editor:: - - sudo vi /var/lib/docker/volumes/mayan_settings/_data/local.py - -Backups -------- - -To backup the existing data, check the physical location of the `mayan_media` -volume using:: - - docker volume inspect mayan_media - -Which should produce an output similar to this one: - -.. code-block:: bash - - [ - { - "Name": "mayan_settings", - "Driver": "local", - "Mountpoint": "/var/lib/docker/volumes/mayan_media/_data", - "Labels": null, - "Scope": "local" - } - ] - -Only the `db.sqlite3` file and the `document_storage` folder need to be backed -up:: - - sudo tar -zcvf backup.tar.gz /var/lib/docker/volumes/mayan_media/_data/document_storage /var/lib/docker/volumes/mayan_media/_data/db.sqlite3 - sudo chown `whoami` backup.tar.gz - -Restore -------- -Uncompress the archive in the original docker volume using:: - - sudo tar -xvzf backup.tar.gz -C / +If another web server is running on port 80 use a different port in the ``-p`` +option, ie: ``-p 81:80``. +For the complete set of installation, configuration, upgrade, and backup +instructions visit the Mayan EDMS Docker Hub page at: +https://hub.docker.com/r/mayanedms/mayanedms/ .. _Docker: https://www.docker.com/ diff --git a/docs/topics/transformations.rst b/docs/topics/transformations.rst index ffde0c7c7c..ebe4355be8 100644 --- a/docs/topics/transformations.rst +++ b/docs/topics/transformations.rst @@ -2,21 +2,20 @@ Transformations =============== -Transformation are persistent manipulations to the previews of the stored -documents. For example: a scanning equipment may only produce landscape PDFs. -In this case an useful transformation for that document source would be to -rotate all documents scanned by 270 degrees after being uploaded, this way -whenever a document is uploaded from that scanner it will appear in portrait -orientation. In this case add a this transformation to the Mayan EDMS source -that is connected to that device this way all pages scanned via that source -with inherit the transformation as they are created. +Transformations are persistent manipulations to the previews of the stored +documents. For example: a scanning equipment may only produce landscape PDFs. +In this case a useful transformation for that document source would be to rotate +all scanned documents by 270 degrees after being uploaded. By adding this +transformation to the Mayan EDMS source that is connected to the scanner, all +pages scanned via that source will inherit the transformation as they are +created. The result is that whenever a document is uploaded from that scanner, +it will appear in portrait orientation, instead of landscape orientation. -Transformations can also be added to existing documents, by clicking on a -document's page, then clicking on "transformations". In this view the Actions -menu will have a new option that reads "Create new transformation". At the -moment the rotation, zoom, crop, and resize transformations are available. -Once the document image has been corrected resubmit it for OCR for improved -results. +Transformations can also be added to existing documents by clicking on a +document's page and then clicking on "transformations". In this view the Actions +menu will have a new option that reads "Create new transformation". Currently, +the available transformations are: rotation, zoom, crop, and resize. Once the +document image has been corrected, resubmit it for OCR for improved results. -Transformations are not destructive and do not physically modify the document +Transformations are not destructive and do not physically modify the document file, they just modify the document's graphical representation. diff --git a/mayan/__init__.py b/mayan/__init__.py index 43c74b02a1..cb35e8154b 100644 --- a/mayan/__init__.py +++ b/mayan/__init__.py @@ -1,8 +1,8 @@ from __future__ import unicode_literals __title__ = 'Mayan EDMS' -__version__ = '2.1.7' -__build__ = 0x020107 +__version__ = '2.3' +__build__ = 0x020300 __author__ = 'Roberto Rosario' __author_email__ = 'roberto.rosario@mayan-edms.com' __description__ = 'Free Open Source Electronic Document Management System' diff --git a/mayan/apps/acls/api_views.py b/mayan/apps/acls/api_views.py new file mode 100644 index 0000000000..a93f3e09c8 --- /dev/null +++ b/mayan/apps/acls/api_views.py @@ -0,0 +1,250 @@ +from __future__ import absolute_import, unicode_literals + +from django.contrib.contenttypes.models import ContentType +from django.core.exceptions import PermissionDenied +from django.shortcuts import get_object_or_404 + +from rest_framework import generics + +from permissions import Permission + +from .models import AccessControlList +from .permissions import permission_acl_edit, permission_acl_view +from .serializers import ( + AccessControlListPermissionSerializer, AccessControlListSerializer, + WritableAccessControlListPermissionSerializer, + WritableAccessControlListSerializer +) + + +class APIObjectACLListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of all the object's access control lists + """ + + return super(APIObjectACLListView, self).get(*args, **kwargs) + + def get_content_object(self): + content_type = get_object_or_404( + ContentType, app_label=self.kwargs['app_label'], + model=self.kwargs['model'] + ) + + content_object = get_object_or_404( + content_type.model_class(), pk=self.kwargs['object_pk'] + ) + + if self.request.method == 'GET': + permission_required = permission_acl_view + else: + permission_required = permission_acl_edit + + try: + Permission.check_permissions( + self.request.user, permissions=(permission_required,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_required, self.request.user, content_object + ) + + return content_object + + def get_queryset(self): + return self.get_content_object().acls.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + + return { + 'content_object': self.get_content_object(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def get_serializer_class(self): + if self.request.method == 'GET': + return AccessControlListSerializer + else: + return WritableAccessControlListSerializer + + def post(self, *args, **kwargs): + """ + Create a new access control list for the selected object. + """ + + return super(APIObjectACLListView, self).post(*args, **kwargs) + + +class APIObjectACLView(generics.RetrieveDestroyAPIView): + serializer_class = AccessControlListSerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected access control list. + """ + + return super(APIObjectACLView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected access control list. + """ + + return super(APIObjectACLView, self).get(*args, **kwargs) + + def get_content_object(self): + if self.request.method == 'GET': + permission_required = permission_acl_view + else: + permission_required = permission_acl_edit + + content_type = get_object_or_404( + ContentType, app_label=self.kwargs['app_label'], + model=self.kwargs['model'] + ) + + content_object = get_object_or_404( + content_type.model_class(), pk=self.kwargs['object_pk'] + ) + + try: + Permission.check_permissions( + self.request.user, permissions=(permission_required,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_required, self.request.user, content_object + ) + + return content_object + + def get_queryset(self): + return self.get_content_object().acls.all() + + +class APIObjectACLPermissionListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns the access control list permission list. + """ + + return super( + APIObjectACLPermissionListView, self + ).get(*args, **kwargs) + + def get_acl(self): + return get_object_or_404( + self.get_content_object().acls, pk=self.kwargs['pk'] + ) + + def get_content_object(self): + content_type = get_object_or_404( + ContentType, app_label=self.kwargs['app_label'], + model=self.kwargs['model'] + ) + + content_object = get_object_or_404( + content_type.model_class(), pk=self.kwargs['object_pk'] + ) + + try: + Permission.check_permissions( + self.request.user, permissions=(permission_acl_view,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_acl_view, self.request.user, content_object + ) + + return content_object + + def get_queryset(self): + return self.get_acl().permissions.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return AccessControlListPermissionSerializer + else: + return WritableAccessControlListPermissionSerializer + + def get_serializer_context(self): + return { + 'acl': self.get_acl(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def post(self, *args, **kwargs): + """ + Add a new permission to the selected access control list. + """ + + return super( + APIObjectACLPermissionListView, self + ).post(*args, **kwargs) + + +class APIObjectACLPermissionView(generics.RetrieveDestroyAPIView): + lookup_url_kwarg = 'permission_pk' + serializer_class = AccessControlListPermissionSerializer + + def delete(self, *args, **kwargs): + """ + Remove the permission from the selected access control list. + """ + + return super( + APIObjectACLPermissionView, self + ).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected access control list permission. + """ + + return super( + APIObjectACLPermissionView, self + ).get(*args, **kwargs) + + def get_acl(self): + return get_object_or_404( + self.get_content_object().acls, pk=self.kwargs['pk'] + ) + + def get_content_object(self): + content_type = get_object_or_404( + ContentType, app_label=self.kwargs['app_label'], + model=self.kwargs['model'] + ) + + content_object = get_object_or_404( + content_type.model_class(), pk=self.kwargs['object_pk'] + ) + + try: + Permission.check_permissions( + self.request.user, permissions=(permission_acl_view,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_acl_view, self.request.user, content_object + ) + + return content_object + + def get_queryset(self): + return self.get_acl().permissions.all() + + def get_serializer_context(self): + return { + 'acl': self.get_acl(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } diff --git a/mayan/apps/acls/apps.py b/mayan/apps/acls/apps.py index ebce7ca4ce..8825df70b2 100644 --- a/mayan/apps/acls/apps.py +++ b/mayan/apps/acls/apps.py @@ -4,18 +4,21 @@ from django.utils.translation import ugettext_lazy as _ from common import MayanAppConfig, menu_object, menu_sidebar from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .links import link_acl_create, link_acl_delete, link_acl_permissions class ACLsApp(MayanAppConfig): + has_tests = True name = 'acls' - test = True verbose_name = _('ACLs') def ready(self): super(ACLsApp, self).ready() + APIEndPoint(app=self, version_string='1') + AccessControlList = self.get_model('AccessControlList') SourceColumn( diff --git a/mayan/apps/acls/classes.py b/mayan/apps/acls/classes.py index 9ddaa03428..30ec654778 100644 --- a/mayan/apps/acls/classes.py +++ b/mayan/apps/acls/classes.py @@ -14,10 +14,18 @@ class ModelPermission(object): @classmethod def register(cls, model, permissions): + from django.contrib.contenttypes.fields import GenericRelation + cls._registry.setdefault(model, []) for permission in permissions: cls._registry[model].append(permission) + AccessControlList = apps.get_model( + app_label='acls', model_name='AccessControlList' + ) + + model.add_to_class('acls', GenericRelation(AccessControlList)) + @classmethod def get_for_instance(cls, instance): StoredPermission = apps.get_model( @@ -36,7 +44,9 @@ class ModelPermission(object): if proxy: permissions.extend(cls._registry.get(proxy)) - pks = [permission.stored_permission.pk for permission in set(permissions)] + pks = [ + permission.stored_permission.pk for permission in set(permissions) + ] return StoredPermission.objects.filter(pk__in=pks) @classmethod diff --git a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo index b9f8dfab00..fae4e8f5c8 100644 Binary files a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po index 61c00a6c9a..f26e94285a 100644 --- a/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/ar/LC_MESSAGES/django.po @@ -1,64 +1,63 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "الصلاحيات" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Insufficient access." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "لا شيء" @@ -74,36 +73,65 @@ msgstr "Edit ACLs" msgid "View ACLs" msgstr "View ACLs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +226,10 @@ 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" @@ -222,8 +252,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo index 74502f8b6e..a760b13940 100644 Binary files a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po index 39fafedd71..3926ed7e45 100644 --- a/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/bg/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Разрешения" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Недостатъчен достъп." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "достъп вписване" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "достъп вписвания" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Няма" @@ -74,36 +72,65 @@ msgstr "Редактиране на контролни списъци за до msgid "View ACLs" msgstr "Преглед на контролни списъци за достъп" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ 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" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo index 5c9f8b61fb..fe80a9f9b0 100644 Binary files a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po index 865445f1bd..5e73d2105f 100644 --- a/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/bs_BA/LC_MESSAGES/django.po @@ -1,64 +1,63 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Dozvole" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Nedovoljne dozvole." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Nijedno" @@ -74,36 +73,65 @@ msgstr "Izmjeniti ACLs" msgid "View ACLs" msgstr "Pregledati ACLs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +226,10 @@ 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" @@ -222,8 +252,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo index eb11dcead6..97e329855f 100644 Binary files a/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/da/LC_MESSAGES/django.po b/mayan/apps/acls/locale/da/LC_MESSAGES/django.po index b8af335bed..f807404a80 100644 --- a/mayan/apps/acls/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/da/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Ingen" @@ -74,36 +72,65 @@ msgstr "" msgid "View ACLs" msgstr "" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ 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" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.mo index ea41af0579..b3c203967c 100644 Binary files a/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.po index 8dac75b4c2..21e7e391b3 100644 --- a/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/de_DE/LC_MESSAGES/django.po @@ -1,66 +1,66 @@ # 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 , 2015 +# Jesaja Everling , 2017 # Tobias Paepke , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-31 18:56+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-24 23:10+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Zugriffsberechtigungen" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Berechtigungen" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Rolle" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Löschen" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Neue Berechtigung" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Fehlende Berechtigung" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Berechtigungseintrag" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Berechtigungseinträge" -#: models.py:48 +#: models.py:57 #, 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\"" +msgstr "" +"Berechtigungen \"%(permissions)s\" zur Rolle \"%(role)s\" für \"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Keine" @@ -76,38 +76,72 @@ msgstr "Zugriffsberechtigungen bearbeiten" msgid "View ACLs" msgstr "Zugriffsberechtigungen anzeigen" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "API URL für die Liste der Berechtigungen dieser ACL" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" +"API URL für die Berechtigung in Relation zur ACL zu der sie zugeordnet ist. " +"Diese URL unterscheidet sich von der normalen Workflow URL." + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "Primary key der zur ACL hinzuzufügenden Berechtigung." + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "Keine solche Berechtigung: %s" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" +"Durch Komma getrennte Liste von Primary Keys der zu dieser ACL " +"hinzuzufügenden Berechtigungen." + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "Primary Key der Rolle die dieser ACL zugeordnet ist." + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Neue Zugriffsberechtigung für %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "ACL \"%s\" löschen" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Zugriffsberechtigungen für %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Verfügbare Berechtigungen" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Erteilte Berechtigungen" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Berechtigungen von Rolle \"%(role)s\" für \"%(object)s\"" -#: views.py:242 +#: views.py:226 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" @@ -200,8 +234,10 @@ msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererb #~ 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" @@ -224,8 +260,5 @@ msgstr "Deaktivierte Berechtigungen sind von einem übergeordneten Objekt vererb #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo index 68dfeacb7c..1ac7353367 100644 Binary files a/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/en/LC_MESSAGES/django.po b/mayan/apps/acls/locale/en/LC_MESSAGES/django.po index 25d5608a7d..fbae4abbf2 100644 --- a/mayan/apps/acls/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:48-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,52 +18,52 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 #, fuzzy msgid "Permissions" msgstr "permissions" -#: apps.py:26 models.py:38 +#: apps.py:29 models.py:46 #, fuzzy #| msgid "Roles" msgid "Role" msgstr "Roles" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 +#: links.py:39 #, fuzzy #| msgid "View ACLs" msgid "New ACL" msgstr "View ACLs" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Insufficient access." -#: models.py:44 +#: models.py:52 #, fuzzy msgid "Access entry" msgstr "access entry" -#: models.py:45 +#: models.py:53 #, fuzzy msgid "Access entries" msgstr "access entries" -#: models.py:48 +#: models.py:57 #, fuzzy, python-format #| msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "Permission \"%(permission)s\" granted to %(actor)s for %(object)s." -#: models.py:64 +#: models.py:74 msgid "None" msgstr "" @@ -79,38 +79,69 @@ msgstr "Edit ACLs" msgid "View ACLs" msgstr "View ACLs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, fuzzy, python-format +#| msgid "permission" +msgid "No such permission: %s" +msgstr "permission" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, fuzzy, python-format msgid "New access control lists for: %s" msgstr "access control lists for: %s" -#: views.py:109 +#: views.py:100 #, fuzzy, python-format #| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Default ACLs" -#: views.py:151 +#: views.py:138 #, fuzzy, python-format msgid "Access control lists for: %s" msgstr "access control lists for: %s" -#: views.py:162 +#: views.py:150 #, fuzzy msgid "Available permissions" msgstr "has permission" -#: views.py:163 +#: views.py:151 #, fuzzy msgid "Granted permissions" msgstr "has permission" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -247,8 +278,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo index 03fc79ac74..31037eada1 100644 Binary files a/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/es/LC_MESSAGES/django.po b/mayan/apps/acls/locale/es/LC_MESSAGES/django.po index f860b997e1..25623de8d2 100644 --- a/mayan/apps/acls/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/es/LC_MESSAGES/django.po @@ -6,13 +6,13 @@ # Translators: # jmcainzos , 2015 # Roberto Rosario, 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:38+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+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,47 +21,47 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "LCAs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permisos" -#: apps.py:26 models.py:38 +#: apps.py:29 models.py:46 #| msgid "Roles" msgid "Role" msgstr "Rol" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Borrar" -#: links.py:35 +#: links.py:39 #| msgid "View ACLs" msgid "New ACL" msgstr "Nueva LCA" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Acceso insuficiente." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Entrada de acceso" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Entradas de acceso" -#: models.py:48 +#: models.py:57 #, python-format #| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "Permisos \"%(permissions)s\" para el rol \"%(role)s\" para \"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Ninguno" @@ -77,36 +77,67 @@ msgstr "Editar LCAs" msgid "View ACLs" msgstr "Ver LCAs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "URL de la API que apunta a la lista de permisos para esta lista de control de acceso." + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "URL de la API que apunta a un permiso en relación con la lista de control de acceso a la que está conectado. Esta URL es diferente de la URL canónica de flujo de trabajo." + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "Llave primaria del nuevo permiso para conceder a la lista de control de acceso." + +#: serializers.py:111 serializers.py:187 +#, python-format +#| msgid "permission" +msgid "No such permission: %s" +msgstr "No existe el permiso: %s" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "Lista separada por comas de las llaves primarias de permisos para conceder a esta lista de control de acceso." + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "Las llaves primarias de los roles a los que se vincula esta lista de control de acceso." + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nueva lista de control de acceso para: %s" -#: views.py:109 +#: views.py:100 #, python-format #| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Borrar LCA: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Listas de control de acceso para: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Permisos disponibles" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Permisos otorgados" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Permisos del rol \"%(role)s\" para \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Los permisos inactivos se heredan de un objeto precedente." @@ -225,8 +256,5 @@ msgstr "Los permisos inactivos se heredan de un objeto precedente." #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo index fee31706ca..620d52383f 100644 Binary files a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po index febe4e197c..cc6bfeefcf 100644 --- a/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/fa/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "مجوزها" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "نقش" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "حذف" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "دسترسی ناکافی" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "ورودی دسترسی" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "ورودیهای دسترسی" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "هیچکدام." @@ -74,36 +72,65 @@ msgstr "ویرایش دسترسی ها" msgid "View ACLs" msgstr "دیدن دسترسی ها" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "لیست کنترل دسترسی ها برای : %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ 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" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo index 14b6e009b1..c44a0e307d 100644 Binary files a/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/fr/LC_MESSAGES/django.po b/mayan/apps/acls/locale/fr/LC_MESSAGES/django.po index b01b356a0d..ef2e95aa33 100644 --- a/mayan/apps/acls/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/fr/LC_MESSAGES/django.po @@ -1,65 +1,65 @@ # 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 , 2016 # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Droits" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permissions" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Rôle" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Suppression" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nouveau droit" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "droit d'accès insuffisant." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Entrée d'accès" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Entrées d'accès" -#: models.py:48 +#: models.py:57 #, 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 "" +"Permissions \"%(permissions)s\" du rôle \"%(role)s\" pour \"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Aucun" @@ -75,36 +75,65 @@ msgstr "Editer les droits" msgid "View ACLs" msgstr "voir les droits d'accès" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nouvelle liste de contrôle d'accès pour: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Supprimer le droit: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Liste des contrôle d'accès pour: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Permissions disponibles" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Permissions autorisées" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Permission du rôle \"%(role)s\" pour \"%(object)s\"@" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "La désactivation de permission est hérité de l'objet parent" @@ -199,8 +228,10 @@ 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" @@ -223,8 +254,5 @@ msgstr "La désactivation de permission est hérité de l'objet parent" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo index d196323791..f33ad705f0 100644 Binary files a/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/hu/LC_MESSAGES/django.po b/mayan/apps/acls/locale/hu/LC_MESSAGES/django.po index 77708a7b47..8ae68ed97a 100644 --- a/mayan/apps/acls/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/hu/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACL-ek" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Semmi" @@ -74,36 +72,65 @@ msgstr "" msgid "View ACLs" msgstr "" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ 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" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/id/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/id/LC_MESSAGES/django.mo index b346c5c893..b28642baeb 100644 Binary files a/mayan/apps/acls/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/id/LC_MESSAGES/django.po b/mayan/apps/acls/locale/id/LC_MESSAGES/django.po index f1d098200f..a63647740d 100644 --- a/mayan/apps/acls/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/id/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "" @@ -74,36 +72,65 @@ msgstr "" msgid "View ACLs" msgstr "" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ 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" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo index 0d1cb734a6..77e2224448 100644 Binary files a/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/it/LC_MESSAGES/django.po b/mayan/apps/acls/locale/it/LC_MESSAGES/django.po index 1a1ce39e76..f7a08495da 100644 --- a/mayan/apps/acls/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -9,57 +9,55 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permessi" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Ruolo" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Cancella" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nuova ACL" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Accesso insufficiente." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Voce di accesso" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Voci di accesso" -#: models.py:48 +#: models.py:57 #, 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 +#: models.py:74 msgid "None" msgstr "Nessuna " @@ -75,36 +73,65 @@ msgstr "Modifica ACL" msgid "View ACLs" msgstr "Visualizza ACL" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nuova lista di controllo accesso per: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Cancella ACL: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Lista dei permessi d'accesso per: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Autorizzazioni disponibili " -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Autorizzazioni concesse " -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Permessi del ruolo \"%(role)s\" per \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Il permesso disabilita è ereditato dall'oggetto padre" @@ -199,8 +226,10 @@ msgstr "Il permesso disabilita è ereditato dall'oggetto padre" #~ 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" @@ -223,8 +252,5 @@ msgstr "Il permesso disabilita è ereditato dall'oggetto padre" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo index e95ea65909..3b6b264f80 100644 Binary files a/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.po index 93b9836dce..437b0917f3 100644 --- a/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -10,57 +10,57 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 12:43+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Authorisatielijsten" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permissies" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Gebruikersrol" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Verwijder" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nieuwe authorisatielijst" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Permissie is ontoereikend" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Authorisatie invoer" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Authorisaties invoer" -#: models.py:48 +#: models.py:57 #, 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\"" +msgstr "" +"Permissies \"%(permissions)s\" voor gebruikersrol \"%(role)s\" voor " +"\"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Geen" @@ -76,36 +76,65 @@ msgstr "Bewerk authorisatielijsten" msgid "View ACLs" msgstr "Bekijk authorisatielijsten" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nieuwe authorisatielijsten voor: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Verwijder authorisatielijst: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Authorisatielijsten voor: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Beschikbare permissies" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Toegekende permissies" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Rol \"%(role)s\" permissies voor \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Uitgeschakelde permissies zijn geërfd van een parent object." @@ -200,8 +229,10 @@ 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" @@ -224,8 +255,5 @@ msgstr "Uitgeschakelde permissies zijn geërfd van een parent object." #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo index f958e6b8ed..bfacc1b6cf 100644 Binary files a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po index 83be64cd16..fab35772bb 100644 --- a/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/pl/LC_MESSAGES/django.po @@ -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: # Wojtek Warczakowski , 2016 @@ -9,57 +9,57 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:14 links.py:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Listy ACL" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Uprawnienia" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Rola" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Usuń" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nowa lista ACL" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Niewystarczający dostęp." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Zgłoszenie dostępu" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Zgłoszenia dostępu" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Brak" @@ -75,36 +75,65 @@ msgstr "Edytuj listy ACL" msgid "View ACLs" msgstr "Przeglądaj listy ACL" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nowe listy ACL dla: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Usuń listę ACL: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Listy ACL dla: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Dostępne uprawnienia" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Przyznane uprawnienia" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Uprawnienia roli \"%(role)s\" dla obiektu \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego." @@ -199,8 +228,10 @@ 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" @@ -223,8 +254,5 @@ msgstr "Domyślne uprawnienia są dziedziczone z obiektu nadrzędnego." #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo index 9caa6ac7bb..cfad490f15 100644 Binary files a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po index 97b4a0cef4..1710780c16 100644 --- a/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/pt/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACL's" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permissões" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Eliminar" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Acesso insuficiente." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Nenhum" @@ -74,36 +72,65 @@ msgstr "Editar ACL's" msgid "View ACLs" msgstr "Ver ACL's" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ 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" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo index 48edbdd099..5829308913 100644 Binary files a/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.po index 718565702a..ad4b749abf 100644 --- a/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -9,57 +9,56 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 22:31+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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" "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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permissões" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Regras" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Excluir" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Nova ACL" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Acesso insuficiente." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Acesso entrada" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Entradas de acesso" -#: models.py:48 +#: models.py:57 #, 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\"" +msgstr "" +"Permissões \"%(permissions)s\" do papel \"%(role)s\" para \"%(object)s\"" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Nenhum" @@ -75,36 +74,65 @@ msgstr "Editar ACLs" msgid "View ACLs" msgstr "Visualizar ACLs" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Nova lista de controle de acesso para: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Apagar ACL: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "listas de controle de acesso para: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Permissões disponíveis" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Permissões outorgadas" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Permissões do papel \"%(role)s\" para \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "As permissões inativas foram herdadas de um objeto precedente." @@ -199,8 +227,10 @@ msgstr "As permissões inativas foram herdadas de um objeto precedente." #~ 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" @@ -223,8 +253,5 @@ msgstr "As permissões inativas foram herdadas de um objeto precedente." #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo index 022af94d80..48f65beb94 100644 Binary files a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po index 74e5cd928e..1287acded5 100644 --- a/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/ro_RO/LC_MESSAGES/django.po @@ -1,64 +1,63 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACL-uri" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Permisiuni" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Șterge" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Accesul insuficient." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Nici unul" @@ -74,36 +73,65 @@ msgstr "Editați ACL-uri" msgid "View ACLs" msgstr "Vezi ACL-uri" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +226,10 @@ 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" @@ -222,8 +252,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo index 9b8f899058..fe350c6fe1 100644 Binary files a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po index b1b5a0d552..ad3c8d2300 100644 --- a/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,57 +9,57 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "СУДы" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Разрешения" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "Роль" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "Удалить" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "Создать СУД" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Неполный доступ." -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Элемент доступа" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Элементы доступа" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Пусто" @@ -75,36 +75,65 @@ msgstr "Редактировать СУДы" msgid "View ACLs" msgstr "Просмотр СУДов" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "Новый СУД для: %s" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "Удалить СУД: %s" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "СУДы для: %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "Доступные разрешения" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "Предоставленные разрешения" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "Права роли \"%(role)s\" для \"%(object)s\"" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "Отключенные права наследуются от родительского объекта." @@ -199,8 +228,10 @@ 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" @@ -223,8 +254,5 @@ msgstr "Отключенные права наследуются от родит #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo index 852ed45a5c..d4e513b59b 100644 Binary files a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po index 336dac372c..b9239d5249 100644 --- a/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/sl_SI/LC_MESSAGES/django.po @@ -1,64 +1,63 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 08:58+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "Pravice" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "Pravice" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "Nezadosten dostop" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "Vstopna točka" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "Vstopne točke" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "Brez" @@ -74,36 +73,65 @@ msgstr "Uredi dostopne pravice" msgid "View ACLs" msgstr "Preglej dostopne pravice" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "Dostopne pravice za %s" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +226,10 @@ 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" @@ -222,8 +252,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo index aed8c992d9..ee68e11262 100644 Binary files a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po index 5ec9a916c8..57756adcdb 100644 --- a/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/vi_VN/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "ACLs" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "None" @@ -74,36 +72,65 @@ msgstr "" msgid "View ACLs" msgstr "" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ 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" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo index 771d29ca9b..78ae5724d4 100644 Binary files a/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.po index 4e0ee1a149..122cae7035 100644 --- a/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/acls/locale/zh_CN/LC_MESSAGES/django.po @@ -1,64 +1,62 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:31 +#: apps.py:15 links.py:35 msgid "ACLs" msgstr "访问控制列表" -#: apps.py:22 links.py:40 models.py:36 +#: apps.py:25 links.py:44 models.py:44 msgid "Permissions" msgstr "权限" -#: apps.py:26 models.py:38 -#| msgid "Roles" +#: apps.py:29 models.py:46 msgid "Role" msgstr "" -#: links.py:27 +#: links.py:31 msgid "Delete" msgstr "" -#: links.py:35 -#| msgid "View ACLs" +#: links.py:39 msgid "New ACL" msgstr "" -#: managers.py:85 +#: managers.py:109 msgid "Insufficient access." msgstr "权限不足" -#: models.py:44 +#: models.py:52 msgid "Access entry" msgstr "访问入口" -#: models.py:45 +#: models.py:53 msgid "Access entries" msgstr "多个访问入口" -#: models.py:48 +#: models.py:57 #, python-format -#| msgid "mission \"%(permission)s\" granted to %(actor)s for %(object)s." msgid "Permissions \"%(permissions)s\" to role \"%(role)s\" for \"%(object)s\"" msgstr "" -#: models.py:64 +#: models.py:74 msgid "None" msgstr "无" @@ -74,36 +72,65 @@ msgstr "编辑访问控制列表" msgid "View ACLs" msgstr "查看访问控制列表" -#: views.py:78 +#: serializers.py:24 serializers.py:132 +msgid "" +"API URL pointing to the list of permissions for this access control list." +msgstr "" + +#: serializers.py:57 +msgid "" +"API URL pointing to a permission in relation to the access control list to " +"which it is attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:87 +msgid "Primary key of the new permission to grant to the access control list." +msgstr "" + +#: serializers.py:111 serializers.py:187 +#, python-format +msgid "No such permission: %s" +msgstr "" + +#: serializers.py:126 +msgid "" +"Comma separated list of permission primary keys to grant to this access " +"control list." +msgstr "" + +#: serializers.py:138 +msgid "Primary keys of the role to which this access control list binds to." +msgstr "" + +#: views.py:73 #, python-format msgid "New access control lists for: %s" msgstr "" -#: views.py:109 +#: views.py:100 #, python-format -#| msgid "Default ACLs" msgid "Delete ACL: %s" msgstr "" -#: views.py:151 +#: views.py:138 #, python-format msgid "Access control lists for: %s" msgstr "" -#: views.py:162 +#: views.py:150 msgid "Available permissions" msgstr "" -#: views.py:163 +#: views.py:151 msgid "Granted permissions" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Role \"%(role)s\" permission's for \"%(object)s\"" msgstr "" -#: views.py:242 +#: views.py:226 msgid "Disabled permissions are inherited from a parent object." msgstr "" @@ -198,8 +225,10 @@ 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" @@ -222,8 +251,5 @@ msgstr "" #~ msgid "List of classes" #~ msgstr "List of classes" -#~ msgid "permission" -#~ msgstr "permission" - #~ msgid "creator" #~ msgstr "creator" diff --git a/mayan/apps/acls/managers.py b/mayan/apps/acls/managers.py index eb5bbb207a..bfe0c5dd0c 100644 --- a/mayan/apps/acls/managers.py +++ b/mayan/apps/acls/managers.py @@ -49,6 +49,10 @@ class AccessControlListManager(models.Manager): def check_access(self, permissions, user, obj, related=None): if user.is_superuser or user.is_staff: + logger.debug( + 'Permissions "%s" on "%s" granted to user "%s" as superuser or staff', + permissions, obj, user + ) return True try: @@ -89,15 +93,30 @@ class AccessControlListManager(models.Manager): 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))): + logger.debug( + 'Permissions "%s" on "%s" granted to user "%s" through role "%s" via inherited ACL', + permissions, obj, user, role + ) return True user_roles.append(role) 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(): + logger.debug( + 'Permissions "%s" on "%s" denied for user "%s"', + permissions, obj, user + ) raise PermissionDenied(ugettext('Insufficient access.')) + logger.debug( + 'Permissions "%s" on "%s" granted to user "%s" through roles "%s" by direct ACL', + permissions, obj, user, user_roles + ) + def filter_by_access(self, permission, user, queryset): if user.is_superuser or user.is_staff: + logger.debug('Unfiltered queryset returned to user "%s" as superuser or staff', + user) return queryset try: @@ -145,6 +164,10 @@ class AccessControlListManager(models.Manager): content_type=content_type, role__in=user_roles, permissions=permission.stored_permission ).values_list('object_id', flat=True)) + logger.debug( + 'Filtered queryset returned to user "%s" based on roles "%s"', + user, user_roles + ) return queryset.filter(parent_acl_query | acl_query) else: diff --git a/mayan/apps/acls/models.py b/mayan/apps/acls/models.py index 03db1cbebd..3e7cc833ff 100644 --- a/mayan/apps/acls/models.py +++ b/mayan/apps/acls/models.py @@ -18,9 +18,17 @@ logger = logging.getLogger(__name__) @python_2_unicode_compatible class AccessControlList(models.Model): """ - Model that hold the permission, object, actor relationship + ACL means Access Control List it is a more fine-grained method of + granting access to objects. In the case of ACLs, they grant access using + 3 elements: actor, permission, object. In this case the actor is the role, + the permission is the Mayan permission and the object can be anything: + a document, a folder, an index, etc. This means = "Grant X permissions + to role Y for object Z". This model holds the permission, object, actor + relationship for one access control list. + Fields: + * Role - Custom role that is being granted a permission. Roles are created + in the Setup menu. """ - content_type = models.ForeignKey( ContentType, related_name='object_content_type' @@ -45,7 +53,9 @@ class AccessControlList(models.Model): verbose_name_plural = _('Access entries') def __str__(self): - return _('Permissions "%(permissions)s" to role "%(role)s" for "%(object)s"') % { + return _( + 'Permissions "%(permissions)s" to role "%(role)s" for "%(object)s"' + ) % { 'permissions': self.get_permission_titles(), 'object': self.content_object, 'role': self.role diff --git a/mayan/apps/acls/serializers.py b/mayan/apps/acls/serializers.py new file mode 100644 index 0000000000..d312f8d827 --- /dev/null +++ b/mayan/apps/acls/serializers.py @@ -0,0 +1,204 @@ +from __future__ import absolute_import, unicode_literals + +from django.contrib.contenttypes.models import ContentType +from django.core.exceptions import ValidationError as DjangoValidationError +from django.utils.encoding import force_text +from django.utils.translation import ugettext_lazy as _ + +from rest_framework import serializers +from rest_framework.exceptions import ValidationError +from rest_framework.reverse import reverse + +from common.serializers import ContentTypeSerializer +from permissions import Permission +from permissions.models import Role, StoredPermission +from permissions.serializers import PermissionSerializer, RoleSerializer + +from .models import AccessControlList + + +class AccessControlListSerializer(serializers.ModelSerializer): + content_type = ContentTypeSerializer(read_only=True) + permissions_url = serializers.SerializerMethodField( + help_text=_( + 'API URL pointing to the list of permissions for this access ' + 'control list.' + ) + ) + role = RoleSerializer(read_only=True) + url = serializers.SerializerMethodField() + + class Meta: + fields = ( + 'content_type', 'id', 'object_id', 'permissions_url', 'role', 'url' + ) + model = AccessControlList + + def get_permissions_url(self, instance): + return reverse( + 'rest_api:accesscontrollist-permission-list', args=( + instance.content_type.app_label, instance.content_type.model, + instance.object_id, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:accesscontrollist-detail', args=( + instance.content_type.app_label, instance.content_type.model, + instance.object_id, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + +class AccessControlListPermissionSerializer(PermissionSerializer): + acl_permission_url = serializers.SerializerMethodField( + help_text=_( + 'API URL pointing to a permission in relation to the ' + 'access control list to which it is attached. This URL is ' + 'different than the canonical workflow URL.' + ) + ) + acl_url = serializers.SerializerMethodField() + + def get_acl_permission_url(self, instance): + return reverse( + 'rest_api:accesscontrollist-permission-detail', args=( + self.context['acl'].content_type.app_label, + self.context['acl'].content_type.model, + self.context['acl'].object_id, self.context['acl'].pk, + instance.stored_permission.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def get_acl_url(self, instance): + return reverse( + 'rest_api:accesscontrollist-detail', args=( + self.context['acl'].content_type.app_label, + self.context['acl'].content_type.model, + self.context['acl'].object_id, self.context['acl'].pk + ), request=self.context['request'], format=self.context['format'] + ) + + +class WritableAccessControlListPermissionSerializer(AccessControlListPermissionSerializer): + permission_pk = serializers.CharField( + help_text=_( + 'Primary key of the new permission to grant to the access control ' + 'list.' + ), write_only=True + ) + + class Meta: + fields = ('namespace',) + read_only_fields = ('namespace',) + + def create(self, validated_data): + for permission in validated_data['permissions']: + self.context['acl'].permissions.add(permission) + + return validated_data['permissions'][0] + + def validate(self, attrs): + permissions_pk_list = attrs.pop('permission_pk', None) + permissions_result = [] + + if permissions_pk_list: + for pk in permissions_pk_list.split(','): + try: + permission = Permission.get(pk=pk) + except KeyError: + raise ValidationError(_('No such permission: %s') % pk) + else: + # Accumulate valid stored permission pks + permissions_result.append(permission.pk) + + attrs['permissions'] = StoredPermission.objects.filter( + pk__in=permissions_result + ) + return attrs + + +class WritableAccessControlListSerializer(serializers.ModelSerializer): + content_type = ContentTypeSerializer(read_only=True) + permissions_pk_list = serializers.CharField( + help_text=_( + 'Comma separated list of permission primary keys to grant to this ' + 'access control list.' + ), required=False + ) + permissions_url = serializers.SerializerMethodField( + help_text=_( + 'API URL pointing to the list of permissions for this access ' + 'control list.' + ), read_only=True + ) + role_pk = serializers.IntegerField( + help_text=_( + 'Primary keys of the role to which this access control list ' + 'binds to.' + ), write_only=True + ) + url = serializers.SerializerMethodField() + + class Meta: + fields = ( + 'content_type', 'id', 'object_id', 'permissions_pk_list', + 'permissions_url', 'role_pk', 'url' + ) + model = AccessControlList + read_only_fields = ('content_type', 'object_id') + + def get_permissions_url(self, instance): + return reverse( + 'rest_api:accesscontrollist-permission-list', args=( + instance.content_type.app_label, instance.content_type.model, + instance.object_id, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:accesscontrollist-detail', args=( + instance.content_type.app_label, instance.content_type.model, + instance.object_id, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def validate(self, attrs): + attrs['content_type'] = ContentType.objects.get_for_model( + self.context['content_object'] + ) + attrs['object_id'] = self.context['content_object'].pk + + try: + attrs['role'] = Role.objects.get(pk=attrs.pop('role_pk')) + except Role.DoesNotExist as exception: + raise ValidationError(force_text(exception)) + + permissions_pk_list = attrs.pop('permissions_pk_list', None) + permissions_result = [] + + if permissions_pk_list: + for pk in permissions_pk_list.split(','): + try: + permission = Permission.get(pk=pk) + except KeyError: + raise ValidationError(_('No such permission: %s') % pk) + else: + # Accumulate valid stored permission pks + permissions_result.append(permission.pk) + + instance = AccessControlList(**attrs) + + try: + instance.full_clean() + except DjangoValidationError as exception: + raise ValidationError(exception) + + # Add a queryset of valid stored permissions so that they get added + # after the ACL gets created. + attrs['permissions'] = StoredPermission.objects.filter( + pk__in=permissions_result + ) + return attrs diff --git a/mayan/apps/acls/tests/test_api.py b/mayan/apps/acls/tests/test_api.py new file mode 100644 index 0000000000..244fbc54d7 --- /dev/null +++ b/mayan/apps/acls/tests/test_api.py @@ -0,0 +1,254 @@ +from __future__ import absolute_import, unicode_literals + +from django.contrib.auth import get_user_model +from django.contrib.contenttypes.models import ContentType +from django.core.urlresolvers import reverse +from django.test import override_settings + +from rest_framework.test import APITestCase + +from documents.models import DocumentType +from documents.permissions import permission_document_view +from documents.tests.literals import ( + TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +) +from permissions.classes import Permission +from permissions.models import Role +from permissions.tests.literals import TEST_ROLE_LABEL +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import AccessControlList +from ..permissions import permission_acl_view + + +@override_settings(OCR_AUTO_OCR=False) +class ACLAPITestCase(APITestCase): + def setUp(self): + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + self.role = Role.objects.create(label=TEST_ROLE_LABEL) + + self.document_content_type = ContentType.objects.get_for_model( + self.document + ) + Permission.invalidate_cache() + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + + def _create_acl(self): + self.acl = AccessControlList.objects.create( + content_object=self.document, + role=self.role + ) + + self.acl.permissions.add(permission_document_view.stored_permission) + + def test_object_acl_list_view(self): + self._create_acl() + + response = self.client.get( + reverse( + 'rest_api:accesscontrollist-list', + args=( + self.document_content_type.app_label, + self.document_content_type.model, + self.document.pk + ) + ) + ) + + self.assertEqual( + response.data['results'][0]['content_type']['app_label'], + self.document_content_type.app_label + ) + self.assertEqual( + response.data['results'][0]['role']['label'], TEST_ROLE_LABEL + ) + + def test_object_acl_delete_view(self): + self._create_acl() + + response = self.client.delete( + reverse( + 'rest_api:accesscontrollist-detail', + args=( + self.document_content_type.app_label, + self.document_content_type.model, + self.document.pk, self.acl.pk + ) + ) + ) + + self.assertEqual(response.status_code, 204) + self.assertEqual(AccessControlList.objects.count(), 0) + + def test_object_acl_detail_view(self): + self._create_acl() + + response = self.client.get( + reverse( + 'rest_api:accesscontrollist-detail', + args=( + self.document_content_type.app_label, + self.document_content_type.model, + self.document.pk, self.acl.pk + ) + ) + ) + self.assertEqual( + response.data['content_type']['app_label'], + self.document_content_type.app_label + ) + self.assertEqual( + response.data['role']['label'], TEST_ROLE_LABEL + ) + + def test_object_acl_permission_delete_view(self): + self._create_acl() + permission = self.acl.permissions.first() + + response = self.client.delete( + reverse( + 'rest_api:accesscontrollist-permission-detail', + args=( + self.document_content_type.app_label, + self.document_content_type.model, + self.document.pk, self.acl.pk, + permission.pk + ) + ) + ) + self.assertEqual(response.status_code, 204) + self.assertEqual(self.acl.permissions.count(), 0) + + def test_object_acl_permission_detail_view(self): + self._create_acl() + permission = self.acl.permissions.first() + + response = self.client.get( + reverse( + 'rest_api:accesscontrollist-permission-detail', + args=( + self.document_content_type.app_label, + self.document_content_type.model, + self.document.pk, self.acl.pk, + permission.pk + ) + ) + ) + + self.assertEqual( + response.data['pk'], permission_document_view.pk + ) + + def test_object_acl_permission_list_view(self): + self._create_acl() + + response = self.client.get( + reverse( + 'rest_api:accesscontrollist-permission-list', + args=( + self.document_content_type.app_label, + self.document_content_type.model, + self.document.pk, self.acl.pk + ) + ) + ) + + self.assertEqual( + response.data['results'][0]['pk'], + permission_document_view.pk + ) + + def test_object_acl_permission_list_post_view(self): + self._create_acl() + + response = self.client.post( + reverse( + 'rest_api:accesscontrollist-permission-list', + args=( + self.document_content_type.app_label, + self.document_content_type.model, + self.document.pk, self.acl.pk + ) + ), data={'permission_pk': permission_acl_view.pk} + ) + + self.assertEqual(response.status_code, 201) + self.assertQuerysetEqual( + ordered=False, qs=self.acl.permissions.all(), values=( + repr(permission_document_view.stored_permission), + repr(permission_acl_view.stored_permission) + ) + ) + + def test_object_acl_post_no_permissions_added_view(self): + response = self.client.post( + reverse( + 'rest_api:accesscontrollist-list', + args=( + self.document_content_type.app_label, + self.document_content_type.model, + self.document.pk + ) + ), data={'role_pk': self.role.pk} + ) + + self.assertEqual(response.status_code, 201) + self.assertEqual( + self.document.acls.first().role, self.role + ) + self.assertEqual( + self.document.acls.first().content_object, self.document + ) + self.assertEqual( + self.document.acls.first().permissions.count(), 0 + ) + + def test_object_acl_post_with_permissions_added_view(self): + response = self.client.post( + reverse( + 'rest_api:accesscontrollist-list', + args=( + self.document_content_type.app_label, + self.document_content_type.model, + self.document.pk + ) + ), data={ + 'role_pk': self.role.pk, + 'permissions_pk_list': permission_acl_view.pk + + } + ) + + self.assertEqual(response.status_code, 201) + self.assertEqual( + self.document.acls.first().content_object, self.document + ) + self.assertEqual( + self.document.acls.first().role, self.role + ) + self.assertEqual( + self.document.acls.first().permissions.first(), + permission_acl_view.stored_permission + ) diff --git a/mayan/apps/acls/urls.py b/mayan/apps/acls/urls.py index 1816a04169..325dccb67a 100644 --- a/mayan/apps/acls/urls.py +++ b/mayan/apps/acls/urls.py @@ -2,6 +2,10 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import ( + APIObjectACLListView, APIObjectACLPermissionListView, + APIObjectACLPermissionView, APIObjectACLView +) from .views import ( ACLCreateView, ACLDeleteView, ACLListView, ACLPermissionsView ) @@ -21,3 +25,22 @@ urlpatterns = [ name='acl_permissions' ), ] + +api_urls = [ + url( + r'^object/(?P[-\w]+)/(?P[-\w]+)/(?P\d+)/acls/$', + APIObjectACLListView.as_view(), name='accesscontrollist-list' + ), + url( + r'^object/(?P[-\w]+)/(?P[-\w]+)/(?P\d+)/acls/(?P\d+)/$', + APIObjectACLView.as_view(), name='accesscontrollist-detail' + ), + url( + r'^object/(?P[-\w]+)/(?P[-\w]+)/(?P\d+)/acls/(?P\d+)/permissions/$', + APIObjectACLPermissionListView.as_view(), name='accesscontrollist-permission-list' + ), + url( + r'^object/(?P[-\w]+)/(?P[-\w]+)/(?P\d+)/acls/(?P\d+)/permissions/(?P\d+)/$', + APIObjectACLPermissionView.as_view(), name='accesscontrollist-permission-detail' + ), +] diff --git a/mayan/apps/acls/views.py b/mayan/apps/acls/views.py index cacbca3e17..4e6747b432 100644 --- a/mayan/apps/acls/views.py +++ b/mayan/apps/acls/views.py @@ -140,7 +140,8 @@ class ACLListView(SingleObjectListView): def get_queryset(self): return AccessControlList.objects.filter( - content_type=self.object_content_type, object_id=self.content_object.pk + content_type=self.object_content_type, + object_id=self.content_object.pk ) diff --git a/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.mo index 624326d04b..bd541a293f 100644 Binary files a/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.po index 97f92e9588..71ec9539c6 100644 --- a/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/ar/LC_MESSAGES/django.po @@ -1,27 +1,29 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "صلاحيات غير كافية" @@ -29,7 +31,7 @@ msgstr "صلاحيات غير كافية" msgid "You don't have enough permissions for this operation." msgstr "ليس لديك صلاحيات كافية لهذه العملية." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "لم يتم العثور على الصفحة" @@ -37,14 +39,14 @@ msgstr "لم يتم العثور على الصفحة" msgid "Sorry, but the requested page could not be found." msgstr "عفواً، لا يمكن العثور على الصفحة المطلوبة." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +55,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +68,47 @@ msgstr "الاصدار" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "مجهول" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "تفاصيل المستخدم" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "الإجراءات" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +126,10 @@ msgstr "" msgid "Create" msgstr "انشاء" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +144,39 @@ msgstr "تأكيد حذف" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "نعم" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "لا" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "مطلوب" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "حفظ" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "ارسال" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "إلغاء" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +193,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "معرف" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "البحث" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Login" @@ -227,7 +237,9 @@ msgstr "First time login" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "You have just finished installing Mayan EDMS, congratulations!" +msgstr "" +"You have just finished installing Mayan EDMS, " +"congratulations!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -252,9 +264,11 @@ msgstr "Password: %(password)s" 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 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.mo index 34c948f58e..d3eea4becf 100644 Binary files a/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.po index 63259b1e47..79261bba06 100644 --- a/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/bg/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "" @@ -29,7 +30,7 @@ msgstr "" msgid "You don't have enough permissions for this operation." msgstr "" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Страницата не е намерена" @@ -37,14 +38,14 @@ msgstr "Страницата не е намерена" msgid "Sorry, but the requested page could not be found." msgstr "" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +67,47 @@ msgstr "Версия" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Анонимен" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Данни за потребител" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Действия" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "" msgid "Create" msgstr "Създаване" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "Потвърдете изтриване" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Да" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Не" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Запазване" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Подаване" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Отказ" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Идентификатор" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Търсене" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Влез" @@ -227,7 +236,8 @@ msgstr "Логване за първи път" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Вие приключихте инсталирането на Mayan EDMS, поздравления!" +msgstr "" +"Вие приключихте инсталирането на Mayan EDMS, поздравления!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -252,9 +262,11 @@ msgstr "Парола: %(password)s" 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 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.mo index 8c10fab49a..6dced26e8a 100644 Binary files a/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.po index 7121197157..39fc62870a 100644 --- a/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/bs_BA/LC_MESSAGES/django.po @@ -1,27 +1,29 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Nedovoljno dozvola" @@ -29,7 +31,7 @@ msgstr "Nedovoljno dozvola" msgid "You don't have enough permissions for this operation." msgstr "Nemate odgovarajuca prava za ovu operaciju." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Stranica nije pronađena" @@ -37,14 +39,14 @@ msgstr "Stranica nije pronađena" msgid "Sorry, but the requested page could not be found." msgstr "Žao nam je, ali tražena stranica ne može biti pronađena." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +55,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +68,47 @@ msgstr "Verzija" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonimni" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Detalji o korisniku" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Akcije" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +126,10 @@ msgstr "" msgid "Create" msgstr "Kreirati" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +144,39 @@ msgstr "Potvrditi brisanje" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Da" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Ne" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "potrebno" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Sačuvati" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Podnijeti" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Otkazati" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +193,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identifikator" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Pretraga" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Prijava" @@ -227,7 +237,8 @@ msgstr "Prijava - prvi put" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Upravo ste završili instalaciju Mayan EDMS, čestitamo!" +msgstr "" +"Upravo ste završili instalaciju Mayan EDMS, čestitamo!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -252,9 +263,11 @@ msgstr "Pasvord: %(password)s" 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 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/da/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/da/LC_MESSAGES/django.mo index 177a1872ad..1b6283487c 100644 Binary files a/mayan/apps/appearance/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/da/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/da/LC_MESSAGES/django.po index 96cb58ceb2..6b7a828a35 100644 --- a/mayan/apps/appearance/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/da/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:48-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "" @@ -29,7 +30,7 @@ msgstr "" msgid "You don't have enough permissions for this operation." msgstr "" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "" @@ -37,14 +38,14 @@ msgstr "" msgid "Sorry, but the requested page could not be found." msgstr "" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +67,47 @@ msgstr "Version" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonym" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Bruger detaljer" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Handlinger" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "" msgid "Create" msgstr "" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Log ind" @@ -254,7 +263,7 @@ msgid "" "message." msgstr "" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.mo index 8e2fa89b13..548e8afb35 100644 Binary files a/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.po index 3af714c734..2e159f7bca 100644 --- a/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/de_DE/LC_MESSAGES/django.po @@ -1,28 +1,30 @@ # 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 , 2015 +# Jesaja Everling , 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 22:57+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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 +#: apps.py:12 msgid "Appearance" msgstr "Erscheinungsbild" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Unzureichende Berechtigungen" @@ -30,7 +32,7 @@ msgstr "Unzureichende Berechtigungen" msgid "You don't have enough permissions for this operation." msgstr "Sie haben unzureichende Berechtigungen für diesen Vorgang." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Seite nicht gefunden" @@ -38,23 +40,27 @@ msgstr "Seite nicht gefunden" msgid "Sorry, but the requested page could not be found." msgstr "Die angeforderte Seite konnte leider nicht gefunden werden" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Über" @@ -67,47 +73,47 @@ msgstr "Version" msgid "Build number: %(build_number)s" msgstr "Build Nummer: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Veröffentlicht unter der Apache 2.0 Lizenz" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Copyright © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Navigation ein-/ausschalten" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "Profil" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonymer Benutzer" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Benutzerdetails" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Erfolg" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Information" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Warnung" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Fehler" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Aktionen" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Ausklappmenü ein-/ausschalten" @@ -125,6 +131,10 @@ msgstr "%(object)s bearbeiten" msgid "Create" msgstr "Erstellen" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +149,39 @@ msgstr "Löschen bestätigen" msgid "Delete: %(object)s?" msgstr "%(object)s löschen?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Ja" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Nein" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "erforderlich" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Speichern" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Absenden" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Abbrechen" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Kein Ergebnis" @@ -180,7 +190,9 @@ 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 @@ -188,34 +200,38 @@ msgstr "Gesamt (%(start)s - %(end)s von %(total)s) (Seite %(page_number)s von %( msgid "Total: %(total)s" msgstr "Gesamt: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Bezeichner" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Start" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Erste Schritte" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Bevor Mayan EDMS voll genutzt werden kann, muss folgendes passieren:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Begriffe durch Leerzeichen getrennt" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Suche" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Erweitert" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Login" @@ -228,7 +244,9 @@ msgstr "Erstanmeldung" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Herzlichen Glückwunsch! Sie haben die Installation von Mayan EDMS erfolgreich abgeschlossen. " +msgstr "" +"Herzlichen Glückwunsch! Sie haben die Installation von Mayan EDMS erfolgreich abgeschlossen. " #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +271,11 @@ msgstr "Passwort: %(password)s" 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 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Anmelden" diff --git a/mayan/apps/appearance/locale/en/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/en/LC_MESSAGES/django.mo index 21eaaf8a16..6584aef737 100644 Binary files a/mayan/apps/appearance/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/en/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/en/LC_MESSAGES/django.po index 48ee2e6dd8..5e7016ccee 100644 --- a/mayan/apps/appearance/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,11 +17,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "" @@ -29,7 +29,7 @@ msgstr "" msgid "You don't have enough permissions for this operation." msgstr "" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "" @@ -37,7 +37,7 @@ msgstr "" msgid "Sorry, but the requested page could not be found." msgstr "" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "" @@ -53,7 +53,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +66,47 @@ msgstr "" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +124,10 @@ msgstr "" msgid "Create" msgstr "" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +142,39 @@ msgstr "" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +191,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "" @@ -254,7 +262,7 @@ msgid "" "message." msgstr "" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/es/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/es/LC_MESSAGES/django.mo index 4a86c3f7e3..93c5a969a7 100644 Binary files a/mayan/apps/appearance/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/es/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/es/LC_MESSAGES/django.po index c98b7266bd..168d72f890 100644 --- a/mayan/apps/appearance/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/es/LC_MESSAGES/django.po @@ -3,13 +3,13 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:41+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+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" @@ -18,11 +18,11 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Apariencia" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Permisos insuficientes" @@ -30,7 +30,7 @@ msgstr "Permisos insuficientes" msgid "You don't have enough permissions for this operation." msgstr "No tienes suficientes permisos para esta operación" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Página no encontrada" @@ -38,7 +38,7 @@ msgstr "Página no encontrada" msgid "Sorry, but the requested page could not be found." msgstr "Lo sentimos, la página solicitada no pudo ser encontrada" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Error de servidor" @@ -52,9 +52,9 @@ msgstr "Ha habido un error. Se ha informado a los administradores del sitio vía msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "" +msgstr "Si necesita ayuda, puede hacer referencia a este error mediante el siguiente identificador:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Sobre" @@ -67,47 +67,47 @@ msgstr "Versión" msgid "Build number: %(build_number)s" msgstr "Número de compilación: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Liberado bajo la licencia Apache 2.0 License" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Todos los derechos reservados © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Activar/Desactivar navegación" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "Perfil" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anónimo" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Detalles del usuario" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Exitoso" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Información" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Advertencia" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Error" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Acciones" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Alternar desplegable" @@ -125,6 +125,10 @@ msgstr "Editar: %(object)s" msgid "Create" msgstr "Crear" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "Ver detalles" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +143,39 @@ msgstr "Confirmar eliminación" msgid "Delete: %(object)s?" msgstr "¿Borrar: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Sí" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "No" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "requerido" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Guardar" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Enviar" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Cancelar" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Ningún resultado" @@ -188,34 +192,38 @@ msgstr "Total (%(start)s - %(end)s de %(total)s) (Página %(page_number)s de %(t msgid "Total: %(total)s" msgstr "Total: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identificador" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "inicio" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "Tablero" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Iniciando" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Antes de comenzar a utilizar Mayan EDMS usted necesita lo siguiente:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Términos separados por espacios" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "Buscar páginas " -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Búsqueda" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Avanzada" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "Buscar documentos" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Iniciar sesión" @@ -255,7 +263,7 @@ msgid "" "message." msgstr "Asegúrese de cambiar su contraseña para aumentar la seguridad y para desactivar este mensaje" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Entrar" diff --git a/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.mo index db920b01d7..475eac7928 100644 Binary files a/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.po index 2d6241282f..7f7974322d 100644 --- a/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/fa/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "مجوز ناکافی" @@ -29,7 +30,7 @@ msgstr "مجوز ناکافی" msgid "You don't have enough permissions for this operation." msgstr "مجوزهای لازم برای انجام این عملیات را ندارید." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "صفحه پیدا نشد." @@ -37,14 +38,14 @@ msgstr "صفحه پیدا نشد." msgid "Sorry, but the requested page could not be found." msgstr "متاسفانه صفحه درخواستی پیدا نشد." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "درباره" @@ -66,47 +67,47 @@ msgstr "نسخه" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "تحت لیسانس Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "کپی رایت و کپی" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "ناشناس" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "جزئیات کاربر" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "عملیات" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "ویرایش : %(object)s" msgid "Create" msgstr "ایجاد" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "تائید حذف" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "بلی" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "خیر" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "الزامی" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "ذخیره" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "ارسال" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "لغو" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "بی جواب و یا بی جواب" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "مشخصه Identifier" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "خانه" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "عبارات جداکننده فضا" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "جستجو" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "لاگین" @@ -227,7 +236,9 @@ msgstr "دفعه اول لاگین " msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "You have just finished installing Mayan EDMS, congratulations!" +msgstr "" +"You have just finished installing Mayan EDMS, " +"congratulations!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -254,7 +265,7 @@ msgid "" "message." msgstr "برای امنیت بیشتر پسورد خود را تغییر دهید" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.mo index 529f22eb44..d19eb5f2ae 100644 Binary files a/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.po index 229486e259..ef4c090029 100644 --- a/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/fr/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Thierry Schott , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "Apparence" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Droits insuffisants" @@ -30,7 +31,7 @@ msgstr "Droits insuffisants" msgid "You don't have enough permissions for this operation." msgstr "Vous n'avez pas les permissions requises pour cette opération." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Page non trouvée" @@ -38,23 +39,28 @@ msgstr "Page non trouvée" msgid "Sorry, but the requested page could not be found." msgstr "Désolé, la page demandée n'a pu être trouvée." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Erreur du serveur" #: 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 "Une erreur vient de se produire. Elle a été signalée aux administrateurs du site par courriel et devrait être résolue rapidement. Merci de votre 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 "" +"Une erreur vient de se produire. Elle a été signalée aux administrateurs du " +"site par courriel et devrait être résolue rapidement. Merci de votre " +"patience." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Si vous avez besoin d'assistance, vous pouvez faire référence à cette erreur grâce à l'identifiant suivant :" +msgstr "" +"Si vous avez besoin d'assistance, vous pouvez faire référence à cette erreur " +"grâce à l'identifiant suivant :" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "A propos" @@ -67,47 +73,47 @@ msgstr "Version" msgid "Build number: %(build_number)s" msgstr "Numéro de build : %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Publié sous licence Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Copyright © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Activer la navigation" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonyme" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Détails de l'utilisateur" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Succès de l'opération" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Information" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Alerte" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Erreur" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Actions" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Activer la liste déroulante" @@ -125,6 +131,10 @@ msgstr "Modifie r: %(object)s" msgid "Create" msgstr "Créer" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +149,39 @@ msgstr "Confirmer la suppression" msgid "Delete: %(object)s?" msgstr "Supprimer : %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Oui" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Non" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "Requis" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Enregistrer" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Soumettre" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Annuler" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Pas de résultats" @@ -180,7 +190,9 @@ msgstr "Pas de résultats" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Total (%(start)s - %(end)s surof %(total)s) (Page %(page_number)s sur %(total_pages)s)" +msgstr "" +"Total (%(start)s - %(end)s surof %(total)s) (Page %(page_number)s sur " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +200,40 @@ msgstr "Total (%(start)s - %(end)s surof %(total)s) (Page %(page_number)s sur %( msgid "Total: %(total)s" msgstr "Total : %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identifiant" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Accueil" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Démarrage" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" -msgstr "Avant d'utiliser pleinement Mayan EDMS, les éléments suivants sont nécessaires :" +msgstr "" +"Avant d'utiliser pleinement Mayan EDMS, les éléments suivants sont " +"nécessaires :" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Termes séparés par des espaces" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Recherche" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Avancé" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Connexion" @@ -228,11 +246,14 @@ msgstr "Première connexion" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Vous venez de finaliser l'installation de Mayan EDMS, félicitations!" +msgstr "" +"Vous venez de finaliser l'installation de Mayan EDMS, " +"félicitations!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" -msgstr "Connectez-vous en utilisant les informations d'identification suivantes :" +msgstr "" +"Connectez-vous en utilisant les informations d'identification suivantes :" #: templates/appearance/login.html:26 #, python-format @@ -253,9 +274,11 @@ msgstr "Mot de passe : %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Assurez-vous de modifier votre mot de passe pour accroître la sécurité et pour ne plus avoir ce message." +msgstr "" +"Assurez-vous de modifier votre mot de passe pour accroître la sécurité et " +"pour ne plus avoir ce message." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Connexion" diff --git a/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.mo index 7a32ce29ec..459ab876b6 100644 Binary files a/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.po index 06fbd23627..4f18cbac72 100644 --- a/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/hu/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "" @@ -29,7 +30,7 @@ msgstr "" msgid "You don't have enough permissions for this operation." msgstr "" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "" @@ -37,14 +38,14 @@ msgstr "" msgid "Sorry, but the requested page could not be found." msgstr "" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +67,47 @@ msgstr "Verzió" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "névtelen felhasználó" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "A felhasználó adatai" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Műveletek" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "" msgid "Create" msgstr "" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Keresés" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Bejelentkezés" @@ -254,7 +263,7 @@ msgid "" "message." msgstr "" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/id/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/id/LC_MESSAGES/django.mo index 75374861db..78b6e9750c 100644 Binary files a/mayan/apps/appearance/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/id/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/id/LC_MESSAGES/django.po index 3c79b46fc8..e1a493f00e 100644 --- a/mayan/apps/appearance/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/id/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "" @@ -29,7 +30,7 @@ msgstr "" msgid "You don't have enough permissions for this operation." msgstr "" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "" @@ -37,14 +38,14 @@ msgstr "" msgid "Sorry, but the requested page could not be found." msgstr "" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Tentang" @@ -66,47 +67,47 @@ msgstr "" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Profil lengkap pengguna" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "" msgid "Create" msgstr "" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "" @@ -254,7 +263,7 @@ msgid "" "message." msgstr "" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/it/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/it/LC_MESSAGES/django.mo index 236150fbbc..480039d941 100644 Binary files a/mayan/apps/appearance/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/it/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/it/LC_MESSAGES/django.po index 52c931c5b5..116d3b0482 100644 --- a/mayan/apps/appearance/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/it/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-09-24 10:35+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "Aspetto" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Permessi insufficienti" @@ -30,7 +31,7 @@ msgstr "Permessi insufficienti" msgid "You don't have enough permissions for this operation." msgstr "Non hai i permessi per effettuare questa operazione." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Pagina non trovata" @@ -38,23 +39,27 @@ msgstr "Pagina non trovata" msgid "Sorry, but the requested page could not be found." msgstr "Scusa ma la pagina richiesta non è disponibile" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Errore del server" #: 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 "C'è stato un errore. Questo è stato riportato all'amministratore del sito via e-mail e dovrebbe essere risolto presto. Grazie per la pazienza.." +"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 "" +"C'è stato un errore. Questo è stato riportato all'amministratore del sito " +"via e-mail e dovrebbe essere risolto presto. Grazie per la pazienza.." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Se hai bisogno di assistenza, ti puoi riferire a questo errore con questo numero:" +msgstr "" +"Se hai bisogno di assistenza, ti puoi riferire a questo errore con questo " +"numero:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Informazioni" @@ -67,47 +72,47 @@ msgstr "Versione" msgid "Build number: %(build_number)s" msgstr "Build numbero: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Rilasciato sotto la licenza Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Copyright © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Cambia navigazione" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonimo" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Dettagli utente" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Riuscito" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informazione" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Attenzione" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Errore" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Azioni " -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Apri dropdown" @@ -125,6 +130,10 @@ msgstr "Modifica: %(object)s" msgid "Create" msgstr "Crea" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +148,39 @@ msgstr "Conferma la cancellazione" msgid "Delete: %(object)s?" msgstr "Cancella: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Si" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "No" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "richiesto" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Salva" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Conferma" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Annullare" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Nessun risultato" @@ -180,7 +189,9 @@ msgstr "Nessun risultato" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Totale (%(start)s - %(end)s di %(total)s) (Pagina %(page_number)s di %(total_pages)s)" +msgstr "" +"Totale (%(start)s - %(end)s di %(total)s) (Pagina %(page_number)s di " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +199,38 @@ msgstr "Totale (%(start)s - %(end)s di %(total)s) (Pagina %(page_number)s di %(t msgid "Total: %(total)s" msgstr "Totale: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identificatore" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Iniziare" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Prima di usare completamente Mayan EDMS hai bisogno di:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Parole separate da spazi" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Cerca" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Avanzato" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Login" @@ -253,9 +268,11 @@ msgstr "Password: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Ricordati di cambiare la password per aumentare la sicurezza e disabilitare questo messaggio." +msgstr "" +"Ricordati di cambiare la password per aumentare la sicurezza e disabilitare " +"questo messaggio." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Accedi" diff --git a/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.mo index aa24660152..1e08c8d573 100644 Binary files a/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.po index 273d18e733..3e71a920cb 100644 --- a/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/nl_NL/LC_MESSAGES/django.po @@ -1,28 +1,30 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: +# Johan Braeken, 2017 # Justin Albstbstmeijer , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Justin Albstbstmeijer \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "Uiterlijk" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Permissies zijn ontoereikend" @@ -30,7 +32,7 @@ msgstr "Permissies zijn ontoereikend" msgid "You don't have enough permissions for this operation." msgstr "U heeft niet genoeg permissies voor deze operatie." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Pagina niet gevonden" @@ -38,23 +40,28 @@ msgstr "Pagina niet gevonden" msgid "Sorry, but the requested page could not be found." msgstr "Excuses, maar de opgevraagde pagina kan niet worden gevonden." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Server fout" #: 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 "Er heeft een fout plaatsgevonden. Dit is gerapporteerd via email aan de beheerders van deze site en zou snel verholpen moeten worden. Bedankt voor uw 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 "" +"Er heeft een fout plaatsgevonden. Dit is gerapporteerd via email aan de " +"beheerders van deze site en zou snel verholpen moeten worden. Bedankt voor " +"uw geduld." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Als u hulp nodig heeft, kunt u naar deze fout refereren via de volgende identifier:" +msgstr "" +"Als u hulp nodig heeft, kunt u naar deze fout refereren via de volgende " +"identifier:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Informatie" @@ -67,47 +74,47 @@ msgstr "Versie" msgid "Build number: %(build_number)s" msgstr "Build nummer: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Vrijgegeven onder de Apache 2.0 licentie" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Copyright © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Toggle navigatie" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anoniem" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "gebruiker gegevens" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Succes" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informatie" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Waarschuwing" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Fout" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Acties" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Toggle Dropdown" @@ -125,6 +132,10 @@ msgstr "Aanpassen: %(object)s" msgid "Create" msgstr "Maak aan" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +150,39 @@ msgstr "Bevestig verwijdering" msgid "Delete: %(object)s?" msgstr "Verwijder: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Ja" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Nee" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "Verplicht" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Opslaan" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Verstuur" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Onderbreek" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Geen resultaten" @@ -180,7 +191,9 @@ msgstr "Geen resultaten" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Totaal (%(start)s - %(end)s van %(total)s) (Pagina %(page_number)s van %(total_pages)s)" +msgstr "" +"Totaal (%(start)s - %(end)s van %(total)s) (Pagina %(page_number)s van " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +201,40 @@ msgstr "Totaal (%(start)s - %(end)s van %(total)s) (Pagina %(page_number)s van % msgid "Total: %(total)s" msgstr "Totaal: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identifier" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Thuis" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Beginnen" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" -msgstr "Voordat u volledig gebruik kunt maken van Mayan EDMS heeft u het volgende nodig:" +msgstr "" +"Voordat u volledig gebruik kunt maken van Mayan EDMS heeft u het volgende " +"nodig:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Door spatie onderbroken voorwaarden" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Zoek" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Geavanceerd" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Aanmelden" @@ -228,7 +247,8 @@ msgstr "Eerste aanmelding" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "U heeft de installatie volbracht Mayan EDMS, gefeliciteerd!" +msgstr "" +"U heeft de installatie volbracht Mayan EDMS, gefeliciteerd!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +273,11 @@ msgstr "Wachtwoord: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Pas het wachtwoord aan om de beveiliging te verbeteren en om deze melding uit te schakelen." +msgstr "" +"Pas het wachtwoord aan om de beveiliging te verbeteren en om deze melding " +"uit te schakelen." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Meld u aan" diff --git a/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.mo index 692170a673..3f4556b61a 100644 Binary files a/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.po index cd6198e81a..c9065aa5cc 100644 --- a/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/pl/LC_MESSAGES/django.po @@ -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: # Wojtek Warczakowski , 2016 # Wojtek Warczakowski , 2016 @@ -9,21 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "Wygląd" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Niewystarczające uprawnienia" @@ -31,7 +34,7 @@ msgstr "Niewystarczające uprawnienia" msgid "You don't have enough permissions for this operation." msgstr "Nie masz wystarczających uprawnień do tej operacji." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Nie znaleziono strony" @@ -39,23 +42,27 @@ msgstr "Nie znaleziono strony" msgid "Sorry, but the requested page could not be found." msgstr "Przepraszamy, ale żądana strona nie została znaleziona." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Błąd serwera" #: 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 "Wystąpił błąd. Wiadomość o tym została przekazana do administratorów i wkrótce problem zostanie rozwiązany. Dziękujemy za cierpliwość." +"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 "" +"Wystąpił błąd. Wiadomość o tym została przekazana do administratorów i " +"wkrótce problem zostanie rozwiązany. Dziękujemy za cierpliwość." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Jeśli potrzebujesz pomocy, możesz odwołać się do tego błędu poprzez następujący identyfikator:" +msgstr "" +"Jeśli potrzebujesz pomocy, możesz odwołać się do tego błędu poprzez " +"następujący identyfikator:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Informacje" @@ -68,47 +75,47 @@ msgstr "Wersja" msgid "Build number: %(build_number)s" msgstr "Numer wersji: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Wydano na licencji Apache 2.0 License" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Prawa autorskie © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Rozwiń nawigację" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonimowy" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Dane użytkownika" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Sukces" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informacja" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Ostrzeżenie" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Błąd" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Akcje" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Rozwiń listę" @@ -126,6 +133,10 @@ msgstr "Edytuj: %(object)s" msgid "Create" msgstr "Utwórz" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -140,39 +151,39 @@ msgstr "Potwierdź usunięcie" msgid "Delete: %(object)s?" msgstr "Usunąć: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Tak" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Nie" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "wymagane" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Zapisz" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Wykonaj" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Anuluj" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Brak wyników" @@ -181,7 +192,9 @@ msgstr "Brak wyników" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Razem (%(start)s - %(end)s z %(total)s) (Strona %(page_number)s z %(total_pages)s)" +msgstr "" +"Razem (%(start)s - %(end)s z %(total)s) (Strona %(page_number)s z " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -189,34 +202,38 @@ msgstr "Razem (%(start)s - %(end)s z %(total)s) (Strona %(page_number)s z %(tota msgid "Total: %(total)s" msgstr "Razem: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identyfikator" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Strona główna" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Rozpoczynamy" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Zanim w pełni zaczniesz używać Mayan EDMS musisz:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Słowa rozdzielone spacjami" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Szukaj" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Zaawansowane" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Logowanie" @@ -254,9 +271,11 @@ msgstr "Hasło: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Aby poprawić bezpieczeństwo i usunąć ten komunikat, nie zapomnij zmienić hasła." +msgstr "" +"Aby poprawić bezpieczeństwo i usunąć ten komunikat, nie zapomnij zmienić " +"hasła." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Zaloguj" diff --git a/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.mo index ae5be274c1..4fbbed9e0e 100644 Binary files a/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.po index f78cdfeeae..2c4f1e4c6d 100644 --- a/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/pt/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Permissões insuficientes" @@ -29,7 +30,7 @@ msgstr "Permissões insuficientes" msgid "You don't have enough permissions for this operation." msgstr "Não possui permissões suficientes para esta operação." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Página não encontrada" @@ -37,14 +38,14 @@ msgstr "Página não encontrada" msgid "Sorry, but the requested page could not be found." msgstr "Desculpe, mas a página solicitada não foi encontrada." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +67,47 @@ msgstr "Versão" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anónimo" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Detalhes do utilizador" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Ações" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "Editar: %(object)s" msgid "Create" msgstr "Criar" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "Confirmar eliminação" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Sim" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Não" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "obrigatório" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Guardar" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Submeter" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Cancelar" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Sem resultados" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identificador" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "início" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Procurar" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Iniciar a sessão" @@ -252,9 +261,11 @@ msgstr "Senha: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Certifique-se de que altera a senha para aumentar a segurança e que desativa esta mensagem." +msgstr "" +"Certifique-se de que altera a senha para aumentar a segurança e que desativa " +"esta mensagem." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.mo index 000377ce15..3d8418ddbd 100644 Binary files a/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.po index 8255aa7b29..200a7d9dae 100644 --- a/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/pt_BR/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 22:36+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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" "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:11 +#: apps.py:12 msgid "Appearance" msgstr "Aparência" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Permissão insuficiente" @@ -30,7 +31,7 @@ msgstr "Permissão insuficiente" msgid "You don't have enough permissions for this operation." msgstr "Você não tem permissões suficientes para essa operação." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Página não encontrada" @@ -38,23 +39,27 @@ msgstr "Página não encontrada" msgid "Sorry, but the requested page could not be found." msgstr "Desculpe, mas a página solicitada não pôde ser encontrada." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" msgstr "Erro de servidor" #: 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 "Houve um erro. Os administradores da página foram informados por e-mail e deverão corrigir em breve. Obrigado pela paciência." +"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 "" +"Houve um erro. Os administradores da página foram informados por e-mail e " +"deverão corrigir em breve. Obrigado pela paciência." #: templates/500.html:14 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Se você precisar de ajuda, você pode fazer referência a este erro através do seguinte identificador:" +msgstr "" +"Se você precisar de ajuda, você pode fazer referência a este erro através do " +"seguinte identificador:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Sobre" @@ -67,47 +72,47 @@ msgstr "Versão" msgid "Build number: %(build_number)s" msgstr "Número de compilação: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Lançado sob a licença Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "Todos os direitos reservados © 2011-2015 Roberto Rosario." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Ativar/desativar navegação" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anônimo" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Detalhes do usuário" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Sucesso" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informação" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Advertência" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Erro" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Ações" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Mostrar/esconder menu" @@ -125,6 +130,10 @@ msgstr "Editar: %(object)s" msgid "Create" msgstr "Criar" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +148,39 @@ msgstr "Confirmar Exclusão" msgid "Delete: %(object)s?" msgstr "Excluir: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Sim" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Não" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "requerido" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Salvar" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Enviar" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Cancelar" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Nenhum resultado" @@ -180,7 +189,9 @@ msgstr "Nenhum resultado" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Total (%(start)s - %(end)s de %(total)s) (Página %(page_number)s de %(total_pages)s)" +msgstr "" +"Total (%(start)s - %(end)s de %(total)s) (Página %(page_number)s de " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +199,38 @@ msgstr "Total (%(start)s - %(end)s de %(total)s) (Página %(page_number)s de %(t msgid "Total: %(total)s" msgstr "Total: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Identificador" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Início" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Iniciando" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "Antes de começar a usar Mayan EDMS você precisa do seguinte:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Termos de espaço separado" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Pesquisa" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Avançada" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Iniciar sessão" @@ -228,7 +243,8 @@ msgstr "Primeiro início de sessão" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Você acaba de terminar de instalar Maia EDMS , parabéns!" +msgstr "" +"Você acaba de terminar de instalar Maia EDMS , parabéns!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +269,11 @@ msgstr "Senha: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Certifique-se de alterar a senha para aumentar a segurança e para desativar esta mensagem." +msgstr "" +"Certifique-se de alterar a senha para aumentar a segurança e para desativar " +"esta mensagem." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Entrar" diff --git a/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.mo index c8b033d399..3e4e1cecea 100644 Binary files a/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.po index da6e701d83..a49e389e5f 100644 --- a/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/ro_RO/LC_MESSAGES/django.po @@ -1,28 +1,30 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Stefaniu Criste , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-04-17 13:14+0000\n" -"Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "permisiuni insuficiente" @@ -30,7 +32,7 @@ msgstr "permisiuni insuficiente" msgid "You don't have enough permissions for this operation." msgstr "Nu aveți permisiuni suficiente pentru această operație." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Pagina nu a fost gasită" @@ -38,14 +40,14 @@ msgstr "Pagina nu a fost gasită" msgid "Sorry, but the requested page could not be found." msgstr "Ne pare rău, dar pagina solicitată nu a putut fi găsit." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -54,7 +56,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Despre" @@ -67,47 +69,47 @@ msgstr "Versiune" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "anonim" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "detalii utilizator" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Succes" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Informație" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Alertă" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Eroare" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Acţiuni" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -125,6 +127,10 @@ msgstr "Modifică %(object)s" msgid "Create" msgstr "Creează" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +145,39 @@ msgstr "Confirmă stergerea" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Da" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Nu" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "necesar" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "salvează" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Trimiteţi" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Anulează" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -188,34 +194,40 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "ID" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Acasă" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Să începem" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" -msgstr "Înainte de a putea utiliza Mayan EDMS în totalitate, trebuie sa faceți următoarele:" +msgstr "" +"Înainte de a putea utiliza Mayan EDMS în totalitate, trebuie sa faceți " +"următoarele:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Căută" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Conectare" @@ -228,7 +240,8 @@ msgstr "Prima autentificare" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Tocmai ați terminat de instalat Mayan EDMS, felicitări!" +msgstr "" +"Tocmai ați terminat de instalat Mayan EDMS, felicitări!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +266,11 @@ msgstr "Parola: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Asigurați-vă că pentru a schimba parola pentru a spori securitatea și pentru a dezactiva acest mesaj." +msgstr "" +"Asigurați-vă că pentru a schimba parola pentru a spori securitatea și pentru " +"a dezactiva acest mesaj." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Înscriere" diff --git a/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.mo index c78354810c..9043ef9ac1 100644 Binary files a/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.po index b3fcb7f110..10ccccc637 100644 --- a/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/ru/LC_MESSAGES/django.po @@ -1,28 +1,31 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-07-14 11:22+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "Внешний вид" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "Недостаточно прав" @@ -30,7 +33,7 @@ msgstr "Недостаточно прав" msgid "You don't have enough permissions for this operation." msgstr "У вас недостаточно прав для этой операции." -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Страница не найдена" @@ -38,23 +41,27 @@ msgstr "Страница не найдена" msgid "Sorry, but the requested page could not be found." msgstr "Извините, но запрашиваемая страница не найдена." -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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." -msgstr "Тут какая-то ошибка. Её нужно сообщить администрации сайта по электронной почте, и она будет исправлена. Спасибо за терпение." +"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 msgid "" "If you need assistance, you may reference this error via the following " "identifier:" -msgstr "Если вам нужна помощь, вы можете сослаться на эту ошибку по следующему идентификатору:" +msgstr "" +"Если вам нужна помощь, вы можете сослаться на эту ошибку по следующему " +"идентификатору:" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "Инфо" @@ -67,47 +74,47 @@ msgstr "Версия" msgid "Build number: %(build_number)s" msgstr "Версия сборки: %(build_number)s" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "Выпущено под лицензией Apache 2.0" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "© 2011-2015 Roberto Rosario, все права защищены." -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "Переключение навигации" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Анонимно" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "сведения о пользователе" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "Успех" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "Информация" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "Предупреждение" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "Ошибка" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Действия" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "Переключение выпадающего списка" @@ -125,6 +132,10 @@ msgstr "Редактировать: %(object)s" msgid "Create" msgstr "Создать" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -139,39 +150,39 @@ msgstr "Подтвердить удаление" msgid "Delete: %(object)s?" msgstr "Удалить: %(object)s?" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "Да" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "Нет" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "требуется" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "Сохранить" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "Подтвердить" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "Отменить" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "Нет результатов" @@ -180,7 +191,9 @@ msgstr "Нет результатов" msgid "" "Total (%(start)s - %(end)s out of %(total)s) (Page %(page_number)s of " "%(total_pages)s)" -msgstr "Всего (%(start)s - %(end)s из %(total)s) (Страница %(page_number)s из %(total_pages)s)" +msgstr "" +"Всего (%(start)s - %(end)s из %(total)s) (Страница %(page_number)s из " +"%(total_pages)s)" #: templates/appearance/generic_list_subtemplate.html:14 #: templates/appearance/generic_list_subtemplate.html:17 @@ -188,34 +201,40 @@ msgstr "Всего (%(start)s - %(end)s из %(total)s) (Страница %(page msgid "Total: %(total)s" msgstr "Всего: %(total)s" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "Идентификатор" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" -msgstr "Начало" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" +msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "Приступая к работе" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" -msgstr "Вам кое-что понадобится, прежде чем вы начнёте полноценно использовать Mayan EDMS:" +msgstr "" +"Вам кое-что понадобится, прежде чем вы начнёте полноценно использовать Mayan " +"EDMS:" -#: templates/appearance/home.html:57 -msgid "Space separated terms" -msgstr "Поисковые запросы через пробел" +#: templates/appearance/home.html:46 +msgid "Search pages" +msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Поиск" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "Дополнительно" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Войти" @@ -228,7 +247,8 @@ msgstr "Первое время входа в систему" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Вы только что закончили установку Mayan EDMS, поздравляем!" +msgstr "" +"Вы только что закончили установку Mayan EDMS, поздравляем!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -253,9 +273,11 @@ msgstr "Пароль: %(password)s" 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 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "Вход" diff --git a/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.mo index 4aeea11ec0..3951a6def8 100644 Binary files a/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.po index bad58f7e75..fab9b692cf 100644 --- a/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/sl_SI/LC_MESSAGES/django.po @@ -1,27 +1,29 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "" @@ -29,7 +31,7 @@ msgstr "" msgid "You don't have enough permissions for this operation." msgstr "" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "" @@ -37,14 +39,14 @@ msgstr "" msgid "Sorry, but the requested page could not be found." msgstr "" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +55,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +68,47 @@ msgstr "" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +126,10 @@ msgstr "" msgid "Create" msgstr "" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +144,39 @@ msgstr "" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +193,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "" @@ -254,7 +264,7 @@ msgid "" "message." msgstr "" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.mo index 6ae170c99b..05cfe4d73f 100644 Binary files a/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.po index 54ea773fe8..58022fb61f 100644 --- a/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/vi_VN/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "" @@ -29,7 +30,7 @@ msgstr "" msgid "You don't have enough permissions for this operation." msgstr "" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "Không tìm thấy trang" @@ -37,14 +38,14 @@ msgstr "Không tìm thấy trang" msgid "Sorry, but the requested page could not be found." msgstr "" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +67,47 @@ msgstr "Phiên bản" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "Anonymous" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "Chi tiết người dùng" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "Các thao tác" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "" msgid "Create" msgstr "Tạo" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "Xác nhận xóa" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "yêu cầu" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "Tìm kiếm" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "Đăng nhập" @@ -227,7 +236,9 @@ msgstr "Đăng nhập lần đầu" msgid "" "You have just finished installing Mayan EDMS, " "congratulations!" -msgstr "Bạn đã cài đặt xong Hệ thống quản lý tài liệu điện tử Mayan EDMS. Xin chúc mừng bạn!" +msgstr "" +"Bạn đã cài đặt xong Hệ thống quản lý tài liệu điện tử Mayan EDMS. Xin chúc mừng bạn!" #: templates/appearance/login.html:25 msgid "Login using the following credentials:" @@ -252,9 +263,11 @@ msgstr "Mật khẩu: %(password)s" msgid "" "Be sure to change the password to increase security and to disable this " "message." -msgstr "Bạn nên thay đổi mật khẩu để tăng tính bảo mật và để không nhìn thấy lời nhắc này nữa." +msgstr "" +"Bạn nên thay đổi mật khẩu để tăng tính bảo mật và để không nhìn thấy lời " +"nhắc này nữa." -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.mo index f1b389e29b..3b99d287aa 100644 Binary files a/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.po index 8a737fffeb..effcb4e648 100644 --- a/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/appearance/locale/zh_CN/LC_MESSAGES/django.po @@ -1,27 +1,28 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:11 +#: apps.py:12 msgid "Appearance" msgstr "" -#: templates/403.html:5 templates/403.html.py:9 +#: templates/403.html:5 templates/403.html:9 msgid "Insufficient permissions" msgstr "权限不足" @@ -29,7 +30,7 @@ msgstr "权限不足" msgid "You don't have enough permissions for this operation." msgstr "你没有足够权限执行当前操作" -#: templates/404.html:5 templates/404.html.py:9 +#: templates/404.html:5 templates/404.html:9 msgid "Page not found" msgstr "页不存在" @@ -37,14 +38,14 @@ msgstr "页不存在" msgid "Sorry, but the requested page could not be found." msgstr "抱歉,请求页不存在。" -#: templates/500.html:5 templates/500.html.py:9 +#: templates/500.html:5 templates/500.html:9 msgid "Server error" 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 @@ -53,7 +54,7 @@ msgid "" "identifier:" msgstr "" -#: templates/appearance/about.html:8 templates/appearance/about.html.py:57 +#: templates/appearance/about.html:8 templates/appearance/about.html:57 msgid "About" msgstr "" @@ -66,47 +67,47 @@ msgstr "版本" msgid "Build number: %(build_number)s" msgstr "" -#: templates/appearance/about.html:88 +#: templates/appearance/about.html:76 msgid "Released under the Apache 2.0 License" msgstr "基于Apache 2.0许可证" -#: templates/appearance/about.html:100 +#: templates/appearance/about.html:88 msgid "Copyright © 2011-2015 Roberto Rosario." msgstr "" -#: templates/appearance/base.html:43 +#: templates/appearance/base.html:56 msgid "Toggle navigation" msgstr "" -#: templates/appearance/base.html:72 +#: templates/appearance/base.html:86 +msgid "Profile" +msgstr "" + +#: templates/appearance/base.html:92 msgid "Anonymous" msgstr "匿名用户" -#: templates/appearance/base.html:74 -msgid "User details" -msgstr "用户信息" - -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Success" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Information" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Warning" msgstr "" -#: templates/appearance/base.html:87 +#: templates/appearance/base.html:126 msgid "Error" msgstr "" -#: templates/appearance/base.html:116 +#: templates/appearance/base.html:155 msgid "Actions" msgstr "操作" -#: templates/appearance/base.html:117 +#: templates/appearance/base.html:157 msgid "Toggle Dropdown" msgstr "" @@ -124,6 +125,10 @@ msgstr "编辑:%(object)s" msgid "Create" msgstr "创建" +#: templates/appearance/dashboard_widget.html:25 +msgid "View details" +msgstr "" + #: templates/appearance/generic_confirm.html:6 #: templates/appearance/generic_confirm.html:13 msgid "Confirm" @@ -138,39 +143,39 @@ msgstr "确认删除" msgid "Delete: %(object)s?" msgstr "" -#: templates/appearance/generic_confirm.html:47 +#: templates/appearance/generic_confirm.html:48 msgid "Yes" msgstr "是" -#: templates/appearance/generic_confirm.html:49 +#: templates/appearance/generic_confirm.html:52 msgid "No" msgstr "否" #: templates/appearance/generic_form_instance.html:39 #: templates/appearance/generic_form_instance.html:46 #: templates/appearance/generic_form_subtemplate.html:51 -#: templates/appearance/generic_multiform_subtemplate.html:43 +#: templates/appearance/generic_multiform_subtemplate.html:42 msgid "required" msgstr "必填" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Save" msgstr "保存" #: templates/appearance/generic_form_subtemplate.html:71 -#: templates/appearance/generic_list_subtemplate.html:31 -#: templates/appearance/generic_multiform_subtemplate.html:65 +#: templates/appearance/generic_list_subtemplate.html:33 +#: templates/appearance/generic_multiform_subtemplate.html:64 msgid "Submit" msgstr "提交" #: templates/appearance/generic_form_subtemplate.html:74 -#: templates/appearance/generic_multiform_subtemplate.html:69 +#: templates/appearance/generic_multiform_subtemplate.html:68 msgid "Cancel" msgstr "取消" #: templates/appearance/generic_list_horizontal.html:21 -#: templates/appearance/generic_list_subtemplate.html:108 +#: templates/appearance/generic_list_subtemplate.html:112 msgid "No results" msgstr "" @@ -187,34 +192,38 @@ msgstr "" msgid "Total: %(total)s" msgstr "" -#: templates/appearance/generic_list_subtemplate.html:51 +#: templates/appearance/generic_list_subtemplate.html:53 msgid "Identifier" msgstr "标识" -#: templates/appearance/home.html:8 templates/appearance/home.html.py:12 -msgid "Home" +#: templates/appearance/home.html:9 templates/appearance/home.html:13 +msgid "Dashboard" msgstr "" -#: templates/appearance/home.html:21 +#: templates/appearance/home.html:22 msgid "Getting started" msgstr "" -#: templates/appearance/home.html:24 +#: templates/appearance/home.html:25 msgid "Before you can fully use Mayan EDMS you need the following:" msgstr "" -#: templates/appearance/home.html:57 -msgid "Space separated terms" +#: templates/appearance/home.html:46 +msgid "Search pages" msgstr "" -#: templates/appearance/home.html:59 +#: templates/appearance/home.html:48 templates/appearance/home.html:58 msgid "Search" msgstr "搜索" -#: templates/appearance/home.html:60 +#: templates/appearance/home.html:49 templates/appearance/home.html:59 msgid "Advanced" msgstr "" +#: templates/appearance/home.html:56 +msgid "Search documents" +msgstr "" + #: templates/appearance/login.html:10 msgid "Login" msgstr "登录" @@ -254,7 +263,7 @@ msgid "" "message." msgstr "请修改密码以提高安全性,并且禁止显示此信息。" -#: templates/appearance/login.html:45 templates/appearance/login.html.py:54 +#: templates/appearance/login.html:45 templates/appearance/login.html:54 msgid "Sign in" msgstr "" diff --git a/mayan/apps/appearance/static/appearance/css/base.css b/mayan/apps/appearance/static/appearance/css/base.css index ace6e9cf3d..97c832828e 100644 --- a/mayan/apps/appearance/static/appearance/css/base.css +++ b/mayan/apps/appearance/static/appearance/css/base.css @@ -151,15 +151,19 @@ a i { padding-right: 3px; } -.panel-dashboard-widget { +.dashboard-widget { box-shadow: 1px 1px 1px rgba(0,0,0,0.3); border: 1px solid black; } -.panel-dashboard-widget .panel-heading i { +.dashboard-widget .panel-heading i { text-shadow: 1px 1px 1px rgba(0,0,0,0.3); } +.dashboard-widget-icon { + font-size: 200%; +} + .select2-container--default .select2-selection--multiple .select2-selection__choice .label { padding-bottom: 1px; } diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cerulean/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cerulean/bootstrap.min.css deleted file mode 100644 index dcf0996283..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cerulean/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2fa4e7;text-decoration:none}a:hover,a:focus{color:#157ab5;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:#317eac}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#2fa4e7}a.text-primary:hover,a.text-primary:focus{color:#178acc}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#2fa4e7}a.bg-primary:hover,a.bg-primary:focus{background-color:#178acc}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#555555;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#555555}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#555555;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#555555;background-color:#ffffff;border-color:rgba(0,0,0,0.1)}.btn-default:focus,.btn-default.focus{color:#555555;background-color:#e6e6e6;border-color:rgba(0,0,0,0.1)}.btn-default:hover{color:#555555;background-color:#e6e6e6;border-color:rgba(0,0,0,0.1)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#555555;background-color:#e6e6e6;border-color:rgba(0,0,0,0.1)}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#555555;background-color:#d4d4d4;border-color:rgba(0,0,0,0.1)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:rgba(0,0,0,0.1)}.btn-default .badge{color:#ffffff;background-color:#555555}.btn-primary{color:#ffffff;background-color:#2fa4e7;border-color:#2fa4e7}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#178acc;border-color:#105b87}.btn-primary:hover{color:#ffffff;background-color:#178acc;border-color:#1684c2}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#178acc;border-color:#1684c2}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1474ac;border-color:#105b87}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2fa4e7;border-color:#2fa4e7}.btn-primary .badge{color:#2fa4e7;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#73a839;border-color:#73a839}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#59822c;border-color:#324919}.btn-success:hover{color:#ffffff;background-color:#59822c;border-color:#547a29}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#59822c;border-color:#547a29}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#476723;border-color:#324919}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#73a839;border-color:#73a839}.btn-success .badge{color:#73a839;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#033c73;border-color:#033c73}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#022241;border-color:#000000}.btn-info:hover{color:#ffffff;background-color:#022241;border-color:#011d37}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#022241;border-color:#011d37}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#01101f;border-color:#000000}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#033c73;border-color:#033c73}.btn-info .badge{color:#033c73;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#dd5600;border-color:#dd5600}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#aa4200;border-color:#5e2400}.btn-warning:hover{color:#ffffff;background-color:#aa4200;border-color:#a03e00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#aa4200;border-color:#a03e00}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#863400;border-color:#5e2400}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#dd5600;border-color:#dd5600}.btn-warning .badge{color:#dd5600;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#c71c22;border-color:#c71c22}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#9a161a;border-color:#570c0f}.btn-danger:hover{color:#ffffff;background-color:#9a161a;border-color:#911419}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#9a161a;border-color:#911419}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#7b1115;border-color:#570c0f}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#c71c22;border-color:#c71c22}.btn-danger .badge{color:#c71c22;background-color:#ffffff}.btn-link{color:#2fa4e7;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#157ab5;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#2fa4e7}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2fa4e7}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555555;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#2fa4e7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2fa4e7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#2fa4e7;border-color:#1995dc}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#dddddd}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#dddddd;background-color:transparent}.navbar-default .navbar-toggle{border-color:#178acc}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#178acc}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#1995dc}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#178acc;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#178acc}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#dddddd;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#dddddd}.navbar-inverse{background-color:#033c73;border-color:#022f5a}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#022f5a}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#022f5a}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#022a50}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#022f5a;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#022f5a}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#2fa4e7;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#157ab5;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#2fa4e7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#178acc}.label-success{background-color:#73a839}.label-success[href]:hover,.label-success[href]:focus{background-color:#59822c}.label-info{background-color:#033c73}.label-info[href]:hover,.label-info[href]:focus{background-color:#022241}.label-warning{background-color:#dd5600}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#aa4200}.label-danger{background-color:#c71c22}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#9a161a}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#2fa4e7;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2fa4e7;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2fa4e7}.thumbnail .caption{padding:9px;color:#555555}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#2fa4e7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#73a839}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#033c73}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#dd5600}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#c71c22}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2fa4e7;border-color:#2fa4e7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e6f4fc}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#555555;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#555555}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#dddddd}.panel-primary>.panel-heading{color:#ffffff;background-color:#2fa4e7;border-color:#dddddd}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-primary>.panel-heading .badge{color:#2fa4e7;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-success{border-color:#dddddd}.panel-success>.panel-heading{color:#468847;background-color:#73a839;border-color:#dddddd}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-success>.panel-heading .badge{color:#73a839;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-info{border-color:#dddddd}.panel-info>.panel-heading{color:#3a87ad;background-color:#033c73;border-color:#dddddd}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-info>.panel-heading .badge{color:#033c73;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-warning{border-color:#dddddd}.panel-warning>.panel-heading{color:#c09853;background-color:#dd5600;border-color:#dddddd}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-warning>.panel-heading .badge{color:#dd5600;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-danger{border-color:#dddddd}.panel-danger>.panel-heading{color:#b94a48;background-color:#c71c22;border-color:#dddddd}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-danger>.panel-heading .badge{color:#c71c22;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{background-image:-webkit-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-o-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-webkit-gradient(linear, left top, left bottom, from(#54b4eb), color-stop(60%, #2fa4e7), to(#1d9ce5));background-image:linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff54b4eb', endColorstr='#ff1d9ce5', GradientType=0);border-bottom:1px solid #178acc;-webkit-filter:none;filter:none;-webkit-box-shadow:0 1px 10px rgba(0,0,0,0.1);box-shadow:0 1px 10px rgba(0,0,0,0.1)}.navbar-default .badge{background-color:#fff;color:#2fa4e7}.navbar-inverse{background-image:-webkit-linear-gradient(#04519b, #044687 60%, #033769);background-image:-o-linear-gradient(#04519b, #044687 60%, #033769);background-image:-webkit-gradient(linear, left top, left bottom, from(#04519b), color-stop(60%, #044687), to(#033769));background-image:linear-gradient(#04519b, #044687 60%, #033769);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04519b', endColorstr='#ff033769', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #022241}.navbar-inverse .badge{background-color:#fff;color:#033c73}.navbar .navbar-nav>li>a,.navbar-brand{text-shadow:0 1px 0 rgba(0,0,0,0.1)}@media (max-width:767px){.navbar .dropdown-header{color:#fff}.navbar .dropdown-menu a{color:#fff}}.btn{text-shadow:0 1px 0 rgba(0,0,0,0.1)}.btn .caret{border-top-color:#fff}.btn-default{background-image:-webkit-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-o-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(60%, #fff), to(#f5f5f5));background-image:linear-gradient(#fff, #fff 60%, #f5f5f5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff5f5f5', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #e6e6e6}.btn-default:hover{color:#555555}.btn-default .caret{border-top-color:#555555}.btn-default{background-image:-webkit-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-o-linear-gradient(#fff, #fff 60%, #f5f5f5);background-image:-webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(60%, #fff), to(#f5f5f5));background-image:linear-gradient(#fff, #fff 60%, #f5f5f5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff5f5f5', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #e6e6e6}.btn-primary{background-image:-webkit-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-o-linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-image:-webkit-gradient(linear, left top, left bottom, from(#54b4eb), color-stop(60%, #2fa4e7), to(#1d9ce5));background-image:linear-gradient(#54b4eb, #2fa4e7 60%, #1d9ce5);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff54b4eb', endColorstr='#ff1d9ce5', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #178acc}.btn-success{background-image:-webkit-linear-gradient(#88c149, #73a839 60%, #699934);background-image:-o-linear-gradient(#88c149, #73a839 60%, #699934);background-image:-webkit-gradient(linear, left top, left bottom, from(#88c149), color-stop(60%, #73a839), to(#699934));background-image:linear-gradient(#88c149, #73a839 60%, #699934);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff88c149', endColorstr='#ff699934', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #59822c}.btn-info{background-image:-webkit-linear-gradient(#04519b, #033c73 60%, #02325f);background-image:-o-linear-gradient(#04519b, #033c73 60%, #02325f);background-image:-webkit-gradient(linear, left top, left bottom, from(#04519b), color-stop(60%, #033c73), to(#02325f));background-image:linear-gradient(#04519b, #033c73 60%, #02325f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff04519b', endColorstr='#ff02325f', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #022241}.btn-warning{background-image:-webkit-linear-gradient(#ff6707, #dd5600 60%, #c94e00);background-image:-o-linear-gradient(#ff6707, #dd5600 60%, #c94e00);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff6707), color-stop(60%, #dd5600), to(#c94e00));background-image:linear-gradient(#ff6707, #dd5600 60%, #c94e00);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff6707', endColorstr='#ffc94e00', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #aa4200}.btn-danger{background-image:-webkit-linear-gradient(#e12b31, #c71c22 60%, #b5191f);background-image:-o-linear-gradient(#e12b31, #c71c22 60%, #b5191f);background-image:-webkit-gradient(linear, left top, left bottom, from(#e12b31), color-stop(60%, #c71c22), to(#b5191f));background-image:linear-gradient(#e12b31, #c71c22 60%, #b5191f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe12b31', endColorstr='#ffb5191f', GradientType=0);-webkit-filter:none;filter:none;border-bottom:1px solid #9a161a}.panel-primary .panel-heading,.panel-success .panel-heading,.panel-warning .panel-heading,.panel-danger .panel-heading,.panel-info .panel-heading,.panel-primary .panel-title,.panel-success .panel-title,.panel-warning .panel-title,.panel-danger .panel-title,.panel-info .panel-title{color:#fff} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cosmo/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cosmo/bootstrap.min.css deleted file mode 100644 index 2c959bdc61..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cosmo/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-size:15px;line-height:1.42857143;color:#333333;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2780e3;text-decoration:none}a:hover,a:focus{color:#165ba8;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #e6e6e6}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#ff7518;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#2780e3}a.text-primary:hover,a.text-primary:focus{color:#1967be}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#2780e3}a.bg-primary:hover,a.bg-primary:focus{background-color:#1967be}.bg-success{background-color:#3fb618}a.bg-success:hover,a.bg-success:focus{background-color:#2f8912}.bg-info{background-color:#9954bb}a.bg-info:hover,a.bg-info:focus{background-color:#7e3f9d}.bg-warning{background-color:#ff7518}a.bg-warning:hover,a.bg-warning:focus{background-color:#e45c00}.bg-danger{background-color:#ff0039}a.bg-danger:hover,a.bg-danger:focus{background-color:#cc002e}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #e6e6e6}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #e6e6e6}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #e6e6e6;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#3fb618}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#379f15}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#9954bb}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#8d46b0}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ff7518}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#fe6600}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#ff0039}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#e60033}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:11px;font-size:15px;line-height:1.42857143;color:#333333}.form-control{display:block;width:100%;height:43px;padding:10px 18px;font-size:15px;line-height:1.42857143;color:#333333;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#e6e6e6;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:43px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:31px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:64px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:11px;padding-bottom:11px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-sm{height:31px;line-height:31px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}.form-group-sm select.form-control{height:31px;line-height:31px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:31px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.5}.input-lg{height:64px;padding:18px 30px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-lg{height:64px;line-height:64px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:64px;padding:18px 30px;font-size:19px;line-height:1.3333333;border-radius:0}.form-group-lg select.form-control{height:64px;line-height:64px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:64px;min-height:40px;padding:19px 30px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:53.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:43px;height:43px;line-height:43px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:64px;height:64px;line-height:64px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#3fb618}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff7518}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff0039}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:11px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:32px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:11px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:24.9999994px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:10px 18px;font-size:15px;line-height:1.42857143;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#222222;border-color:#222222}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#090909;border-color:#000000}.btn-default:hover{color:#ffffff;background-color:#090909;border-color:#040404}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#090909;border-color:#040404}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#000000;border-color:#000000}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#222222;border-color:#222222}.btn-default .badge{color:#222222;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#2780e3;border-color:#2780e3}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#1967be;border-color:#10427b}.btn-primary:hover{color:#ffffff;background-color:#1967be;border-color:#1862b5}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#1967be;border-color:#1862b5}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#15569f;border-color:#10427b}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2780e3;border-color:#2780e3}.btn-primary .badge{color:#2780e3;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#3fb618;border-color:#3fb618}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#2f8912;border-color:#184509}.btn-success:hover{color:#ffffff;background-color:#2f8912;border-color:#2c8011}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#2f8912;border-color:#2c8011}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#24690e;border-color:#184509}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#3fb618;border-color:#3fb618}.btn-success .badge{color:#3fb618;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#9954bb;border-color:#9954bb}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#7e3f9d;border-color:#522967}.btn-info:hover{color:#ffffff;background-color:#7e3f9d;border-color:#783c96}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#7e3f9d;border-color:#783c96}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#6a3484;border-color:#522967}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#9954bb;border-color:#9954bb}.btn-info .badge{color:#9954bb;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff7518;border-color:#ff7518}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#e45c00;border-color:#983d00}.btn-warning:hover{color:#ffffff;background-color:#e45c00;border-color:#da5800}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#e45c00;border-color:#da5800}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#c04d00;border-color:#983d00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#ff7518;border-color:#ff7518}.btn-warning .badge{color:#ff7518;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#ff0039;border-color:#ff0039}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#cc002e;border-color:#80001c}.btn-danger:hover{color:#ffffff;background-color:#cc002e;border-color:#c2002b}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#cc002e;border-color:#c2002b}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#a80026;border-color:#80001c}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#ff0039;border-color:#ff0039}.btn-danger .badge{color:#ff0039;background-color:#ffffff}.btn-link{color:#2780e3;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#165ba8;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:18px 30px;font-size:19px;line-height:1.3333333;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#2780e3}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2780e3}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:64px;padding:18px 30px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:64px;line-height:64px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:10px 18px;font-size:15px;font-weight:normal;line-height:1;color:#333333;text-align:center;background-color:#e6e6e6;border:1px solid #cccccc;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:0}.input-group-addon.input-lg{padding:18px 30px;font-size:19px;border-radius:0}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#e6e6e6}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#e6e6e6;border-color:#2780e3}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:0 0 0 0}.nav-tabs>li>a:hover{border-color:#e6e6e6 #e6e6e6 #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2780e3}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:14.5px 15px;font-size:19px;line-height:21px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.25px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:14.5px;padding-bottom:14.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:3.5px;margin-bottom:3.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:3.5px;margin-bottom:3.5px}.navbar-btn.btn-sm{margin-top:9.5px;margin-bottom:9.5px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:14.5px;margin-bottom:14.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#222222;border-color:#121212}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#ffffff}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#090909}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#121212}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#090909;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#090909}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#2780e3;border-color:#1967be}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#1967be}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#1a6ecc}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#1967be;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#1967be}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ffffff;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#ffffff}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:10px 18px;line-height:1.42857143;text-decoration:none;color:#2780e3;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#165ba8;background-color:#e6e6e6;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:18px 30px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:0}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#e6e6e6}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#222222}.label-default[href]:hover,.label-default[href]:focus{background-color:#090909}.label-primary{background-color:#2780e3}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#1967be}.label-success{background-color:#3fb618}.label-success[href]:hover,.label-success[href]:focus{background-color:#2f8912}.label-info{background-color:#9954bb}.label-info[href]:hover,.label-info[href]:focus{background-color:#7e3f9d}.label-warning{background-color:#ff7518}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#e45c00}.label-danger{background-color:#ff0039}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#cc002e}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#2780e3;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2780e3;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#e6e6e6}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#cccccc}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2780e3}.thumbnail .caption{padding:9px;color:#333333}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#3fb618;border-color:#4e9f15;color:#ffffff}.alert-success hr{border-top-color:#438912}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#9954bb;border-color:#7643a8;color:#ffffff}.alert-info hr{border-top-color:#693c96}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#ff7518;border-color:#ff4309;color:#ffffff}.alert-warning hr{border-top-color:#ee3800}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#ff0039;border-color:#f0005e;color:#ffffff}.alert-danger hr{border-top-color:#d60054}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#cccccc;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#2780e3;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#3fb618}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#9954bb}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff7518}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ff0039}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#e6e6e6;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2780e3;border-color:#dddddd}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#dceafa}.list-group-item-success{color:#ffffff;background-color:#3fb618}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#379f15}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#9954bb}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#8d46b0}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#ff7518}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#fe6600}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#ff0039}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#e60033}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#ffffff;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:-1;border-top-left-radius:-1}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#2780e3}.panel-primary>.panel-heading{color:#ffffff;background-color:#2780e3;border-color:#2780e3}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#2780e3}.panel-primary>.panel-heading .badge{color:#2780e3;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#2780e3}.panel-success{border-color:#4e9f15}.panel-success>.panel-heading{color:#ffffff;background-color:#3fb618;border-color:#4e9f15}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#4e9f15}.panel-success>.panel-heading .badge{color:#3fb618;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#4e9f15}.panel-info{border-color:#7643a8}.panel-info>.panel-heading{color:#ffffff;background-color:#9954bb;border-color:#7643a8}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#7643a8}.panel-info>.panel-heading .badge{color:#9954bb;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#7643a8}.panel-warning{border-color:#ff4309}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff7518;border-color:#ff4309}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ff4309}.panel-warning>.panel-heading .badge{color:#ff7518;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ff4309}.panel-danger{border-color:#f0005e}.panel-danger>.panel-heading{color:#ffffff;background-color:#ff0039;border-color:#f0005e}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f0005e}.panel-danger>.panel-heading .badge{color:#ff0039;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f0005e}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:0}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Source Sans Pro",Calibri,Candara,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:-1 -1 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar-inverse .badge{background-color:#fff;color:#2780e3}body{-webkit-font-smoothing:antialiased}.text-primary,.text-primary:hover{color:#2780e3}.text-success,.text-success:hover{color:#3fb618}.text-danger,.text-danger:hover{color:#ff0039}.text-warning,.text-warning:hover{color:#ff7518}.text-info,.text-info:hover{color:#9954bb}table a:not(.btn),.table a:not(.btn){text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .success,.table .success,table .warning,.table .warning,table .danger,.table .danger,table .info,.table .info{color:#fff}table .success a,.table .success a,table .warning a,.table .warning a,table .danger a,.table .danger a,table .info a,.table .info a{color:#fff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#ff7518}.has-warning .form-control,.has-warning .form-control:focus,.has-warning .input-group-addon{border:1px solid #ff7518}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#ff0039}.has-error .form-control,.has-error .form-control:focus,.has-error .input-group-addon{border:1px solid #ff0039}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#3fb618}.has-success .form-control,.has-success .form-control:focus,.has-success .input-group-addon{border:1px solid #3fb618}.nav-pills>li>a{border-radius:0}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{background-image:none}.close{text-decoration:none;text-shadow:none;opacity:0.4}.close:hover,.close:focus{opacity:1}.alert{border:none}.alert .alert-link{text-decoration:underline;color:#fff}.label{border-radius:0}.progress{height:8px;-webkit-box-shadow:none;box-shadow:none}.progress .progress-bar{font-size:8px;line-height:8px}.panel-heading,.panel-footer{border-top-right-radius:0;border-top-left-radius:0}.panel-default .close{color:#333333}a.list-group-item-success.active{background-color:#3fb618}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#379f15}a.list-group-item-warning.active{background-color:#ff7518}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#fe6600}a.list-group-item-danger.active{background-color:#ff0039}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#e60033}.modal .close{color:#333333}.popover{color:#333333} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cyborg/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cyborg/bootstrap.min.css deleted file mode 100644 index b3d808f985..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/cyborg/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#888888;background-color:#060606}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2a9fd6;text-decoration:none}a:hover,a:focus{color:#2a9fd6;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#282828;border:1px solid #282828;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #282828}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:#ffffff}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#888888}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:56px}h2,.h2{font-size:45px}h3,.h3{font-size:34px}h4,.h4{font-size:24px}h5,.h5{font-size:20px}h6,.h6{font-size:16px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#ff8800;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#888888}.text-primary{color:#2a9fd6}a.text-primary:hover,a.text-primary:focus{color:#2180ac}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#2a9fd6}a.bg-primary:hover,a.bg-primary:focus{background-color:#2180ac}.bg-success{background-color:#77b300}a.bg-success:hover,a.bg-success:focus{background-color:#558000}.bg-info{background-color:#9933cc}a.bg-info:hover,a.bg-info:focus{background-color:#7a29a3}.bg-warning{background-color:#ff8800}a.bg-warning:hover,a.bg-warning:focus{background-color:#cc6d00}.bg-danger{background-color:#cc0000}a.bg-danger:hover,a.bg-danger:focus{background-color:#990000}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #282828}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #888888}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #282828}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#555555}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #282828;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#282828;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:#181818}caption{padding-top:8px;padding-bottom:8px;color:#888888;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #282828}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #282828}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #282828}.table .table{background-color:#060606}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #282828}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #282828}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#080808}.table-hover>tbody>tr:hover{background-color:#282828}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#282828}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#1b1b1b}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#77b300}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#669a00}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#9933cc}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#8a2eb8}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ff8800}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#e67a00}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#cc0000}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#b30000}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #282828}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#888888;border:0;border-bottom:1px solid #282828}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#888888}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#888888;background-color:#ffffff;background-image:none;border:1px solid #282828;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#888888;opacity:1}.form-control:-ms-input-placeholder{color:#888888}.form-control::-webkit-input-placeholder{color:#888888}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#adafae;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#77b300}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff8800}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#cc0000}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#c8c8c8}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#424242;border-color:#424242}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#282828;border-color:#020202}.btn-default:hover{color:#ffffff;background-color:#282828;border-color:#232323}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#282828;border-color:#232323}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#161616;border-color:#020202}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#424242;border-color:#424242}.btn-default .badge{color:#424242;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#2a9fd6;border-color:#2a9fd6}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#2180ac;border-color:#15506c}.btn-primary:hover{color:#ffffff;background-color:#2180ac;border-color:#1f79a3}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#2180ac;border-color:#1f79a3}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1b698e;border-color:#15506c}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2a9fd6;border-color:#2a9fd6}.btn-primary .badge{color:#2a9fd6;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#77b300;border-color:#77b300}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#558000;border-color:#223300}.btn-success:hover{color:#ffffff;background-color:#558000;border-color:#4e7600}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#558000;border-color:#4e7600}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#3d5c00;border-color:#223300}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#77b300;border-color:#77b300}.btn-success .badge{color:#77b300;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#9933cc;border-color:#9933cc}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#7a29a3;border-color:#4c1966}.btn-info:hover{color:#ffffff;background-color:#7a29a3;border-color:#74279b}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#7a29a3;border-color:#74279b}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#652287;border-color:#4c1966}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#9933cc;border-color:#9933cc}.btn-info .badge{color:#9933cc;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff8800;border-color:#ff8800}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#cc6d00;border-color:#804400}.btn-warning:hover{color:#ffffff;background-color:#cc6d00;border-color:#c26700}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#cc6d00;border-color:#c26700}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#a85a00;border-color:#804400}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#ff8800;border-color:#ff8800}.btn-warning .badge{color:#ff8800;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#cc0000;border-color:#cc0000}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#990000;border-color:#4d0000}.btn-danger:hover{color:#ffffff;background-color:#990000;border-color:#8f0000}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#990000;border-color:#8f0000}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#750000;border-color:#4d0000}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#cc0000;border-color:#cc0000}.btn-danger .badge{color:#cc0000;background-color:#ffffff}.btn-link{color:#2a9fd6;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#2a9fd6;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#888888;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#222222;border:1px solid #444444;border:1px solid rgba(255,255,255,0.1);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:rgba(255,255,255,0.1)}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#ffffff;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#2a9fd6}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2a9fd6}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#888888}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#888888;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#888888;text-align:center;background-color:#adafae;border:1px solid #282828;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#222222}.nav>li.disabled>a{color:#888888}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#888888;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#222222;border-color:#2a9fd6}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #282828}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:transparent transparent #282828}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#ffffff;background-color:#2a9fd6;border:1px solid #282828;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#060606}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2a9fd6}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#060606}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#060606;border-color:#282828}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-text{color:#888888}.navbar-default .navbar-nav>li>a{color:#888888}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#888888;background-color:transparent}.navbar-default .navbar-toggle{border-color:#282828}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#282828}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#282828}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#888888}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#888888;background-color:transparent}}.navbar-default .navbar-link{color:#888888}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#888888}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#888888}.navbar-inverse{background-color:#222222;border-color:#080808}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#888888}.navbar-inverse .navbar-nav>li>a{color:#888888}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#aaaaaa;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#888888}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#aaaaaa;background-color:transparent}}.navbar-inverse .navbar-link{color:#888888}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#888888}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#aaaaaa}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#222222;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ffffff}.breadcrumb>.active{color:#888888}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#ffffff;background-color:#222222;border:1px solid #282828;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:#2a9fd6;border-color:transparent}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#2a9fd6;border-color:transparent;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#888888;background-color:#222222;border-color:#282828;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#222222;border:1px solid #282828;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#2a9fd6}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#888888;background-color:#222222;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#424242}.label-default[href]:hover,.label-default[href]:focus{background-color:#282828}.label-primary{background-color:#2a9fd6}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#2180ac}.label-success{background-color:#77b300}.label-success[href]:hover,.label-success[href]:focus{background-color:#558000}.label-info{background-color:#9933cc}.label-info[href]:hover,.label-info[href]:focus{background-color:#7a29a3}.label-warning{background-color:#ff8800}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#cc6d00}.label-danger{background-color:#cc0000}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#990000}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#2a9fd6;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2a9fd6;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#151515}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#000000}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#282828;border:1px solid #282828;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2a9fd6}.thumbnail .caption{padding:9px;color:#888888}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#77b300;border-color:#809a00;color:#ffffff}.alert-success hr{border-top-color:#6a8000}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#9933cc;border-color:#6e2caf;color:#ffffff}.alert-info hr{border-top-color:#61279b}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#ff8800;border-color:#f05800;color:#ffffff}.alert-warning hr{border-top-color:#d64f00}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#cc0000;border-color:#bd001f;color:#ffffff}.alert-danger hr{border-top-color:#a3001b}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#222222;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#2a9fd6;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#77b300}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#9933cc}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff8800}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#cc0000}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#222222;border:1px solid #282828}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#888888}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#ffffff}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#888888;background-color:#484848}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#adafae;color:#888888;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#888888}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2a9fd6;border-color:#2a9fd6}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#d5ecf7}.list-group-item-success{color:#ffffff;background-color:#77b300}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#669a00}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#9933cc}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#8a2eb8}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#ff8800}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#e67a00}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#cc0000}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#b30000}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#222222;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#3c3c3c;border-top:1px solid #282828;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #282828}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #282828}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #282828}.panel-default{border-color:#282828}.panel-default>.panel-heading{color:#888888;background-color:#3c3c3c;border-color:#282828}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#282828}.panel-default>.panel-heading .badge{color:#3c3c3c;background-color:#888888}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#282828}.panel-primary{border-color:#2a9fd6}.panel-primary>.panel-heading{color:#ffffff;background-color:#2a9fd6;border-color:#2a9fd6}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#2a9fd6}.panel-primary>.panel-heading .badge{color:#2a9fd6;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#2a9fd6}.panel-success{border-color:#809a00}.panel-success>.panel-heading{color:#ffffff;background-color:#77b300;border-color:#809a00}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#809a00}.panel-success>.panel-heading .badge{color:#77b300;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#809a00}.panel-info{border-color:#6e2caf}.panel-info>.panel-heading{color:#ffffff;background-color:#9933cc;border-color:#6e2caf}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#6e2caf}.panel-info>.panel-heading .badge{color:#9933cc;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#6e2caf}.panel-warning{border-color:#f05800}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff8800;border-color:#f05800}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f05800}.panel-warning>.panel-heading .badge{color:#ff8800;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f05800}.panel-danger{border-color:#bd001f}.panel-danger>.panel-heading{color:#ffffff;background-color:#cc0000;border-color:#bd001f}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bd001f}.panel-danger>.panel-heading .badge{color:#cc0000;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bd001f}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#151515;border:1px solid #030303;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#202020;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #282828;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #282828}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#202020;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#181818;border-bottom:1px solid #0b0b0b;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#666666;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#202020}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#666666;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#202020}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#666666;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#202020}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#666666;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#202020;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.text-primary,.text-primary:hover{color:#2a9fd6}.text-success,.text-success:hover{color:#77b300}.text-danger,.text-danger:hover{color:#cc0000}.text-warning,.text-warning:hover{color:#ff8800}.text-info,.text-info:hover{color:#9933cc}.bg-success,.bg-info,.bg-warning,.bg-danger{color:#fff}table,.table{color:#fff}table a:not(.btn),.table a:not(.btn){color:#fff;text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .text-muted,.table .text-muted{color:#888888}.table-responsive>.table{background-color:#181818}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#ff8800}.has-warning .form-control,.has-warning .form-control:focus,.has-warning .input-group-addon{border-color:#ff8800}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#cc0000}.has-error .form-control,.has-error .form-control:focus,.has-error .input-group-addon{border-color:#cc0000}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#77b300}.has-success .form-control,.has-success .form-control:focus,.has-success .input-group-addon{border-color:#77b300}legend{color:#fff}.input-group-addon{background-color:#424242}.nav-tabs a,.nav-pills a,.breadcrumb a,.pager a{color:#fff}.alert .alert-link,.alert a{color:#ffffff;text-decoration:underline}.alert .close{text-decoration:none}.close{color:#fff;text-decoration:none;opacity:0.4}.close:hover,.close:focus{color:#fff;opacity:1}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#282828}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:#282828}a.list-group-item-success.active{background-color:#77b300}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#669a00}a.list-group-item-warning.active{background-color:#ff8800}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#e67a00}a.list-group-item-danger.active{background-color:#cc0000}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#b30000}.jumbotron h1,.jumbotron h2,.jumbotron h3,.jumbotron h4,.jumbotron h5,.jumbotron h6{color:#fff} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/darkly/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/darkly/bootstrap.min.css deleted file mode 100644 index c640607347..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/darkly/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.42857143;color:#ffffff;background-color:#222222}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#0ce3ac;text-decoration:none}a:hover,a:focus{color:#0ce3ac;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:2px;line-height:1.42857143;background-color:#222222;border:1px solid #464545;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #464545}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:400;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#f39c12;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#375a7f}a.text-primary:hover,a.text-primary:focus{color:#28415b}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#375a7f}a.bg-primary:hover,a.bg-primary:focus{background-color:#28415b}.bg-success{background-color:#00bc8c}a.bg-success:hover,a.bg-success:focus{background-color:#008966}.bg-info{background-color:#3498db}a.bg-info:hover,a.bg-info:focus{background-color:#217dbb}.bg-warning{background-color:#f39c12}a.bg-warning:hover,a.bg-warning:focus{background-color:#c87f0a}.bg-danger{background-color:#e74c3c}a.bg-danger:hover,a.bg-danger:focus{background-color:#d62c1a}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid transparent}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #464545}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #464545;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#303030;background-color:#ebebeb;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #464545}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #464545}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #464545}.table .table{background-color:#222222}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #464545}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #464545}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#3d3d3d}.table-hover>tbody>tr:hover{background-color:#464545}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#464545}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#393838}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#00bc8c}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#00a379}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#3498db}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#258cd1}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#f39c12}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#e08e0b}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#e74c3c}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#e43725}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #464545}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#ffffff;border:0;border-bottom:1px solid transparent}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:11px;font-size:15px;line-height:1.42857143;color:#464545}.form-control{display:block;width:100%;height:45px;padding:10px 15px;font-size:15px;line-height:1.42857143;color:#464545;background-color:#ffffff;background-image:none;border:1px solid #f1f1f1;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#ffffff;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(255,255,255,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(255,255,255,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#ebebeb;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:45px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:35px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:66px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:11px;padding-bottom:11px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:35px;padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}select.input-sm{height:35px;line-height:35px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:35px;padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:35px;line-height:35px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:35px;min-height:34px;padding:7px 9px;font-size:13px;line-height:1.5}.input-lg{height:66px;padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-lg{height:66px;line-height:66px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:66px;padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:66px;line-height:66px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:66px;min-height:40px;padding:19px 27px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:56.25px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:45px;height:45px;line-height:45px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:66px;height:66px;line-height:66px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:35px;height:35px;line-height:35px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#00bc8c}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#f39c12}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#e74c3c}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#ffffff}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:11px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:32px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:11px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:24.9999994px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:7px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:10px 15px;font-size:15px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#464545;border-color:#464545}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#2c2c2c;border-color:#060606}.btn-default:hover{color:#ffffff;background-color:#2c2c2c;border-color:#272727}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#2c2c2c;border-color:#272727}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#1a1a1a;border-color:#060606}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#464545;border-color:#464545}.btn-default .badge{color:#464545;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#375a7f;border-color:#375a7f}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#28415b;border-color:#101b26}.btn-primary:hover{color:#ffffff;background-color:#28415b;border-color:#253c54}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#28415b;border-color:#253c54}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1d2f43;border-color:#101b26}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#375a7f;border-color:#375a7f}.btn-primary .badge{color:#375a7f;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#00bc8c;border-color:#00bc8c}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#008966;border-color:#003d2d}.btn-success:hover{color:#ffffff;background-color:#008966;border-color:#007f5e}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#008966;border-color:#007f5e}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#00654b;border-color:#003d2d}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#00bc8c;border-color:#00bc8c}.btn-success .badge{color:#00bc8c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#3498db;border-color:#3498db}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#217dbb;border-color:#16527a}.btn-info:hover{color:#ffffff;background-color:#217dbb;border-color:#2077b2}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#217dbb;border-color:#2077b2}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#1c699d;border-color:#16527a}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#3498db;border-color:#3498db}.btn-info .badge{color:#3498db;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f39c12;border-color:#f39c12}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#c87f0a;border-color:#7f5006}.btn-warning:hover{color:#ffffff;background-color:#c87f0a;border-color:#be780a}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#c87f0a;border-color:#be780a}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#a66908;border-color:#7f5006}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f39c12;border-color:#f39c12}.btn-warning .badge{color:#f39c12;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#e74c3c;border-color:#e74c3c}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#d62c1a;border-color:#921e12}.btn-danger:hover{color:#ffffff;background-color:#d62c1a;border-color:#cd2a19}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#d62c1a;border-color:#cd2a19}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#b62516;border-color:#921e12}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#e74c3c;border-color:#e74c3c}.btn-danger .badge{color:#e74c3c;background-color:#ffffff}.btn-link{color:#0ce3ac;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#0ce3ac;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#303030;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#464545}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#ebebeb;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#375a7f}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#375a7f}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:66px;padding:18px 27px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:66px;line-height:66px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:35px;padding:6px 9px;font-size:13px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:35px;line-height:35px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:10px 15px;font-size:15px;font-weight:normal;line-height:1;color:#464545;text-align:center;background-color:#464545;border:1px solid transparent;border-radius:4px}.input-group-addon.input-sm{padding:6px 9px;font-size:13px;border-radius:3px}.input-group-addon.input-lg{padding:18px 27px;font-size:19px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#303030}.nav>li.disabled>a{color:#605e5e}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#605e5e;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#303030;border-color:#0ce3ac}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #464545}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#464545 #464545 #464545}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#00bc8c;background-color:#222222;border:1px solid #464545;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ebebeb}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#222222}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#375a7f}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ebebeb}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#222222}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:19.5px 15px;font-size:19px;line-height:21px;height:60px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:9.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:19.5px;padding-bottom:19.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:7.5px;margin-bottom:7.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:7.5px;margin-bottom:7.5px}.navbar-btn.btn-sm{margin-top:12.5px;margin-bottom:12.5px}.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:19.5px;margin-bottom:19.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#375a7f;border-color:transparent}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#00bc8c;background-color:transparent}.navbar-default .navbar-text{color:#777777}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#00bc8c;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#28415b}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#28415b}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#28415b}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#28415b;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#00bc8c;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#28415b}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#00bc8c}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#00bc8c}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#00bc8c;border-color:transparent}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#375a7f;background-color:transparent}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#375a7f;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#00a379}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#aaaaaa;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#008966}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#008966}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#009871}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#00a379;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#375a7f;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#00a379}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#aaaaaa;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#375a7f}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#375a7f}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#aaaaaa}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#464545;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ffffff}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:10px 15px;line-height:1.42857143;text-decoration:none;color:#ffffff;background-color:#00bc8c;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:#00dba3;border-color:transparent}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#00dba3;border-color:transparent;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#ffffff;background-color:#007053;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:18px 27px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:6px 9px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#00bc8c;border:1px solid transparent;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#00dba3}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#dddddd;background-color:#00bc8c;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#464545}.label-default[href]:hover,.label-default[href]:focus{background-color:#2c2c2c}.label-primary{background-color:#375a7f}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#28415b}.label-success{background-color:#00bc8c}.label-success[href]:hover,.label-success[href]:focus{background-color:#008966}.label-info{background-color:#3498db}.label-info[href]:hover,.label-info[href]:focus{background-color:#217dbb}.label-warning{background-color:#f39c12}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#c87f0a}.label-danger{background-color:#e74c3c}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#d62c1a}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#464545;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#375a7f;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#303030}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#161616}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:2px;margin-bottom:21px;line-height:1.42857143;background-color:#222222;border:1px solid #464545;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#0ce3ac}.thumbnail .caption{padding:9px;color:#ffffff}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#00bc8c;border-color:#00bc8c;color:#ffffff}.alert-success hr{border-top-color:#00a379}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#3498db;border-color:#3498db;color:#ffffff}.alert-info hr{border-top-color:#258cd1}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#f39c12;border-color:#f39c12;color:#ffffff}.alert-warning hr{border-top-color:#e08e0b}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#e74c3c;border-color:#e74c3c;color:#ffffff}.alert-danger hr{border-top-color:#e43725}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#ebebeb;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#375a7f;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#00bc8c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#3498db}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f39c12}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#e74c3c}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#303030;border:1px solid #464545}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#0ce3ac}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#0bcb9a}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#0ce3ac;background-color:transparent}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#ebebeb;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#375a7f;border-color:#375a7f}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#a8c0da}.list-group-item-success{color:#ffffff;background-color:#00bc8c}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#00a379}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#3498db}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#258cd1}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#f39c12}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#e08e0b}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#e74c3c}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#e43725}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#303030;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#464545;border-top:1px solid #464545;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #464545}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #464545}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #464545}.panel-default{border-color:#464545}.panel-default>.panel-heading{color:#ffffff;background-color:#303030;border-color:#464545}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#464545}.panel-default>.panel-heading .badge{color:#303030;background-color:#ffffff}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#464545}.panel-primary{border-color:#375a7f}.panel-primary>.panel-heading{color:#ffffff;background-color:#375a7f;border-color:#375a7f}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#375a7f}.panel-primary>.panel-heading .badge{color:#375a7f;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#375a7f}.panel-success{border-color:#00bc8c}.panel-success>.panel-heading{color:#ffffff;background-color:#00bc8c;border-color:#00bc8c}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#00bc8c}.panel-success>.panel-heading .badge{color:#00bc8c;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#00bc8c}.panel-info{border-color:#3498db}.panel-info>.panel-heading{color:#ffffff;background-color:#3498db;border-color:#3498db}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3498db}.panel-info>.panel-heading .badge{color:#3498db;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3498db}.panel-warning{border-color:#f39c12}.panel-warning>.panel-heading{color:#ffffff;background-color:#f39c12;border-color:#f39c12}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f39c12}.panel-warning>.panel-heading .badge{color:#f39c12;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f39c12}.panel-danger{border-color:#e74c3c}.panel-danger>.panel-heading{color:#ffffff;background-color:#e74c3c;border-color:#e74c3c}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#e74c3c}.panel-danger>.panel-heading .badge{color:#e74c3c;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#e74c3c}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#303030;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:none;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#303030;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.7;filter:alpha(opacity=70)}.modal-header{padding:15px;border-bottom:1px solid #464545;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #464545}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#303030;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#282828;border-bottom:1px solid #1c1c1c;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#666666;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#303030}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#666666;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#303030}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#666666;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#303030}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#666666;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#303030;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{border-width:0}.navbar-default .badge{background-color:#fff;color:#375a7f}.navbar-inverse .badge{background-color:#fff;color:#00bc8c}.navbar-brand{line-height:1}.navbar-form .form-control{background-color:white}.navbar-form .form-control:focus{border-color:white}.btn{border-width:2px}.btn:active{-webkit-box-shadow:none;box-shadow:none}.btn-group.open .dropdown-toggle{-webkit-box-shadow:none;box-shadow:none}.text-primary,.text-primary:hover{color:#4673a3}.text-success,.text-success:hover{color:#00bc8c}.text-danger,.text-danger:hover{color:#e74c3c}.text-warning,.text-warning:hover{color:#f39c12}.text-info,.text-info:hover{color:#3498db}table a:not(.btn),.table a:not(.btn){text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .success,.table .success,table .warning,.table .warning,table .danger,.table .danger,table .info,.table .info{color:#fff}table .success>th>a,.table .success>th>a,table .warning>th>a,.table .warning>th>a,table .danger>th>a,.table .danger>th>a,table .info>th>a,.table .info>th>a,table .success>td>a,.table .success>td>a,table .warning>td>a,.table .warning>td>a,table .danger>td>a,.table .danger>td>a,table .info>td>a,.table .info>td>a,table .success>a,.table .success>a,table .warning>a,.table .warning>a,table .danger>a,.table .danger>a,table .info>a,.table .info>a{color:#fff}table>thead>tr>th,.table>thead>tr>th,table>tbody>tr>th,.table>tbody>tr>th,table>tfoot>tr>th,.table>tfoot>tr>th,table>thead>tr>td,.table>thead>tr>td,table>tbody>tr>td,.table>tbody>tr>td,table>tfoot>tr>td,.table>tfoot>tr>td{border:none}table-bordered>thead>tr>th,.table-bordered>thead>tr>th,table-bordered>tbody>tr>th,.table-bordered>tbody>tr>th,table-bordered>tfoot>tr>th,.table-bordered>tfoot>tr>th,table-bordered>thead>tr>td,.table-bordered>thead>tr>td,table-bordered>tbody>tr>td,.table-bordered>tbody>tr>td,table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #464545}input,textarea{color:#464545}.form-control,input,textarea{border:2px hidden transparent;-webkit-box-shadow:none;box-shadow:none}.form-control:focus,input:focus,textarea:focus{-webkit-box-shadow:none;box-shadow:none}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f39c12}.has-warning .form-control,.has-warning .form-control:focus{-webkit-box-shadow:none;box-shadow:none}.has-warning .input-group-addon{border-color:#f39c12}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#e74c3c}.has-error .form-control,.has-error .form-control:focus{-webkit-box-shadow:none;box-shadow:none}.has-error .input-group-addon{border-color:#e74c3c}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#00bc8c}.has-success .form-control,.has-success .form-control:focus{-webkit-box-shadow:none;box-shadow:none}.has-success .input-group-addon{border-color:#00bc8c}.input-group-addon{color:#ffffff}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:#464545}.nav-tabs>li>a,.nav-pills>li>a{color:#fff}.pager a,.pager a:hover{color:#fff}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{background-color:#007053}.breadcrumb a{color:#fff}.close{text-decoration:none;text-shadow:none;opacity:0.4}.close:hover,.close:focus{opacity:1}.alert .alert-link{color:#fff;text-decoration:underline}.progress{height:10px;-webkit-box-shadow:none;box-shadow:none}.progress .progress-bar{font-size:10px;line-height:10px}.well{-webkit-box-shadow:none;box-shadow:none}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:#464545}a.list-group-item-success.active{background-color:#00bc8c}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#00a379}a.list-group-item-warning.active{background-color:#f39c12}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#e08e0b}a.list-group-item-danger.active{background-color:#e74c3c}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#e43725}.popover{color:#ffffff}.panel-default>.panel-heading{background-color:#464545} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/flatly/bootstrap.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/flatly/bootstrap.css index e24ad33222..acc88cc2d3 100644 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/flatly/bootstrap.css +++ b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/flatly/bootstrap.css @@ -268,8 +268,8 @@ th { } @font-face { font-family: 'Glyphicons Halflings'; - src: url('../fonts/glyphicons-halflings-regular.eot'); - src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); + src: url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.eot'); + src: url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.woff') format('woff'), url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../../bootstrap-3.3.4-dist/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); } .glyphicon { position: relative; diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/journal/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/journal/bootstrap.min.css deleted file mode 100644 index 28ef0c6326..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/journal/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=News+Cycle:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Georgia,"Times New Roman",Times,serif;font-size:15px;line-height:1.42857143;color:#777777;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#eb6864;text-decoration:none}a:hover,a:focus{color:#e22620;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"News Cycle","Arial Narrow Bold",sans-serif;font-weight:700;line-height:1.1;color:#000000}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#eb6864}a.text-primary:hover,a.text-primary:focus{color:#e53c37}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#eb6864}a.bg-primary:hover,a.bg-primary:focus{background-color:#e53c37}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#777777;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:15px;line-height:1.42857143;color:#777777}.form-control{display:block;width:100%;height:39px;padding:8px 12px;font-size:15px;line-height:1.42857143;color:#777777;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:39px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:31px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:56px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-sm{height:31px;line-height:31px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:31px;line-height:31px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:31px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.5}.input-lg{height:56px;padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-lg{height:56px;line-height:56px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:56px;padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:56px;line-height:56px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:56px;min-height:40px;padding:15px 16px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:56px;height:56px;line-height:56px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#b7b7b7}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:15px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#999999;border-color:#999999}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#808080;border-color:#595959}.btn-default:hover{color:#ffffff;background-color:#808080;border-color:#7a7a7a}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#808080;border-color:#7a7a7a}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#6e6e6e;border-color:#595959}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#999999;border-color:#999999}.btn-default .badge{color:#999999;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#eb6864;border-color:#eb6864}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#e53c37;border-color:#b81c18}.btn-primary:hover{color:#ffffff;background-color:#e53c37;border-color:#e4332e}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#e53c37;border-color:#e4332e}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#dc221c;border-color:#b81c18}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#eb6864;border-color:#eb6864}.btn-primary .badge{color:#eb6864;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#22b24c;border-color:#22b24c}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#1a873a;border-color:#0e471e}.btn-success:hover{color:#ffffff;background-color:#1a873a;border-color:#187f36}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#1a873a;border-color:#187f36}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#14692d;border-color:#0e471e}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#22b24c;border-color:#22b24c}.btn-success .badge{color:#22b24c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#336699;border-color:#336699}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#264c73;border-color:#132639}.btn-info:hover{color:#ffffff;background-color:#264c73;border-color:#24476b}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#264c73;border-color:#24476b}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#1d3b58;border-color:#132639}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#336699;border-color:#336699}.btn-info .badge{color:#336699;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f5e625;border-color:#f5e625}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#ddce0a;border-color:#948a07}.btn-warning:hover{color:#ffffff;background-color:#ddce0a;border-color:#d3c50a}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#ddce0a;border-color:#d3c50a}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#bbae09;border-color:#948a07}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f5e625;border-color:#f5e625}.btn-warning .badge{color:#f5e625;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#f57a00;border-color:#f57a00}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#c26100;border-color:#763b00}.btn-danger:hover{color:#ffffff;background-color:#c26100;border-color:#b85c00}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#c26100;border-color:#b85c00}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#9e4f00;border-color:#763b00}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#f57a00;border-color:#f57a00}.btn-danger .badge{color:#f57a00;background-color:#ffffff}.btn-link{color:#eb6864;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#e22620;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#eb6864}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#eb6864}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:56px;padding:14px 16px;font-size:19px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:56px;line-height:56px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:15px;font-weight:normal;line-height:1;color:#777777;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:19px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#eb6864}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#777777;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#eb6864}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:19.5px 15px;font-size:19px;line-height:21px;height:60px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:9.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:19.5px;padding-bottom:19.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:10.5px;margin-bottom:10.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:10.5px;margin-bottom:10.5px}.navbar-btn.btn-sm{margin-top:14.5px;margin-bottom:14.5px}.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:19.5px;margin-bottom:19.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#ffffff;border-color:#eeeeee}.navbar-default .navbar-brand{color:#000000}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-text{color:#000000}.navbar-default .navbar-nav>li>a{color:#000000}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#eeeeee}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#eeeeee;color:#000000}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#000000}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#000000;background-color:#eeeeee}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#000000}.navbar-default .navbar-link:hover{color:#000000}.navbar-default .btn-link{color:#000000}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#000000}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#eb6864;border-color:#e53c37}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#e53c37}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#e53c37}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#e74944}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#e74b47;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#e53c37}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#e53c37}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#e74b47}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#eb6864;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#e22620;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#eb6864}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#e53c37}.label-success{background-color:#22b24c}.label-success[href]:hover,.label-success[href]:focus{background-color:#1a873a}.label-info{background-color:#336699}.label-info[href]:hover,.label-info[href]:focus{background-color:#264c73}.label-warning{background-color:#f5e625}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ddce0a}.label-danger{background-color:#f57a00}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c26100}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#eb6864;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#eb6864;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#eb6864}.thumbnail .caption{padding:9px;color:#777777}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#eb6864;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#22b24c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#336699}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f5e625}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#f57a00}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#eb6864;border-color:#eb6864}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#ffffff}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#777777;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#777777}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#eb6864}.panel-primary>.panel-heading{color:#ffffff;background-color:#eb6864;border-color:#eb6864}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#eb6864}.panel-primary>.panel-heading .badge{color:#eb6864;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#eb6864}.panel-success{border-color:#22b24c}.panel-success>.panel-heading{color:#468847;background-color:#22b24c;border-color:#22b24c}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#22b24c}.panel-success>.panel-heading .badge{color:#22b24c;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#22b24c}.panel-info{border-color:#336699}.panel-info>.panel-heading{color:#3a87ad;background-color:#336699;border-color:#336699}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#336699}.panel-info>.panel-heading .badge{color:#336699;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#336699}.panel-warning{border-color:#f5e625}.panel-warning>.panel-heading{color:#c09853;background-color:#f5e625;border-color:#f5e625}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f5e625}.panel-warning>.panel-heading .badge{color:#f5e625;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f5e625}.panel-danger{border-color:#f57a00}.panel-danger>.panel-heading{color:#b94a48;background-color:#f57a00;border-color:#f57a00}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f57a00}.panel-danger>.panel-heading .badge{color:#f57a00;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f57a00}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{font-size:18px;font-family:"News Cycle","Arial Narrow Bold",sans-serif;font-weight:700}.navbar-default .badge{background-color:#000;color:#fff}.navbar-inverse .badge{background-color:#fff;color:#eb6864}.navbar-brand{font-size:inherit;font-weight:700;text-transform:uppercase}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f57a00}.has-warning .form-control,.has-warning .form-control:focus{border-color:#f57a00}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#eb6864}.has-error .form-control,.has-error .form-control:focus{border-color:#eb6864}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#22b24c}.has-success .form-control,.has-success .form-control:focus{border-color:#22b24c}.badge{padding-bottom:4px;vertical-align:3px;font-size:10px}.jumbotron h1,.jumbotron h2,.jumbotron h3,.jumbotron h4,.jumbotron h5,.jumbotron h6{font-family:"News Cycle","Arial Narrow Bold",sans-serif;font-weight:700;color:#000}.panel-primary .panel-title,.panel-success .panel-title,.panel-warning .panel-title,.panel-danger .panel-title,.panel-info .panel-title{color:#fff} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/lumen/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/lumen/bootstrap.min.css deleted file mode 100644 index fd97f41138..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/lumen/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,700,400italic");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#158cba;text-decoration:none}a:hover,a:focus{color:#158cba;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:5px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #eeeeee;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:400;line-height:1.1;color:#333333}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#ff851b;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#158cba}a.text-primary:hover,a.text-primary:focus{color:#106a8c}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#158cba}a.bg-primary:hover,a.bg-primary:focus{background-color:#106a8c}.bg-success{background-color:#28b62c}a.bg-success:hover,a.bg-success:focus{background-color:#1f8c22}.bg-info{background-color:#75caeb}a.bg-info:hover,a.bg-info:focus{background-color:#48b9e5}.bg-warning{background-color:#ff851b}a.bg-warning:hover,a.bg-warning:focus{background-color:#e76b00}.bg-danger{background-color:#ff4136}a.bg-danger:hover,a.bg-danger:focus{background-color:#ff1103}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:2px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#28b62c}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#23a127}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#75caeb}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#5fc1e8}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ff851b}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#ff7701}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#ff4136}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ff291c}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:8px;font-size:14px;line-height:1.42857143;color:#555555}.form-control{display:block;width:100%;height:38px;padding:7px 12px;font-size:14px;line-height:1.42857143;color:#555555;background-color:#ffffff;background-image:none;border:1px solid #e7e7e7;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:28px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:52px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:8px;padding-bottom:8px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}select.input-sm{height:28px;line-height:28px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}.form-group-sm select.form-control{height:28px;line-height:28px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:28px;min-height:32px;padding:5px 10px;font-size:12px;line-height:1.5}.input-lg{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}select.input-lg{height:52px;line-height:52px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}.form-group-lg select.form-control{height:52px;line-height:52px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:52px;min-height:38px;padding:14px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:52px;height:52px;line-height:52px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:28px;height:28px;line-height:28px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#28b62c}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff851b}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ff4136}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#959595}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:8px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:28px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:8px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:18.3333329px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:5px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:7px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#555555;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#555555;background-color:#eeeeee;border-color:#e2e2e2}.btn-default:focus,.btn-default.focus{color:#555555;background-color:#d5d5d5;border-color:#a2a2a2}.btn-default:hover{color:#555555;background-color:#d5d5d5;border-color:#c3c3c3}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#555555;background-color:#d5d5d5;border-color:#c3c3c3}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#555555;background-color:#c3c3c3;border-color:#a2a2a2}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#eeeeee;border-color:#e2e2e2}.btn-default .badge{color:#eeeeee;background-color:#555555}.btn-primary{color:#ffffff;background-color:#158cba;border-color:#127ba3}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#106a8c;border-color:#052531}.btn-primary:hover{color:#ffffff;background-color:#106a8c;border-color:#0c516c}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#106a8c;border-color:#0c516c}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#0c516c;border-color:#052531}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#158cba;border-color:#127ba3}.btn-primary .badge{color:#158cba;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#28b62c;border-color:#23a127}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#1f8c22;border-color:#0c390e}.btn-success:hover{color:#ffffff;background-color:#1f8c22;border-color:#186f1b}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#1f8c22;border-color:#186f1b}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#186f1b;border-color:#0c390e}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#28b62c;border-color:#23a127}.btn-success .badge{color:#28b62c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#75caeb;border-color:#5fc1e8}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#48b9e5;border-color:#1984ae}.btn-info:hover{color:#ffffff;background-color:#48b9e5;border-color:#29ade0}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#48b9e5;border-color:#29ade0}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#29ade0;border-color:#1984ae}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#75caeb;border-color:#5fc1e8}.btn-info .badge{color:#75caeb;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff851b;border-color:#ff7701}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#e76b00;border-color:#813c00}.btn-warning:hover{color:#ffffff;background-color:#e76b00;border-color:#c35b00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#e76b00;border-color:#c35b00}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#c35b00;border-color:#813c00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#ff851b;border-color:#ff7701}.btn-warning .badge{color:#ff851b;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#ff4136;border-color:#ff291c}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#ff1103;border-color:#9c0900}.btn-danger:hover{color:#ffffff;background-color:#ff1103;border-color:#de0c00}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#ff1103;border-color:#de0c00}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#de0c00;border-color:#9c0900}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#ff4136;border-color:#ff291c}.btn-danger .badge{color:#ff4136;background-color:#ffffff}.btn-link{color:#158cba;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#158cba;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}.btn-sm,.btn-group-sm>.btn{padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:2px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid #e7e7e7;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#eeeeee}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#333333;background-color:transparent}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#158cba}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#eeeeee}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:52px;padding:13px 16px;font-size:18px;line-height:1.3333333;border-radius:5px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:52px;line-height:52px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:28px;padding:4px 10px;font-size:12px;line-height:1.5;border-radius:2px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:28px;line-height:28px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:7px 12px;font-size:14px;font-weight:normal;line-height:1;color:#555555;text-align:center;background-color:#eeeeee;border:1px solid #e7e7e7;border-radius:4px}.input-group-addon.input-sm{padding:4px 10px;font-size:12px;border-radius:2px}.input-group-addon.input-lg{padding:13px 16px;font-size:18px;border-radius:5px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#ffffff}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#ffffff;border-color:#158cba}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #e7e7e7}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #e7e7e7}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #e7e7e7;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #e7e7e7}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #e7e7e7;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#158cba}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #e7e7e7}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #e7e7e7;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:11px;margin-bottom:11px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#333333}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#333333;background-color:transparent}.navbar-default .navbar-text{color:#555555}.navbar-default .navbar-nav>li>a{color:#999999}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#eeeeee;background-color:transparent}.navbar-default .navbar-toggle{border-color:#eeeeee}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ffffff}.navbar-default .navbar-toggle .icon-bar{background-color:#999999}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#333333}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#999999}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#eeeeee;background-color:transparent}}.navbar-default .navbar-link{color:#999999}.navbar-default .navbar-link:hover{color:#333333}.navbar-default .btn-link{color:#999999}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#eeeeee}.navbar-inverse{background-color:#ffffff;border-color:#e6e6e6}.navbar-inverse .navbar-brand{color:#999999}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-text{color:#999999}.navbar-inverse .navbar-nav>li>a{color:#999999}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#eeeeee;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#eeeeee}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#eeeeee}.navbar-inverse .navbar-toggle .icon-bar{background-color:#999999}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#ededed}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#333333}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#e6e6e6}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#999999}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#eeeeee;background-color:transparent}}.navbar-inverse .navbar-link{color:#999999}.navbar-inverse .navbar-link:hover{color:#333333}.navbar-inverse .btn-link{color:#999999}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#333333}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#eeeeee}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#fafafa;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:">\00a0";padding:0 5px;color:#999999}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:7px 12px;line-height:1.42857143;text-decoration:none;color:#555555;background-color:#eeeeee;border:1px solid #e2e2e2;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#555555;background-color:#eeeeee;border-color:#e2e2e2}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#158cba;border-color:#127ba3;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#eeeeee;border-color:#e2e2e2;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:13px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:5px;border-top-left-radius:5px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:5px;border-top-right-radius:5px}.pagination-sm>li>a,.pagination-sm>li>span{padding:4px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:2px;border-top-left-radius:2px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:2px;border-top-right-radius:2px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#eeeeee;border:1px solid #e2e2e2;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#eeeeee;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#158cba}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#106a8c}.label-success{background-color:#28b62c}.label-success[href]:hover,.label-success[href]:focus{background-color:#1f8c22}.label-info{background-color:#75caeb}.label-info[href]:hover,.label-info[href]:focus{background-color:#48b9e5}.label-warning{background-color:#ff851b}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#e76b00}.label-danger{background-color:#ff4136}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#ff1103}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:normal;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#158cba;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#158cba;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#fafafa}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#e1e1e1}.container .jumbotron,.container-fluid .jumbotron{border-radius:5px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #eeeeee;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#158cba}.thumbnail .caption{padding:9px;color:#555555}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#28b62c;border-color:#24a528;color:#ffffff}.alert-success hr{border-top-color:#209023}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#75caeb;border-color:#40b5e3;color:#ffffff}.alert-info hr{border-top-color:#29ade0}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#ff851b;border-color:#ff7701;color:#ffffff}.alert-warning hr{border-top-color:#e76b00}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#ff4136;border-color:#ff1103;color:#ffffff}.alert-danger hr{border-top-color:#e90d00}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#fafafa;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#158cba;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#28b62c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#75caeb}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff851b}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ff4136}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#158cba;border-color:#158cba}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#a6dff5}.list-group-item-success{color:#ffffff;background-color:#28b62c}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#23a127}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#75caeb}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#5fc1e8}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#ff851b}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#ff7701}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#ff4136}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#ff291c}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid transparent;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid transparent}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid transparent}.panel-default{border-color:transparent}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:transparent}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-primary{border-color:transparent}.panel-primary>.panel-heading{color:#ffffff;background-color:#158cba;border-color:transparent}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-primary>.panel-heading .badge{color:#158cba;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-success{border-color:transparent}.panel-success>.panel-heading{color:#ffffff;background-color:#28b62c;border-color:transparent}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-success>.panel-heading .badge{color:#28b62c;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-info{border-color:transparent}.panel-info>.panel-heading{color:#ffffff;background-color:#75caeb;border-color:transparent}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-info>.panel-heading .badge{color:#75caeb;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-warning{border-color:transparent}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff851b;border-color:transparent}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-warning>.panel-heading .badge{color:#ff851b;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-danger{border-color:transparent}.panel-danger>.panel-heading{color:#ffffff;background-color:#ff4136;border-color:transparent}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-danger>.panel-heading .badge{color:#ff4136;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#fafafa;border:1px solid #e8e8e8;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:5px}.well-sm{padding:9px;border-radius:2px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:5px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Source Sans Pro","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:4px 4px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{border-width:0 1px 4px 1px}.btn{padding:9px 12px 7px;border-width:0 1px 4px 1px;font-size:12px;font-weight:bold;text-transform:uppercase}.btn:hover{margin-top:1px;border-bottom-width:3px}.btn:active{margin-top:2px;border-bottom-width:2px;-webkit-box-shadow:none;box-shadow:none}.btn-lg,.btn-group-lg>.btn{padding:15px 16px 13px;line-height:15px}.btn-sm,.btn-group-sm>.btn{padding:6px 10px 4px}.btn-xs,.btn-group-xs>.btn{padding:3px 5px 1px}.btn-default:hover,.btn-default:focus,.btn-group.open .dropdown-toggle.btn-default{background-color:#eeeeee;border-color:#e2e2e2}.btn-primary:hover,.btn-primary:focus,.btn-group.open .dropdown-toggle.btn-primary{background-color:#158cba;border-color:#127ba3}.btn-success:hover,.btn-success:focus,.btn-group.open .dropdown-toggle.btn-success{background-color:#28b62c;border-color:#23a127}.btn-info:hover,.btn-info:focus,.btn-group.open .dropdown-toggle.btn-info{background-color:#75caeb;border-color:#5fc1e8}.btn-warning:hover,.btn-warning:focus,.btn-group.open .dropdown-toggle.btn-warning{background-color:#ff851b;border-color:#ff7701}.btn-danger:hover,.btn-danger:focus,.btn-group.open .dropdown-toggle.btn-danger{background-color:#ff4136;border-color:#ff291c}.btn-group.open .dropdown-toggle{-webkit-box-shadow:none;box-shadow:none}.navbar-btn:hover{margin-top:8px}.navbar-btn:active{margin-top:9px}.navbar-btn.btn-sm:hover{margin-top:11px}.navbar-btn.btn-sm:active{margin-top:12px}.navbar-btn.btn-xs:hover{margin-top:15px}.navbar-btn.btn-xs:active{margin-top:16px}.btn-group-vertical .btn+.btn:hover{border-top-width:1px}.btn-group-vertical .btn+.btn:active{border-top-width:2px}.text-primary,.text-primary:hover{color:#158cba}.text-success,.text-success:hover{color:#28b62c}.text-danger,.text-danger:hover{color:#ff4136}.text-warning,.text-warning:hover{color:#ff851b}.text-info,.text-info:hover{color:#75caeb}table a:not(.btn),.table a:not(.btn){text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .success,.table .success,table .warning,.table .warning,table .danger,.table .danger,table .info,.table .info{color:#fff}table .success a:not(.btn),.table .success a:not(.btn),table .warning a:not(.btn),.table .warning a:not(.btn),table .danger a:not(.btn),.table .danger a:not(.btn),table .info a:not(.btn),.table .info a:not(.btn){color:#fff}table>thead>tr>th,.table>thead>tr>th,table>tbody>tr>th,.table>tbody>tr>th,table>tfoot>tr>th,.table>tfoot>tr>th,table>thead>tr>td,.table>thead>tr>td,table>tbody>tr>td,.table>tbody>tr>td,table>tfoot>tr>td,.table>tfoot>tr>td{border-color:transparent}.form-control{-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.075);box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}label{font-weight:normal}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#ff851b}.has-warning .form-control,.has-warning .form-control:focus{border:1px solid #ff851b;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.075);box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}.has-warning .input-group-addon{border:1px solid #ff851b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#ff4136}.has-error .form-control,.has-error .form-control:focus{border:1px solid #ff4136;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.075);box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}.has-error .input-group-addon{border:1px solid #ff4136}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#28b62c}.has-success .form-control,.has-success .form-control:focus{border:1px solid #28b62c;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.075);box-shadow:inset 0 2px 0 rgba(0,0,0,0.075)}.has-success .input-group-addon{border:1px solid #28b62c}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:transparent}.nav-tabs>li>a{margin-top:6px;border-color:#e7e7e7;color:#333333;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus,.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus,.nav-tabs .open>a,.nav-tabs .open>a:hover,.nav-tabs .open>a:focus{padding-bottom:16px;margin-top:0}.nav-tabs .open>a,.nav-tabs .open>a:hover,.nav-tabs .open>a:focus{border-color:#e7e7e7}.nav-tabs>li.disabled>a:hover,.nav-tabs>li.disabled>a:focus{padding-top:10px;padding-bottom:10px;margin-top:6px}.nav-tabs.nav-justified>li{vertical-align:bottom}.dropdown-menu{margin-top:0;border-width:0 1px 4px 1px;border-top-width:1px;-webkit-box-shadow:none;box-shadow:none}.breadcrumb{border-color:#ededed;border-style:solid;border-width:0 1px 4px 1px}.pagination>li>a,.pager>li>a,.pagination>li>span,.pager>li>span{position:relative;top:0;border-width:0 1px 4px 1px;color:#555555;font-size:12px;font-weight:bold;text-transform:uppercase}.pagination>li>a:hover,.pager>li>a:hover,.pagination>li>span:hover,.pager>li>span:hover{top:1px;border-bottom-width:3px}.pagination>li>a:active,.pager>li>a:active,.pagination>li>span:active,.pager>li>span:active{top:2px;border-bottom-width:2px}.pagination>.disabled>a:hover,.pager>.disabled>a:hover,.pagination>.disabled>span:hover,.pager>.disabled>span:hover{top:0;border-width:0 1px 4px 1px}.pagination>.disabled>a:active,.pager>.disabled>a:active,.pagination>.disabled>span:active,.pager>.disabled>span:active{top:0;border-width:0 1px 4px 1px}.pager>li>a,.pager>li>span,.pager>.disabled>a,.pager>.disabled>span,.pager>li>a:hover,.pager>li>span:hover,.pager>.disabled>a:hover,.pager>.disabled>span:hover,.pager>li>a:active,.pager>li>span:active,.pager>.disabled>a:active,.pager>.disabled>span:active{border-left-width:2px;border-right-width:2px}.close{color:#fff;text-decoration:none;opacity:0.4}.close:hover,.close:focus{color:#fff;opacity:1}.alert{border-width:0 1px 4px 1px}.alert .alert-link{font-weight:normal;color:#fff;text-decoration:underline}.label{font-weight:normal}.progress{border:1px solid #e7e7e7;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.1);box-shadow:inset 0 2px 0 rgba(0,0,0,0.1)}.progress-bar{-webkit-box-shadow:inset 0 -4px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -4px 0 rgba(0,0,0,0.15)}.well{border:1px solid #e7e7e7;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.05);box-shadow:inset 0 2px 0 rgba(0,0,0,0.05)}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:#dddddd}a.list-group-item-success.active{background-color:#28b62c}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#23a127}a.list-group-item-warning.active{background-color:#ff851b}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#ff7701}a.list-group-item-danger.active{background-color:#ff4136}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#ff291c}.jumbotron{border:1px solid #e7e7e7;-webkit-box-shadow:inset 0 2px 0 rgba(0,0,0,0.05);box-shadow:inset 0 2px 0 rgba(0,0,0,0.05)}.panel{border:1px solid #e7e7e7;border-width:0 1px 4px 1px}.panel-default .close{color:#555555}.modal .close{color:#555555}.popover{color:#555555} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/paper/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/paper/bootstrap.min.css deleted file mode 100644 index 85fffdd95d..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/paper/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto:300,400,500,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.846;color:#666666;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#2196f3;text-decoration:none}a:hover,a:focus{color:#0a6ebd;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:3px}.img-thumbnail{padding:4px;line-height:1.846;background-color:#ffffff;border:1px solid #dddddd;border-radius:3px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:23px;margin-bottom:23px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:400;line-height:1.1;color:#444444}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#bbbbbb}h1,.h1,h2,.h2,h3,.h3{margin-top:23px;margin-bottom:11.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:11.5px;margin-bottom:11.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:56px}h2,.h2{font-size:45px}h3,.h3{font-size:34px}h4,.h4{font-size:24px}h5,.h5{font-size:20px}h6,.h6{font-size:14px}p{margin:0 0 11.5px}.lead{margin-bottom:23px;font-size:14px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:19.5px}}small,.small{font-size:92%}mark,.mark{background-color:#ffe0b2;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#bbbbbb}.text-primary{color:#2196f3}a.text-primary:hover,a.text-primary:focus{color:#0c7cd5}.text-success{color:#4caf50}a.text-success:hover,a.text-success:focus{color:#3d8b40}.text-info{color:#9c27b0}a.text-info:hover,a.text-info:focus{color:#771e86}.text-warning{color:#ff9800}a.text-warning:hover,a.text-warning:focus{color:#cc7a00}.text-danger{color:#e51c23}a.text-danger:hover,a.text-danger:focus{color:#b9151b}.bg-primary{color:#fff;background-color:#2196f3}a.bg-primary:hover,a.bg-primary:focus{background-color:#0c7cd5}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#e1bee7}a.bg-info:hover,a.bg-info:focus{background-color:#d099d9}.bg-warning{background-color:#ffe0b2}a.bg-warning:hover,a.bg-warning:focus{background-color:#ffcb7f}.bg-danger{background-color:#f9bdbb}a.bg-danger:hover,a.bg-danger:focus{background-color:#f5908c}.page-header{padding-bottom:10.5px;margin:46px 0 23px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:11.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:23px}dt,dd{line-height:1.846}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #bbbbbb}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:11.5px 23px;margin:0 0 23px;font-size:16.25px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.846;color:#bbbbbb}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:23px;font-style:normal;line-height:1.846}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:3px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:11px;margin:0 0 11.5px;font-size:12px;line-height:1.846;word-break:break-all;word-wrap:break-word;color:#212121;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:3px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#bbbbbb;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:23px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.846;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#e1bee7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#d8abe0}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#ffe0b2}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#ffd699}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f9bdbb}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#f7a6a4}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:17.25px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:23px;font-size:19.5px;line-height:inherit;color:#212121;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:13px;line-height:1.846;color:#666666}.form-control{display:block;width:100%;height:37px;padding:6px 16px;font-size:13px;line-height:1.846;color:#666666;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#bbbbbb;opacity:1}.form-control:-ms-input-placeholder{color:#bbbbbb}.form-control::-webkit-input-placeholder{color:#bbbbbb}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:transparent;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:37px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:45px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:23px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:35px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}select.input-lg{height:45px;line-height:45px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}.form-group-lg select.form-control{height:45px;line-height:45px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:45px;min-height:40px;padding:11px 16px;font-size:17px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:46.25px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:37px;height:37px;line-height:37px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:45px;height:45px;line-height:45px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#4caf50}.has-success .form-control{border-color:#4caf50;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#3d8b40;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #92cf94;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #92cf94}.has-success .input-group-addon{color:#4caf50;border-color:#4caf50;background-color:#dff0d8}.has-success .form-control-feedback{color:#4caf50}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ff9800}.has-warning .form-control{border-color:#ff9800;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#cc7a00;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffc166;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ffc166}.has-warning .input-group-addon{color:#ff9800;border-color:#ff9800;background-color:#ffe0b2}.has-warning .form-control-feedback{color:#ff9800}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#e51c23}.has-error .form-control{border-color:#e51c23;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#b9151b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ef787c;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #ef787c}.has-error .input-group-addon{color:#e51c23;border-color:#e51c23;background-color:#f9bdbb}.has-error .form-control-feedback{color:#e51c23}.has-feedback label~.form-control-feedback{top:28px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#a6a6a6}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:7px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:7px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.333333px;font-size:17px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:6px 16px;font-size:13px;line-height:1.846;border-radius:3px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#444444;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#444444;background-color:#ffffff;border-color:transparent}.btn-default:focus,.btn-default.focus{color:#444444;background-color:#e6e6e6;border-color:rgba(0,0,0,0)}.btn-default:hover{color:#444444;background-color:#e6e6e6;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#444444;background-color:#e6e6e6;border-color:rgba(0,0,0,0)}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#444444;background-color:#d4d4d4;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:transparent}.btn-default .badge{color:#ffffff;background-color:#444444}.btn-primary{color:#ffffff;background-color:#2196f3;border-color:transparent}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#0c7cd5;border-color:rgba(0,0,0,0)}.btn-primary:hover{color:#ffffff;background-color:#0c7cd5;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#0c7cd5;border-color:rgba(0,0,0,0)}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#0a68b4;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#2196f3;border-color:transparent}.btn-primary .badge{color:#2196f3;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#4caf50;border-color:transparent}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#3d8b40;border-color:rgba(0,0,0,0)}.btn-success:hover{color:#ffffff;background-color:#3d8b40;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#3d8b40;border-color:rgba(0,0,0,0)}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#327334;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#4caf50;border-color:transparent}.btn-success .badge{color:#4caf50;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#9c27b0;border-color:transparent}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#771e86;border-color:rgba(0,0,0,0)}.btn-info:hover{color:#ffffff;background-color:#771e86;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#771e86;border-color:rgba(0,0,0,0)}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#5d1769;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#9c27b0;border-color:transparent}.btn-info .badge{color:#9c27b0;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#ff9800;border-color:transparent}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#cc7a00;border-color:rgba(0,0,0,0)}.btn-warning:hover{color:#ffffff;background-color:#cc7a00;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#cc7a00;border-color:rgba(0,0,0,0)}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#a86400;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#ff9800;border-color:transparent}.btn-warning .badge{color:#ff9800;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#e51c23;border-color:transparent}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#b9151b;border-color:rgba(0,0,0,0)}.btn-danger:hover{color:#ffffff;background-color:#b9151b;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#b9151b;border-color:rgba(0,0,0,0)}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#991216;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#e51c23;border-color:transparent}.btn-danger .badge{color:#e51c23;background-color:#ffffff}.btn-link{color:#2196f3;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#0a6ebd;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#bbbbbb;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:3px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:10.5px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.846;color:#666666;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#141414;background-color:#eeeeee}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#2196f3}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#bbbbbb}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.846;color:#bbbbbb;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:45px;padding:10px 16px;font-size:17px;line-height:1.3333333;border-radius:3px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:45px;line-height:45px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 16px;font-size:13px;font-weight:normal;line-height:1;color:#666666;text-align:center;background-color:transparent;border:1px solid transparent;border-radius:3px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:17px;border-radius:3px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#bbbbbb}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#bbbbbb;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#2196f3}.nav .nav-divider{height:1px;margin:10.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid transparent}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.846;border:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee transparent}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#666666;background-color:transparent;border:1px solid transparent;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid transparent}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:3px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#2196f3}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:3px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid transparent}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid transparent;border-radius:3px 3px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:64px;margin-bottom:23px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:3px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:20.5px 15px;font-size:17px;line-height:23px;height:64px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:15px;margin-bottom:15px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:3px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:10.25px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:23px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:23px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:20.5px;padding-bottom:20.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:13.5px;margin-bottom:13.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:3px;border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:13.5px;margin-bottom:13.5px}.navbar-btn.btn-sm{margin-top:17px;margin-bottom:17px}.navbar-btn.btn-xs{margin-top:21px;margin-bottom:21px}.navbar-text{margin-top:20.5px;margin-bottom:20.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#ffffff;border-color:transparent}.navbar-default .navbar-brand{color:#666666}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#212121;background-color:transparent}.navbar-default .navbar-text{color:#bbbbbb}.navbar-default .navbar-nav>li>a{color:#666666}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#212121;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#212121;background-color:#eeeeee}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:transparent}.navbar-default .navbar-toggle .icon-bar{background-color:rgba(0,0,0,0.5)}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#eeeeee;color:#212121}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#666666}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#212121;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#212121;background-color:#eeeeee}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#666666}.navbar-default .navbar-link:hover{color:#212121}.navbar-default .btn-link{color:#666666}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#212121}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#2196f3;border-color:transparent}.navbar-inverse .navbar-brand{color:#b2dbfb}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#bbbbbb}.navbar-inverse .navbar-nav>li>a{color:#b2dbfb}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#0c7cd5}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:transparent}.navbar-inverse .navbar-toggle .icon-bar{background-color:rgba(0,0,0,0.5)}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#0c84e4}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#0c7cd5;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#b2dbfb}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#0c7cd5}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#b2dbfb}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#b2dbfb}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:23px;list-style:none;background-color:#f5f5f5;border-radius:3px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#bbbbbb}.pagination{display:inline-block;padding-left:0;margin:23px 0;border-radius:3px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 16px;line-height:1.846;text-decoration:none;color:#2196f3;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#0a6ebd;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#2196f3;border-color:#2196f3;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#bbbbbb;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:17px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:23px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#bbbbbb;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#bbbbbb}.label-default[href]:hover,.label-default[href]:focus{background-color:#a2a2a2}.label-primary{background-color:#2196f3}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#0c7cd5}.label-success{background-color:#4caf50}.label-success[href]:hover,.label-success[href]:focus{background-color:#3d8b40}.label-info{background-color:#9c27b0}.label-info[href]:hover,.label-info[href]:focus{background-color:#771e86}.label-warning{background-color:#ff9800}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#cc7a00}.label-danger{background-color:#e51c23}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#b9151b}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:normal;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#bbbbbb;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#2196f3;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f9f9f9}.jumbotron h1,.jumbotron .h1{color:#444444}.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200}.jumbotron>hr{border-top-color:#e0e0e0}.container .jumbotron,.container-fluid .jumbotron{border-radius:3px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:59px}}.thumbnail{display:block;padding:4px;margin-bottom:23px;line-height:1.846;background-color:#ffffff;border:1px solid #dddddd;border-radius:3px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#2196f3}.thumbnail .caption{padding:9px;color:#666666}.alert{padding:15px;margin-bottom:23px;border:1px solid transparent;border-radius:3px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#4caf50}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#3d8b40}.alert-info{background-color:#e1bee7;border-color:#cba4dd;color:#9c27b0}.alert-info hr{border-top-color:#c191d6}.alert-info .alert-link{color:#771e86}.alert-warning{background-color:#ffe0b2;border-color:#ffc599;color:#ff9800}.alert-warning hr{border-top-color:#ffb67f}.alert-warning .alert-link{color:#cc7a00}.alert-danger{background-color:#f9bdbb;border-color:#f7a4af;color:#e51c23}.alert-danger hr{border-top-color:#f58c9a}.alert-danger .alert-link{color:#b9151b}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:23px;margin-bottom:23px;background-color:#f5f5f5;border-radius:3px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:23px;color:#ffffff;text-align:center;background-color:#2196f3;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#4caf50}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#9c27b0}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#ff9800}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#e51c23}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#bbbbbb;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#bbbbbb}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#2196f3;border-color:#2196f3}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#e3f2fd}.list-group-item-success{color:#4caf50;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#4caf50}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#4caf50;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#4caf50;border-color:#4caf50}.list-group-item-info{color:#9c27b0;background-color:#e1bee7}a.list-group-item-info,button.list-group-item-info{color:#9c27b0}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#9c27b0;background-color:#d8abe0}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#9c27b0;border-color:#9c27b0}.list-group-item-warning{color:#ff9800;background-color:#ffe0b2}a.list-group-item-warning,button.list-group-item-warning{color:#ff9800}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ff9800;background-color:#ffd699}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ff9800;border-color:#ff9800}.list-group-item-danger{color:#e51c23;background-color:#f9bdbb}a.list-group-item-danger,button.list-group-item-danger{color:#e51c23}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#e51c23;background-color:#f7a6a4}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#e51c23;border-color:#e51c23}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:23px;background-color:#ffffff;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:2px;border-top-left-radius:2px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:2px;border-top-left-radius:2px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:2px;border-top-left-radius:2px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:2px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:2px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:2px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:2px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:23px}.panel-group .panel{margin-bottom:0;border-radius:3px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#212121;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#212121}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#2196f3}.panel-primary>.panel-heading{color:#ffffff;background-color:#2196f3;border-color:#2196f3}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#2196f3}.panel-primary>.panel-heading .badge{color:#2196f3;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#2196f3}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#ffffff;background-color:#4caf50;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#4caf50;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#cba4dd}.panel-info>.panel-heading{color:#ffffff;background-color:#9c27b0;border-color:#cba4dd}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#cba4dd}.panel-info>.panel-heading .badge{color:#9c27b0;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#cba4dd}.panel-warning{border-color:#ffc599}.panel-warning>.panel-heading{color:#ffffff;background-color:#ff9800;border-color:#ffc599}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ffc599}.panel-warning>.panel-heading .badge{color:#ff9800;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ffc599}.panel-danger{border-color:#f7a4af}.panel-danger>.panel-heading{color:#ffffff;background-color:#e51c23;border-color:#f7a4af}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f7a4af}.panel-danger>.panel-heading .badge{color:#e51c23;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f7a4af}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f9f9f9;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:3px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:19.5px;font-weight:normal;line-height:1;color:#000000;text-shadow:none;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid transparent;min-height:16.846px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.846}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid transparent}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.846;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#727272;border-radius:3px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#727272}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#727272}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#727272}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#727272}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#727272}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#727272}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#727272}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#727272}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.846;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid transparent;border-radius:3px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:13px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:2px 2px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:rgba(0,0,0,0);border-top-color:rgba(0,0,0,0.075);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:rgba(0,0,0,0);border-right-color:rgba(0,0,0,0.075)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,0);border-bottom-color:rgba(0,0,0,0.075);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:rgba(0,0,0,0);border-left-color:rgba(0,0,0,0.075)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{border:none;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.3);box-shadow:0 1px 2px rgba(0,0,0,0.3)}.navbar-brand{font-size:24px}.navbar-inverse .form-control{color:#fff}.navbar-inverse .form-control::-moz-placeholder{color:#b2dbfb;opacity:1}.navbar-inverse .form-control:-ms-input-placeholder{color:#b2dbfb}.navbar-inverse .form-control::-webkit-input-placeholder{color:#b2dbfb}.navbar-inverse .form-control[type=text],.navbar-inverse .form-control[type=password]{-webkit-box-shadow:inset 0 -1px 0 #b2dbfb;box-shadow:inset 0 -1px 0 #b2dbfb}.navbar-inverse .form-control[type=text]:focus,.navbar-inverse .form-control[type=password]:focus{-webkit-box-shadow:inset 0 -2px 0 #fff;box-shadow:inset 0 -2px 0 #fff}.btn-default{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-default:focus{background-color:#ffffff}.btn-default:hover,.btn-default:active:hover{background-color:#f0f0f0}.btn-default:active{background-color:#e0e0e0;background-image:-webkit-radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-image:-o-radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-image:radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-primary{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-primary:focus{background-color:#2196f3}.btn-primary:hover,.btn-primary:active:hover{background-color:#0d87e9}.btn-primary:active{background-color:#0b76cc;background-image:-webkit-radial-gradient(circle, #0b76cc 10%, #2196f3 11%);background-image:-o-radial-gradient(circle, #0b76cc 10%, #2196f3 11%);background-image:radial-gradient(circle, #0b76cc 10%, #2196f3 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-success{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-success:focus{background-color:#4caf50}.btn-success:hover,.btn-success:active:hover{background-color:#439a46}.btn-success:active{background-color:#39843c;background-image:-webkit-radial-gradient(circle, #39843c 10%, #4caf50 11%);background-image:-o-radial-gradient(circle, #39843c 10%, #4caf50 11%);background-image:radial-gradient(circle, #39843c 10%, #4caf50 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-info{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-info:focus{background-color:#9c27b0}.btn-info:hover,.btn-info:active:hover{background-color:#862197}.btn-info:active{background-color:#701c7e;background-image:-webkit-radial-gradient(circle, #701c7e 10%, #9c27b0 11%);background-image:-o-radial-gradient(circle, #701c7e 10%, #9c27b0 11%);background-image:radial-gradient(circle, #701c7e 10%, #9c27b0 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-warning{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-warning:focus{background-color:#ff9800}.btn-warning:hover,.btn-warning:active:hover{background-color:#e08600}.btn-warning:active{background-color:#c27400;background-image:-webkit-radial-gradient(circle, #c27400 10%, #ff9800 11%);background-image:-o-radial-gradient(circle, #c27400 10%, #ff9800 11%);background-image:radial-gradient(circle, #c27400 10%, #ff9800 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-danger{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-danger:focus{background-color:#e51c23}.btn-danger:hover,.btn-danger:active:hover{background-color:#cb171e}.btn-danger:active{background-color:#b0141a;background-image:-webkit-radial-gradient(circle, #b0141a 10%, #e51c23 11%);background-image:-o-radial-gradient(circle, #b0141a 10%, #e51c23 11%);background-image:radial-gradient(circle, #b0141a 10%, #e51c23 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn-link{-webkit-background-size:200% 200%;background-size:200%;background-position:50%}.btn-link:focus{background-color:#ffffff}.btn-link:hover,.btn-link:active:hover{background-color:#f0f0f0}.btn-link:active{background-color:#e0e0e0;background-image:-webkit-radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-image:-o-radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-image:radial-gradient(circle, #e0e0e0 10%, #fff 11%);background-repeat:no-repeat;-webkit-background-size:1000% 1000%;background-size:1000%;-webkit-box-shadow:2px 2px 4px rgba(0,0,0,0.4);box-shadow:2px 2px 4px rgba(0,0,0,0.4)}.btn{text-transform:uppercase;border:none;-webkit-box-shadow:1px 1px 4px rgba(0,0,0,0.4);box-shadow:1px 1px 4px rgba(0,0,0,0.4);-webkit-transition:all 0.4s;-o-transition:all 0.4s;transition:all 0.4s}.btn-link{border-radius:3px;-webkit-box-shadow:none;box-shadow:none;color:#444444}.btn-link:hover,.btn-link:focus{-webkit-box-shadow:none;box-shadow:none;color:#444444;text-decoration:none}.btn-default.disabled{background-color:rgba(0,0,0,0.1);color:rgba(0,0,0,0.4);opacity:1}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:0}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:0}body{-webkit-font-smoothing:antialiased;letter-spacing:.1px}p{margin:0 0 1em}input,button{-webkit-font-smoothing:antialiased;letter-spacing:.1px}a{-webkit-transition:all 0.2s;-o-transition:all 0.2s;transition:all 0.2s}.table-hover>tbody>tr,.table-hover>tbody>tr>th,.table-hover>tbody>tr>td{-webkit-transition:all 0.2s;-o-transition:all 0.2s;transition:all 0.2s}label{font-weight:normal}textarea,textarea.form-control,input.form-control,input[type=text],input[type=password],input[type=email],input[type=number],[type=text].form-control,[type=password].form-control,[type=email].form-control,[type=tel].form-control,[contenteditable].form-control{padding:0;border:none;border-radius:0;-webkit-appearance:none;-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;font-size:16px}textarea:focus,textarea.form-control:focus,input.form-control:focus,input[type=text]:focus,input[type=password]:focus,input[type=email]:focus,input[type=number]:focus,[type=text].form-control:focus,[type=password].form-control:focus,[type=email].form-control:focus,[type=tel].form-control:focus,[contenteditable].form-control:focus{-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3}textarea[disabled],textarea.form-control[disabled],input.form-control[disabled],input[type=text][disabled],input[type=password][disabled],input[type=email][disabled],input[type=number][disabled],[type=text].form-control[disabled],[type=password].form-control[disabled],[type=email].form-control[disabled],[type=tel].form-control[disabled],[contenteditable].form-control[disabled],textarea[readonly],textarea.form-control[readonly],input.form-control[readonly],input[type=text][readonly],input[type=password][readonly],input[type=email][readonly],input[type=number][readonly],[type=text].form-control[readonly],[type=password].form-control[readonly],[type=email].form-control[readonly],[type=tel].form-control[readonly],[contenteditable].form-control[readonly]{-webkit-box-shadow:none;box-shadow:none;border-bottom:1px dotted #ddd}textarea.input-sm,textarea.form-control.input-sm,input.form-control.input-sm,input[type=text].input-sm,input[type=password].input-sm,input[type=email].input-sm,input[type=number].input-sm,[type=text].form-control.input-sm,[type=password].form-control.input-sm,[type=email].form-control.input-sm,[type=tel].form-control.input-sm,[contenteditable].form-control.input-sm{font-size:12px}textarea.input-lg,textarea.form-control.input-lg,input.form-control.input-lg,input[type=text].input-lg,input[type=password].input-lg,input[type=email].input-lg,input[type=number].input-lg,[type=text].form-control.input-lg,[type=password].form-control.input-lg,[type=email].form-control.input-lg,[type=tel].form-control.input-lg,[contenteditable].form-control.input-lg{font-size:17px}select,select.form-control{border:0;border-radius:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-left:0;padding-right:0\9;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEVmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmaP/QSjAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=);-webkit-background-size:13px 13px;background-size:13px;background-repeat:no-repeat;background-position:right center;-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;font-size:16px;line-height:1.5}select::-ms-expand,select.form-control::-ms-expand{display:none}select.input-sm,select.form-control.input-sm{font-size:12px}select.input-lg,select.form-control.input-lg{font-size:17px}select:focus,select.form-control:focus{-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAaCAMAAACelLz8AAAAJ1BMVEUhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISEhISF8S9ewAAAADHRSTlMAAgMJC0uWpKa6wMxMdjkoAAAANUlEQVR4AeXJyQEAERAAsNl7Hf3X6xt0QL6JpZWq30pdvdadme+0PMdzvHm8YThHcT1H7K0BtOMDniZhWOgAAAAASUVORK5CYII=)}select[multiple],select.form-control[multiple]{background:none}.radio label,.radio-inline label,.checkbox label,.checkbox-inline label{padding-left:25px}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="radio"],.checkbox-inline input[type="radio"],.radio input[type="checkbox"],.radio-inline input[type="checkbox"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{margin-left:-25px}input[type="radio"],.radio input[type="radio"],.radio-inline input[type="radio"]{position:relative;margin-top:6px;margin-right:4px;vertical-align:top;border:none;background-color:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}input[type="radio"]:focus,.radio input[type="radio"]:focus,.radio-inline input[type="radio"]:focus{outline:none}input[type="radio"]:before,.radio input[type="radio"]:before,.radio-inline input[type="radio"]:before,input[type="radio"]:after,.radio input[type="radio"]:after,.radio-inline input[type="radio"]:after{content:"";display:block;width:18px;height:18px;border-radius:50%;-webkit-transition:240ms;-o-transition:240ms;transition:240ms}input[type="radio"]:before,.radio input[type="radio"]:before,.radio-inline input[type="radio"]:before{position:absolute;left:0;top:-3px;background-color:#2196f3;-webkit-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0)}input[type="radio"]:after,.radio input[type="radio"]:after,.radio-inline input[type="radio"]:after{position:relative;top:-3px;border:2px solid #666666}input[type="radio"]:checked:before,.radio input[type="radio"]:checked:before,.radio-inline input[type="radio"]:checked:before{-webkit-transform:scale(.5);-ms-transform:scale(.5);-o-transform:scale(.5);transform:scale(.5)}input[type="radio"]:disabled:checked:before,.radio input[type="radio"]:disabled:checked:before,.radio-inline input[type="radio"]:disabled:checked:before{background-color:#bbbbbb}input[type="radio"]:checked:after,.radio input[type="radio"]:checked:after,.radio-inline input[type="radio"]:checked:after{border-color:#2196f3}input[type="radio"]:disabled:after,.radio input[type="radio"]:disabled:after,.radio-inline input[type="radio"]:disabled:after,input[type="radio"]:disabled:checked:after,.radio input[type="radio"]:disabled:checked:after,.radio-inline input[type="radio"]:disabled:checked:after{border-color:#bbbbbb}input[type="checkbox"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:relative;border:none;margin-bottom:-4px;-webkit-appearance:none;appearance:none;cursor:pointer}input[type="checkbox"]:focus,.checkbox input[type="checkbox"]:focus,.checkbox-inline input[type="checkbox"]:focus{outline:none}input[type="checkbox"]:focus:after,.checkbox input[type="checkbox"]:focus:after,.checkbox-inline input[type="checkbox"]:focus:after{border-color:#2196f3}input[type="checkbox"]:after,.checkbox input[type="checkbox"]:after,.checkbox-inline input[type="checkbox"]:after{content:"";display:block;width:18px;height:18px;margin-top:-2px;margin-right:5px;border:2px solid #666666;border-radius:2px;-webkit-transition:240ms;-o-transition:240ms;transition:240ms}input[type="checkbox"]:checked:before,.checkbox input[type="checkbox"]:checked:before,.checkbox-inline input[type="checkbox"]:checked:before{content:"";position:absolute;top:0;left:6px;display:table;width:6px;height:12px;border:2px solid #fff;border-top-width:0;border-left-width:0;-webkit-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg)}input[type="checkbox"]:checked:after,.checkbox input[type="checkbox"]:checked:after,.checkbox-inline input[type="checkbox"]:checked:after{background-color:#2196f3;border-color:#2196f3}input[type="checkbox"]:disabled:after,.checkbox input[type="checkbox"]:disabled:after,.checkbox-inline input[type="checkbox"]:disabled:after{border-color:#bbbbbb}input[type="checkbox"]:disabled:checked:after,.checkbox input[type="checkbox"]:disabled:checked:after,.checkbox-inline input[type="checkbox"]:disabled:checked:after{background-color:#bbbbbb;border-color:transparent}.has-warning input:not([type=checkbox]),.has-warning .form-control,.has-warning input.form-control[readonly],.has-warning input[type=text][readonly],.has-warning [type=text].form-control[readonly],.has-warning input:not([type=checkbox]):focus,.has-warning .form-control:focus{border-bottom:none;-webkit-box-shadow:inset 0 -2px 0 #ff9800;box-shadow:inset 0 -2px 0 #ff9800}.has-error input:not([type=checkbox]),.has-error .form-control,.has-error input.form-control[readonly],.has-error input[type=text][readonly],.has-error [type=text].form-control[readonly],.has-error input:not([type=checkbox]):focus,.has-error .form-control:focus{border-bottom:none;-webkit-box-shadow:inset 0 -2px 0 #e51c23;box-shadow:inset 0 -2px 0 #e51c23}.has-success input:not([type=checkbox]),.has-success .form-control,.has-success input.form-control[readonly],.has-success input[type=text][readonly],.has-success [type=text].form-control[readonly],.has-success input:not([type=checkbox]):focus,.has-success .form-control:focus{border-bottom:none;-webkit-box-shadow:inset 0 -2px 0 #4caf50;box-shadow:inset 0 -2px 0 #4caf50}.has-warning .input-group-addon,.has-error .input-group-addon,.has-success .input-group-addon{color:#666666;border-color:transparent;background-color:transparent}.nav-tabs>li>a,.nav-tabs>li>a:focus{margin-right:0;background-color:transparent;border:none;color:#666666;-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;-webkit-transition:all 0.2s;-o-transition:all 0.2s;transition:all 0.2s}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus:hover{background-color:transparent;-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3;color:#2196f3}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus{border:none;-webkit-box-shadow:inset 0 -2px 0 #2196f3;box-shadow:inset 0 -2px 0 #2196f3;color:#2196f3}.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus:hover{border:none;color:#2196f3}.nav-tabs>li.disabled>a{-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd}.nav-tabs.nav-justified>li>a,.nav-tabs.nav-justified>li>a:hover,.nav-tabs.nav-justified>li>a:focus,.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:none}.nav-tabs .dropdown-menu{margin-top:0}.dropdown-menu{margin-top:0;border:none;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.3);box-shadow:0 1px 4px rgba(0,0,0,0.3)}.alert{border:none;color:#fff}.alert-success{background-color:#4caf50}.alert-info{background-color:#9c27b0}.alert-warning{background-color:#ff9800}.alert-danger{background-color:#e51c23}.alert a:not(.close),.alert .alert-link{color:#fff;font-weight:bold}.alert .close{color:#fff}.badge{padding:3px 6px 5px}.progress{position:relative;z-index:1;height:6px;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.progress-bar{-webkit-box-shadow:none;box-shadow:none}.progress-bar:last-child{border-radius:0 3px 3px 0}.progress-bar:last-child:before{display:block;content:"";position:absolute;width:100%;height:100%;left:0;right:0;z-index:-1;background-color:#cae6fc}.progress-bar-success:last-child.progress-bar:before{background-color:#c7e7c8}.progress-bar-info:last-child.progress-bar:before{background-color:#edc9f3}.progress-bar-warning:last-child.progress-bar:before{background-color:#ffe0b3}.progress-bar-danger:last-child.progress-bar:before{background-color:#f28e92}.close{font-size:34px;font-weight:300;line-height:24px;opacity:0.6;-webkit-transition:all 0.2s;-o-transition:all 0.2s;transition:all 0.2s}.close:hover{opacity:1}.list-group-item{padding:15px}.list-group-item-text{color:#bbbbbb}.well{border-radius:0;-webkit-box-shadow:none;box-shadow:none}.panel{border:none;border-radius:2px;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.3);box-shadow:0 1px 4px rgba(0,0,0,0.3)}.panel-heading{border-bottom:none}.panel-footer{border-top:none}.popover{border:none;-webkit-box-shadow:0 1px 4px rgba(0,0,0,0.3);box-shadow:0 1px 4px rgba(0,0,0,0.3)}.carousel-caption h1,.carousel-caption h2,.carousel-caption h3,.carousel-caption h4,.carousel-caption h5,.carousel-caption h6{color:inherit} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/readable/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/readable/bootstrap.min.css deleted file mode 100644 index 3fb40860a3..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/readable/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Raleway:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:Georgia,"Times New Roman",Times,serif;font-size:16px;line-height:1.42857143;color:#333333;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#4582ec;text-decoration:none}a:hover,a:focus{color:#134fb8;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:22px;margin-bottom:22px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#b3b3b3}h1,.h1,h2,.h2,h3,.h3{margin-top:22px;margin-bottom:11px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:11px;margin-bottom:11px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:41px}h2,.h2{font-size:34px}h3,.h3{font-size:28px}h4,.h4{font-size:20px}h5,.h5{font-size:16px}h6,.h6{font-size:14px}p{margin:0 0 11px}.lead{margin-bottom:22px;font-size:18px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:24px}}small,.small{font-size:87%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#b3b3b3}.text-primary{color:#4582ec}a.text-primary:hover,a.text-primary:focus{color:#1863e6}.text-success{color:#3fad46}a.text-success:hover,a.text-success:focus{color:#318837}.text-info{color:#5bc0de}a.text-info:hover,a.text-info:focus{color:#31b0d5}.text-warning{color:#f0ad4e}a.text-warning:hover,a.text-warning:focus{color:#ec971f}.text-danger{color:#d9534f}a.text-danger:hover,a.text-danger:focus{color:#c9302c}.bg-primary{color:#fff;background-color:#4582ec}a.bg-primary:hover,a.bg-primary:focus{background-color:#1863e6}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:10px;margin:44px 0 22px;border-bottom:1px solid #dddddd}ul,ol{margin-top:0;margin-bottom:11px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:22px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #b3b3b3}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:11px 22px;margin:0 0 22px;font-size:20px;border-left:5px solid #4582ec}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#333333}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #4582ec;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:22px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10.5px;margin:0 0 11px;font-size:15px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#b3b3b3;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:22px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:16.5px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:22px;font-size:24px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:16px;line-height:1.42857143;color:#333333}.form-control{display:block;width:100%;height:40px;padding:8px 12px;font-size:16px;line-height:1.42857143;color:#333333;background-color:#ffffff;background-image:none;border:1px solid #dddddd;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#b3b3b3;opacity:1}.form-control:-ms-input-placeholder{color:#b3b3b3}.form-control::-webkit-input-placeholder{color:#b3b3b3}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:40px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:33px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:57px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:22px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:38px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:33px;padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}select.input-sm{height:33px;line-height:33px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:33px;padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:33px;line-height:33px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:33px;min-height:36px;padding:6px 10px;font-size:14px;line-height:1.5}.input-lg{height:57px;padding:14px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}select.input-lg{height:57px;line-height:57px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:57px;padding:14px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:57px;line-height:57px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:57px;min-height:42px;padding:15px 16px;font-size:20px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:50px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:40px;height:40px;line-height:40px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:57px;height:57px;line-height:57px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:33px;height:33px;line-height:33px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3fad46}.has-success .form-control{border-color:#3fad46;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#318837;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #81d186;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #81d186}.has-success .input-group-addon{color:#3fad46;border-color:#3fad46;background-color:#dff0d8}.has-success .form-control-feedback{color:#3fad46}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#f0ad4e}.has-warning .form-control{border-color:#f0ad4e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#ec971f;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f8d9ac;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f8d9ac}.has-warning .input-group-addon{color:#f0ad4e;border-color:#f0ad4e;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#f0ad4e}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#d9534f}.has-error .form-control{border-color:#d9534f;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#c9302c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3}.has-error .input-group-addon{color:#d9534f;border-color:#d9534f;background-color:#f2dede}.has-error .form-control-feedback{color:#d9534f}.has-feedback label~.form-control-feedback{top:27px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:31px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:20px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:14px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:16px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333333;background-color:#ffffff;border-color:#dddddd}.btn-default:focus,.btn-default.focus{color:#333333;background-color:#e6e6e6;border-color:#9d9d9d}.btn-default:hover{color:#333333;background-color:#e6e6e6;border-color:#bebebe}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333333;background-color:#e6e6e6;border-color:#bebebe}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#333333;background-color:#d4d4d4;border-color:#9d9d9d}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#ffffff;border-color:#dddddd}.btn-default .badge{color:#ffffff;background-color:#333333}.btn-primary{color:#ffffff;background-color:#4582ec;border-color:#4582ec}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#1863e6;border-color:#1045a1}.btn-primary:hover{color:#ffffff;background-color:#1863e6;border-color:#175fdd}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#1863e6;border-color:#175fdd}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1455c6;border-color:#1045a1}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#4582ec;border-color:#4582ec}.btn-primary .badge{color:#4582ec;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#3fad46;border-color:#3fad46}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#318837;border-color:#1d5020}.btn-success:hover{color:#ffffff;background-color:#318837;border-color:#2f8034}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#318837;border-color:#2f8034}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#286d2c;border-color:#1d5020}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#3fad46;border-color:#3fad46}.btn-success .badge{color:#3fad46;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#31b0d5;border-color:#1f7e9a}.btn-info:hover{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#269abc;border-color:#1f7e9a}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#5bc0de}.btn-info .badge{color:#5bc0de;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#ec971f;border-color:#b06d0f}.btn-warning:hover{color:#ffffff;background-color:#ec971f;border-color:#eb9316}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#ec971f;border-color:#eb9316}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#d58512;border-color:#b06d0f}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#f0ad4e}.btn-warning .badge{color:#f0ad4e;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#d9534f;border-color:#d9534f}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#c9302c;border-color:#8b211e}.btn-danger:hover{color:#ffffff;background-color:#c9302c;border-color:#c12e2a}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#c9302c;border-color:#c12e2a}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#ac2925;border-color:#8b211e}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d9534f}.btn-danger .badge{color:#d9534f;background-color:#ffffff}.btn-link{color:#4582ec;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#134fb8;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#b3b3b3;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:14px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:16px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:10px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#4582ec}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#4582ec}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#b3b3b3}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:14px;line-height:1.42857143;color:#b3b3b3;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:57px;padding:14px 16px;font-size:20px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:57px;line-height:57px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:33px;padding:5px 10px;font-size:14px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:33px;line-height:33px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:16px;font-weight:normal;line-height:1;color:#333333;text-align:center;background-color:#eeeeee;border:1px solid #dddddd;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:14px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:20px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#b3b3b3}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#b3b3b3;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#4582ec}.nav .nav-divider{height:1px;margin:10px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555555;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#4582ec}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:65px;margin-bottom:22px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:21.5px 15px;font-size:20px;line-height:22px;height:65px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:15.5px;margin-bottom:15.5px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:10.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:22px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:22px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:21.5px;padding-bottom:21.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:12.5px;margin-bottom:12.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:12.5px;margin-bottom:12.5px}.navbar-btn.btn-sm{margin-top:16px;margin-bottom:16px}.navbar-btn.btn-xs{margin-top:21.5px;margin-bottom:21.5px}.navbar-text{margin-top:21.5px;margin-bottom:21.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#ffffff;border-color:#dddddd}.navbar-default .navbar-brand{color:#4582ec}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-text{color:#333333}.navbar-default .navbar-nav>li>a{color:#4582ec}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#333333;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#dddddd}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#4582ec}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#4582ec}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#4582ec;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#333333;background-color:transparent}}.navbar-default .navbar-link{color:#4582ec}.navbar-default .navbar-link:hover{color:#4582ec}.navbar-default .btn-link{color:#4582ec}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#4582ec}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#333333}.navbar-inverse{background-color:#ffffff;border-color:#dddddd}.navbar-inverse .navbar-brand{color:#333333}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-text{color:#333333}.navbar-inverse .navbar-nav>li>a{color:#333333}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#dddddd}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#dddddd}.navbar-inverse .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#ededed}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#333333}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#dddddd}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#dddddd}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#333333}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#333333;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#333333}.navbar-inverse .navbar-link:hover{color:#333333}.navbar-inverse .btn-link{color:#333333}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#333333}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:22px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#b3b3b3}.pagination{display:inline-block;padding-left:0;margin:22px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#333333;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:#4582ec;border-color:#4582ec}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#4582ec;border-color:#4582ec;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#b3b3b3;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:20px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:14px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:22px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#4582ec}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#b3b3b3;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#ffffff}.label-default[href]:hover,.label-default[href]:focus{background-color:#e6e6e6}.label-primary{background-color:#4582ec}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#1863e6}.label-success{background-color:#3fad46}.label-success[href]:hover,.label-success[href]:focus{background-color:#318837}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:14px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#4582ec;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#4582ec;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f7f7f7}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:24px;font-weight:200}.jumbotron>hr{border-top-color:#dedede}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:72px}}.thumbnail{display:block;padding:4px;margin-bottom:22px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#4582ec}.thumbnail .caption{padding:9px;color:#333333}.alert{padding:15px;margin-bottom:22px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#3fad46;border-color:#3fad46;color:#ffffff}.alert-success hr{border-top-color:#389a3e}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#5bc0de;color:#ffffff}.alert-info hr{border-top-color:#46b8da}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#f0ad4e;border-color:#f0ad4e;color:#ffffff}.alert-warning hr{border-top-color:#eea236}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#d9534f;border-color:#d9534f;color:#ffffff}.alert-danger hr{border-top-color:#d43f3a}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:22px;margin-bottom:22px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:14px;line-height:22px;color:#ffffff;text-align:center;background-color:#4582ec;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#3fad46}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#b3b3b3;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#b3b3b3}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#4582ec;border-color:#4582ec}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#fefeff}.list-group-item-success{color:#3fad46;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3fad46}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#3fad46;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#3fad46;border-color:#3fad46}.list-group-item-info{color:#5bc0de;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#5bc0de}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#5bc0de;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.list-group-item-warning{color:#f0ad4e;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#f0ad4e}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#f0ad4e;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#f0ad4e;border-color:#f0ad4e}.list-group-item-danger{color:#d9534f;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#d9534f}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#d9534f;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#d9534f;border-color:#d9534f}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:22px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:18px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#ffffff;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:22px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#4582ec}.panel-primary>.panel-heading{color:#ffffff;background-color:#4582ec;border-color:#4582ec}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#4582ec}.panel-primary>.panel-heading .badge{color:#4582ec;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#4582ec}.panel-success{border-color:#3fad46}.panel-success>.panel-heading{color:#ffffff;background-color:#3fad46;border-color:#3fad46}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3fad46}.panel-success>.panel-heading .badge{color:#3fad46;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3fad46}.panel-info{border-color:#5bc0de}.panel-info>.panel-heading{color:#ffffff;background-color:#5bc0de;border-color:#5bc0de}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#5bc0de}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#5bc0de}.panel-warning{border-color:#f0ad4e}.panel-warning>.panel-heading{color:#ffffff;background-color:#f0ad4e;border-color:#f0ad4e}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#f0ad4e}.panel-warning>.panel-heading .badge{color:#f0ad4e;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#f0ad4e}.panel-danger{border-color:#d9534f}.panel-danger>.panel-heading{color:#ffffff;background-color:#d9534f;border-color:#d9534f}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d9534f}.panel-danger>.panel-heading .badge{color:#d9534f;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d9534f}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f7f7f7;border:1px solid #e5e5e5;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:24px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:Georgia,"Times New Roman",Times,serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:16px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:16px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.navbar-nav,.navbar-form{margin-left:0;margin-right:0}.navbar-nav>li>a{margin:12.5px 6px;padding:8px 12px;border:1px solid transparent;border-radius:4px}.navbar-nav>li>a:hover{border:1px solid #ddd}.navbar-nav>.active>a,.navbar-nav>.active>a:hover{border:1px solid #ddd}.navbar-default .navbar-nav>.active>a:hover{color:#4582ec}.navbar-inverse .navbar-nav>.active>a:hover{color:#333333}.navbar-brand{padding-top:12.5px;padding-bottom:12.5px;line-height:1.9}@media (min-width:768px){.navbar .navbar-nav>li>a{padding:8px 12px}}@media (max-width:768px - 1){.navbar .navbar-nav>li>a{margin:0}}.btn{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}legend{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.input-group-addon{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border:1px solid #ddd}.pagination{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 24px}.pager{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif}.pager a{color:#333333}.pager a:hover{border-color:transparent;color:#fff}.pager .disabled a{border-color:#dddddd}.close{color:#fff;text-decoration:none;text-shadow:none;opacity:0.4}.close:hover,.close:focus{color:#fff;opacity:1}.alert .alert-link{color:#ffffff;text-decoration:underline}.label{font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:normal}.label-default{border:1px solid #ddd;color:#333333}.badge{padding:1px 7px 5px;vertical-align:2px;font-family:"Raleway","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:normal}.panel{-webkit-box-shadow:none;box-shadow:none}.panel-default .close{color:#333333}.modal .close{color:#333333} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/sandstone/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/sandstone/bootstrap.min.css deleted file mode 100644 index 48ff1700ef..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/sandstone/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Roboto:400,500");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#3e3f3a;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#93c54b;text-decoration:none}a:hover,a:focus{color:#79a736;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#f8f5f0;border:1px solid #dfd7ca;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #f8f5f0}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:400;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#98978b}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#98978b}.text-primary{color:#325d88}a.text-primary:hover,a.text-primary:focus{color:#244363}.text-success{color:#93c54b}a.text-success:hover,a.text-success:focus{color:#79a736}.text-info{color:#29abe0}a.text-info:hover,a.text-info:focus{color:#1b8dbb}.text-warning{color:#f47c3c}a.text-warning:hover,a.text-warning:focus{color:#ef5c0e}.text-danger{color:#d9534f}a.text-danger:hover,a.text-danger:focus{color:#c9302c}.bg-primary{color:#fff;background-color:#325d88}a.bg-primary:hover,a.bg-primary:focus{background-color:#244363}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #f8f5f0}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #98978b}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #dfd7ca}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#3e3f3a}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #dfd7ca;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#8e8c84;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#98978b;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dfd7ca}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dfd7ca}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dfd7ca}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dfd7ca}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dfd7ca}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f8f5f0}.table-hover>tbody>tr:hover{background-color:#f8f5f0}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f8f5f0}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#f0e9df}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dfd7ca}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:inherit;border:0;border-bottom:1px solid transparent}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:13px;font-size:14px;line-height:1.42857143;color:#3e3f3a}.form-control{display:block;width:100%;height:46px;padding:12px 16px;font-size:14px;line-height:1.42857143;color:#3e3f3a;background-color:#ffffff;background-image:none;border:1px solid #dfd7ca;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:transparent;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6)}.form-control::-moz-placeholder{color:#dfd7ca;opacity:1}.form-control:-ms-input-placeholder{color:#dfd7ca}.form-control::-webkit-input-placeholder{color:#dfd7ca}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#f8f5f0;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:46px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:66px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:13px;padding-bottom:13px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:66px;padding:20px 30px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:66px;line-height:66px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:66px;padding:20px 30px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:66px;line-height:66px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:66px;min-height:38px;padding:21px 30px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:57.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:46px;height:46px;line-height:46px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:66px;height:66px;line-height:66px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#93c54b}.has-success .form-control{border-color:#93c54b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#79a736;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c1de98;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #c1de98}.has-success .input-group-addon{color:#93c54b;border-color:#93c54b;background-color:#dff0d8}.has-success .form-control-feedback{color:#93c54b}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#f47c3c}.has-warning .form-control{border-color:#f47c3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#ef5c0e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f9bd9d;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f9bd9d}.has-warning .input-group-addon{color:#f47c3c;border-color:#f47c3c;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#f47c3c}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#d9534f}.has-error .form-control{border-color:#d9534f;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#c9302c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #eba5a3}.has-error .input-group-addon{color:#d9534f;border-color:#d9534f;background-color:#f2dede}.has-error .form-control-feedback{color:#d9534f}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#7f8177}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:13px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:33px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:13px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:27.666666px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:12px 16px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#3e3f3a;border-color:transparent}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#242422;border-color:rgba(0,0,0,0)}.btn-default:hover{color:#ffffff;background-color:#242422;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#242422;border-color:rgba(0,0,0,0)}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#121210;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#3e3f3a;border-color:transparent}.btn-default .badge{color:#3e3f3a;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#325d88;border-color:transparent}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#244363;border-color:rgba(0,0,0,0)}.btn-primary:hover{color:#ffffff;background-color:#244363;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#244363;border-color:rgba(0,0,0,0)}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#1b3249;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#325d88;border-color:transparent}.btn-primary .badge{color:#325d88;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#93c54b;border-color:transparent}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#79a736;border-color:rgba(0,0,0,0)}.btn-success:hover{color:#ffffff;background-color:#79a736;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#79a736;border-color:rgba(0,0,0,0)}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#658c2d;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#93c54b;border-color:transparent}.btn-success .badge{color:#93c54b;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#29abe0;border-color:transparent}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#1b8dbb;border-color:rgba(0,0,0,0)}.btn-info:hover{color:#ffffff;background-color:#1b8dbb;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#1b8dbb;border-color:rgba(0,0,0,0)}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#17759c;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#29abe0;border-color:transparent}.btn-info .badge{color:#29abe0;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f47c3c;border-color:transparent}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#ef5c0e;border-color:rgba(0,0,0,0)}.btn-warning:hover{color:#ffffff;background-color:#ef5c0e;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#ef5c0e;border-color:rgba(0,0,0,0)}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#ce4f0c;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f47c3c;border-color:transparent}.btn-warning .badge{color:#f47c3c;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#d9534f;border-color:transparent}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:hover{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#ac2925;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:transparent}.btn-danger .badge{color:#d9534f;background-color:#ffffff}.btn-link{color:#93c54b;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#79a736;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#dfd7ca;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:20px 30px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #dfd7ca;border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#f8f5f0}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#98978b;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#98978b;background-color:#f8f5f0}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#98978b;text-decoration:none;outline:0;background-color:#f8f5f0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#dfd7ca}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#dfd7ca;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:66px;padding:20px 30px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:66px;line-height:66px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:12px 16px;font-size:14px;font-weight:normal;line-height:1;color:#3e3f3a;text-align:center;background-color:#f8f5f0;border:1px solid #dfd7ca;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:20px 30px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#f8f5f0}.nav>li.disabled>a{color:#dfd7ca}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#dfd7ca;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#f8f5f0;border-color:#93c54b}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dfd7ca}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#dfd7ca #dfd7ca #dfd7ca}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#98978b;background-color:#ffffff;border:1px solid #dfd7ca;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dfd7ca}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dfd7ca;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#98978b;background-color:#f8f5f0}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dfd7ca}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dfd7ca;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:60px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:20px 15px;font-size:18px;line-height:20px;height:60px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:13px;margin-bottom:13px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:10px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:20px;padding-bottom:20px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:7px;margin-bottom:7px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:7px;margin-bottom:7px}.navbar-btn.btn-sm{margin-top:15px;margin-bottom:15px}.navbar-btn.btn-xs{margin-top:19px;margin-bottom:19px}.navbar-text{margin-top:20px;margin-bottom:20px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#3e3f3a;border-color:#3e3f3a}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-text{color:#8e8c84}.navbar-default .navbar-nav>li>a{color:#98978b}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#393a35}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#393a35}.navbar-default .navbar-toggle .icon-bar{background-color:#98978b}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#3e3f3a}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#393a35;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#98978b}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#393a35}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#98978b}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#98978b}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#93c54b;border-color:#93c54b}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#dfd7ca}.navbar-inverse .navbar-nav>li>a{color:#6b9430}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#89be3d}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#89be3d}.navbar-inverse .navbar-toggle .icon-bar{background-color:#6b9430}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#81b33a}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#89be3d;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#93c54b}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#93c54b}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#6b9430}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#89be3d}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#6b9430}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#6b9430}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f8f5f0;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#dfd7ca}.breadcrumb>.active{color:#98978b}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:12px 16px;line-height:1.42857143;text-decoration:none;color:#98978b;background-color:#f8f5f0;border:1px solid #dfd7ca;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#8e8c84;background-color:#dfd7ca;border-color:#dfd7ca}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#8e8c84;background-color:#dfd7ca;border-color:#dfd7ca;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#dfd7ca;background-color:#f8f5f0;border-color:#dfd7ca;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:20px 30px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#f8f5f0;border:1px solid #dfd7ca;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#dfd7ca}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#dfd7ca;background-color:#f8f5f0;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#3e3f3a}.label-default[href]:hover,.label-default[href]:focus{background-color:#242422}.label-primary{background-color:#325d88}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#244363}.label-success{background-color:#93c54b}.label-success[href]:hover,.label-success[href]:focus{background-color:#79a736}.label-info{background-color:#29abe0}.label-info[href]:hover,.label-info[href]:focus{background-color:#1b8dbb}.label-warning{background-color:#f47c3c}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ef5c0e}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:normal;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#93c54b;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#ffffff;background-color:#93c54b}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f8f5f0}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#e8decd}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#f8f5f0;border:1px solid #dfd7ca;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#93c54b}.thumbnail .caption{padding:9px;color:#3e3f3a}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#93c54b;border-color:transparent;color:#ffffff}.alert-success hr{border-top-color:rgba(0,0,0,0)}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#29abe0;border-color:transparent;color:#ffffff}.alert-info hr{border-top-color:rgba(0,0,0,0)}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#f47c3c;border-color:transparent;color:#ffffff}.alert-warning hr{border-top-color:rgba(0,0,0,0)}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#d9534f;border-color:transparent;color:#ffffff}.alert-danger hr{border-top-color:rgba(0,0,0,0)}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#325d88;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#93c54b}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#29abe0}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f47c3c}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dfd7ca}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#3e3f3a}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:inherit}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#3e3f3a;background-color:#f8f5f0}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#f8f5f0;color:#dfd7ca;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#dfd7ca}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#3e3f3a;background-color:#f8f5f0;border-color:#dfd7ca}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#3e3f3a}.list-group-item-success{color:#93c54b;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#93c54b}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#93c54b;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#93c54b;border-color:#93c54b}.list-group-item-info{color:#29abe0;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#29abe0}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#29abe0;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#29abe0;border-color:#29abe0}.list-group-item-warning{color:#f47c3c;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#f47c3c}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#f47c3c;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#f47c3c;border-color:#f47c3c}.list-group-item-danger{color:#d9534f;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#d9534f}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#d9534f;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#d9534f;border-color:#d9534f}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f8f5f0;border-top:1px solid #dfd7ca;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dfd7ca}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dfd7ca}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dfd7ca}.panel-default{border-color:#dfd7ca}.panel-default>.panel-heading{color:#3e3f3a;background-color:#f8f5f0;border-color:#dfd7ca}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dfd7ca}.panel-default>.panel-heading .badge{color:#f8f5f0;background-color:#3e3f3a}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dfd7ca}.panel-primary{border-color:#325d88}.panel-primary>.panel-heading{color:#ffffff;background-color:#325d88;border-color:#325d88}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#325d88}.panel-primary>.panel-heading .badge{color:#325d88;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#325d88}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#93c54b;background-color:#93c54b;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#93c54b;background-color:#93c54b}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#29abe0;background-color:#29abe0;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#29abe0;background-color:#29abe0}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#f47c3c;background-color:#f47c3c;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#f47c3c;background-color:#f47c3c}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#d9534f;background-color:#d9534f;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#d9534f;background-color:#d9534f}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f8f5f0;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 0 0 transparent;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #f8f5f0;border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #f8f5f0;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #f8f5f0}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:1;filter:alpha(opacity=100)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#3e3f3a;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#3e3f3a}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#3e3f3a}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#3e3f3a}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#3e3f3a}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#3e3f3a}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#3e3f3a}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#3e3f3a}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#3e3f3a}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #dfd7ca;border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f8f5f0;border-bottom:1px solid #f0e9df;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#b9a78a;border-top-color:#dfd7ca;bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#b9a78a;border-right-color:#dfd7ca}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#b9a78a;border-bottom-color:#dfd7ca;top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#b9a78a;border-left-color:#dfd7ca}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.sandstone{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.navbar .nav>li>a{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.navbar-form input,.navbar-form .form-control{border:none}.btn{border:none;font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.btn:hover{border-color:transparent}.btn-lg{line-height:26px}.btn-default:hover{background-color:#393a35}input,.form-control{-webkit-box-shadow:none;box-shadow:none}input:focus,.form-control:focus{border-color:#dfd7ca;-webkit-box-shadow:none;box-shadow:none}.nav{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:#dfd7ca}.nav-tabs>li>a{background-color:#f8f5f0;border-color:#dfd7ca;color:#98978b}.nav-tabs>li.disabled>a:hover{background-color:#f8f5f0}.nav-pills a{color:#98978b}.nav-pills li>a{border:1px solid transparent}.nav-pills li.active>a,.nav-pills li>a:hover{border-color:#dfd7ca}.nav-pills li.disabled>a{border-color:transparent}.breadcrumb{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase;border:1px solid #dfd7ca}.breadcrumb a{color:#98978b}.pagination{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.pager{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.pager li>a{color:#98978b}.dropdown-menu>li>a{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.alert a,.alert .alert-link{color:#fff}.tooltip{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.progress{border-radius:10px;background-color:#dfd7ca;-webkit-box-shadow:none;box-shadow:none}.progress-bar{-webkit-box-shadow:none;box-shadow:none}.list-group-item{padding:16px 24px}.well{-webkit-box-shadow:none;box-shadow:none}.panel{-webkit-box-shadow:none;box-shadow:none}.panel .panel-heading,.panel .panel-title{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase;color:#fff}.panel .panel-footer{font-size:11px;line-height:22px;font-weight:500;text-transform:uppercase}.panel-default .panel-heading,.panel-default .panel-title,.panel-default .panel-footer{color:#98978b} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/simplex/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/simplex/bootstrap.min.css deleted file mode 100644 index 4439b67524..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/simplex/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;line-height:1.42857143;color:#777777;background-color:#fcfcfc}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#d9230f;text-decoration:none}a:hover,a:focus{color:#91170a;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#fcfcfc;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:18px;margin-bottom:18px;border:0;border-top:1px solid #dddddd}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;line-height:1.1;color:#444444}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#808080}h1,.h1,h2,.h2,h3,.h3{margin-top:18px;margin-bottom:9px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:9px;margin-bottom:9px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:33px}h2,.h2{font-size:27px}h3,.h3{font-size:23px}h4,.h4{font-size:17px}h5,.h5{font-size:13px}h6,.h6{font-size:12px}p{margin:0 0 9px}.lead{margin-bottom:18px;font-size:14px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:19.5px}}small,.small{font-size:92%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#808080}.text-primary{color:#d9230f}a.text-primary:hover,a.text-primary:focus{color:#a91b0c}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#d9230f}a.bg-primary:hover,a.bg-primary:focus{background-color:#a91b0c}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:8px;margin:36px 0 18px;border-bottom:1px solid #dddddd}ul,ol{margin-top:0;margin-bottom:9px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:18px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #808080}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:9px 18px;margin:0 0 18px;font-size:16.25px;border-left:5px solid #dddddd}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#808080}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #dddddd;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:18px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:8.5px;margin:0 0 9px;font-size:12px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#444444;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#808080;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:18px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#fcfcfc}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:13.5px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:18px;font-size:19.5px;line-height:inherit;color:#777777;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:13px;line-height:1.42857143;color:#777777}.form-control{display:block;width:100%;height:36px;padding:8px 12px;font-size:13px;line-height:1.42857143;color:#777777;background-color:#ffffff;background-image:none;border:1px solid #dddddd;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#dddddd;opacity:1}.form-control:-ms-input-placeholder{color:#dddddd}.form-control::-webkit-input-placeholder{color:#dddddd}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#dddddd;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:36px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:53px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:18px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:31px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:30px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:53px;padding:14px 16px;font-size:17px;line-height:1.3333333;border-radius:6px}select.input-lg{height:53px;line-height:53px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:53px;padding:14px 16px;font-size:17px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:53px;line-height:53px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:53px;min-height:35px;padding:15px 16px;font-size:17px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:45px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:36px;height:36px;line-height:36px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:53px;height:53px;line-height:53px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:23px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#b7b7b7}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:17px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:13px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#474949;border-color:#474949}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#2e2f2f;border-color:#080808}.btn-default:hover{color:#ffffff;background-color:#2e2f2f;border-color:#292a2a}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#2e2f2f;border-color:#292a2a}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#1c1d1d;border-color:#080808}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#474949;border-color:#474949}.btn-default .badge{color:#474949;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#d9230f;border-color:#d9230f}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#a91b0c;border-color:#621007}.btn-primary:hover{color:#ffffff;background-color:#a91b0c;border-color:#a01a0b}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#a91b0c;border-color:#a01a0b}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#881609;border-color:#621007}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#d9230f;border-color:#d9230f}.btn-primary .badge{color:#d9230f;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#469408;border-color:#469408}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#2f6405;border-color:#0d1b01}.btn-success:hover{color:#ffffff;background-color:#2f6405;border-color:#2b5a05}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#2f6405;border-color:#2b5a05}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#1f4204;border-color:#0d1b01}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#469408;border-color:#469408}.btn-success .badge{color:#469408;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#029acf;border-color:#029acf}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#02749c;border-color:#013c51}.btn-info:hover{color:#ffffff;background-color:#02749c;border-color:#016d92}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#02749c;border-color:#016d92}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#015a79;border-color:#013c51}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#029acf;border-color:#029acf}.btn-info .badge{color:#029acf;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#9b479f;border-color:#9b479f}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#79377c;border-color:#452047}.btn-warning:hover{color:#ffffff;background-color:#79377c;border-color:#723475}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#79377c;border-color:#723475}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#612c63;border-color:#452047}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#9b479f;border-color:#9b479f}.btn-warning .badge{color:#9b479f;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#d9831f;border-color:#d9831f}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#ac6819;border-color:#69400f}.btn-danger:hover{color:#ffffff;background-color:#ac6819;border-color:#a36317}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#ac6819;border-color:#a36317}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#8d5514;border-color:#69400f}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9831f;border-color:#d9831f}.btn-danger .badge{color:#d9831f;background-color:#ffffff}.btn-link{color:#d9230f;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#91170a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#808080;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:17px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:13px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#444444;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#d9230f}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#d9230f}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#808080}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#808080;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:53px;padding:14px 16px;font-size:17px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:53px;line-height:53px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:13px;font-weight:normal;line-height:1;color:#777777;text-align:center;background-color:#dddddd;border:1px solid #dddddd;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:17px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#dddddd}.nav>li.disabled>a{color:#808080}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#808080;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#dddddd;border-color:#d9230f}.nav .nav-divider{height:1px;margin:8px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#dddddd #dddddd #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#777777;background-color:#fcfcfc;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fcfcfc}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#d9230f}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fcfcfc}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:40px;margin-bottom:18px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:11px 15px;font-size:17px;line-height:18px;height:40px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:3px;margin-bottom:3px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:5.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:18px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:18px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:11px;padding-bottom:11px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:2px;margin-bottom:2px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:2px;margin-bottom:2px}.navbar-btn.btn-sm{margin-top:5px;margin-bottom:5px}.navbar-btn.btn-xs{margin-top:9px;margin-bottom:9px}.navbar-text{margin-top:11px;margin-bottom:11px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#ffffff;border-color:#eeeeee}.navbar-default .navbar-brand{color:#777777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-text{color:#777777}.navbar-default .navbar-nav>li>a{color:#777777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#eeeeee}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#d9230f}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#d9230f;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-default .navbar-link{color:#777777}.navbar-default .navbar-link:hover{color:#d9230f}.navbar-default .btn-link{color:#777777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#d9230f}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#444444}.navbar-inverse{background-color:#d9230f;border-color:#a91b0c}.navbar-inverse .navbar-brand{color:#fac0ba}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#fac0ba}.navbar-inverse .navbar-nav>li>a{color:#fac0ba}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#a91b0c}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#a91b0c}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#b81e0d}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#a91b0c}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#a91b0c}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#fac0ba}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#fac0ba}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#fac0ba}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:18px;list-style:none;background-color:transparent;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#808080}.pagination{display:inline-block;padding-left:0;margin:18px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#444444;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:#d9230f;border-color:#d9230f}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#d9230f;border-color:#d9230f;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#dddddd;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:17px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:18px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#d9230f}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#dddddd;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#474949}.label-default[href]:hover,.label-default[href]:focus{background-color:#2e2f2f}.label-primary{background-color:#d9230f}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#a91b0c}.label-success{background-color:#469408}.label-success[href]:hover,.label-success[href]:focus{background-color:#2f6405}.label-info{background-color:#029acf}.label-info[href]:hover,.label-info[href]:focus{background-color:#02749c}.label-warning{background-color:#9b479f}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#79377c}.label-danger{background-color:#d9831f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#ac6819}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#d9230f;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#d9230f;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#f4f4f4}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:20px;font-weight:200}.jumbotron>hr{border-top-color:#dbdbdb}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:59px}}.thumbnail{display:block;padding:4px;margin-bottom:18px;line-height:1.42857143;background-color:#fcfcfc;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#d9230f}.thumbnail .caption{padding:9px;color:#777777}.alert{padding:15px;margin-bottom:18px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:18px;margin-bottom:18px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:18px;color:#ffffff;text-align:center;background-color:#d9230f;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#469408}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#029acf}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#9b479f}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9831f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#dddddd;color:#808080;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#808080}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#d9230f;border-color:#d9230f}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#fac0ba}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:18px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:15px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#fcfcfc;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:18px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#444444;background-color:#fcfcfc;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#fcfcfc;background-color:#444444}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#d9230f}.panel-primary>.panel-heading{color:#ffffff;background-color:#d9230f;border-color:#d9230f}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d9230f}.panel-primary>.panel-heading .badge{color:#d9230f;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d9230f}.panel-success{border-color:#469408}.panel-success>.panel-heading{color:#ffffff;background-color:#469408;border-color:#469408}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#469408}.panel-success>.panel-heading .badge{color:#469408;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#469408}.panel-info{border-color:#029acf}.panel-info>.panel-heading{color:#ffffff;background-color:#029acf;border-color:#029acf}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#029acf}.panel-info>.panel-heading .badge{color:#029acf;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#029acf}.panel-warning{border-color:#9b479f}.panel-warning>.panel-heading{color:#ffffff;background-color:#9b479f;border-color:#9b479f}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#9b479f}.panel-warning>.panel-heading .badge{color:#9b479f;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#9b479f}.panel-danger{border-color:#d9831f}.panel-danger>.panel-heading{color:#ffffff;background-color:#d9831f;border-color:#d9831f}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d9831f}.panel-danger>.panel-heading .badge{color:#d9831f;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d9831f}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f4f4f4;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:19.5px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:13px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar-inverse .badge{background-color:#fff;color:#d9230f}.btn{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif}.btn-default,.btn-default:hover{background-image:-webkit-linear-gradient(#4f5151, #474949 6%, #3f4141);background-image:-o-linear-gradient(#4f5151, #474949 6%, #3f4141);background-image:-webkit-gradient(linear, left top, left bottom, from(#4f5151), color-stop(6%, #474949), to(#3f4141));background-image:linear-gradient(#4f5151, #474949 6%, #3f4141);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff4f5151', endColorstr='#ff3f4141', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2e2f2f}.btn-primary,.btn-primary:hover{background-image:-webkit-linear-gradient(#e72510, #d9230f 6%, #cb210e);background-image:-o-linear-gradient(#e72510, #d9230f 6%, #cb210e);background-image:-webkit-gradient(linear, left top, left bottom, from(#e72510), color-stop(6%, #d9230f), to(#cb210e));background-image:linear-gradient(#e72510, #d9230f 6%, #cb210e);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe72510', endColorstr='#ffcb210e', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #a91b0c}.btn-success,.btn-success:hover{background-image:-webkit-linear-gradient(#4da309, #469408 6%, #3f8507);background-image:-o-linear-gradient(#4da309, #469408 6%, #3f8507);background-image:-webkit-gradient(linear, left top, left bottom, from(#4da309), color-stop(6%, #469408), to(#3f8507));background-image:linear-gradient(#4da309, #469408 6%, #3f8507);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff4da309', endColorstr='#ff3f8507', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2f6405}.btn-info,.btn-info:hover{background-image:-webkit-linear-gradient(#02a5de, #029acf 6%, #028fc0);background-image:-o-linear-gradient(#02a5de, #029acf 6%, #028fc0);background-image:-webkit-gradient(linear, left top, left bottom, from(#02a5de), color-stop(6%, #029acf), to(#028fc0));background-image:linear-gradient(#02a5de, #029acf 6%, #028fc0);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff02a5de', endColorstr='#ff028fc0', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #02749c}.btn-warning,.btn-warning:hover{background-image:-webkit-linear-gradient(#a54caa, #9b479f 6%, #914294);background-image:-o-linear-gradient(#a54caa, #9b479f 6%, #914294);background-image:-webkit-gradient(linear, left top, left bottom, from(#a54caa), color-stop(6%, #9b479f), to(#914294));background-image:linear-gradient(#a54caa, #9b479f 6%, #914294);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffa54caa', endColorstr='#ff914294', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #79377c}.btn-danger,.btn-danger:hover{background-image:-webkit-linear-gradient(#e08b27, #d9831f 6%, #cc7b1d);background-image:-o-linear-gradient(#e08b27, #d9831f 6%, #cc7b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#e08b27), color-stop(6%, #d9831f), to(#cc7b1d));background-image:linear-gradient(#e08b27, #d9831f 6%, #cc7b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe08b27', endColorstr='#ffcc7b1d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #ac6819}body{font-weight:200}th{color:#444444}legend{color:#444444}label{font-weight:normal}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#d9831f}.has-warning .form-control,.has-warning .form-control:focus{border-color:#d9831f}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#d9230f}.has-error .form-control,.has-error .form-control:focus{border-color:#d9230f}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#469408}.has-success .form-control,.has-success .form-control:focus{border-color:#469408}.pager a{color:#444444}.pager a:hover,.pager .active>a{border-color:#d9230f;color:#fff}.pager .disabled>a{border-color:#dddddd} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/slate/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/slate/bootstrap.min.css deleted file mode 100644 index a333aac28f..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/slate/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#c8c8c8;background-color:#272b30}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#ffffff;text-decoration:none}a:hover,a:focus{color:#ffffff;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#1c1e22;border:1px solid #0c0d0e;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #1c1e22}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#7a8288}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#f89406;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#7a8288}.text-primary{color:#7a8288}a.text-primary:hover,a.text-primary:focus{color:#62686d}.text-success{color:#ffffff}a.text-success:hover,a.text-success:focus{color:#e6e6e6}.text-info{color:#ffffff}a.text-info:hover,a.text-info:focus{color:#e6e6e6}.text-warning{color:#ffffff}a.text-warning:hover,a.text-warning:focus{color:#e6e6e6}.text-danger{color:#ffffff}a.text-danger:hover,a.text-danger:focus{color:#e6e6e6}.bg-primary{color:#fff;background-color:#7a8288}a.bg-primary:hover,a.bg-primary:focus{background-color:#62686d}.bg-success{background-color:#62c462}a.bg-success:hover,a.bg-success:focus{background-color:#42b142}.bg-info{background-color:#5bc0de}a.bg-info:hover,a.bg-info:focus{background-color:#31b0d5}.bg-warning{background-color:#f89406}a.bg-warning:hover,a.bg-warning:focus{background-color:#c67605}.bg-danger{background-color:#ee5f5b}a.bg-danger:hover,a.bg-danger:focus{background-color:#e9322d}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #1c1e22}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #7a8288}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #7a8288}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#7a8288}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #7a8288;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#3a3f44;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:#2e3338}caption{padding-top:8px;padding-bottom:8px;color:#7a8288;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #1c1e22}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #1c1e22}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #1c1e22}.table .table{background-color:#272b30}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #1c1e22}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #1c1e22}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#353a41}.table-hover>tbody>tr:hover{background-color:#49515a}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#49515a}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#3e444c}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#62c462}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#4fbd4f}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#5bc0de}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#46b8da}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#f89406}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#df8505}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#ee5f5b}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ec4844}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #1c1e22}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#c8c8c8;border:0;border-bottom:1px solid #1c1e22}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#272b30}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#272b30;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#7a8288;opacity:1}.form-control:-ms-input-placeholder{color:#7a8288}.form-control::-webkit-input-placeholder{color:#7a8288}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#999999;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ffffff}.has-success .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#62c462}.has-success .form-control-feedback{color:#ffffff}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ffffff}.has-warning .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#f89406}.has-warning .form-control-feedback{color:#ffffff}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ffffff}.has-error .form-control{border-color:#ffffff;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#e6e6e6;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ffffff;border-color:#ffffff;background-color:#ee5f5b}.has-error .form-control-feedback{color:#ffffff}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#ffffff}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#3a3f44;border-color:#3a3f44}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#232628;border-color:#000000}.btn-default:hover{color:#ffffff;background-color:#232628;border-color:#1e2023}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#232628;border-color:#1e2023}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#121415;border-color:#000000}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#3a3f44;border-color:#3a3f44}.btn-default .badge{color:#3a3f44;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#7a8288;border-color:#7a8288}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#62686d;border-color:#3e4245}.btn-primary:hover{color:#ffffff;background-color:#62686d;border-color:#5d6368}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#62686d;border-color:#5d6368}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#51565a;border-color:#3e4245}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#7a8288;border-color:#7a8288}.btn-primary .badge{color:#7a8288;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#62c462;border-color:#62c462}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#42b142;border-color:#2d792d}.btn-success:hover{color:#ffffff;background-color:#42b142;border-color:#40a940}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#42b142;border-color:#40a940}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#399739;border-color:#2d792d}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#62c462;border-color:#62c462}.btn-success .badge{color:#62c462;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#5bc0de}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#31b0d5;border-color:#1f7e9a}.btn-info:hover{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:#2aabd2}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#269abc;border-color:#1f7e9a}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#5bc0de}.btn-info .badge{color:#5bc0de;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f89406;border-color:#f89406}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#c67605;border-color:#7c4a03}.btn-warning:hover{color:#ffffff;background-color:#c67605;border-color:#bc7005}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#c67605;border-color:#bc7005}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#a36104;border-color:#7c4a03}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f89406;border-color:#f89406}.btn-warning .badge{color:#f89406;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#ee5f5b;border-color:#ee5f5b}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#e9322d;border-color:#b71713}.btn-danger:hover{color:#ffffff;background-color:#e9322d;border-color:#e82924}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#e9322d;border-color:#e82924}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#dc1c17;border-color:#b71713}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#ee5f5b;border-color:#ee5f5b}.btn-danger .badge{color:#ee5f5b;background-color:#ffffff}.btn-link{color:#ffffff;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#ffffff;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#7a8288;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#3a3f44;border:1px solid #272b30;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#272b30}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#c8c8c8;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#272b30}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#272b30}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#7a8288}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#7a8288;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#272b30;text-align:center;background-color:#999999;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#3e444c}.nav>li.disabled>a{color:#7a8288}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#7a8288;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#3e444c;border-color:#ffffff}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #1c1e22}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#1c1e22 #1c1e22 #1c1e22}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#ffffff;background-color:#3e444c;border:1px solid #1c1e22;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #1c1e22}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #1c1e22;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#272b30}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:transparent}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #1c1e22}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #1c1e22;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#272b30}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#3a3f44;border-color:#2b2e32}.navbar-default .navbar-brand{color:#c8c8c8}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#c8c8c8}.navbar-default .navbar-nav>li>a{color:#c8c8c8}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#272b2e}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#272b2e}.navbar-default .navbar-toggle .icon-bar{background-color:#c8c8c8}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#2b2e32}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#272b2e;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#c8c8c8}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#272b2e}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#c8c8c8}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#c8c8c8}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#7a8288;border-color:#62686d}.navbar-inverse .navbar-brand{color:#cccccc}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#cccccc}.navbar-inverse .navbar-nav>li>a{color:#cccccc}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#5d6368}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#5d6368}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#697075}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#5d6368;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#62686d}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#62686d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#cccccc}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#5d6368}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#cccccc}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#cccccc}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:transparent;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#7a8288}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#ffffff;background-color:#3a3f44;border:1px solid rgba(0,0,0,0.6);margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ffffff;background-color:transparent;border-color:rgba(0,0,0,0.6)}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#232628;border-color:rgba(0,0,0,0.6);cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#7a8288;background-color:#ffffff;border-color:rgba(0,0,0,0.6);cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#3a3f44;border:1px solid rgba(0,0,0,0.6);border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:transparent}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#7a8288;background-color:#3a3f44;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#3a3f44}.label-default[href]:hover,.label-default[href]:focus{background-color:#232628}.label-primary{background-color:#7a8288}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#62686d}.label-success{background-color:#62c462}.label-success[href]:hover,.label-success[href]:focus{background-color:#42b142}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f89406}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#c67605}.label-danger{background-color:#ee5f5b}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#e9322d}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#7a8288;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#ffffff;background-color:#7a8288}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#1c1e22}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#050506}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#1c1e22;border:1px solid #0c0d0e;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#ffffff}.thumbnail .caption{padding:9px;color:#c8c8c8}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#62c462;border-color:#62bd4f;color:#ffffff}.alert-success hr{border-top-color:#55b142}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#3dced8;color:#ffffff}.alert-info hr{border-top-color:#2ac7d2}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#f89406;border-color:#e96506;color:#ffffff}.alert-warning hr{border-top-color:#d05a05}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#ee5f5b;border-color:#ed4d63;color:#ffffff}.alert-danger hr{border-top-color:#ea364f}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#1c1e22;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#7a8288;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#62c462}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f89406}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#ee5f5b}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#32383e;border:1px solid rgba(0,0,0,0.6)}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#c8c8c8}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#ffffff}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#c8c8c8;background-color:#3e444c}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#999999;color:#7a8288;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#7a8288}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#3e444c;border-color:rgba(0,0,0,0.6)}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#a2aab4}.list-group-item-success{color:#ffffff;background-color:#62c462}a.list-group-item-success,button.list-group-item-success{color:#ffffff}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ffffff;background-color:#4fbd4f}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-info{color:#ffffff;background-color:#5bc0de}a.list-group-item-info,button.list-group-item-info{color:#ffffff}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ffffff;background-color:#46b8da}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-warning{color:#ffffff;background-color:#f89406}a.list-group-item-warning,button.list-group-item-warning{color:#ffffff}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ffffff;background-color:#df8505}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-danger{color:#ffffff;background-color:#ee5f5b}a.list-group-item-danger,button.list-group-item-danger{color:#ffffff}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ffffff;background-color:#ec4844}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ffffff;border-color:#ffffff}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#2e3338;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#3e444c;border-top:1px solid rgba(0,0,0,0.6);border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #1c1e22}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid rgba(0,0,0,0.6)}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid rgba(0,0,0,0.6)}.panel-default{border-color:rgba(0,0,0,0.6)}.panel-default>.panel-heading{color:#c8c8c8;background-color:#3e444c;border-color:rgba(0,0,0,0.6)}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-default>.panel-heading .badge{color:#3e444c;background-color:#c8c8c8}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-primary{border-color:rgba(0,0,0,0.6)}.panel-primary>.panel-heading{color:#ffffff;background-color:#7a8288;border-color:rgba(0,0,0,0.6)}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-primary>.panel-heading .badge{color:#7a8288;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-success{border-color:rgba(0,0,0,0.6)}.panel-success>.panel-heading{color:#ffffff;background-color:#62c462;border-color:rgba(0,0,0,0.6)}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-success>.panel-heading .badge{color:#62c462;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-info{border-color:rgba(0,0,0,0.6)}.panel-info>.panel-heading{color:#ffffff;background-color:#5bc0de;border-color:rgba(0,0,0,0.6)}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-warning{border-color:rgba(0,0,0,0.6)}.panel-warning>.panel-heading{color:#ffffff;background-color:#f89406;border-color:rgba(0,0,0,0.6)}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-warning>.panel-heading .badge{color:#f89406;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.panel-danger{border-color:rgba(0,0,0,0.6)}.panel-danger>.panel-heading{color:#ffffff;background-color:#ee5f5b;border-color:rgba(0,0,0,0.6)}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:rgba(0,0,0,0.6)}.panel-danger>.panel-heading .badge{color:#ee5f5b;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:rgba(0,0,0,0.6)}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#1c1e22;border:1px solid #0c0d0e;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#2e3338;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #1c1e22;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #1c1e22}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#2e3338;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#2e3338;border-bottom:1px solid #22262a;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#666666;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#2e3338}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#666666;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#2e3338}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#666666;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#2e3338}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#666666;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#2e3338;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.navbar-inverse{background-image:-webkit-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-o-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-webkit-gradient(linear, left top, left bottom, from(#8a9196), color-stop(60%, #7a8288), to(#70787d));background-image:linear-gradient(#8a9196, #7a8288 60%, #70787d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8a9196', endColorstr='#ff70787d', GradientType=0);-webkit-filter:none;filter:none}.navbar-inverse .badge{background-color:#5d6368}.navbar-nav>li>a{border-right:1px solid rgba(0,0,0,0.2);border-left:1px solid rgba(255,255,255,0.1)}.navbar-nav>li>a:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none;border-left-color:transparent}.navbar .nav .open>a{border-color:transparent}.navbar-nav>li.active>a{border-left-color:transparent}.navbar-form{margin-left:5px;margin-right:5px}.btn,.btn:hover{border-color:rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.btn-default{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.btn-default:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none}.btn-primary{background-image:-webkit-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-o-linear-gradient(#8a9196, #7a8288 60%, #70787d);background-image:-webkit-gradient(linear, left top, left bottom, from(#8a9196), color-stop(60%, #7a8288), to(#70787d));background-image:linear-gradient(#8a9196, #7a8288 60%, #70787d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff8a9196', endColorstr='#ff70787d', GradientType=0);-webkit-filter:none;filter:none}.btn-primary:hover{background-image:-webkit-linear-gradient(#404448, #4e5458 40%, #585e62);background-image:-o-linear-gradient(#404448, #4e5458 40%, #585e62);background-image:-webkit-gradient(linear, left top, left bottom, from(#404448), color-stop(40%, #4e5458), to(#585e62));background-image:linear-gradient(#404448, #4e5458 40%, #585e62);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff404448', endColorstr='#ff585e62', GradientType=0);-webkit-filter:none;filter:none}.btn-success{background-image:-webkit-linear-gradient(#78cc78, #62c462 60%, #53be53);background-image:-o-linear-gradient(#78cc78, #62c462 60%, #53be53);background-image:-webkit-gradient(linear, left top, left bottom, from(#78cc78), color-stop(60%, #62c462), to(#53be53));background-image:linear-gradient(#78cc78, #62c462 60%, #53be53);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff78cc78', endColorstr='#ff53be53', GradientType=0);-webkit-filter:none;filter:none}.btn-success:hover{background-image:-webkit-linear-gradient(#2f7d2f, #379337 40%, #3da23d);background-image:-o-linear-gradient(#2f7d2f, #379337 40%, #3da23d);background-image:-webkit-gradient(linear, left top, left bottom, from(#2f7d2f), color-stop(40%, #379337), to(#3da23d));background-image:linear-gradient(#2f7d2f, #379337 40%, #3da23d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2f7d2f', endColorstr='#ff3da23d', GradientType=0);-webkit-filter:none;filter:none}.btn-info{background-image:-webkit-linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-image:-o-linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-image:-webkit-gradient(linear, left top, left bottom, from(#74cae3), color-stop(60%, #5bc0de), to(#4ab9db));background-image:linear-gradient(#74cae3, #5bc0de 60%, #4ab9db);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff74cae3', endColorstr='#ff4ab9db', GradientType=0);-webkit-filter:none;filter:none}.btn-info:hover{background-image:-webkit-linear-gradient(#20829f, #2596b8 40%, #28a4c9);background-image:-o-linear-gradient(#20829f, #2596b8 40%, #28a4c9);background-image:-webkit-gradient(linear, left top, left bottom, from(#20829f), color-stop(40%, #2596b8), to(#28a4c9));background-image:linear-gradient(#20829f, #2596b8 40%, #28a4c9);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff20829f', endColorstr='#ff28a4c9', GradientType=0);-webkit-filter:none;filter:none}.btn-warning{background-image:-webkit-linear-gradient(#faa123, #f89406 60%, #e48806);background-image:-o-linear-gradient(#faa123, #f89406 60%, #e48806);background-image:-webkit-gradient(linear, left top, left bottom, from(#faa123), color-stop(60%, #f89406), to(#e48806));background-image:linear-gradient(#faa123, #f89406 60%, #e48806);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffaa123', endColorstr='#ffe48806', GradientType=0);-webkit-filter:none;filter:none}.btn-warning:hover{background-image:-webkit-linear-gradient(#804d03, #9e5f04 40%, #b26a04);background-image:-o-linear-gradient(#804d03, #9e5f04 40%, #b26a04);background-image:-webkit-gradient(linear, left top, left bottom, from(#804d03), color-stop(40%, #9e5f04), to(#b26a04));background-image:linear-gradient(#804d03, #9e5f04 40%, #b26a04);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff804d03', endColorstr='#ffb26a04', GradientType=0);-webkit-filter:none;filter:none}.btn-danger{background-image:-webkit-linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-image:-o-linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-image:-webkit-gradient(linear, left top, left bottom, from(#f17a77), color-stop(60%, #ee5f5b), to(#ec4d49));background-image:linear-gradient(#f17a77, #ee5f5b 60%, #ec4d49);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff17a77', endColorstr='#ffec4d49', GradientType=0);-webkit-filter:none;filter:none}.btn-danger:hover{background-image:-webkit-linear-gradient(#bb1813, #d71c16 40%, #e7201a);background-image:-o-linear-gradient(#bb1813, #d71c16 40%, #e7201a);background-image:-webkit-gradient(linear, left top, left bottom, from(#bb1813), color-stop(40%, #d71c16), to(#e7201a));background-image:linear-gradient(#bb1813, #d71c16 40%, #e7201a);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffbb1813', endColorstr='#ffe7201a', GradientType=0);-webkit-filter:none;filter:none}.btn-link,.btn-link:hover{border-color:transparent}h1,h2,h3,h4,h5,h6{text-shadow:-1px -1px 0 rgba(0,0,0,0.3)}.text-primary,.text-primary:hover{color:#7a8288}.text-success,.text-success:hover{color:#62c462}.text-danger,.text-danger:hover{color:#ee5f5b}.text-warning,.text-warning:hover{color:#f89406}.text-info,.text-info:hover{color:#5bc0de}.table .success,.table .warning,.table .danger,.table .info{color:#fff}.table-bordered tbody tr.success td,.table-bordered tbody tr.warning td,.table-bordered tbody tr.danger td,.table-bordered tbody tr.success:hover td,.table-bordered tbody tr.warning:hover td,.table-bordered tbody tr.danger:hover td{border-color:#1c1e22}.table-responsive>.table{background-color:#2e3338}input,textarea{color:#272b30}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f89406}.has-warning .form-control,.has-warning .form-control:focus{border-color:#f89406}.has-warning .input-group-addon{background-color:#272b30;border:none}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#ee5f5b}.has-error .form-control,.has-error .form-control:focus{border-color:#ee5f5b}.has-error .input-group-addon{background-color:#272b30;border:none}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#62c462}.has-success .form-control,.has-success .form-control:focus{border-color:#62c462}.has-success .input-group-addon{background-color:#272b30;border:none}legend{color:#fff}.input-group-addon{border-color:rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;color:#ffffff}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:rgba(0,0,0,0.6)}.nav-pills>li>a{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.nav-pills>li>a:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6)}.nav-pills>li.active>a,.nav-pills>li.active>a:hover{background-color:none;background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid rgba(0,0,0,0.6)}.nav-pills>li.disabled>a,.nav-pills>li.disabled>a:hover{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.pagination>li>a,.pagination>li>span{text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.pagination>li>a:hover,.pagination>li>span:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none}.pagination>li.active>a,.pagination>li.active>span{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none}.pagination>li.disabled>a,.pagination>li.disabled>a:hover,.pagination>li.disabled>span,.pagination>li.disabled>span:hover{background-color:transparent;background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.pager>li>a{background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none;text-shadow:1px 1px 1px rgba(0,0,0,0.3)}.pager>li>a:hover{background-image:-webkit-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-o-linear-gradient(#020202, #101112 40%, #191b1d);background-image:-webkit-gradient(linear, left top, left bottom, from(#020202), color-stop(40%, #101112), to(#191b1d));background-image:linear-gradient(#020202, #101112 40%, #191b1d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff020202', endColorstr='#ff191b1d', GradientType=0);-webkit-filter:none;filter:none}.pager>li.disabled>a,.pager>li.disabled>a:hover{background-color:transparent;background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.breadcrumb{border:1px solid rgba(0,0,0,0.6);text-shadow:1px 1px 1px rgba(0,0,0,0.3);background-image:-webkit-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-o-linear-gradient(#484e55, #3a3f44 60%, #313539);background-image:-webkit-gradient(linear, left top, left bottom, from(#484e55), color-stop(60%, #3a3f44), to(#313539));background-image:linear-gradient(#484e55, #3a3f44 60%, #313539);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff484e55', endColorstr='#ff313539', GradientType=0);-webkit-filter:none;filter:none}.alert .alert-link,.alert a{color:#fff;text-decoration:underline}.alert .close{color:#000000;text-decoration:none}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#0c0d0e}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border-color:rgba(0,0,0,0.6)}a.list-group-item-success.active{background-color:#62c462}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#4fbd4f}a.list-group-item-warning.active{background-color:#f89406}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#df8505}a.list-group-item-danger.active{background-color:#ee5f5b}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#ec4844}.jumbotron{border:1px solid rgba(0,0,0,0.6)}.panel-primary .panel-heading,.panel-success .panel-heading,.panel-danger .panel-heading,.panel-warning .panel-heading,.panel-info .panel-heading{border-color:#000} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/spacelab/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/spacelab/bootstrap.min.css deleted file mode 100644 index cc83b248cc..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/spacelab/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#666666;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#3399f3;text-decoration:none}a:hover,a:focus{color:#3399f3;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:#2d2d2d}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#446e9b}a.text-primary:hover,a.text-primary:focus{color:#345578}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#446e9b}a.bg-primary:hover,a.bg-primary:focus{background-color:#345578}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#999999}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#666666;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#666666}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#666666;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#a6a6a6}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#474949;border-color:#474949}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#2e2f2f;border-color:#080808}.btn-default:hover{color:#ffffff;background-color:#2e2f2f;border-color:#292a2a}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#2e2f2f;border-color:#292a2a}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#1c1d1d;border-color:#080808}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#474949;border-color:#474949}.btn-default .badge{color:#474949;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#446e9b;border-color:#446e9b}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#345578;border-color:#1d2f42}.btn-primary:hover{color:#ffffff;background-color:#345578;border-color:#315070}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#345578;border-color:#315070}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#2a435f;border-color:#1d2f42}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#446e9b;border-color:#446e9b}.btn-primary .badge{color:#446e9b;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#3cb521;border-color:#3cb521}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#2e8a19;border-color:#18490d}.btn-success:hover{color:#ffffff;background-color:#2e8a19;border-color:#2b8118}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#2e8a19;border-color:#2b8118}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#246c14;border-color:#18490d}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#3cb521;border-color:#3cb521}.btn-success .badge{color:#3cb521;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#3399f3;border-color:#3399f3}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#0e80e5;border-color:#09589d}.btn-info:hover{color:#ffffff;background-color:#0e80e5;border-color:#0d7bdc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#0e80e5;border-color:#0d7bdc}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#0c6dc4;border-color:#09589d}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#3399f3;border-color:#3399f3}.btn-info .badge{color:#3399f3;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#d47500;border-color:#d47500}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#a15900;border-color:#552f00}.btn-warning:hover{color:#ffffff;background-color:#a15900;border-color:#975300}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#a15900;border-color:#975300}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#7d4500;border-color:#552f00}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#d47500;border-color:#d47500}.btn-warning .badge{color:#d47500;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#cd0200;border-color:#cd0200}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#9a0200;border-color:#4e0100}.btn-danger:hover{color:#ffffff;background-color:#9a0200;border-color:#900100}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#9a0200;border-color:#900100}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#760100;border-color:#4e0100}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#cd0200;border-color:#cd0200}.btn-danger .badge{color:#cd0200;background-color:#ffffff}.btn-link{color:#3399f3;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#3399f3;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#446e9b}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#446e9b}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#666666;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#3399f3}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#666666;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#446e9b}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#eeeeee;border-color:#dddddd}.navbar-default .navbar-brand{color:#777777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-text{color:#777777}.navbar-default .navbar-nav>li>a{color:#777777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-default .navbar-toggle{border-color:#dddddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#dddddd}.navbar-default .navbar-toggle .icon-bar{background-color:#cccccc}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#dddddd}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:transparent;color:#3399f3}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#3399f3;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-default .navbar-link{color:#777777}.navbar-default .navbar-link:hover{color:#3399f3}.navbar-default .btn-link{color:#777777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#3399f3}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#444444}.navbar-inverse{background-color:#446e9b;border-color:#345578}.navbar-inverse .navbar-brand{color:#dddddd}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#dddddd}.navbar-inverse .navbar-nav>li>a{color:#dddddd}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#345578}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#345578}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#395c82}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:transparent;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#345578}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#345578}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#dddddd}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#dddddd}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#dddddd}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#999999}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#3399f3;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#3399f3;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#999999;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#474949}.label-default[href]:hover,.label-default[href]:focus{background-color:#2e2f2f}.label-primary{background-color:#446e9b}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#345578}.label-success{background-color:#3cb521}.label-success[href]:hover,.label-success[href]:focus{background-color:#2e8a19}.label-info{background-color:#3399f3}.label-info[href]:hover,.label-info[href]:focus{background-color:#0e80e5}.label-warning{background-color:#d47500}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#a15900}.label-danger{background-color:#cd0200}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#9a0200}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#3399f3;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#3399f3;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#3399f3}.thumbnail .caption{padding:9px;color:#666666}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#446e9b;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#3cb521}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#3399f3}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#d47500}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#cd0200}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#446e9b;border-color:#446e9b}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c5d5e6}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#446e9b}.panel-primary>.panel-heading{color:#ffffff;background-color:#446e9b;border-color:#446e9b}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#446e9b}.panel-primary>.panel-heading .badge{color:#446e9b;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#446e9b}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#fbeed5}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#eed3d7}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#eed3d7}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{background-image:-webkit-linear-gradient(#fff, #eee 50%, #e4e4e4);background-image:-o-linear-gradient(#fff, #eee 50%, #e4e4e4);background-image:-webkit-gradient(linear, left top, left bottom, from(#fff), color-stop(50%, #eee), to(#e4e4e4));background-image:linear-gradient(#fff, #eee 50%, #e4e4e4);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe4e4e4', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #d5d5d5;text-shadow:0 1px 0 rgba(255,255,255,0.3)}.navbar-inverse{background-image:-webkit-linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-image:-o-linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-image:-webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#3e648d));background-image:linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff3e648d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #345578;text-shadow:0 -1px 0 rgba(0,0,0,0.3)}.navbar-inverse .badge{background-color:#fff;color:#446e9b}.navbar .badge{text-shadow:none}.navbar-nav>li>a,.navbar-nav>li>a:hover{padding-top:17px;padding-bottom:13px;-webkit-transition:color ease-in-out .2s;-o-transition:color ease-in-out .2s;transition:color ease-in-out .2s}.navbar-brand,.navbar-brand:hover{-webkit-transition:color ease-in-out .2s;-o-transition:color ease-in-out .2s;transition:color ease-in-out .2s}.navbar .caret,.navbar .caret:hover{-webkit-transition:border-color ease-in-out .2s;-o-transition:border-color ease-in-out .2s;transition:border-color ease-in-out .2s}.navbar .dropdown-menu{text-shadow:none}.btn{text-shadow:0 -1px 0 rgba(0,0,0,0.3)}.btn-default{background-image:-webkit-linear-gradient(#6d7070, #474949 50%, #3d3f3f);background-image:-o-linear-gradient(#6d7070, #474949 50%, #3d3f3f);background-image:-webkit-gradient(linear, left top, left bottom, from(#6d7070), color-stop(50%, #474949), to(#3d3f3f));background-image:linear-gradient(#6d7070, #474949 50%, #3d3f3f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d7070', endColorstr='#ff3d3f3f', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2e2f2f}.btn-default:hover{background-image:-webkit-linear-gradient(#636565, #3d3f3f 50%, #333434);background-image:-o-linear-gradient(#636565, #3d3f3f 50%, #333434);background-image:-webkit-gradient(linear, left top, left bottom, from(#636565), color-stop(50%, #3d3f3f), to(#333434));background-image:linear-gradient(#636565, #3d3f3f 50%, #333434);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff636565', endColorstr='#ff333434', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #242525}.btn-primary{background-image:-webkit-linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-image:-o-linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-image:-webkit-gradient(linear, left top, left bottom, from(#6d94bf), color-stop(50%, #446e9b), to(#3e648d));background-image:linear-gradient(#6d94bf, #446e9b 50%, #3e648d);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff6d94bf', endColorstr='#ff3e648d', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #345578}.btn-primary:hover{background-image:-webkit-linear-gradient(#5f8ab9, #3e648d 50%, #385a7f);background-image:-o-linear-gradient(#5f8ab9, #3e648d 50%, #385a7f);background-image:-webkit-gradient(linear, left top, left bottom, from(#5f8ab9), color-stop(50%, #3e648d), to(#385a7f));background-image:linear-gradient(#5f8ab9, #3e648d 50%, #385a7f);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5f8ab9', endColorstr='#ff385a7f', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2e4b69}.btn-success{background-image:-webkit-linear-gradient(#61dd45, #3cb521 50%, #36a41e);background-image:-o-linear-gradient(#61dd45, #3cb521 50%, #36a41e);background-image:-webkit-gradient(linear, left top, left bottom, from(#61dd45), color-stop(50%, #3cb521), to(#36a41e));background-image:linear-gradient(#61dd45, #3cb521 50%, #36a41e);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff61dd45', endColorstr='#ff36a41e', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #2e8a19}.btn-success:hover{background-image:-webkit-linear-gradient(#52da34, #36a41e 50%, #31921b);background-image:-o-linear-gradient(#52da34, #36a41e 50%, #31921b);background-image:-webkit-gradient(linear, left top, left bottom, from(#52da34), color-stop(50%, #36a41e), to(#31921b));background-image:linear-gradient(#52da34, #36a41e 50%, #31921b);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff52da34', endColorstr='#ff31921b', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #287916}.btn-info{background-image:-webkit-linear-gradient(#7bbdf7, #3399f3 50%, #208ff2);background-image:-o-linear-gradient(#7bbdf7, #3399f3 50%, #208ff2);background-image:-webkit-gradient(linear, left top, left bottom, from(#7bbdf7), color-stop(50%, #3399f3), to(#208ff2));background-image:linear-gradient(#7bbdf7, #3399f3 50%, #208ff2);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff7bbdf7', endColorstr='#ff208ff2', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #0e80e5}.btn-info:hover{background-image:-webkit-linear-gradient(#68b3f6, #208ff2 50%, #0e86ef);background-image:-o-linear-gradient(#68b3f6, #208ff2 50%, #0e86ef);background-image:-webkit-gradient(linear, left top, left bottom, from(#68b3f6), color-stop(50%, #208ff2), to(#0e86ef));background-image:linear-gradient(#68b3f6, #208ff2 50%, #0e86ef);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff68b3f6', endColorstr='#ff0e86ef', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #0c75d2}.btn-warning{background-image:-webkit-linear-gradient(#ff9c21, #d47500 50%, #c06a00);background-image:-o-linear-gradient(#ff9c21, #d47500 50%, #c06a00);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff9c21), color-stop(50%, #d47500), to(#c06a00));background-image:linear-gradient(#ff9c21, #d47500 50%, #c06a00);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff9c21', endColorstr='#ffc06a00', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #a15900}.btn-warning:hover{background-image:-webkit-linear-gradient(#ff930d, #c06a00 50%, #ab5e00);background-image:-o-linear-gradient(#ff930d, #c06a00 50%, #ab5e00);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff930d), color-stop(50%, #c06a00), to(#ab5e00));background-image:linear-gradient(#ff930d, #c06a00 50%, #ab5e00);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff930d', endColorstr='#ffab5e00', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #8d4e00}.btn-danger{background-image:-webkit-linear-gradient(#ff1d1b, #cd0200 50%, #b90200);background-image:-o-linear-gradient(#ff1d1b, #cd0200 50%, #b90200);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff1d1b), color-stop(50%, #cd0200), to(#b90200));background-image:linear-gradient(#ff1d1b, #cd0200 50%, #b90200);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff1d1b', endColorstr='#ffb90200', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #9a0200}.btn-danger:hover{background-image:-webkit-linear-gradient(#ff0906, #b90200 50%, #a40200);background-image:-o-linear-gradient(#ff0906, #b90200 50%, #a40200);background-image:-webkit-gradient(linear, left top, left bottom, from(#ff0906), color-stop(50%, #b90200), to(#a40200));background-image:linear-gradient(#ff0906, #b90200 50%, #a40200);background-repeat:no-repeat;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffff0906', endColorstr='#ffa40200', GradientType=0);-webkit-filter:none;filter:none;border:1px solid #860100}.btn-link{text-shadow:none}.btn:active,.btn.active{background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.panel-primary .panel-title{color:#fff} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/superhero/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/superhero/bootstrap.min.css deleted file mode 100644 index 7bbc5e2e6e..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/superhero/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Lato:300,400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.42857143;color:#ebebeb;background-color:#2b3e50}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#df691a;text-decoration:none}a:hover,a:focus{color:#df691a;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#2b3e50;border:1px solid #dddddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #596a7b}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#ebebeb}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:86%}mark,.mark{background-color:#f0ad4e;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#4e5d6c}.text-primary{color:#df691a}a.text-primary:hover,a.text-primary:focus{color:#b15315}.text-success{color:#ebebeb}a.text-success:hover,a.text-success:focus{color:#d2d2d2}.text-info{color:#ebebeb}a.text-info:hover,a.text-info:focus{color:#d2d2d2}.text-warning{color:#ebebeb}a.text-warning:hover,a.text-warning:focus{color:#d2d2d2}.text-danger{color:#ebebeb}a.text-danger:hover,a.text-danger:focus{color:#d2d2d2}.bg-primary{color:#fff;background-color:#df691a}a.bg-primary:hover,a.bg-primary:focus{background-color:#b15315}.bg-success{background-color:#5cb85c}a.bg-success:hover,a.bg-success:focus{background-color:#449d44}.bg-info{background-color:#5bc0de}a.bg-info:hover,a.bg-info:focus{background-color:#31b0d5}.bg-warning{background-color:#f0ad4e}a.bg-warning:hover,a.bg-warning:focus{background-color:#ec971f}.bg-danger{background-color:#d9534f}a.bg-danger:hover,a.bg-danger:focus{background-color:#c9302c}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #ebebeb}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #4e5d6c}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #4e5d6c}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#ebebeb}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #4e5d6c;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:6px;padding-bottom:6px;color:#4e5d6c;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:6px;line-height:1.42857143;vertical-align:top;border-top:1px solid #4e5d6c}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #4e5d6c}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #4e5d6c}.table .table{background-color:#2b3e50}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:3px}.table-bordered{border:1px solid #4e5d6c}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #4e5d6c}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#4e5d6c}.table-hover>tbody>tr:hover{background-color:#485563}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#485563}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#3d4954}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#5cb85c}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#4cae4c}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#5bc0de}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#46b8da}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#f0ad4e}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#eea236}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#d9534f}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#d43f3a}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #4e5d6c}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#ebebeb;border:0;border-bottom:1px solid #4e5d6c}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:15px;line-height:1.42857143;color:#2b3e50}.form-control{display:block;width:100%;height:39px;padding:8px 16px;font-size:15px;line-height:1.42857143;color:#2b3e50;background-color:#ffffff;background-image:none;border:1px solid transparent;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:transparent;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(0,0,0,0.6)}.form-control::-moz-placeholder{color:#cccccc;opacity:1}.form-control:-ms-input-placeholder{color:#cccccc}.form-control::-webkit-input-placeholder{color:#cccccc}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#ebebeb;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:39px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:31px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:52px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-sm{height:31px;line-height:31px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}.form-group-sm select.form-control{height:31px;line-height:31px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:31px;min-height:34px;padding:6px 10px;font-size:13px;line-height:1.5}.input-lg{height:52px;padding:12px 24px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-lg{height:52px;line-height:52px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:52px;padding:12px 24px;font-size:19px;line-height:1.3333333;border-radius:0}.form-group-lg select.form-control{height:52px;line-height:52px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:52px;min-height:40px;padding:13px 24px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:52px;height:52px;line-height:52px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:31px;height:31px;line-height:31px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#ebebeb}.has-success .form-control{border-color:#ebebeb;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#d2d2d2;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-success .input-group-addon{color:#ebebeb;border-color:#ebebeb;background-color:#5cb85c}.has-success .form-control-feedback{color:#ebebeb}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#ebebeb}.has-warning .form-control{border-color:#ebebeb;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#d2d2d2;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-warning .input-group-addon{color:#ebebeb;border-color:#ebebeb;background-color:#f0ad4e}.has-warning .form-control-feedback{color:#ebebeb}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#ebebeb}.has-error .form-control{border-color:#ebebeb;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#d2d2d2;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #fff}.has-error .input-group-addon{color:#ebebeb;border-color:#ebebeb;background-color:#d9534f}.has-error .form-control-feedback{color:#ebebeb}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#ffffff}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:16.9999996px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:13px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 16px;font-size:15px;line-height:1.42857143;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#4e5d6c;border-color:transparent}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#39444e;border-color:rgba(0,0,0,0)}.btn-default:hover{color:#ffffff;background-color:#39444e;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#39444e;border-color:rgba(0,0,0,0)}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#2a323a;border-color:rgba(0,0,0,0)}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#4e5d6c;border-color:transparent}.btn-default .badge{color:#4e5d6c;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#df691a;border-color:transparent}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#b15315;border-color:rgba(0,0,0,0)}.btn-primary:hover{color:#ffffff;background-color:#b15315;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#b15315;border-color:rgba(0,0,0,0)}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#914411;border-color:rgba(0,0,0,0)}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#df691a;border-color:transparent}.btn-primary .badge{color:#df691a;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#5cb85c;border-color:transparent}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#449d44;border-color:rgba(0,0,0,0)}.btn-success:hover{color:#ffffff;background-color:#449d44;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#449d44;border-color:rgba(0,0,0,0)}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#398439;border-color:rgba(0,0,0,0)}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:transparent}.btn-success .badge{color:#5cb85c;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:transparent}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#31b0d5;border-color:rgba(0,0,0,0)}.btn-info:hover{color:#ffffff;background-color:#31b0d5;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:rgba(0,0,0,0)}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#269abc;border-color:rgba(0,0,0,0)}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:transparent}.btn-info .badge{color:#5bc0de;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#f0ad4e;border-color:transparent}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#ec971f;border-color:rgba(0,0,0,0)}.btn-warning:hover{color:#ffffff;background-color:#ec971f;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#ec971f;border-color:rgba(0,0,0,0)}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#d58512;border-color:rgba(0,0,0,0)}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:transparent}.btn-warning .badge{color:#f0ad4e;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#d9534f;border-color:transparent}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:hover{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#c9302c;border-color:rgba(0,0,0,0)}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#ac2925;border-color:rgba(0,0,0,0)}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:transparent}.btn-danger .badge{color:#d9534f;background-color:#ffffff}.btn-link{color:#df691a;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#df691a;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#4e5d6c;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:12px 24px;font-size:19px;line-height:1.3333333;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:13px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#4e5d6c;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#2b3e50}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#ebebeb;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ebebeb;background-color:#485563}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#df691a}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#2b3e50}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:13px;line-height:1.42857143;color:#2b3e50;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:52px;padding:12px 24px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:52px;line-height:52px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:31px;padding:5px 10px;font-size:13px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:31px;line-height:31px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 16px;font-size:15px;font-weight:normal;line-height:1;color:#2b3e50;text-align:center;background-color:#4e5d6c;border:1px solid transparent;border-radius:0}.input-group-addon.input-sm{padding:5px 10px;font-size:13px;border-radius:0}.input-group-addon.input-lg{padding:12px 24px;font-size:19px;border-radius:0}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#4e5d6c}.nav>li.disabled>a{color:#4e5d6c}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#4e5d6c;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#4e5d6c;border-color:#df691a}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid transparent}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:0 0 0 0}.nav-tabs>li>a:hover{border-color:#4e5d6c #4e5d6c transparent}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#ebebeb;background-color:#2b3e50;border:1px solid #4e5d6c;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #4e5d6c}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #4e5d6c;border-radius:0 0 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#4e5d6c}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#df691a}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #4e5d6c}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #4e5d6c;border-radius:0 0 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#4e5d6c}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:40px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:9.5px 15px;font-size:19px;line-height:21px;height:40px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:3px;margin-bottom:3px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:4.75px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:9.5px;padding-bottom:9.5px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:0.5px;margin-bottom:0.5px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:0.5px;margin-bottom:0.5px}.navbar-btn.btn-sm{margin-top:4.5px;margin-bottom:4.5px}.navbar-btn.btn-xs{margin-top:9px;margin-bottom:9px}.navbar-text{margin-top:9.5px;margin-bottom:9.5px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#4e5d6c;border-color:transparent}.navbar-default .navbar-brand{color:#ebebeb}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ebebeb;background-color:transparent}.navbar-default .navbar-text{color:#ebebeb}.navbar-default .navbar-nav>li>a{color:#ebebeb}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ebebeb;background-color:#485563}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ebebeb;background-color:#485563}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#485563}.navbar-default .navbar-toggle .icon-bar{background-color:#ebebeb}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:transparent}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#485563;color:#ebebeb}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ebebeb}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ebebeb;background-color:#485563}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ebebeb;background-color:#485563}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ebebeb}.navbar-default .navbar-link:hover{color:#ebebeb}.navbar-default .btn-link{color:#ebebeb}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ebebeb}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#df691a;border-color:transparent}.navbar-inverse .navbar-brand{color:#ebebeb}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ebebeb;background-color:transparent}.navbar-inverse .navbar-text{color:#ebebeb}.navbar-inverse .navbar-nav>li>a{color:#ebebeb}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ebebeb;background-color:#c85e17}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ebebeb;background-color:#c85e17}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#c85e17}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ebebeb}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#bf5a16}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#c85e17;color:#ebebeb}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ebebeb}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ebebeb;background-color:#c85e17}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ebebeb;background-color:#c85e17}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#ebebeb}.navbar-inverse .navbar-link:hover{color:#ebebeb}.navbar-inverse .btn-link{color:#ebebeb}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ebebeb}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#4e5d6c;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#ebebeb}.breadcrumb>.active{color:#ebebeb}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 16px;line-height:1.42857143;text-decoration:none;color:#ebebeb;background-color:#4e5d6c;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#ebebeb;background-color:#485563;border-color:transparent}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ebebeb;background-color:#df691a;border-color:transparent;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#323c46;background-color:#4e5d6c;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:12px 24px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:13px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#4e5d6c;border:1px solid transparent;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#485563}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#323c46;background-color:#4e5d6c;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#4e5d6c}.label-default[href]:hover,.label-default[href]:focus{background-color:#39444e}.label-primary{background-color:#df691a}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#b15315}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:13px;font-weight:300;color:#ebebeb;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#4e5d6c;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#df691a;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#4e5d6c}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#39444e}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.42857143;background-color:#2b3e50;border:1px solid #dddddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#df691a}.thumbnail .caption{padding:9px;color:#ebebeb}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#5cb85c;border-color:transparent;color:#ebebeb}.alert-success hr{border-top-color:rgba(0,0,0,0)}.alert-success .alert-link{color:#d2d2d2}.alert-info{background-color:#5bc0de;border-color:transparent;color:#ebebeb}.alert-info hr{border-top-color:rgba(0,0,0,0)}.alert-info .alert-link{color:#d2d2d2}.alert-warning{background-color:#f0ad4e;border-color:transparent;color:#ebebeb}.alert-warning hr{border-top-color:rgba(0,0,0,0)}.alert-warning .alert-link{color:#d2d2d2}.alert-danger{background-color:#d9534f;border-color:transparent;color:#ebebeb}.alert-danger hr{border-top-color:rgba(0,0,0,0)}.alert-danger .alert-link{color:#d2d2d2}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#4e5d6c;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:13px;line-height:21px;color:#ffffff;text-align:center;background-color:#df691a;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#4e5d6c;border:1px solid transparent}.list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#ebebeb}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#ebebeb}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#ebebeb;background-color:#485563}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#ebebeb;color:#4e5d6c;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#4e5d6c}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#df691a;border-color:#df691a}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#f9decc}.list-group-item-success{color:#ebebeb;background-color:#5cb85c}a.list-group-item-success,button.list-group-item-success{color:#ebebeb}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#ebebeb;background-color:#4cae4c}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#ebebeb;border-color:#ebebeb}.list-group-item-info{color:#ebebeb;background-color:#5bc0de}a.list-group-item-info,button.list-group-item-info{color:#ebebeb}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#ebebeb;background-color:#46b8da}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#ebebeb;border-color:#ebebeb}.list-group-item-warning{color:#ebebeb;background-color:#f0ad4e}a.list-group-item-warning,button.list-group-item-warning{color:#ebebeb}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#ebebeb;background-color:#eea236}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#ebebeb;border-color:#ebebeb}.list-group-item-danger{color:#ebebeb;background-color:#d9534f}a.list-group-item-danger,button.list-group-item-danger{color:#ebebeb}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#ebebeb;background-color:#d43f3a}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#ebebeb;border-color:#ebebeb}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#4e5d6c;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#485563;border-top:1px solid transparent;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:-1;border-top-left-radius:-1}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #4e5d6c}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid transparent}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid transparent}.panel-default{border-color:transparent}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:transparent}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-primary{border-color:transparent}.panel-primary>.panel-heading{color:#ffffff;background-color:#df691a;border-color:transparent}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-primary>.panel-heading .badge{color:#df691a;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-success{border-color:transparent}.panel-success>.panel-heading{color:#ebebeb;background-color:#5cb85c;border-color:transparent}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-success>.panel-heading .badge{color:#5cb85c;background-color:#ebebeb}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-info{border-color:transparent}.panel-info>.panel-heading{color:#ebebeb;background-color:#5bc0de;border-color:transparent}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#ebebeb}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-warning{border-color:transparent}.panel-warning>.panel-heading{color:#ebebeb;background-color:#f0ad4e;border-color:transparent}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-warning>.panel-heading .badge{color:#f0ad4e;background-color:#ebebeb}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.panel-danger{border-color:transparent}.panel-danger>.panel-heading{color:#ebebeb;background-color:#d9534f;border-color:transparent}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:transparent}.panel-danger>.panel-heading .badge{color:#d9534f;background-color:#ebebeb}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:transparent}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#4e5d6c;border:1px solid transparent;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#ebebeb;text-shadow:none;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ebebeb;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#4e5d6c;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #2b3e50;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #2b3e50}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:13px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:0}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Lato","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#4e5d6c;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#485563;border-bottom:1px solid #3d4954;border-radius:-1 -1 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:transparent;bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#4e5d6c}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:transparent}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#4e5d6c}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:transparent;top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#4e5d6c}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:transparent}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#4e5d6c;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{-webkit-box-shadow:none;box-shadow:none;border:none;font-size:12px}.navbar-default .badge{background-color:#fff;color:#4e5d6c}.navbar-inverse .badge{background-color:#fff;color:#df691a}.btn{font-weight:300}.btn-default:hover{background-color:#485563}.btn-sm,.btn-xs{font-size:12px}body{font-weight:300}.text-primary,.text-primary:hover{color:#df691a}.text-success,.text-success:hover{color:#5cb85c}.text-danger,.text-danger:hover{color:#d9534f}.text-warning,.text-warning:hover{color:#f0ad4e}.text-info,.text-info:hover{color:#5bc0de}.page-header{border-bottom-color:#4e5d6c}.dropdown-menu{border:none;margin:0;-webkit-box-shadow:none;box-shadow:none}.dropdown-menu>li>a{font-size:12px;font-weight:300}.btn-group.open .dropdown-toggle{-webkit-box-shadow:none;box-shadow:none}.dropdown-header{font-size:12px}table,.table{font-size:12px}table a:not(.btn),.table a:not(.btn){color:#fff;text-decoration:underline}table .dropdown-menu a,.table .dropdown-menu a{text-decoration:none}table .text-muted,.table .text-muted{color:#4e5d6c}table>thead>tr>th,.table>thead>tr>th,table>tbody>tr>th,.table>tbody>tr>th,table>tfoot>tr>th,.table>tfoot>tr>th,table>thead>tr>td,.table>thead>tr>td,table>tbody>tr>td,.table>tbody>tr>td,table>tfoot>tr>td,.table>tfoot>tr>td{border-color:transparent}input,textarea{color:#2b3e50}label,.radio label,.checkbox label,.help-block{font-size:12px;font-weight:300}.input-addon,.input-group-addon{color:#ebebeb}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label,.has-warning .form-control-feedback{color:#f0ad4e}.has-warning .input-group-addon{border:none}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label,.has-error .form-control-feedback{color:#d9534f}.has-error .input-group-addon{border:none}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label,.has-success .form-control-feedback{color:#5cb85c}.has-success .input-group-addon{border:none}.form-control:focus{-webkit-box-shadow:none;box-shadow:none}.has-warning .form-control:focus,.has-error .form-control:focus,.has-success .form-control:focus{-webkit-box-shadow:none;box-shadow:none}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:transparent}.nav-tabs>li>a{color:#ebebeb}.nav-pills>li>a{color:#ebebeb}.pager a{color:#ebebeb}.label{font-weight:300}.alert{color:#fff}.alert a,.alert .alert-link{color:#fff}.close{opacity:0.4}.close:hover,.close:focus{opacity:1}.well{-webkit-box-shadow:none;box-shadow:none}a.list-group-item.active,a.list-group-item.active:hover,a.list-group-item.active:focus{border:none}a.list-group-item-success.active{background-color:#5cb85c}a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{background-color:#4cae4c}a.list-group-item-warning.active{background-color:#f0ad4e}a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{background-color:#eea236}a.list-group-item-danger.active{background-color:#d9534f}a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{background-color:#d43f3a}.panel{border:none}.panel-default>.panel-heading{background-color:#485563;color:#ebebeb}.thumbnail{background-color:#4e5d6c;border:none}.modal{padding:0}.modal-header,.modal-footer{background-color:#485563;border:none;border-radius:0}.popover-title{border:none} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/united/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/united/bootstrap.min.css deleted file mode 100644 index 7791912a3b..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/united/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Ubuntu:400,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Ubuntu",Tahoma,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333333;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#dd4814;text-decoration:none}a:hover,a:focus{color:#97310e;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{padding:4px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eeeeee}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Ubuntu",Tahoma,"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#aea79f}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#aea79f}.text-primary{color:#dd4814}a.text-primary:hover,a.text-primary:focus{color:#ae3910}.text-success{color:#468847}a.text-success:hover,a.text-success:focus{color:#356635}.text-info{color:#3a87ad}a.text-info:hover,a.text-info:focus{color:#2d6987}.text-warning{color:#c09853}a.text-warning:hover,a.text-warning:focus{color:#a47e3c}.text-danger{color:#b94a48}a.text-danger:hover,a.text-danger:focus{color:#953b39}.bg-primary{color:#fff;background-color:#dd4814}a.bg-primary:hover,a.bg-primary:focus{background-color:#ae3910}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eeeeee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #aea79f}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eeeeee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#aea79f}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #eeeeee;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#aea79f;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:14px;line-height:1.42857143;color:#333333}.form-control{display:block;width:100%;height:38px;padding:8px 12px;font-size:14px;line-height:1.42857143;color:#333333;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#aea79f;opacity:1}.form-control:-ms-input-placeholder{color:#aea79f}.form-control::-webkit-input-placeholder{color:#aea79f}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:38px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:30px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:54px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:34px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:54px;line-height:54px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:54px;line-height:54px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:54px;min-height:38px;padding:15px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:47.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:38px;height:38px;line-height:38px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:54px;height:54px;line-height:54px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#468847}.has-success .form-control{border-color:#468847;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#356635;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #7aba7b}.has-success .input-group-addon{color:#468847;border-color:#468847;background-color:#dff0d8}.has-success .form-control-feedback{color:#468847}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#c09853}.has-warning .form-control{border-color:#c09853;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#a47e3c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #dbc59e}.has-warning .input-group-addon{color:#c09853;border-color:#c09853;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#c09853}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#b94a48}.has-error .form-control{border-color:#b94a48;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#953b39;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #d59392}.has-error .input-group-addon{color:#b94a48;border-color:#b94a48;background-color:#f2dede}.has-error .form-control-feedback{color:#b94a48}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:29px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:19.6666662px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:14px;line-height:1.42857143;border-radius:4px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#ffffff;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#ffffff;background-color:#aea79f;border-color:#aea79f}.btn-default:focus,.btn-default.focus{color:#ffffff;background-color:#978e83;border-color:#6f675e}.btn-default:hover{color:#ffffff;background-color:#978e83;border-color:#92897e}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#ffffff;background-color:#978e83;border-color:#92897e}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#ffffff;background-color:#867c71;border-color:#6f675e}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#aea79f;border-color:#aea79f}.btn-default .badge{color:#aea79f;background-color:#ffffff}.btn-primary{color:#ffffff;background-color:#dd4814;border-color:#dd4814}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#ae3910;border-color:#682209}.btn-primary:hover{color:#ffffff;background-color:#ae3910;border-color:#a5360f}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#ae3910;border-color:#a5360f}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#8d2e0d;border-color:#682209}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#dd4814;border-color:#dd4814}.btn-primary .badge{color:#dd4814;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#38b44a;border-color:#38b44a}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#2c8d3a;border-color:#1a5322}.btn-success:hover{color:#ffffff;background-color:#2c8d3a;border-color:#298537}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#2c8d3a;border-color:#298537}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#23722f;border-color:#1a5322}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#38b44a;border-color:#38b44a}.btn-success .badge{color:#38b44a;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#772953;border-color:#772953}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#511c39;border-color:#180811}.btn-info:hover{color:#ffffff;background-color:#511c39;border-color:#491933}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#511c39;border-color:#491933}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#371326;border-color:#180811}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#772953;border-color:#772953}.btn-info .badge{color:#772953;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#efb73e;border-color:#efb73e}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#e7a413;border-color:#a0720d}.btn-warning:hover{color:#ffffff;background-color:#e7a413;border-color:#dd9d12}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#e7a413;border-color:#dd9d12}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#c68c10;border-color:#a0720d}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#efb73e;border-color:#efb73e}.btn-warning .badge{color:#efb73e;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#df382c;border-color:#df382c}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#bc271c;border-color:#791912}.btn-danger:hover{color:#ffffff;background-color:#bc271c;border-color:#b3251b}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#bc271c;border-color:#b3251b}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#9d2118;border-color:#791912}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#df382c;border-color:#df382c}.btn-danger .badge{color:#df382c;background-color:#ffffff}.btn-link{color:#dd4814;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#97310e;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#aea79f;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:14px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.42857143;color:#333333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#ffffff;background-color:#dd4814}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#dd4814}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#aea79f}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#aea79f;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:4px;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:54px;padding:14px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:54px;line-height:54px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:14px;font-weight:normal;line-height:1;color:#333333;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:14px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#aea79f}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#aea79f;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#dd4814}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#777777;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#dd4814}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:15px 15px;font-size:18px;line-height:20px;height:50px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:8px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:6px;margin-bottom:6px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:4px;border-top-left-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:6px;margin-bottom:6px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#dd4814;border-color:#bf3e11}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-default .navbar-text{color:#ffffff}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#97310e}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#ae3910}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#97310e}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#97310e}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#bf3e11}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#ae3910;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#97310e}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#ae3910}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#772953;border-color:#511c39}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:none}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#3e152b}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#511c39}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#3e152b}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#3e152b}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#5c2040}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#511c39;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#511c39}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#511c39}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#3e152b}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#511c39}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#cccccc}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#cccccc}.breadcrumb>.active{color:#aea79f}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.42857143;text-decoration:none;color:#dd4814;background-color:#ffffff;border:1px solid #dddddd;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:4px;border-top-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:4px;border-top-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#97310e;background-color:#eeeeee;border-color:#dddddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#aea79f;background-color:#f5f5f5;border-color:#dddddd;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#aea79f;background-color:#ffffff;border-color:#dddddd;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:14px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:6px;border-top-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:6px;border-top-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:3px;border-top-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:3px;border-top-right-radius:3px}.pager{padding-left:0;margin:20px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#ffffff;border:1px solid #dddddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#aea79f;background-color:#ffffff;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#aea79f}.label-default[href]:hover,.label-default[href]:focus{background-color:#978e83}.label-primary{background-color:#dd4814}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#ae3910}.label-success{background-color:#38b44a}.label-success[href]:hover,.label-success[href]:focus{background-color:#2c8d3a}.label-info{background-color:#772953}.label-info[href]:hover,.label-info[href]:focus{background-color:#511c39}.label-warning{background-color:#efb73e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#e7a413}.label-danger{background-color:#df382c}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#bc271c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#aea79f;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#dd4814;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eeeeee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#ffffff;border:1px solid #dddddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#dd4814}.thumbnail .caption{padding:9px;color:#333333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#dff0d8;border-color:#d6e9c6;color:#468847}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#356635}.alert-info{background-color:#d9edf7;border-color:#bce8f1;color:#3a87ad}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#2d6987}.alert-warning{background-color:#fcf8e3;border-color:#fbeed5;color:#c09853}.alert-warning hr{border-top-color:#f8e5be}.alert-warning .alert-link{color:#a47e3c}.alert-danger{background-color:#f2dede;border-color:#eed3d7;color:#b94a48}.alert-danger hr{border-top-color:#e6c1c7}.alert-danger .alert-link{color:#953b39}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:20px;color:#ffffff;text-align:center;background-color:#dd4814;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#38b44a}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#772953}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#efb73e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#df382c}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:4px;border-top-left-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#aea79f;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#aea79f}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#dd4814;border-color:#dd4814}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#fad1c3}.list-group-item-success{color:#468847;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#468847}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#468847;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#468847;border-color:#468847}.list-group-item-info{color:#3a87ad;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#3a87ad}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#3a87ad;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#3a87ad;border-color:#3a87ad}.list-group-item-warning{color:#c09853;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#c09853}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#c09853;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#c09853;border-color:#c09853}.list-group-item-danger{color:#b94a48;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#b94a48}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#b94a48;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#b94a48;border-color:#b94a48}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#ffffff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:3px;border-top-left-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:3px;border-top-left-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:3px;border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:3px;border-bottom-right-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#dd4814}.panel-primary>.panel-heading{color:#ffffff;background-color:#dd4814;border-color:#dd4814}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dd4814}.panel-primary>.panel-heading .badge{color:#dd4814;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dd4814}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#468847;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#468847}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#3a87ad;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#3a87ad}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#fbeed5}.panel-warning>.panel-heading{color:#c09853;background-color:#fcf8e3;border-color:#fbeed5}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#fbeed5}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#c09853}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#fbeed5}.panel-danger{border-color:#eed3d7}.panel-danger>.panel-heading{color:#b94a48;background-color:#f2dede;border-color:#eed3d7}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#eed3d7}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#b94a48}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#eed3d7}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:bold;line-height:1;color:#000000;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#000000;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.42857143px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Ubuntu",Tahoma,"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#000000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Ubuntu",Tahoma,"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:14px;background-color:#ffffff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#999999;border-top-color:rgba(0,0,0,0.25);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#ffffff}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#999999;border-right-color:rgba(0,0,0,0.25)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#ffffff}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999999;border-bottom-color:rgba(0,0,0,0.25);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#ffffff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999999;border-left-color:rgba(0,0,0,0.25)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#ffffff;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar-default .badge{background-color:#fff;color:#dd4814}.navbar-inverse .badge{background-color:#fff;color:#772953}@media (max-width:767px){.navbar .dropdown-menu a{color:#fff}} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/yeti/bootstrap.min.css b/mayan/apps/appearance/static/appearance/packages/bootswatch.com/yeti/bootstrap.min.css deleted file mode 100644 index 1bb3af7e9c..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/bootswatch.com/yeti/bootstrap.min.css +++ /dev/null @@ -1,11 +0,0 @@ -@import url("https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,700italic,400,300,700");/*! - * bootswatch v3.3.5 - * Homepage: http://bootswatch.com - * Copyright 2012-2015 Thomas Park - * Licensed under MIT - * Based on Bootstrap -*//*! - * Bootstrap v3.3.5 (http://getbootstrap.com) - * Copyright 2011-2015 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:bold}dfn{font-style:italic}h1{font-size:2em;margin:0.67em 0}mark{background:#ff0;color:#000}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace, monospace;font-size:1em}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0}button{overflow:visible}button,select{text-transform:none}button,html input[type="button"],input[type="reset"],input[type="submit"]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}input{line-height:normal}input[type="checkbox"],input[type="radio"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type="number"]::-webkit-inner-spin-button,input[type="number"]::-webkit-outer-spin-button{height:auto}input[type="search"]{-webkit-appearance:textfield;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}input[type="search"]::-webkit-search-cancel-button,input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}fieldset{border:1px solid #c0c0c0;margin:0 2px;padding:0.35em 0.625em 0.75em}legend{border:0;padding:0}textarea{overflow:auto}optgroup{font-weight:bold}table{border-collapse:collapse;border-spacing:0}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,*:before,*:after{background:transparent !important;color:#000 !important;-webkit-box-shadow:none !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000 !important}.label{border:1px solid #000}.table{border-collapse:collapse !important}.table td,.table th{background-color:#fff !important}.table-bordered th,.table-bordered td{border:1px solid #ddd !important}}@font-face{font-family:'Glyphicons Halflings';src:url('../fonts/glyphicons-halflings-regular.eot');src:url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'),url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'),url('../fonts/glyphicons-halflings-regular.woff') format('woff'),url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'),url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:normal;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}*:before,*:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:15px;line-height:1.4;color:#222222;background-color:#ffffff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#008cba;text-decoration:none}a:hover,a:focus{color:#008cba;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:0}.img-thumbnail{padding:4px;line-height:1.4;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out;display:inline-block;max-width:100%;height:auto}.img-circle{border-radius:50%}hr{margin-top:21px;margin-bottom:21px;border:0;border-top:1px solid #dddddd}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role="button"]{cursor:pointer}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:300;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:normal;line-height:1;color:#999999}h1,.h1,h2,.h2,h3,.h3{margin-top:21px;margin-bottom:10.5px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10.5px;margin-bottom:10.5px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:39px}h2,.h2{font-size:32px}h3,.h3{font-size:26px}h4,.h4{font-size:19px}h5,.h5{font-size:15px}h6,.h6{font-size:13px}p{margin:0 0 10.5px}.lead{margin-bottom:21px;font-size:17px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:22.5px}}small,.small{font-size:80%}mark,.mark{background-color:#fcf8e3;padding:.2em}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#999999}.text-primary{color:#008cba}a.text-primary:hover,a.text-primary:focus{color:#006687}.text-success{color:#43ac6a}a.text-success:hover,a.text-success:focus{color:#358753}.text-info{color:#5bc0de}a.text-info:hover,a.text-info:focus{color:#31b0d5}.text-warning{color:#e99002}a.text-warning:hover,a.text-warning:focus{color:#b67102}.text-danger{color:#f04124}a.text-danger:hover,a.text-danger:focus{color:#d32a0e}.bg-primary{color:#fff;background-color:#008cba}a.bg-primary:hover,a.bg-primary:focus{background-color:#006687}.bg-success{background-color:#dff0d8}a.bg-success:hover,a.bg-success:focus{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover,a.bg-info:focus{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover,a.bg-warning:focus{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover,a.bg-danger:focus{background-color:#e4b9b9}.page-header{padding-bottom:9.5px;margin:42px 0 21px;border-bottom:1px solid #dddddd}ul,ol{margin-top:0;margin-bottom:10.5px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none;margin-left:-5px}.list-inline>li{display:inline-block;padding-left:5px;padding-right:5px}dl{margin-top:0;margin-bottom:21px}dt,dd{line-height:1.4}dt{font-weight:bold}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;clear:left;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #999999}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10.5px 21px;margin:0 0 21px;font-size:18.75px;border-left:5px solid #dddddd}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.4;color:#6f6f6f}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;border-right:5px solid #dddddd;border-left:0;text-align:right}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:21px;font-style:normal;line-height:1.4}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:0}kbd{padding:2px 4px;font-size:90%;color:#ffffff;background-color:#333333;border-radius:0;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.25)}kbd kbd{padding:0;font-size:100%;font-weight:bold;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:10px;margin:0 0 10.5px;font-size:14px;line-height:1.4;word-break:break-all;word-wrap:break-word;color:#333333;background-color:#f5f5f5;border:1px solid #cccccc;border-radius:0}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{margin-left:-15px;margin-right:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-left:15px;padding-right:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0%}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0%}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0%}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0%}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#999999;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:21px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.4;vertical-align:top;border-top:1px solid #dddddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #dddddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #dddddd}.table .table{background-color:#ffffff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #dddddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*="col-"]{position:static;float:none;display:table-column}table td[class*="col-"],table th[class*="col-"]{position:static;float:none;display:table-cell}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{overflow-x:auto;min-height:0.01%}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15.75px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #dddddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{padding:0;margin:0;border:0;min-width:0}legend{display:block;width:100%;padding:0;margin-bottom:21px;font-size:22.5px;line-height:inherit;color:#333333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:bold}input[type="search"]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type="radio"],input[type="checkbox"]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type="file"]{display:block}input[type="range"]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type="file"]:focus,input[type="radio"]:focus,input[type="checkbox"]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:9px;font-size:15px;line-height:1.4;color:#6f6f6f}.form-control{display:block;width:100%;height:39px;padding:8px 12px;font-size:15px;line-height:1.4;color:#6f6f6f;background-color:#ffffff;background-image:none;border:1px solid #cccccc;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 8px rgba(102,175,233,0.6)}.form-control::-moz-placeholder{color:#999999;opacity:1}.form-control:-ms-input-placeholder{color:#999999}.form-control::-webkit-input-placeholder{color:#999999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eeeeee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type="search"]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type="date"].form-control,input[type="time"].form-control,input[type="datetime-local"].form-control,input[type="month"].form-control{line-height:39px}input[type="date"].input-sm,input[type="time"].input-sm,input[type="datetime-local"].input-sm,input[type="month"].input-sm,.input-group-sm input[type="date"],.input-group-sm input[type="time"],.input-group-sm input[type="datetime-local"],.input-group-sm input[type="month"]{line-height:36px}input[type="date"].input-lg,input[type="time"].input-lg,input[type="datetime-local"].input-lg,input[type="month"].input-lg,.input-group-lg input[type="date"],.input-group-lg input[type="time"],.input-group-lg input[type="datetime-local"],.input-group-lg input[type="month"]{line-height:60px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:21px;padding-left:20px;margin-bottom:0;font-weight:normal;cursor:pointer}.radio input[type="radio"],.radio-inline input[type="radio"],.checkbox input[type="checkbox"],.checkbox-inline input[type="checkbox"]{position:absolute;margin-left:-20px;margin-top:4px \9}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;vertical-align:middle;font-weight:normal;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type="radio"][disabled],input[type="checkbox"][disabled],input[type="radio"].disabled,input[type="checkbox"].disabled,fieldset[disabled] input[type="radio"],fieldset[disabled] input[type="checkbox"]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:9px;padding-bottom:9px;margin-bottom:0;min-height:36px}.form-control-static.input-lg,.form-control-static.input-sm{padding-left:0;padding-right:0}.input-sm{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-sm{height:36px;line-height:36px}textarea.input-sm,select[multiple].input-sm{height:auto}.form-group-sm .form-control{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.form-group-sm select.form-control{height:36px;line-height:36px}.form-group-sm textarea.form-control,.form-group-sm select[multiple].form-control{height:auto}.form-group-sm .form-control-static{height:36px;min-height:33px;padding:9px 12px;font-size:12px;line-height:1.5}.input-lg{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-lg{height:60px;line-height:60px}textarea.input-lg,select[multiple].input-lg{height:auto}.form-group-lg .form-control{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.form-group-lg select.form-control{height:60px;line-height:60px}.form-group-lg textarea.form-control,.form-group-lg select[multiple].form-control{height:auto}.form-group-lg .form-control-static{height:60px;min-height:40px;padding:17px 20px;font-size:19px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:48.75px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:39px;height:39px;line-height:39px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback,.input-group-lg+.form-control-feedback,.form-group-lg .form-control+.form-control-feedback{width:60px;height:60px;line-height:60px}.input-sm+.form-control-feedback,.input-group-sm+.form-control-feedback,.form-group-sm .form-control+.form-control-feedback{width:36px;height:36px;line-height:36px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#43ac6a}.has-success .form-control{border-color:#43ac6a;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-success .form-control:focus{border-color:#358753;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #85d0a1;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #85d0a1}.has-success .input-group-addon{color:#43ac6a;border-color:#43ac6a;background-color:#dff0d8}.has-success .form-control-feedback{color:#43ac6a}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#e99002}.has-warning .form-control{border-color:#e99002;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-warning .form-control:focus{border-color:#b67102;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #febc53;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #febc53}.has-warning .input-group-addon{color:#e99002;border-color:#e99002;background-color:#fcf8e3}.has-warning .form-control-feedback{color:#e99002}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#f04124}.has-error .form-control{border-color:#f04124;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075);box-shadow:inset 0 1px 1px rgba(0,0,0,0.075)}.has-error .form-control:focus{border-color:#d32a0e;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f79483;box-shadow:inset 0 1px 1px rgba(0,0,0,0.075),0 0 6px #f79483}.has-error .input-group-addon{color:#f04124;border-color:#f04124;background-color:#f2dede}.has-error .form-control-feedback{color:#f04124}.has-feedback label~.form-control-feedback{top:26px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#626262}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type="radio"],.form-inline .checkbox input[type="checkbox"]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{margin-top:0;margin-bottom:0;padding-top:9px}.form-horizontal .radio,.form-horizontal .checkbox{min-height:30px}.form-horizontal .form-group{margin-left:-15px;margin-right:-15px}@media (min-width:768px){.form-horizontal .control-label{text-align:right;margin-bottom:0;padding-top:9px}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:22.3333328px;font-size:19px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:9px;font-size:12px}}.btn{display:inline-block;margin-bottom:0;font-weight:normal;text-align:center;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;background-image:none;border:1px solid transparent;white-space:nowrap;padding:8px 12px;font-size:15px;line-height:1.4;border-radius:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333333;text-decoration:none}.btn:active,.btn.active{outline:0;background-image:none;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;opacity:0.65;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333333;background-color:#e7e7e7;border-color:#cccccc}.btn-default:focus,.btn-default.focus{color:#333333;background-color:#cecece;border-color:#8c8c8c}.btn-default:hover{color:#333333;background-color:#cecece;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333333;background-color:#cecece;border-color:#adadad}.btn-default:active:hover,.btn-default.active:hover,.open>.dropdown-toggle.btn-default:hover,.btn-default:active:focus,.btn-default.active:focus,.open>.dropdown-toggle.btn-default:focus,.btn-default:active.focus,.btn-default.active.focus,.open>.dropdown-toggle.btn-default.focus{color:#333333;background-color:#bcbcbc;border-color:#8c8c8c}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#e7e7e7;border-color:#cccccc}.btn-default .badge{color:#e7e7e7;background-color:#333333}.btn-primary{color:#ffffff;background-color:#008cba;border-color:#0079a1}.btn-primary:focus,.btn-primary.focus{color:#ffffff;background-color:#006687;border-color:#001921}.btn-primary:hover{color:#ffffff;background-color:#006687;border-color:#004b63}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#ffffff;background-color:#006687;border-color:#004b63}.btn-primary:active:hover,.btn-primary.active:hover,.open>.dropdown-toggle.btn-primary:hover,.btn-primary:active:focus,.btn-primary.active:focus,.open>.dropdown-toggle.btn-primary:focus,.btn-primary:active.focus,.btn-primary.active.focus,.open>.dropdown-toggle.btn-primary.focus{color:#ffffff;background-color:#004b63;border-color:#001921}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#008cba;border-color:#0079a1}.btn-primary .badge{color:#008cba;background-color:#ffffff}.btn-success{color:#ffffff;background-color:#43ac6a;border-color:#3c9a5f}.btn-success:focus,.btn-success.focus{color:#ffffff;background-color:#358753;border-color:#183e26}.btn-success:hover{color:#ffffff;background-color:#358753;border-color:#2b6e44}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#ffffff;background-color:#358753;border-color:#2b6e44}.btn-success:active:hover,.btn-success.active:hover,.open>.dropdown-toggle.btn-success:hover,.btn-success:active:focus,.btn-success.active:focus,.open>.dropdown-toggle.btn-success:focus,.btn-success:active.focus,.btn-success.active.focus,.open>.dropdown-toggle.btn-success.focus{color:#ffffff;background-color:#2b6e44;border-color:#183e26}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#43ac6a;border-color:#3c9a5f}.btn-success .badge{color:#43ac6a;background-color:#ffffff}.btn-info{color:#ffffff;background-color:#5bc0de;border-color:#46b8da}.btn-info:focus,.btn-info.focus{color:#ffffff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#ffffff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#ffffff;background-color:#31b0d5;border-color:#269abc}.btn-info:active:hover,.btn-info.active:hover,.open>.dropdown-toggle.btn-info:hover,.btn-info:active:focus,.btn-info.active:focus,.open>.dropdown-toggle.btn-info:focus,.btn-info:active.focus,.btn-info.active.focus,.open>.dropdown-toggle.btn-info.focus{color:#ffffff;background-color:#269abc;border-color:#1b6d85}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#ffffff}.btn-warning{color:#ffffff;background-color:#e99002;border-color:#d08002}.btn-warning:focus,.btn-warning.focus{color:#ffffff;background-color:#b67102;border-color:#513201}.btn-warning:hover{color:#ffffff;background-color:#b67102;border-color:#935b01}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#ffffff;background-color:#b67102;border-color:#935b01}.btn-warning:active:hover,.btn-warning.active:hover,.open>.dropdown-toggle.btn-warning:hover,.btn-warning:active:focus,.btn-warning.active:focus,.open>.dropdown-toggle.btn-warning:focus,.btn-warning:active.focus,.btn-warning.active.focus,.open>.dropdown-toggle.btn-warning.focus{color:#ffffff;background-color:#935b01;border-color:#513201}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#e99002;border-color:#d08002}.btn-warning .badge{color:#e99002;background-color:#ffffff}.btn-danger{color:#ffffff;background-color:#f04124;border-color:#ea2f10}.btn-danger:focus,.btn-danger.focus{color:#ffffff;background-color:#d32a0e;border-color:#731708}.btn-danger:hover{color:#ffffff;background-color:#d32a0e;border-color:#b1240c}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#ffffff;background-color:#d32a0e;border-color:#b1240c}.btn-danger:active:hover,.btn-danger.active:hover,.open>.dropdown-toggle.btn-danger:hover,.btn-danger:active:focus,.btn-danger.active:focus,.open>.dropdown-toggle.btn-danger:focus,.btn-danger:active.focus,.btn-danger.active.focus,.open>.dropdown-toggle.btn-danger.focus{color:#ffffff;background-color:#b1240c;border-color:#731708}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#f04124;border-color:#ea2f10}.btn-danger .badge{color:#f04124;background-color:#ffffff}.btn-link{color:#008cba;font-weight:normal;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#008cba;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#999999;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}.btn-sm,.btn-group-sm>.btn{padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}.btn-xs,.btn-group-xs>.btn{padding:4px 6px;font-size:12px;line-height:1.5;border-radius:0}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type="submit"].btn-block,input[type="reset"].btn-block,input[type="button"].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity 0.15s linear;-o-transition:opacity 0.15s linear;transition:opacity 0.15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-property:height, visibility;-o-transition-property:height, visibility;transition-property:height, visibility;-webkit-transition-duration:0.35s;-o-transition-duration:0.35s;transition-duration:0.35s;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid \9;border-right:4px solid transparent;border-left:4px solid transparent}.dropup,.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;list-style:none;font-size:15px;text-align:left;background-color:#ffffff;border:1px solid #cccccc;border:1px solid rgba(0,0,0,0.15);border-radius:0;-webkit-box-shadow:0 6px 12px rgba(0,0,0,0.175);box-shadow:0 6px 12px rgba(0,0,0,0.175);-webkit-background-clip:padding-box;background-clip:padding-box}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:rgba(0,0,0,0.2)}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:normal;line-height:1.4;color:#555555;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{text-decoration:none;color:#262626;background-color:#eeeeee}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#ffffff;text-decoration:none;outline:0;background-color:#008cba}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#999999}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);cursor:not-allowed}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{left:auto;right:0}.dropdown-menu-left{left:0;right:auto}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.4;color:#999999;white-space:nowrap}.dropdown-backdrop{position:fixed;left:0;right:0;bottom:0;top:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{border-top:0;border-bottom:4px dashed;border-bottom:4px solid \9;content:""}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{left:auto;right:0}.navbar-right .dropdown-menu-left{left:0;right:auto}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-top-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-bottom-left-radius:0;border-top-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-left:8px;padding-right:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-left:12px;padding-right:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,0.125);box-shadow:inset 0 3px 5px rgba(0,0,0,0.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:0;border-top-right-radius:0;border-top-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-right-radius:0;border-top-left-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{float:none;display:table-cell;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle="buttons"]>.btn input[type="radio"],[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],[data-toggle="buttons"]>.btn input[type="checkbox"],[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"]{position:absolute;clip:rect(0, 0, 0, 0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*="col-"]{float:none;padding-left:0;padding-right:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:60px;padding:16px 20px;font-size:19px;line-height:1.3333333;border-radius:0}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:60px;line-height:60px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:36px;padding:8px 12px;font-size:12px;line-height:1.5;border-radius:0}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:36px;line-height:36px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:8px 12px;font-size:15px;font-weight:normal;line-height:1;color:#6f6f6f;text-align:center;background-color:#eeeeee;border:1px solid #cccccc;border-radius:0}.input-group-addon.input-sm{padding:8px 12px;font-size:12px;border-radius:0}.input-group-addon.input-lg{padding:16px 20px;font-size:19px;border-radius:0}.input-group-addon input[type="radio"],.input-group-addon input[type="checkbox"]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-bottom-right-radius:0;border-top-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-bottom-left-radius:0;border-top-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{margin-bottom:0;padding-left:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eeeeee}.nav>li.disabled>a{color:#999999}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#999999;text-decoration:none;background-color:transparent;cursor:not-allowed}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eeeeee;border-color:#008cba}.nav .nav-divider{height:1px;margin:9.5px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #dddddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.4;border:1px solid transparent;border-radius:0 0 0 0}.nav-tabs>li>a:hover{border-color:#eeeeee #eeeeee #dddddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#6f6f6f;background-color:#ffffff;border:1px solid #dddddd;border-bottom-color:transparent;cursor:default}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#ffffff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:0}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#ffffff;background-color:#008cba}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{text-align:center;margin-bottom:5px}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #dddddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #dddddd;border-radius:0 0 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#ffffff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-right-radius:0;border-top-left-radius:0}.navbar{position:relative;min-height:45px;margin-bottom:21px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:0}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{overflow-x:visible;padding-right:15px;padding-left:15px;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1);-webkit-overflow-scrolling:touch}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block !important;height:auto !important;padding-bottom:0;overflow:visible !important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-left:0;padding-right:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;padding:12px 15px;font-size:19px;line-height:21px;height:45px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;margin-right:15px;padding:9px 10px;margin-top:5.5px;margin-bottom:5.5px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:0}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:6px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:21px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:21px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:12px;padding-bottom:12px}}.navbar-form{margin-left:-15px;margin-right:-15px;padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);box-shadow:inset 0 1px 0 rgba(255,255,255,0.1),0 1px 0 rgba(255,255,255,0.1);margin-top:3px;margin-bottom:3px}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type="radio"],.navbar-form .checkbox input[type="checkbox"]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;border:0;margin-left:0;margin-right:0;padding-top:0;padding-bottom:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-right-radius:0;border-top-left-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:3px;margin-bottom:3px}.navbar-btn.btn-sm{margin-top:4.5px;margin-bottom:4.5px}.navbar-btn.btn-xs{margin-top:11.5px;margin-bottom:11.5px}.navbar-text{margin-top:12px;margin-bottom:12px}@media (min-width:768px){.navbar-text{float:left;margin-left:15px;margin-right:15px}}@media (min-width:768px){.navbar-left{float:left !important}.navbar-right{float:right !important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#333333;border-color:#222222}.navbar-default .navbar-brand{color:#ffffff}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-default .navbar-text{color:#ffffff}.navbar-default .navbar-nav>li>a{color:#ffffff}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#ffffff;background-color:#272727}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#ffffff;background-color:#272727}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#cccccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:transparent}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:transparent}.navbar-default .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#222222}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{background-color:#272727;color:#ffffff}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#272727}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#cccccc;background-color:transparent}}.navbar-default .navbar-link{color:#ffffff}.navbar-default .navbar-link:hover{color:#ffffff}.navbar-default .btn-link{color:#ffffff}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#ffffff}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#cccccc}.navbar-inverse{background-color:#008cba;border-color:#006687}.navbar-inverse .navbar-brand{color:#ffffff}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#ffffff;background-color:transparent}.navbar-inverse .navbar-text{color:#ffffff}.navbar-inverse .navbar-nav>li>a{color:#ffffff}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#ffffff;background-color:#006687}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#ffffff;background-color:#006687}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:transparent}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:transparent}.navbar-inverse .navbar-toggle .icon-bar{background-color:#ffffff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#007196}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{background-color:#006687;color:#ffffff}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#ffffff}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#ffffff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#ffffff;background-color:#006687}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444444;background-color:transparent}}.navbar-inverse .navbar-link{color:#ffffff}.navbar-inverse .navbar-link:hover{color:#ffffff}.navbar-inverse .btn-link{color:#ffffff}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#ffffff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444444}.breadcrumb{padding:8px 15px;margin-bottom:21px;list-style:none;background-color:#f5f5f5;border-radius:0}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{content:"/\00a0";padding:0 5px;color:#999999}.breadcrumb>.active{color:#333333}.pagination{display:inline-block;padding-left:0;margin:21px 0;border-radius:0}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:8px 12px;line-height:1.4;text-decoration:none;color:#008cba;background-color:transparent;border:1px solid transparent;margin-left:-1px}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-bottom-left-radius:0;border-top-left-radius:0}.pagination>li:last-child>a,.pagination>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{z-index:3;color:#008cba;background-color:#eeeeee;border-color:transparent}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#ffffff;background-color:#008cba;border-color:transparent;cursor:default}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#999999;background-color:#ffffff;border-color:transparent;cursor:not-allowed}.pagination-lg>li>a,.pagination-lg>li>span{padding:16px 20px;font-size:19px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pagination-sm>li>a,.pagination-sm>li>span{padding:8px 12px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-bottom-left-radius:0;border-top-left-radius:0}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-bottom-right-radius:0;border-top-right-radius:0}.pager{padding-left:0;margin:21px 0;list-style:none;text-align:center}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:transparent;border:1px solid transparent;border-radius:3px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eeeeee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#999999;background-color:transparent;cursor:not-allowed}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:bold;line-height:1;color:#ffffff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#ffffff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#999999}.label-default[href]:hover,.label-default[href]:focus{background-color:#808080}.label-primary{background-color:#008cba}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#006687}.label-success{background-color:#43ac6a}.label-success[href]:hover,.label-success[href]:focus{background-color:#358753}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#e99002}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#b67102}.label-danger{background-color:#f04124}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#d32a0e}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:bold;color:#ffffff;line-height:1;vertical-align:middle;white-space:nowrap;text-align:center;background-color:#008cba;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge,.btn-group-xs>.btn .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#ffffff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#008cba;background-color:#ffffff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#fafafa}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:23px;font-weight:200}.jumbotron>hr{border-top-color:#e1e1e1}.container .jumbotron,.container-fluid .jumbotron{border-radius:0}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-left:60px;padding-right:60px}.jumbotron h1,.jumbotron .h1{font-size:68px}}.thumbnail{display:block;padding:4px;margin-bottom:21px;line-height:1.4;background-color:#ffffff;border:1px solid #dddddd;border-radius:0;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-left:auto;margin-right:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#008cba}.thumbnail .caption{padding:9px;color:#222222}.alert{padding:15px;margin-bottom:21px;border:1px solid transparent;border-radius:0}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:bold}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{background-color:#43ac6a;border-color:#3c9a5f;color:#ffffff}.alert-success hr{border-top-color:#358753}.alert-success .alert-link{color:#e6e6e6}.alert-info{background-color:#5bc0de;border-color:#3db5d8;color:#ffffff}.alert-info hr{border-top-color:#2aabd2}.alert-info .alert-link{color:#e6e6e6}.alert-warning{background-color:#e99002;border-color:#d08002;color:#ffffff}.alert-warning hr{border-top-color:#b67102}.alert-warning .alert-link{color:#e6e6e6}.alert-danger{background-color:#f04124;border-color:#ea2f10;color:#ffffff}.alert-danger hr{border-top-color:#d32a0e}.alert-danger .alert-link{color:#e6e6e6}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{overflow:hidden;height:21px;margin-bottom:21px;background-color:#f5f5f5;border-radius:0;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,0.1);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}.progress-bar{float:left;width:0%;height:100%;font-size:12px;line-height:21px;color:#ffffff;text-align:center;background-color:#008cba;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,0.15);-webkit-transition:width 0.6s ease;-o-transition:width 0.6s ease;transition:width 0.6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#43ac6a}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-warning{background-color:#e99002}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.progress-bar-danger{background-color:#f04124}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:-o-linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent);background-image:linear-gradient(45deg, rgba(255,255,255,0.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,0.15) 50%, rgba(255,255,255,0.15) 75%, transparent 75%, transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{zoom:1;overflow:hidden}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{margin-bottom:20px;padding-left:0}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#ffffff;border:1px solid #dddddd}.list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}a.list-group-item,button.list-group-item{color:#555555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333333}a.list-group-item:hover,button.list-group-item:hover,a.list-group-item:focus,button.list-group-item:focus{text-decoration:none;color:#555555;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{background-color:#eeeeee;color:#999999;cursor:not-allowed}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#999999}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#ffffff;background-color:#008cba;border-color:#008cba}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#87e1ff}.list-group-item-success{color:#43ac6a;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#43ac6a}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,button.list-group-item-success:hover,a.list-group-item-success:focus,button.list-group-item-success:focus{color:#43ac6a;background-color:#d0e9c6}a.list-group-item-success.active,button.list-group-item-success.active,a.list-group-item-success.active:hover,button.list-group-item-success.active:hover,a.list-group-item-success.active:focus,button.list-group-item-success.active:focus{color:#fff;background-color:#43ac6a;border-color:#43ac6a}.list-group-item-info{color:#5bc0de;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#5bc0de}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,button.list-group-item-info:hover,a.list-group-item-info:focus,button.list-group-item-info:focus{color:#5bc0de;background-color:#c4e3f3}a.list-group-item-info.active,button.list-group-item-info.active,a.list-group-item-info.active:hover,button.list-group-item-info.active:hover,a.list-group-item-info.active:focus,button.list-group-item-info.active:focus{color:#fff;background-color:#5bc0de;border-color:#5bc0de}.list-group-item-warning{color:#e99002;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#e99002}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,button.list-group-item-warning:hover,a.list-group-item-warning:focus,button.list-group-item-warning:focus{color:#e99002;background-color:#faf2cc}a.list-group-item-warning.active,button.list-group-item-warning.active,a.list-group-item-warning.active:hover,button.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus,button.list-group-item-warning.active:focus{color:#fff;background-color:#e99002;border-color:#e99002}.list-group-item-danger{color:#f04124;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#f04124}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,button.list-group-item-danger:hover,a.list-group-item-danger:focus,button.list-group-item-danger:focus{color:#f04124;background-color:#ebcccc}a.list-group-item-danger.active,button.list-group-item-danger.active,a.list-group-item-danger.active:hover,button.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus,button.list-group-item-danger.active:focus{color:#fff;background-color:#f04124;border-color:#f04124}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:21px;background-color:#ffffff;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.05);box-shadow:0 1px 1px rgba(0,0,0,0.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-right-radius:-1;border-top-left-radius:-1}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:17px;color:inherit}.panel-title>a,.panel-title>small,.panel-title>.small,.panel-title>small>a,.panel-title>.small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #dddddd;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-right-radius:-1;border-top-left-radius:-1}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-right-radius:0;border-top-left-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-left:15px;padding-right:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-right-radius:-1;border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:-1;border-top-right-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:-1}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:-1}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:-1;border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-left-radius:-1;border-bottom-right-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:-1}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:-1}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #dddddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{border:0;margin-bottom:0}.panel-group{margin-bottom:21px}.panel-group .panel{margin-bottom:0;border-radius:0}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #dddddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #dddddd}.panel-default{border-color:#dddddd}.panel-default>.panel-heading{color:#333333;background-color:#f5f5f5;border-color:#dddddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#dddddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#dddddd}.panel-primary{border-color:#008cba}.panel-primary>.panel-heading{color:#ffffff;background-color:#008cba;border-color:#008cba}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#008cba}.panel-primary>.panel-heading .badge{color:#008cba;background-color:#ffffff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#008cba}.panel-success{border-color:#3c9a5f}.panel-success>.panel-heading{color:#ffffff;background-color:#43ac6a;border-color:#3c9a5f}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3c9a5f}.panel-success>.panel-heading .badge{color:#43ac6a;background-color:#ffffff}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3c9a5f}.panel-info{border-color:#3db5d8}.panel-info>.panel-heading{color:#ffffff;background-color:#5bc0de;border-color:#3db5d8}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#3db5d8}.panel-info>.panel-heading .badge{color:#5bc0de;background-color:#ffffff}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#3db5d8}.panel-warning{border-color:#d08002}.panel-warning>.panel-heading{color:#ffffff;background-color:#e99002;border-color:#d08002}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d08002}.panel-warning>.panel-heading .badge{color:#e99002;background-color:#ffffff}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d08002}.panel-danger{border-color:#ea2f10}.panel-danger>.panel-heading{color:#ffffff;background-color:#f04124;border-color:#ea2f10}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ea2f10}.panel-danger>.panel-heading .badge{color:#f04124;background-color:#ffffff}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ea2f10}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;left:0;bottom:0;height:100%;width:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#fafafa;border:1px solid #e8e8e8;border-radius:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,0.05);box-shadow:inset 0 1px 1px rgba(0,0,0,0.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,0.15)}.well-lg{padding:24px;border-radius:0}.well-sm{padding:9px;border-radius:0}.close{float:right;font-size:22.5px;font-weight:bold;line-height:1;color:#ffffff;text-shadow:0 1px 0 #ffffff;opacity:0.2;filter:alpha(opacity=20)}.close:hover,.close:focus{color:#ffffff;text-decoration:none;cursor:pointer;opacity:0.5;filter:alpha(opacity=50)}button.close{padding:0;cursor:pointer;background:transparent;border:0;-webkit-appearance:none}.modal-open{overflow:hidden}.modal{display:none;overflow:hidden;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transform:translate(0, -25%);-ms-transform:translate(0, -25%);-o-transform:translate(0, -25%);transform:translate(0, -25%);-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out}.modal.in .modal-dialog{-webkit-transform:translate(0, 0);-ms-transform:translate(0, 0);-o-transform:translate(0, 0);transform:translate(0, 0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#ffffff;border:1px solid #999999;border:1px solid rgba(0,0,0,0.2);border-radius:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,0.5);box-shadow:0 3px 9px rgba(0,0,0,0.5);-webkit-background-clip:padding-box;background-clip:padding-box;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000000}.modal-backdrop.fade{opacity:0;filter:alpha(opacity=0)}.modal-backdrop.in{opacity:0.5;filter:alpha(opacity=50)}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5;min-height:16.4px}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.4}.modal-body{position:relative;padding:20px}.modal-footer{padding:20px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-left:5px;margin-bottom:0}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,0.5);box-shadow:0 5px 15px rgba(0,0,0,0.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.4;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:12px;opacity:0;filter:alpha(opacity=0)}.tooltip.in{opacity:0.9;filter:alpha(opacity=90)}.tooltip.top{margin-top:-3px;padding:5px 0}.tooltip.right{margin-left:3px;padding:0 5px}.tooltip.bottom{margin-top:3px;padding:5px 0}.tooltip.left{margin-left:-3px;padding:0 5px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#ffffff;text-align:center;background-color:#333333;border-radius:0}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#333333}.tooltip.top-left .tooltip-arrow{bottom:0;right:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333333}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#333333}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#333333}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#333333}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#333333}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333333}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#333333}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:normal;letter-spacing:normal;line-break:auto;line-height:1.4;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;white-space:normal;word-break:normal;word-spacing:normal;word-wrap:normal;font-size:15px;background-color:#333333;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #333333;border:1px solid transparent;border-radius:0;-webkit-box-shadow:0 5px 10px rgba(0,0,0,0.2);box-shadow:0 5px 10px rgba(0,0,0,0.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{margin:0;padding:8px 14px;font-size:15px;background-color:#333333;border-bottom:1px solid #262626;border-radius:-1 -1 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{border-width:10px;content:""}.popover.top>.arrow{left:50%;margin-left:-11px;border-bottom-width:0;border-top-color:#000000;border-top-color:rgba(0,0,0,0.05);bottom:-11px}.popover.top>.arrow:after{content:" ";bottom:1px;margin-left:-10px;border-bottom-width:0;border-top-color:#333333}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-left-width:0;border-right-color:#000000;border-right-color:rgba(0,0,0,0.05)}.popover.right>.arrow:after{content:" ";left:1px;bottom:-10px;border-left-width:0;border-right-color:#333333}.popover.bottom>.arrow{left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#000000;border-bottom-color:rgba(0,0,0,0.05);top:-11px}.popover.bottom>.arrow:after{content:" ";top:1px;margin-left:-10px;border-top-width:0;border-bottom-color:#333333}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#000000;border-left-color:rgba(0,0,0,0.05)}.popover.left>.arrow:after{content:" ";right:1px;border-right-width:0;border-left-color:#333333;bottom:-10px}.carousel{position:relative}.carousel-inner{position:relative;overflow:hidden;width:100%}.carousel-inner>.item{display:none;position:relative;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.next,.carousel-inner>.item.active.right{-webkit-transform:translate3d(100%, 0, 0);transform:translate3d(100%, 0, 0);left:0}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{-webkit-transform:translate3d(-100%, 0, 0);transform:translate3d(-100%, 0, 0);left:0}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);left:0}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;left:0;bottom:0;width:15%;opacity:0.5;filter:alpha(opacity=50);font-size:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-control.left{background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.5)), to(rgba(0,0,0,0.0001)));background-image:linear-gradient(to right, rgba(0,0,0,0.5) 0, rgba(0,0,0,0.0001) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)}.carousel-control.right{left:auto;right:0;background-image:-webkit-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-o-linear-gradient(left, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-image:-webkit-gradient(linear, left top, right top, from(rgba(0,0,0,0.0001)), to(rgba(0,0,0,0.5)));background-image:linear-gradient(to right, rgba(0,0,0,0.0001) 0, rgba(0,0,0,0.5) 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)}.carousel-control:hover,.carousel-control:focus{outline:0;color:#ffffff;text-decoration:none;opacity:0.9;filter:alpha(opacity=90)}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;margin-top:-10px;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;line-height:1;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;margin-left:-30%;padding-left:0;list-style:none;text-align:center}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;border:1px solid #ffffff;border-radius:10px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0)}.carousel-indicators .active{margin:0;width:12px;height:12px;background-color:#ffffff}.carousel-caption{position:absolute;left:15%;right:15%;bottom:20px;z-index:10;padding-top:20px;padding-bottom:20px;color:#ffffff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,0.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{left:20%;right:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{content:" ";display:table}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-left:auto;margin-right:auto}.pull-right{float:right !important}.pull-left{float:left !important}.hide{display:none !important}.show{display:block !important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none !important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none !important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none !important}@media (max-width:767px){.visible-xs{display:block !important}table.visible-xs{display:table !important}tr.visible-xs{display:table-row !important}th.visible-xs,td.visible-xs{display:table-cell !important}}@media (max-width:767px){.visible-xs-block{display:block !important}}@media (max-width:767px){.visible-xs-inline{display:inline !important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block !important}table.visible-sm{display:table !important}tr.visible-sm{display:table-row !important}th.visible-sm,td.visible-sm{display:table-cell !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline !important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block !important}table.visible-md{display:table !important}tr.visible-md{display:table-row !important}th.visible-md,td.visible-md{display:table-cell !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline !important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block !important}}@media (min-width:1200px){.visible-lg{display:block !important}table.visible-lg{display:table !important}tr.visible-lg{display:table-row !important}th.visible-lg,td.visible-lg{display:table-cell !important}}@media (min-width:1200px){.visible-lg-block{display:block !important}}@media (min-width:1200px){.visible-lg-inline{display:inline !important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block !important}}@media (max-width:767px){.hidden-xs{display:none !important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none !important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none !important}}@media (min-width:1200px){.hidden-lg{display:none !important}}.visible-print{display:none !important}@media print{.visible-print{display:block !important}table.visible-print{display:table !important}tr.visible-print{display:table-row !important}th.visible-print,td.visible-print{display:table-cell !important}}.visible-print-block{display:none !important}@media print{.visible-print-block{display:block !important}}.visible-print-inline{display:none !important}@media print{.visible-print-inline{display:inline !important}}.visible-print-inline-block{display:none !important}@media print{.visible-print-inline-block{display:inline-block !important}}@media print{.hidden-print{display:none !important}}.navbar{border:none;font-size:13px;font-weight:300}.navbar .navbar-toggle:hover .icon-bar{background-color:#b3b3b3}.navbar-collapse{border-top-color:rgba(0,0,0,0.2);-webkit-box-shadow:none;box-shadow:none}.navbar .btn{padding-top:6px;padding-bottom:6px}.navbar-form{margin-top:7px;margin-bottom:5px}.navbar-form .form-control{height:auto;padding:4px 6px}.navbar .dropdown-menu{border:none}.navbar .dropdown-menu>li>a,.navbar .dropdown-menu>li>a:focus{background-color:transparent;font-size:13px;font-weight:300}.navbar .dropdown-header{color:rgba(255,255,255,0.5)}.navbar-default .dropdown-menu{background-color:#333333}.navbar-default .dropdown-menu>li>a,.navbar-default .dropdown-menu>li>a:focus{color:#ffffff}.navbar-default .dropdown-menu>li>a:hover,.navbar-default .dropdown-menu>.active>a,.navbar-default .dropdown-menu>.active>a:hover{background-color:#272727}.navbar-inverse .dropdown-menu{background-color:#008cba}.navbar-inverse .dropdown-menu>li>a,.navbar-inverse .dropdown-menu>li>a:focus{color:#ffffff}.navbar-inverse .dropdown-menu>li>a:hover,.navbar-inverse .dropdown-menu>.active>a,.navbar-inverse .dropdown-menu>.active>a:hover{background-color:#006687}.btn{padding:8px 12px}.btn-lg{padding:16px 20px}.btn-sm{padding:8px 12px}.btn-xs{padding:4px 6px}.btn-group .btn~.dropdown-toggle{padding-left:16px;padding-right:16px}.btn-group .dropdown-menu{border-top-width:0}.btn-group.dropup .dropdown-menu{border-top-width:1px;border-bottom-width:0;margin-bottom:0}.btn-group .dropdown-toggle.btn-default~.dropdown-menu{background-color:#e7e7e7;border-color:#cccccc}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a{color:#333333}.btn-group .dropdown-toggle.btn-default~.dropdown-menu>li>a:hover{background-color:#d3d3d3}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu{background-color:#008cba;border-color:#0079a1}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-primary~.dropdown-menu>li>a:hover{background-color:#006d91}.btn-group .dropdown-toggle.btn-success~.dropdown-menu{background-color:#43ac6a;border-color:#3c9a5f}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-success~.dropdown-menu>li>a:hover{background-color:#388f58}.btn-group .dropdown-toggle.btn-info~.dropdown-menu{background-color:#5bc0de;border-color:#46b8da}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-info~.dropdown-menu>li>a:hover{background-color:#39b3d7}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu{background-color:#e99002;border-color:#d08002}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-warning~.dropdown-menu>li>a:hover{background-color:#c17702}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu{background-color:#f04124;border-color:#ea2f10}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a{color:#ffffff}.btn-group .dropdown-toggle.btn-danger~.dropdown-menu>li>a:hover{background-color:#dc2c0f}.lead{color:#6f6f6f}cite{font-style:italic}blockquote{border-left-width:1px;color:#6f6f6f}blockquote.pull-right{border-right-width:1px}blockquote small{font-size:12px;font-weight:300}table{font-size:12px}label,.control-label,.help-block,.checkbox,.radio{font-size:12px;font-weight:normal}input[type="radio"],input[type="checkbox"]{margin-top:1px}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{border-color:transparent}.nav-tabs>li>a{background-color:#e7e7e7;color:#222222}.nav-tabs .caret{border-top-color:#222222;border-bottom-color:#222222}.nav-pills{font-weight:300}.breadcrumb{border:1px solid #dddddd;border-radius:3px;font-size:10px;font-weight:300;text-transform:uppercase}.pagination{font-size:12px;font-weight:300;color:#999999}.pagination>li>a,.pagination>li>span{margin-left:4px;color:#999999}.pagination>.active>a,.pagination>.active>span{color:#fff}.pagination>li>a,.pagination>li:first-child>a,.pagination>li:last-child>a,.pagination>li>span,.pagination>li:first-child>span,.pagination>li:last-child>span{border-radius:3px}.pagination-lg>li>a,.pagination-lg>li>span{padding-left:22px;padding-right:22px}.pagination-sm>li>a,.pagination-sm>li>span{padding:0 5px}.pager{font-size:12px;font-weight:300;color:#999999}.list-group{font-size:12px;font-weight:300}.close{opacity:0.4;text-decoration:none;text-shadow:none}.close:hover,.close:focus{opacity:1}.alert{font-size:12px;font-weight:300}.alert .alert-link{font-weight:normal;color:#fff;text-decoration:underline}.label{padding-left:1em;padding-right:1em;border-radius:0;font-weight:300}.label-default{background-color:#e7e7e7;color:#333333}.badge{font-weight:300}.progress{height:22px;padding:2px;background-color:#f6f6f6;border:1px solid #ccc;-webkit-box-shadow:none;box-shadow:none}.dropdown-menu{padding:0;margin-top:0;font-size:12px}.dropdown-menu>li>a{padding:12px 15px}.dropdown-header{padding-left:15px;padding-right:15px;font-size:9px;text-transform:uppercase}.popover{color:#fff;font-size:12px;font-weight:300}.panel-heading,.panel-footer{border-top-right-radius:0;border-top-left-radius:0}.panel-default .close{color:#222222}.modal .close{color:#222222} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.min.css b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.min.css deleted file mode 100644 index 24fcc04c4e..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.min.css +++ /dev/null @@ -1,4 +0,0 @@ -/*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"} \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/FontAwesome.otf b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/FontAwesome.otf deleted file mode 100644 index f7936cc1e7..0000000000 Binary files a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/FontAwesome.otf and /dev/null differ diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.eot b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.eot deleted file mode 100644 index 33b2bb8005..0000000000 Binary files a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.eot and /dev/null differ diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.svg b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.svg deleted file mode 100644 index 1ee89d4368..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,565 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff deleted file mode 100644 index 8b280b98fa..0000000000 Binary files a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff and /dev/null differ diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2 b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2 deleted file mode 100644 index 3311d58514..0000000000 Binary files a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.woff2 and /dev/null differ diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/mixins.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/mixins.less deleted file mode 100644 index c97f4604ca..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/mixins.less +++ /dev/null @@ -1,27 +0,0 @@ -// Mixins -// -------------------------- - -.fa-icon() { - display: inline-block; - font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); // ensures no half-pixel rendering in firefox - -} - -.fa-icon-rotate(@degrees, @rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation); - -webkit-transform: rotate(@degrees); - -ms-transform: rotate(@degrees); - transform: rotate(@degrees); -} - -.fa-icon-flip(@horiz, @vert, @rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=@rotation, mirror=1); - -webkit-transform: scale(@horiz, @vert); - -ms-transform: scale(@horiz, @vert); - transform: scale(@horiz, @vert); -} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_mixins.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_mixins.scss deleted file mode 100644 index 6b7f160931..0000000000 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_mixins.scss +++ /dev/null @@ -1,27 +0,0 @@ -// Mixins -// -------------------------- - -@mixin fa-icon() { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); // ensures no half-pixel rendering in firefox - -} - -@mixin fa-icon-rotate($degrees, $rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); - -webkit-transform: rotate($degrees); - -ms-transform: rotate($degrees); - transform: rotate($degrees); -} - -@mixin fa-icon-flip($horiz, $vert, $rotation) { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}); - -webkit-transform: scale($horiz, $vert); - -ms-transform: scale($horiz, $vert); - transform: scale($horiz, $vert); -} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/HELP-US-OUT.txt b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/HELP-US-OUT.txt new file mode 100644 index 0000000000..83d083dd77 --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/HELP-US-OUT.txt @@ -0,0 +1,7 @@ +I hope you love Font Awesome. If you've found it useful, please do me a favor and check out my latest project, +Fort Awesome (https://fortawesome.com). It makes it easy to put the perfect icons on your website. Choose from our awesome, +comprehensive icon sets or copy and paste your own. + +Please. Check it out. + +-Dave Gandy diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.css b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.css similarity index 74% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.css rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.css index 2dcdc22072..ee906a8196 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/css/font-awesome.css +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.css @@ -1,13 +1,13 @@ /*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ /* FONT PATH * -------------------------- */ @font-face { font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.3.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg'); + src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); + src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); font-weight: normal; font-style: normal; } @@ -18,7 +18,6 @@ text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); } /* makes the font 33% larger relative to the icon container */ .fa-lg { @@ -65,6 +64,19 @@ border: solid 0.08em #eeeeee; border-radius: .1em; } +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: .3em; +} +.fa.fa-pull-right { + margin-left: .3em; +} +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } @@ -106,31 +118,31 @@ } } .fa-rotate-90 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; -webkit-transform: rotate(90deg); -ms-transform: rotate(90deg); transform: rotate(90deg); } .fa-rotate-180 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; -webkit-transform: rotate(180deg); -ms-transform: rotate(180deg); transform: rotate(180deg); } .fa-rotate-270 { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; -webkit-transform: rotate(270deg); -ms-transform: rotate(270deg); transform: rotate(270deg); } .fa-flip-horizontal { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; -webkit-transform: scale(-1, 1); -ms-transform: scale(-1, 1); transform: scale(-1, 1); } .fa-flip-vertical { - filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; -webkit-transform: scale(1, -1); -ms-transform: scale(1, -1); transform: scale(1, -1); @@ -628,6 +640,7 @@ .fa-credit-card:before { content: "\f09d"; } +.fa-feed:before, .fa-rss:before { content: "\f09e"; } @@ -1370,7 +1383,7 @@ .fa-digg:before { content: "\f1a6"; } -.fa-pied-piper:before { +.fa-pied-piper-pp:before { content: "\f1a7"; } .fa-pied-piper-alt:before { @@ -1496,6 +1509,7 @@ content: "\f1ce"; } .fa-ra:before, +.fa-resistance:before, .fa-rebel:before { content: "\f1d0"; } @@ -1509,6 +1523,8 @@ .fa-git:before { content: "\f1d3"; } +.fa-y-combinator-square:before, +.fa-yc-square:before, .fa-hacker-news:before { content: "\f1d4"; } @@ -1533,7 +1549,6 @@ .fa-history:before { content: "\f1da"; } -.fa-genderless:before, .fa-circle-thin:before { content: "\f1db"; } @@ -1738,6 +1753,7 @@ .fa-mercury:before { content: "\f223"; } +.fa-intersex:before, .fa-transgender:before { content: "\f224"; } @@ -1765,6 +1781,9 @@ .fa-neuter:before { content: "\f22c"; } +.fa-genderless:before { + content: "\f22d"; +} .fa-facebook-official:before { content: "\f230"; } @@ -1799,3 +1818,520 @@ .fa-medium:before { content: "\f23a"; } +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.min.css b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.min.css new file mode 100644 index 0000000000..540440ce89 --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/css/font-awesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/FontAwesome.otf b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/FontAwesome.otf new file mode 100644 index 0000000000..401ec0f36e Binary files /dev/null and b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/FontAwesome.otf differ diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.eot b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000..e9f60ca953 Binary files /dev/null and b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.eot differ diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.svg b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000000..855c845e53 --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf similarity index 50% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf index ed9372f8ea..35acda2fa1 100644 Binary files a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/fonts/fontawesome-webfont.ttf and b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.ttf differ diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000..400014a4b0 Binary files /dev/null and b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff differ diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000000..4d13fc6040 Binary files /dev/null and b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/fonts/fontawesome-webfont.woff2 differ diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/animated.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/animated.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/animated.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/animated.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/bordered-pulled.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/bordered-pulled.less similarity index 56% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/bordered-pulled.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/bordered-pulled.less index 0c90eb5672..f1c8ad75f5 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/bordered-pulled.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/bordered-pulled.less @@ -7,6 +7,15 @@ border-radius: .1em; } +.@{fa-css-prefix}-pull-left { float: left; } +.@{fa-css-prefix}-pull-right { float: right; } + +.@{fa-css-prefix} { + &.@{fa-css-prefix}-pull-left { margin-right: .3em; } + &.@{fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } .pull-left { float: left; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/core.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/core.less similarity index 66% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/core.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/core.less index f814f1e17e..c577ac84a6 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/core.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/core.less @@ -3,11 +3,10 @@ .@{fa-css-prefix} { display: inline-block; - font: normal normal normal @fa-font-size-base/1 FontAwesome; // shortening font declaration + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration font-size: inherit; // can't have font-size inherit on line above, so need to override text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); // ensures no half-pixel rendering in firefox } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/fixed-width.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/fixed-width.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/fixed-width.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/fixed-width.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/font-awesome.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/font-awesome.less similarity index 81% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/font-awesome.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/font-awesome.less index 1f45c63d15..c3677def31 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/font-awesome.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/font-awesome.less @@ -1,5 +1,5 @@ /*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ @@ -15,3 +15,4 @@ @import "rotated-flipped.less"; @import "stacked.less"; @import "icons.less"; +@import "screen-reader.less"; diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/icons.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/icons.less similarity index 74% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/icons.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/icons.less index c265de5a68..159d600425 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/icons.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/icons.less @@ -163,6 +163,7 @@ .@{fa-css-prefix}-github:before { content: @fa-var-github; } .@{fa-css-prefix}-unlock:before { content: @fa-var-unlock; } .@{fa-css-prefix}-credit-card:before { content: @fa-var-credit-card; } +.@{fa-css-prefix}-feed:before, .@{fa-css-prefix}-rss:before { content: @fa-var-rss; } .@{fa-css-prefix}-hdd-o:before { content: @fa-var-hdd-o; } .@{fa-css-prefix}-bullhorn:before { content: @fa-var-bullhorn; } @@ -437,7 +438,7 @@ .@{fa-css-prefix}-stumbleupon:before { content: @fa-var-stumbleupon; } .@{fa-css-prefix}-delicious:before { content: @fa-var-delicious; } .@{fa-css-prefix}-digg:before { content: @fa-var-digg; } -.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-pied-piper-pp:before { content: @fa-var-pied-piper-pp; } .@{fa-css-prefix}-pied-piper-alt:before { content: @fa-var-pied-piper-alt; } .@{fa-css-prefix}-drupal:before { content: @fa-var-drupal; } .@{fa-css-prefix}-joomla:before { content: @fa-var-joomla; } @@ -487,11 +488,14 @@ .@{fa-css-prefix}-life-ring:before { content: @fa-var-life-ring; } .@{fa-css-prefix}-circle-o-notch:before { content: @fa-var-circle-o-notch; } .@{fa-css-prefix}-ra:before, +.@{fa-css-prefix}-resistance:before, .@{fa-css-prefix}-rebel:before { content: @fa-var-rebel; } .@{fa-css-prefix}-ge:before, .@{fa-css-prefix}-empire:before { content: @fa-var-empire; } .@{fa-css-prefix}-git-square:before { content: @fa-var-git-square; } .@{fa-css-prefix}-git:before { content: @fa-var-git; } +.@{fa-css-prefix}-y-combinator-square:before, +.@{fa-css-prefix}-yc-square:before, .@{fa-css-prefix}-hacker-news:before { content: @fa-var-hacker-news; } .@{fa-css-prefix}-tencent-weibo:before { content: @fa-var-tencent-weibo; } .@{fa-css-prefix}-qq:before { content: @fa-var-qq; } @@ -502,7 +506,6 @@ .@{fa-css-prefix}-send-o:before, .@{fa-css-prefix}-paper-plane-o:before { content: @fa-var-paper-plane-o; } .@{fa-css-prefix}-history:before { content: @fa-var-history; } -.@{fa-css-prefix}-genderless:before, .@{fa-css-prefix}-circle-thin:before { content: @fa-var-circle-thin; } .@{fa-css-prefix}-header:before { content: @fa-var-header; } .@{fa-css-prefix}-paragraph:before { content: @fa-var-paragraph; } @@ -573,6 +576,7 @@ .@{fa-css-prefix}-venus:before { content: @fa-var-venus; } .@{fa-css-prefix}-mars:before { content: @fa-var-mars; } .@{fa-css-prefix}-mercury:before { content: @fa-var-mercury; } +.@{fa-css-prefix}-intersex:before, .@{fa-css-prefix}-transgender:before { content: @fa-var-transgender; } .@{fa-css-prefix}-transgender-alt:before { content: @fa-var-transgender-alt; } .@{fa-css-prefix}-venus-double:before { content: @fa-var-venus-double; } @@ -582,6 +586,7 @@ .@{fa-css-prefix}-mars-stroke-v:before { content: @fa-var-mars-stroke-v; } .@{fa-css-prefix}-mars-stroke-h:before { content: @fa-var-mars-stroke-h; } .@{fa-css-prefix}-neuter:before { content: @fa-var-neuter; } +.@{fa-css-prefix}-genderless:before { content: @fa-var-genderless; } .@{fa-css-prefix}-facebook-official:before { content: @fa-var-facebook-official; } .@{fa-css-prefix}-pinterest-p:before { content: @fa-var-pinterest-p; } .@{fa-css-prefix}-whatsapp:before { content: @fa-var-whatsapp; } @@ -594,3 +599,191 @@ .@{fa-css-prefix}-train:before { content: @fa-var-train; } .@{fa-css-prefix}-subway:before { content: @fa-var-subway; } .@{fa-css-prefix}-medium:before { content: @fa-var-medium; } +.@{fa-css-prefix}-yc:before, +.@{fa-css-prefix}-y-combinator:before { content: @fa-var-y-combinator; } +.@{fa-css-prefix}-optin-monster:before { content: @fa-var-optin-monster; } +.@{fa-css-prefix}-opencart:before { content: @fa-var-opencart; } +.@{fa-css-prefix}-expeditedssl:before { content: @fa-var-expeditedssl; } +.@{fa-css-prefix}-battery-4:before, +.@{fa-css-prefix}-battery:before, +.@{fa-css-prefix}-battery-full:before { content: @fa-var-battery-full; } +.@{fa-css-prefix}-battery-3:before, +.@{fa-css-prefix}-battery-three-quarters:before { content: @fa-var-battery-three-quarters; } +.@{fa-css-prefix}-battery-2:before, +.@{fa-css-prefix}-battery-half:before { content: @fa-var-battery-half; } +.@{fa-css-prefix}-battery-1:before, +.@{fa-css-prefix}-battery-quarter:before { content: @fa-var-battery-quarter; } +.@{fa-css-prefix}-battery-0:before, +.@{fa-css-prefix}-battery-empty:before { content: @fa-var-battery-empty; } +.@{fa-css-prefix}-mouse-pointer:before { content: @fa-var-mouse-pointer; } +.@{fa-css-prefix}-i-cursor:before { content: @fa-var-i-cursor; } +.@{fa-css-prefix}-object-group:before { content: @fa-var-object-group; } +.@{fa-css-prefix}-object-ungroup:before { content: @fa-var-object-ungroup; } +.@{fa-css-prefix}-sticky-note:before { content: @fa-var-sticky-note; } +.@{fa-css-prefix}-sticky-note-o:before { content: @fa-var-sticky-note-o; } +.@{fa-css-prefix}-cc-jcb:before { content: @fa-var-cc-jcb; } +.@{fa-css-prefix}-cc-diners-club:before { content: @fa-var-cc-diners-club; } +.@{fa-css-prefix}-clone:before { content: @fa-var-clone; } +.@{fa-css-prefix}-balance-scale:before { content: @fa-var-balance-scale; } +.@{fa-css-prefix}-hourglass-o:before { content: @fa-var-hourglass-o; } +.@{fa-css-prefix}-hourglass-1:before, +.@{fa-css-prefix}-hourglass-start:before { content: @fa-var-hourglass-start; } +.@{fa-css-prefix}-hourglass-2:before, +.@{fa-css-prefix}-hourglass-half:before { content: @fa-var-hourglass-half; } +.@{fa-css-prefix}-hourglass-3:before, +.@{fa-css-prefix}-hourglass-end:before { content: @fa-var-hourglass-end; } +.@{fa-css-prefix}-hourglass:before { content: @fa-var-hourglass; } +.@{fa-css-prefix}-hand-grab-o:before, +.@{fa-css-prefix}-hand-rock-o:before { content: @fa-var-hand-rock-o; } +.@{fa-css-prefix}-hand-stop-o:before, +.@{fa-css-prefix}-hand-paper-o:before { content: @fa-var-hand-paper-o; } +.@{fa-css-prefix}-hand-scissors-o:before { content: @fa-var-hand-scissors-o; } +.@{fa-css-prefix}-hand-lizard-o:before { content: @fa-var-hand-lizard-o; } +.@{fa-css-prefix}-hand-spock-o:before { content: @fa-var-hand-spock-o; } +.@{fa-css-prefix}-hand-pointer-o:before { content: @fa-var-hand-pointer-o; } +.@{fa-css-prefix}-hand-peace-o:before { content: @fa-var-hand-peace-o; } +.@{fa-css-prefix}-trademark:before { content: @fa-var-trademark; } +.@{fa-css-prefix}-registered:before { content: @fa-var-registered; } +.@{fa-css-prefix}-creative-commons:before { content: @fa-var-creative-commons; } +.@{fa-css-prefix}-gg:before { content: @fa-var-gg; } +.@{fa-css-prefix}-gg-circle:before { content: @fa-var-gg-circle; } +.@{fa-css-prefix}-tripadvisor:before { content: @fa-var-tripadvisor; } +.@{fa-css-prefix}-odnoklassniki:before { content: @fa-var-odnoklassniki; } +.@{fa-css-prefix}-odnoklassniki-square:before { content: @fa-var-odnoklassniki-square; } +.@{fa-css-prefix}-get-pocket:before { content: @fa-var-get-pocket; } +.@{fa-css-prefix}-wikipedia-w:before { content: @fa-var-wikipedia-w; } +.@{fa-css-prefix}-safari:before { content: @fa-var-safari; } +.@{fa-css-prefix}-chrome:before { content: @fa-var-chrome; } +.@{fa-css-prefix}-firefox:before { content: @fa-var-firefox; } +.@{fa-css-prefix}-opera:before { content: @fa-var-opera; } +.@{fa-css-prefix}-internet-explorer:before { content: @fa-var-internet-explorer; } +.@{fa-css-prefix}-tv:before, +.@{fa-css-prefix}-television:before { content: @fa-var-television; } +.@{fa-css-prefix}-contao:before { content: @fa-var-contao; } +.@{fa-css-prefix}-500px:before { content: @fa-var-500px; } +.@{fa-css-prefix}-amazon:before { content: @fa-var-amazon; } +.@{fa-css-prefix}-calendar-plus-o:before { content: @fa-var-calendar-plus-o; } +.@{fa-css-prefix}-calendar-minus-o:before { content: @fa-var-calendar-minus-o; } +.@{fa-css-prefix}-calendar-times-o:before { content: @fa-var-calendar-times-o; } +.@{fa-css-prefix}-calendar-check-o:before { content: @fa-var-calendar-check-o; } +.@{fa-css-prefix}-industry:before { content: @fa-var-industry; } +.@{fa-css-prefix}-map-pin:before { content: @fa-var-map-pin; } +.@{fa-css-prefix}-map-signs:before { content: @fa-var-map-signs; } +.@{fa-css-prefix}-map-o:before { content: @fa-var-map-o; } +.@{fa-css-prefix}-map:before { content: @fa-var-map; } +.@{fa-css-prefix}-commenting:before { content: @fa-var-commenting; } +.@{fa-css-prefix}-commenting-o:before { content: @fa-var-commenting-o; } +.@{fa-css-prefix}-houzz:before { content: @fa-var-houzz; } +.@{fa-css-prefix}-vimeo:before { content: @fa-var-vimeo; } +.@{fa-css-prefix}-black-tie:before { content: @fa-var-black-tie; } +.@{fa-css-prefix}-fonticons:before { content: @fa-var-fonticons; } +.@{fa-css-prefix}-reddit-alien:before { content: @fa-var-reddit-alien; } +.@{fa-css-prefix}-edge:before { content: @fa-var-edge; } +.@{fa-css-prefix}-credit-card-alt:before { content: @fa-var-credit-card-alt; } +.@{fa-css-prefix}-codiepie:before { content: @fa-var-codiepie; } +.@{fa-css-prefix}-modx:before { content: @fa-var-modx; } +.@{fa-css-prefix}-fort-awesome:before { content: @fa-var-fort-awesome; } +.@{fa-css-prefix}-usb:before { content: @fa-var-usb; } +.@{fa-css-prefix}-product-hunt:before { content: @fa-var-product-hunt; } +.@{fa-css-prefix}-mixcloud:before { content: @fa-var-mixcloud; } +.@{fa-css-prefix}-scribd:before { content: @fa-var-scribd; } +.@{fa-css-prefix}-pause-circle:before { content: @fa-var-pause-circle; } +.@{fa-css-prefix}-pause-circle-o:before { content: @fa-var-pause-circle-o; } +.@{fa-css-prefix}-stop-circle:before { content: @fa-var-stop-circle; } +.@{fa-css-prefix}-stop-circle-o:before { content: @fa-var-stop-circle-o; } +.@{fa-css-prefix}-shopping-bag:before { content: @fa-var-shopping-bag; } +.@{fa-css-prefix}-shopping-basket:before { content: @fa-var-shopping-basket; } +.@{fa-css-prefix}-hashtag:before { content: @fa-var-hashtag; } +.@{fa-css-prefix}-bluetooth:before { content: @fa-var-bluetooth; } +.@{fa-css-prefix}-bluetooth-b:before { content: @fa-var-bluetooth-b; } +.@{fa-css-prefix}-percent:before { content: @fa-var-percent; } +.@{fa-css-prefix}-gitlab:before { content: @fa-var-gitlab; } +.@{fa-css-prefix}-wpbeginner:before { content: @fa-var-wpbeginner; } +.@{fa-css-prefix}-wpforms:before { content: @fa-var-wpforms; } +.@{fa-css-prefix}-envira:before { content: @fa-var-envira; } +.@{fa-css-prefix}-universal-access:before { content: @fa-var-universal-access; } +.@{fa-css-prefix}-wheelchair-alt:before { content: @fa-var-wheelchair-alt; } +.@{fa-css-prefix}-question-circle-o:before { content: @fa-var-question-circle-o; } +.@{fa-css-prefix}-blind:before { content: @fa-var-blind; } +.@{fa-css-prefix}-audio-description:before { content: @fa-var-audio-description; } +.@{fa-css-prefix}-volume-control-phone:before { content: @fa-var-volume-control-phone; } +.@{fa-css-prefix}-braille:before { content: @fa-var-braille; } +.@{fa-css-prefix}-assistive-listening-systems:before { content: @fa-var-assistive-listening-systems; } +.@{fa-css-prefix}-asl-interpreting:before, +.@{fa-css-prefix}-american-sign-language-interpreting:before { content: @fa-var-american-sign-language-interpreting; } +.@{fa-css-prefix}-deafness:before, +.@{fa-css-prefix}-hard-of-hearing:before, +.@{fa-css-prefix}-deaf:before { content: @fa-var-deaf; } +.@{fa-css-prefix}-glide:before { content: @fa-var-glide; } +.@{fa-css-prefix}-glide-g:before { content: @fa-var-glide-g; } +.@{fa-css-prefix}-signing:before, +.@{fa-css-prefix}-sign-language:before { content: @fa-var-sign-language; } +.@{fa-css-prefix}-low-vision:before { content: @fa-var-low-vision; } +.@{fa-css-prefix}-viadeo:before { content: @fa-var-viadeo; } +.@{fa-css-prefix}-viadeo-square:before { content: @fa-var-viadeo-square; } +.@{fa-css-prefix}-snapchat:before { content: @fa-var-snapchat; } +.@{fa-css-prefix}-snapchat-ghost:before { content: @fa-var-snapchat-ghost; } +.@{fa-css-prefix}-snapchat-square:before { content: @fa-var-snapchat-square; } +.@{fa-css-prefix}-pied-piper:before { content: @fa-var-pied-piper; } +.@{fa-css-prefix}-first-order:before { content: @fa-var-first-order; } +.@{fa-css-prefix}-yoast:before { content: @fa-var-yoast; } +.@{fa-css-prefix}-themeisle:before { content: @fa-var-themeisle; } +.@{fa-css-prefix}-google-plus-circle:before, +.@{fa-css-prefix}-google-plus-official:before { content: @fa-var-google-plus-official; } +.@{fa-css-prefix}-fa:before, +.@{fa-css-prefix}-font-awesome:before { content: @fa-var-font-awesome; } +.@{fa-css-prefix}-handshake-o:before { content: @fa-var-handshake-o; } +.@{fa-css-prefix}-envelope-open:before { content: @fa-var-envelope-open; } +.@{fa-css-prefix}-envelope-open-o:before { content: @fa-var-envelope-open-o; } +.@{fa-css-prefix}-linode:before { content: @fa-var-linode; } +.@{fa-css-prefix}-address-book:before { content: @fa-var-address-book; } +.@{fa-css-prefix}-address-book-o:before { content: @fa-var-address-book-o; } +.@{fa-css-prefix}-vcard:before, +.@{fa-css-prefix}-address-card:before { content: @fa-var-address-card; } +.@{fa-css-prefix}-vcard-o:before, +.@{fa-css-prefix}-address-card-o:before { content: @fa-var-address-card-o; } +.@{fa-css-prefix}-user-circle:before { content: @fa-var-user-circle; } +.@{fa-css-prefix}-user-circle-o:before { content: @fa-var-user-circle-o; } +.@{fa-css-prefix}-user-o:before { content: @fa-var-user-o; } +.@{fa-css-prefix}-id-badge:before { content: @fa-var-id-badge; } +.@{fa-css-prefix}-drivers-license:before, +.@{fa-css-prefix}-id-card:before { content: @fa-var-id-card; } +.@{fa-css-prefix}-drivers-license-o:before, +.@{fa-css-prefix}-id-card-o:before { content: @fa-var-id-card-o; } +.@{fa-css-prefix}-quora:before { content: @fa-var-quora; } +.@{fa-css-prefix}-free-code-camp:before { content: @fa-var-free-code-camp; } +.@{fa-css-prefix}-telegram:before { content: @fa-var-telegram; } +.@{fa-css-prefix}-thermometer-4:before, +.@{fa-css-prefix}-thermometer:before, +.@{fa-css-prefix}-thermometer-full:before { content: @fa-var-thermometer-full; } +.@{fa-css-prefix}-thermometer-3:before, +.@{fa-css-prefix}-thermometer-three-quarters:before { content: @fa-var-thermometer-three-quarters; } +.@{fa-css-prefix}-thermometer-2:before, +.@{fa-css-prefix}-thermometer-half:before { content: @fa-var-thermometer-half; } +.@{fa-css-prefix}-thermometer-1:before, +.@{fa-css-prefix}-thermometer-quarter:before { content: @fa-var-thermometer-quarter; } +.@{fa-css-prefix}-thermometer-0:before, +.@{fa-css-prefix}-thermometer-empty:before { content: @fa-var-thermometer-empty; } +.@{fa-css-prefix}-shower:before { content: @fa-var-shower; } +.@{fa-css-prefix}-bathtub:before, +.@{fa-css-prefix}-s15:before, +.@{fa-css-prefix}-bath:before { content: @fa-var-bath; } +.@{fa-css-prefix}-podcast:before { content: @fa-var-podcast; } +.@{fa-css-prefix}-window-maximize:before { content: @fa-var-window-maximize; } +.@{fa-css-prefix}-window-minimize:before { content: @fa-var-window-minimize; } +.@{fa-css-prefix}-window-restore:before { content: @fa-var-window-restore; } +.@{fa-css-prefix}-times-rectangle:before, +.@{fa-css-prefix}-window-close:before { content: @fa-var-window-close; } +.@{fa-css-prefix}-times-rectangle-o:before, +.@{fa-css-prefix}-window-close-o:before { content: @fa-var-window-close-o; } +.@{fa-css-prefix}-bandcamp:before { content: @fa-var-bandcamp; } +.@{fa-css-prefix}-grav:before { content: @fa-var-grav; } +.@{fa-css-prefix}-etsy:before { content: @fa-var-etsy; } +.@{fa-css-prefix}-imdb:before { content: @fa-var-imdb; } +.@{fa-css-prefix}-ravelry:before { content: @fa-var-ravelry; } +.@{fa-css-prefix}-eercast:before { content: @fa-var-eercast; } +.@{fa-css-prefix}-microchip:before { content: @fa-var-microchip; } +.@{fa-css-prefix}-snowflake-o:before { content: @fa-var-snowflake-o; } +.@{fa-css-prefix}-superpowers:before { content: @fa-var-superpowers; } +.@{fa-css-prefix}-wpexplorer:before { content: @fa-var-wpexplorer; } +.@{fa-css-prefix}-meetup:before { content: @fa-var-meetup; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/larger.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/larger.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/larger.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/larger.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/list.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/list.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/list.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/list.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/mixins.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/mixins.less new file mode 100644 index 0000000000..beef231d0e --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/mixins.less @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +.fa-icon() { + display: inline-block; + font: normal normal normal @fa-font-size-base/@fa-line-height-base FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +.fa-icon-rotate(@degrees, @rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation})"; + -webkit-transform: rotate(@degrees); + -ms-transform: rotate(@degrees); + transform: rotate(@degrees); +} + +.fa-icon-flip(@horiz, @vert, @rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=@{rotation}, mirror=1)"; + -webkit-transform: scale(@horiz, @vert); + -ms-transform: scale(@horiz, @vert); + transform: scale(@horiz, @vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +.sr-only() { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +.sr-only-focusable() { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/path.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/path.less similarity index 87% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/path.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/path.less index 9211e66597..835be41f81 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/path.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/path.less @@ -9,7 +9,7 @@ url('@{fa-font-path}/fontawesome-webfont.woff?v=@{fa-version}') format('woff'), url('@{fa-font-path}/fontawesome-webfont.ttf?v=@{fa-version}') format('truetype'), url('@{fa-font-path}/fontawesome-webfont.svg?v=@{fa-version}#fontawesomeregular') format('svg'); -// src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + // src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts font-weight: normal; font-style: normal; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/rotated-flipped.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/rotated-flipped.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/rotated-flipped.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/rotated-flipped.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/screen-reader.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/screen-reader.less new file mode 100644 index 0000000000..11c188196d --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/screen-reader.less @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { .sr-only(); } +.sr-only-focusable { .sr-only-focusable(); } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/stacked.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/stacked.less similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/stacked.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/stacked.less diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/variables.less b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/variables.less similarity index 73% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/variables.less rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/variables.less index d526064c84..7ddbbc0115 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/less/variables.less +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/less/variables.less @@ -3,20 +3,28 @@ @fa-font-path: "../fonts"; @fa-font-size-base: 14px; -//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.3.0/fonts"; // for referencing Bootstrap CDN font files directly +@fa-line-height-base: 1; +//@fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts"; // for referencing Bootstrap CDN font files directly @fa-css-prefix: fa; -@fa-version: "4.3.0"; +@fa-version: "4.7.0"; @fa-border-color: #eee; @fa-inverse: #fff; @fa-li-width: (30em / 14); +@fa-var-500px: "\f26e"; +@fa-var-address-book: "\f2b9"; +@fa-var-address-book-o: "\f2ba"; +@fa-var-address-card: "\f2bb"; +@fa-var-address-card-o: "\f2bc"; @fa-var-adjust: "\f042"; @fa-var-adn: "\f170"; @fa-var-align-center: "\f037"; @fa-var-align-justify: "\f039"; @fa-var-align-left: "\f036"; @fa-var-align-right: "\f038"; +@fa-var-amazon: "\f270"; @fa-var-ambulance: "\f0f9"; +@fa-var-american-sign-language-interpreting: "\f2a3"; @fa-var-anchor: "\f13d"; @fa-var-android: "\f17b"; @fa-var-angellist: "\f209"; @@ -47,16 +55,34 @@ @fa-var-arrows-alt: "\f0b2"; @fa-var-arrows-h: "\f07e"; @fa-var-arrows-v: "\f07d"; +@fa-var-asl-interpreting: "\f2a3"; +@fa-var-assistive-listening-systems: "\f2a2"; @fa-var-asterisk: "\f069"; @fa-var-at: "\f1fa"; +@fa-var-audio-description: "\f29e"; @fa-var-automobile: "\f1b9"; @fa-var-backward: "\f04a"; +@fa-var-balance-scale: "\f24e"; @fa-var-ban: "\f05e"; +@fa-var-bandcamp: "\f2d5"; @fa-var-bank: "\f19c"; @fa-var-bar-chart: "\f080"; @fa-var-bar-chart-o: "\f080"; @fa-var-barcode: "\f02a"; @fa-var-bars: "\f0c9"; +@fa-var-bath: "\f2cd"; +@fa-var-bathtub: "\f2cd"; +@fa-var-battery: "\f240"; +@fa-var-battery-0: "\f244"; +@fa-var-battery-1: "\f243"; +@fa-var-battery-2: "\f242"; +@fa-var-battery-3: "\f241"; +@fa-var-battery-4: "\f240"; +@fa-var-battery-empty: "\f244"; +@fa-var-battery-full: "\f240"; +@fa-var-battery-half: "\f242"; +@fa-var-battery-quarter: "\f243"; +@fa-var-battery-three-quarters: "\f241"; @fa-var-bed: "\f236"; @fa-var-beer: "\f0fc"; @fa-var-behance: "\f1b4"; @@ -71,12 +97,17 @@ @fa-var-bitbucket: "\f171"; @fa-var-bitbucket-square: "\f172"; @fa-var-bitcoin: "\f15a"; +@fa-var-black-tie: "\f27e"; +@fa-var-blind: "\f29d"; +@fa-var-bluetooth: "\f293"; +@fa-var-bluetooth-b: "\f294"; @fa-var-bold: "\f032"; @fa-var-bolt: "\f0e7"; @fa-var-bomb: "\f1e2"; @fa-var-book: "\f02d"; @fa-var-bookmark: "\f02e"; @fa-var-bookmark-o: "\f097"; +@fa-var-braille: "\f2a1"; @fa-var-briefcase: "\f0b1"; @fa-var-btc: "\f15a"; @fa-var-bug: "\f188"; @@ -89,7 +120,11 @@ @fa-var-cab: "\f1ba"; @fa-var-calculator: "\f1ec"; @fa-var-calendar: "\f073"; +@fa-var-calendar-check-o: "\f274"; +@fa-var-calendar-minus-o: "\f272"; @fa-var-calendar-o: "\f133"; +@fa-var-calendar-plus-o: "\f271"; +@fa-var-calendar-times-o: "\f273"; @fa-var-camera: "\f030"; @fa-var-camera-retro: "\f083"; @fa-var-car: "\f1b9"; @@ -105,7 +140,9 @@ @fa-var-cart-plus: "\f217"; @fa-var-cc: "\f20a"; @fa-var-cc-amex: "\f1f3"; +@fa-var-cc-diners-club: "\f24c"; @fa-var-cc-discover: "\f1f2"; +@fa-var-cc-jcb: "\f24b"; @fa-var-cc-mastercard: "\f1f1"; @fa-var-cc-paypal: "\f1f4"; @fa-var-cc-stripe: "\f1f5"; @@ -127,12 +164,14 @@ @fa-var-chevron-right: "\f054"; @fa-var-chevron-up: "\f077"; @fa-var-child: "\f1ae"; +@fa-var-chrome: "\f268"; @fa-var-circle: "\f111"; @fa-var-circle-o: "\f10c"; @fa-var-circle-o-notch: "\f1ce"; @fa-var-circle-thin: "\f1db"; @fa-var-clipboard: "\f0ea"; @fa-var-clock-o: "\f017"; +@fa-var-clone: "\f24d"; @fa-var-close: "\f00d"; @fa-var-cloud: "\f0c2"; @fa-var-cloud-download: "\f0ed"; @@ -141,20 +180,26 @@ @fa-var-code: "\f121"; @fa-var-code-fork: "\f126"; @fa-var-codepen: "\f1cb"; +@fa-var-codiepie: "\f284"; @fa-var-coffee: "\f0f4"; @fa-var-cog: "\f013"; @fa-var-cogs: "\f085"; @fa-var-columns: "\f0db"; @fa-var-comment: "\f075"; @fa-var-comment-o: "\f0e5"; +@fa-var-commenting: "\f27a"; +@fa-var-commenting-o: "\f27b"; @fa-var-comments: "\f086"; @fa-var-comments-o: "\f0e6"; @fa-var-compass: "\f14e"; @fa-var-compress: "\f066"; @fa-var-connectdevelop: "\f20e"; +@fa-var-contao: "\f26d"; @fa-var-copy: "\f0c5"; @fa-var-copyright: "\f1f9"; +@fa-var-creative-commons: "\f25e"; @fa-var-credit-card: "\f09d"; +@fa-var-credit-card-alt: "\f283"; @fa-var-crop: "\f125"; @fa-var-crosshairs: "\f05b"; @fa-var-css3: "\f13c"; @@ -165,6 +210,8 @@ @fa-var-dashboard: "\f0e4"; @fa-var-dashcube: "\f210"; @fa-var-database: "\f1c0"; +@fa-var-deaf: "\f2a4"; +@fa-var-deafness: "\f2a4"; @fa-var-dedent: "\f03b"; @fa-var-delicious: "\f1a5"; @fa-var-desktop: "\f108"; @@ -175,17 +222,25 @@ @fa-var-dot-circle-o: "\f192"; @fa-var-download: "\f019"; @fa-var-dribbble: "\f17d"; +@fa-var-drivers-license: "\f2c2"; +@fa-var-drivers-license-o: "\f2c3"; @fa-var-dropbox: "\f16b"; @fa-var-drupal: "\f1a9"; +@fa-var-edge: "\f282"; @fa-var-edit: "\f044"; +@fa-var-eercast: "\f2da"; @fa-var-eject: "\f052"; @fa-var-ellipsis-h: "\f141"; @fa-var-ellipsis-v: "\f142"; @fa-var-empire: "\f1d1"; @fa-var-envelope: "\f0e0"; @fa-var-envelope-o: "\f003"; +@fa-var-envelope-open: "\f2b6"; +@fa-var-envelope-open-o: "\f2b7"; @fa-var-envelope-square: "\f199"; +@fa-var-envira: "\f299"; @fa-var-eraser: "\f12d"; +@fa-var-etsy: "\f2d7"; @fa-var-eur: "\f153"; @fa-var-euro: "\f153"; @fa-var-exchange: "\f0ec"; @@ -193,11 +248,13 @@ @fa-var-exclamation-circle: "\f06a"; @fa-var-exclamation-triangle: "\f071"; @fa-var-expand: "\f065"; +@fa-var-expeditedssl: "\f23e"; @fa-var-external-link: "\f08e"; @fa-var-external-link-square: "\f14c"; @fa-var-eye: "\f06e"; @fa-var-eye-slash: "\f070"; @fa-var-eyedropper: "\f1fb"; +@fa-var-fa: "\f2b4"; @fa-var-facebook: "\f09a"; @fa-var-facebook-f: "\f09a"; @fa-var-facebook-official: "\f230"; @@ -205,6 +262,7 @@ @fa-var-fast-backward: "\f049"; @fa-var-fast-forward: "\f050"; @fa-var-fax: "\f1ac"; +@fa-var-feed: "\f09e"; @fa-var-female: "\f182"; @fa-var-fighter-jet: "\f0fb"; @fa-var-file: "\f15b"; @@ -230,6 +288,8 @@ @fa-var-filter: "\f0b0"; @fa-var-fire: "\f06d"; @fa-var-fire-extinguisher: "\f134"; +@fa-var-firefox: "\f269"; +@fa-var-first-order: "\f2b0"; @fa-var-flag: "\f024"; @fa-var-flag-checkered: "\f11e"; @fa-var-flag-o: "\f11d"; @@ -242,9 +302,13 @@ @fa-var-folder-open: "\f07c"; @fa-var-folder-open-o: "\f115"; @fa-var-font: "\f031"; +@fa-var-font-awesome: "\f2b4"; +@fa-var-fonticons: "\f280"; +@fa-var-fort-awesome: "\f286"; @fa-var-forumbee: "\f211"; @fa-var-forward: "\f04e"; @fa-var-foursquare: "\f180"; +@fa-var-free-code-camp: "\f2c5"; @fa-var-frown-o: "\f119"; @fa-var-futbol-o: "\f1e3"; @fa-var-gamepad: "\f11b"; @@ -253,29 +317,50 @@ @fa-var-ge: "\f1d1"; @fa-var-gear: "\f013"; @fa-var-gears: "\f085"; -@fa-var-genderless: "\f1db"; +@fa-var-genderless: "\f22d"; +@fa-var-get-pocket: "\f265"; +@fa-var-gg: "\f260"; +@fa-var-gg-circle: "\f261"; @fa-var-gift: "\f06b"; @fa-var-git: "\f1d3"; @fa-var-git-square: "\f1d2"; @fa-var-github: "\f09b"; @fa-var-github-alt: "\f113"; @fa-var-github-square: "\f092"; +@fa-var-gitlab: "\f296"; @fa-var-gittip: "\f184"; @fa-var-glass: "\f000"; +@fa-var-glide: "\f2a5"; +@fa-var-glide-g: "\f2a6"; @fa-var-globe: "\f0ac"; @fa-var-google: "\f1a0"; @fa-var-google-plus: "\f0d5"; +@fa-var-google-plus-circle: "\f2b3"; +@fa-var-google-plus-official: "\f2b3"; @fa-var-google-plus-square: "\f0d4"; @fa-var-google-wallet: "\f1ee"; @fa-var-graduation-cap: "\f19d"; @fa-var-gratipay: "\f184"; +@fa-var-grav: "\f2d6"; @fa-var-group: "\f0c0"; @fa-var-h-square: "\f0fd"; @fa-var-hacker-news: "\f1d4"; +@fa-var-hand-grab-o: "\f255"; +@fa-var-hand-lizard-o: "\f258"; @fa-var-hand-o-down: "\f0a7"; @fa-var-hand-o-left: "\f0a5"; @fa-var-hand-o-right: "\f0a4"; @fa-var-hand-o-up: "\f0a6"; +@fa-var-hand-paper-o: "\f256"; +@fa-var-hand-peace-o: "\f25b"; +@fa-var-hand-pointer-o: "\f25a"; +@fa-var-hand-rock-o: "\f255"; +@fa-var-hand-scissors-o: "\f257"; +@fa-var-hand-spock-o: "\f259"; +@fa-var-hand-stop-o: "\f256"; +@fa-var-handshake-o: "\f2b5"; +@fa-var-hard-of-hearing: "\f2a4"; +@fa-var-hashtag: "\f292"; @fa-var-hdd-o: "\f0a0"; @fa-var-header: "\f1dc"; @fa-var-headphones: "\f025"; @@ -286,16 +371,33 @@ @fa-var-home: "\f015"; @fa-var-hospital-o: "\f0f8"; @fa-var-hotel: "\f236"; +@fa-var-hourglass: "\f254"; +@fa-var-hourglass-1: "\f251"; +@fa-var-hourglass-2: "\f252"; +@fa-var-hourglass-3: "\f253"; +@fa-var-hourglass-end: "\f253"; +@fa-var-hourglass-half: "\f252"; +@fa-var-hourglass-o: "\f250"; +@fa-var-hourglass-start: "\f251"; +@fa-var-houzz: "\f27c"; @fa-var-html5: "\f13b"; +@fa-var-i-cursor: "\f246"; +@fa-var-id-badge: "\f2c1"; +@fa-var-id-card: "\f2c2"; +@fa-var-id-card-o: "\f2c3"; @fa-var-ils: "\f20b"; @fa-var-image: "\f03e"; +@fa-var-imdb: "\f2d8"; @fa-var-inbox: "\f01c"; @fa-var-indent: "\f03c"; +@fa-var-industry: "\f275"; @fa-var-info: "\f129"; @fa-var-info-circle: "\f05a"; @fa-var-inr: "\f156"; @fa-var-instagram: "\f16d"; @fa-var-institution: "\f19c"; +@fa-var-internet-explorer: "\f26b"; +@fa-var-intersex: "\f224"; @fa-var-ioxhost: "\f208"; @fa-var-italic: "\f033"; @fa-var-joomla: "\f1aa"; @@ -323,6 +425,7 @@ @fa-var-link: "\f0c1"; @fa-var-linkedin: "\f0e1"; @fa-var-linkedin-square: "\f08c"; +@fa-var-linode: "\f2b8"; @fa-var-linux: "\f17c"; @fa-var-list: "\f03a"; @fa-var-list-alt: "\f022"; @@ -334,13 +437,18 @@ @fa-var-long-arrow-left: "\f177"; @fa-var-long-arrow-right: "\f178"; @fa-var-long-arrow-up: "\f176"; +@fa-var-low-vision: "\f2a8"; @fa-var-magic: "\f0d0"; @fa-var-magnet: "\f076"; @fa-var-mail-forward: "\f064"; @fa-var-mail-reply: "\f112"; @fa-var-mail-reply-all: "\f122"; @fa-var-male: "\f183"; +@fa-var-map: "\f279"; @fa-var-map-marker: "\f041"; +@fa-var-map-o: "\f278"; +@fa-var-map-pin: "\f276"; +@fa-var-map-signs: "\f277"; @fa-var-mars: "\f222"; @fa-var-mars-double: "\f227"; @fa-var-mars-stroke: "\f229"; @@ -350,25 +458,37 @@ @fa-var-meanpath: "\f20c"; @fa-var-medium: "\f23a"; @fa-var-medkit: "\f0fa"; +@fa-var-meetup: "\f2e0"; @fa-var-meh-o: "\f11a"; @fa-var-mercury: "\f223"; +@fa-var-microchip: "\f2db"; @fa-var-microphone: "\f130"; @fa-var-microphone-slash: "\f131"; @fa-var-minus: "\f068"; @fa-var-minus-circle: "\f056"; @fa-var-minus-square: "\f146"; @fa-var-minus-square-o: "\f147"; +@fa-var-mixcloud: "\f289"; @fa-var-mobile: "\f10b"; @fa-var-mobile-phone: "\f10b"; +@fa-var-modx: "\f285"; @fa-var-money: "\f0d6"; @fa-var-moon-o: "\f186"; @fa-var-mortar-board: "\f19d"; @fa-var-motorcycle: "\f21c"; +@fa-var-mouse-pointer: "\f245"; @fa-var-music: "\f001"; @fa-var-navicon: "\f0c9"; @fa-var-neuter: "\f22c"; @fa-var-newspaper-o: "\f1ea"; +@fa-var-object-group: "\f247"; +@fa-var-object-ungroup: "\f248"; +@fa-var-odnoklassniki: "\f263"; +@fa-var-odnoklassniki-square: "\f264"; +@fa-var-opencart: "\f23d"; @fa-var-openid: "\f19b"; +@fa-var-opera: "\f26a"; +@fa-var-optin-monster: "\f23c"; @fa-var-outdent: "\f03b"; @fa-var-pagelines: "\f18c"; @fa-var-paint-brush: "\f1fc"; @@ -378,18 +498,22 @@ @fa-var-paragraph: "\f1dd"; @fa-var-paste: "\f0ea"; @fa-var-pause: "\f04c"; +@fa-var-pause-circle: "\f28b"; +@fa-var-pause-circle-o: "\f28c"; @fa-var-paw: "\f1b0"; @fa-var-paypal: "\f1ed"; @fa-var-pencil: "\f040"; @fa-var-pencil-square: "\f14b"; @fa-var-pencil-square-o: "\f044"; +@fa-var-percent: "\f295"; @fa-var-phone: "\f095"; @fa-var-phone-square: "\f098"; @fa-var-photo: "\f03e"; @fa-var-picture-o: "\f03e"; @fa-var-pie-chart: "\f200"; -@fa-var-pied-piper: "\f1a7"; +@fa-var-pied-piper: "\f2ae"; @fa-var-pied-piper-alt: "\f1a8"; +@fa-var-pied-piper-pp: "\f1a7"; @fa-var-pinterest: "\f0d2"; @fa-var-pinterest-p: "\f231"; @fa-var-pinterest-square: "\f0d3"; @@ -402,28 +526,36 @@ @fa-var-plus-circle: "\f055"; @fa-var-plus-square: "\f0fe"; @fa-var-plus-square-o: "\f196"; +@fa-var-podcast: "\f2ce"; @fa-var-power-off: "\f011"; @fa-var-print: "\f02f"; +@fa-var-product-hunt: "\f288"; @fa-var-puzzle-piece: "\f12e"; @fa-var-qq: "\f1d6"; @fa-var-qrcode: "\f029"; @fa-var-question: "\f128"; @fa-var-question-circle: "\f059"; +@fa-var-question-circle-o: "\f29c"; +@fa-var-quora: "\f2c4"; @fa-var-quote-left: "\f10d"; @fa-var-quote-right: "\f10e"; @fa-var-ra: "\f1d0"; @fa-var-random: "\f074"; +@fa-var-ravelry: "\f2d9"; @fa-var-rebel: "\f1d0"; @fa-var-recycle: "\f1b8"; @fa-var-reddit: "\f1a1"; +@fa-var-reddit-alien: "\f281"; @fa-var-reddit-square: "\f1a2"; @fa-var-refresh: "\f021"; +@fa-var-registered: "\f25d"; @fa-var-remove: "\f00d"; @fa-var-renren: "\f18b"; @fa-var-reorder: "\f0c9"; @fa-var-repeat: "\f01e"; @fa-var-reply: "\f112"; @fa-var-reply-all: "\f122"; +@fa-var-resistance: "\f1d0"; @fa-var-retweet: "\f079"; @fa-var-rmb: "\f157"; @fa-var-road: "\f018"; @@ -436,8 +568,11 @@ @fa-var-rub: "\f158"; @fa-var-ruble: "\f158"; @fa-var-rupee: "\f156"; +@fa-var-s15: "\f2cd"; +@fa-var-safari: "\f267"; @fa-var-save: "\f0c7"; @fa-var-scissors: "\f0c4"; +@fa-var-scribd: "\f28a"; @fa-var-search: "\f002"; @fa-var-search-minus: "\f010"; @fa-var-search-plus: "\f00e"; @@ -455,10 +590,15 @@ @fa-var-shield: "\f132"; @fa-var-ship: "\f21a"; @fa-var-shirtsinbulk: "\f214"; +@fa-var-shopping-bag: "\f290"; +@fa-var-shopping-basket: "\f291"; @fa-var-shopping-cart: "\f07a"; +@fa-var-shower: "\f2cc"; @fa-var-sign-in: "\f090"; +@fa-var-sign-language: "\f2a7"; @fa-var-sign-out: "\f08b"; @fa-var-signal: "\f012"; +@fa-var-signing: "\f2a7"; @fa-var-simplybuilt: "\f215"; @fa-var-sitemap: "\f0e8"; @fa-var-skyatlas: "\f216"; @@ -467,6 +607,10 @@ @fa-var-sliders: "\f1de"; @fa-var-slideshare: "\f1e7"; @fa-var-smile-o: "\f118"; +@fa-var-snapchat: "\f2ab"; +@fa-var-snapchat-ghost: "\f2ac"; +@fa-var-snapchat-square: "\f2ad"; +@fa-var-snowflake-o: "\f2dc"; @fa-var-soccer-ball-o: "\f1e3"; @fa-var-sort: "\f0dc"; @fa-var-sort-alpha-asc: "\f15d"; @@ -499,7 +643,11 @@ @fa-var-step-backward: "\f048"; @fa-var-step-forward: "\f051"; @fa-var-stethoscope: "\f0f1"; +@fa-var-sticky-note: "\f249"; +@fa-var-sticky-note-o: "\f24a"; @fa-var-stop: "\f04d"; +@fa-var-stop-circle: "\f28d"; +@fa-var-stop-circle-o: "\f28e"; @fa-var-street-view: "\f21d"; @fa-var-strikethrough: "\f0cc"; @fa-var-stumbleupon: "\f1a4"; @@ -508,6 +656,7 @@ @fa-var-subway: "\f239"; @fa-var-suitcase: "\f0f2"; @fa-var-sun-o: "\f185"; +@fa-var-superpowers: "\f2dd"; @fa-var-superscript: "\f12b"; @fa-var-support: "\f1cd"; @fa-var-table: "\f0ce"; @@ -517,6 +666,8 @@ @fa-var-tags: "\f02c"; @fa-var-tasks: "\f0ae"; @fa-var-taxi: "\f1ba"; +@fa-var-telegram: "\f2c6"; +@fa-var-television: "\f26c"; @fa-var-tencent-weibo: "\f1d5"; @fa-var-terminal: "\f120"; @fa-var-text-height: "\f034"; @@ -524,6 +675,18 @@ @fa-var-th: "\f00a"; @fa-var-th-large: "\f009"; @fa-var-th-list: "\f00b"; +@fa-var-themeisle: "\f2b2"; +@fa-var-thermometer: "\f2c7"; +@fa-var-thermometer-0: "\f2cb"; +@fa-var-thermometer-1: "\f2ca"; +@fa-var-thermometer-2: "\f2c9"; +@fa-var-thermometer-3: "\f2c8"; +@fa-var-thermometer-4: "\f2c7"; +@fa-var-thermometer-empty: "\f2cb"; +@fa-var-thermometer-full: "\f2c7"; +@fa-var-thermometer-half: "\f2c9"; +@fa-var-thermometer-quarter: "\f2ca"; +@fa-var-thermometer-three-quarters: "\f2c8"; @fa-var-thumb-tack: "\f08d"; @fa-var-thumbs-down: "\f165"; @fa-var-thumbs-o-down: "\f088"; @@ -533,6 +696,8 @@ @fa-var-times: "\f00d"; @fa-var-times-circle: "\f057"; @fa-var-times-circle-o: "\f05c"; +@fa-var-times-rectangle: "\f2d3"; +@fa-var-times-rectangle-o: "\f2d4"; @fa-var-tint: "\f043"; @fa-var-toggle-down: "\f150"; @fa-var-toggle-left: "\f191"; @@ -540,6 +705,7 @@ @fa-var-toggle-on: "\f205"; @fa-var-toggle-right: "\f152"; @fa-var-toggle-up: "\f151"; +@fa-var-trademark: "\f25c"; @fa-var-train: "\f238"; @fa-var-transgender: "\f224"; @fa-var-transgender-alt: "\f225"; @@ -547,6 +713,7 @@ @fa-var-trash-o: "\f014"; @fa-var-tree: "\f1bb"; @fa-var-trello: "\f181"; +@fa-var-tripadvisor: "\f262"; @fa-var-trophy: "\f091"; @fa-var-truck: "\f0d1"; @fa-var-try: "\f195"; @@ -554,33 +721,45 @@ @fa-var-tumblr: "\f173"; @fa-var-tumblr-square: "\f174"; @fa-var-turkish-lira: "\f195"; +@fa-var-tv: "\f26c"; @fa-var-twitch: "\f1e8"; @fa-var-twitter: "\f099"; @fa-var-twitter-square: "\f081"; @fa-var-umbrella: "\f0e9"; @fa-var-underline: "\f0cd"; @fa-var-undo: "\f0e2"; +@fa-var-universal-access: "\f29a"; @fa-var-university: "\f19c"; @fa-var-unlink: "\f127"; @fa-var-unlock: "\f09c"; @fa-var-unlock-alt: "\f13e"; @fa-var-unsorted: "\f0dc"; @fa-var-upload: "\f093"; +@fa-var-usb: "\f287"; @fa-var-usd: "\f155"; @fa-var-user: "\f007"; +@fa-var-user-circle: "\f2bd"; +@fa-var-user-circle-o: "\f2be"; @fa-var-user-md: "\f0f0"; +@fa-var-user-o: "\f2c0"; @fa-var-user-plus: "\f234"; @fa-var-user-secret: "\f21b"; @fa-var-user-times: "\f235"; @fa-var-users: "\f0c0"; +@fa-var-vcard: "\f2bb"; +@fa-var-vcard-o: "\f2bc"; @fa-var-venus: "\f221"; @fa-var-venus-double: "\f226"; @fa-var-venus-mars: "\f228"; @fa-var-viacoin: "\f237"; +@fa-var-viadeo: "\f2a9"; +@fa-var-viadeo-square: "\f2aa"; @fa-var-video-camera: "\f03d"; +@fa-var-vimeo: "\f27d"; @fa-var-vimeo-square: "\f194"; @fa-var-vine: "\f1ca"; @fa-var-vk: "\f189"; +@fa-var-volume-control-phone: "\f2a0"; @fa-var-volume-down: "\f027"; @fa-var-volume-off: "\f026"; @fa-var-volume-up: "\f028"; @@ -590,16 +769,31 @@ @fa-var-weixin: "\f1d7"; @fa-var-whatsapp: "\f232"; @fa-var-wheelchair: "\f193"; +@fa-var-wheelchair-alt: "\f29b"; @fa-var-wifi: "\f1eb"; +@fa-var-wikipedia-w: "\f266"; +@fa-var-window-close: "\f2d3"; +@fa-var-window-close-o: "\f2d4"; +@fa-var-window-maximize: "\f2d0"; +@fa-var-window-minimize: "\f2d1"; +@fa-var-window-restore: "\f2d2"; @fa-var-windows: "\f17a"; @fa-var-won: "\f159"; @fa-var-wordpress: "\f19a"; +@fa-var-wpbeginner: "\f297"; +@fa-var-wpexplorer: "\f2de"; +@fa-var-wpforms: "\f298"; @fa-var-wrench: "\f0ad"; @fa-var-xing: "\f168"; @fa-var-xing-square: "\f169"; +@fa-var-y-combinator: "\f23b"; +@fa-var-y-combinator-square: "\f1d4"; @fa-var-yahoo: "\f19e"; +@fa-var-yc: "\f23b"; +@fa-var-yc-square: "\f1d4"; @fa-var-yelp: "\f1e9"; @fa-var-yen: "\f157"; +@fa-var-yoast: "\f2b1"; @fa-var-youtube: "\f167"; @fa-var-youtube-play: "\f16a"; @fa-var-youtube-square: "\f166"; diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_animated.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_animated.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_animated.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_animated.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_bordered-pulled.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_bordered-pulled.scss similarity index 56% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_bordered-pulled.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_bordered-pulled.scss index 9d3fdf3a0b..d4b85a02f2 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_bordered-pulled.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_bordered-pulled.scss @@ -7,6 +7,15 @@ border-radius: .1em; } +.#{$fa-css-prefix}-pull-left { float: left; } +.#{$fa-css-prefix}-pull-right { float: right; } + +.#{$fa-css-prefix} { + &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } + &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } +} + +/* Deprecated as of 4.4.0 */ .pull-right { float: right; } .pull-left { float: left; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_core.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_core.scss similarity index 66% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_core.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_core.scss index 5a2db9d561..7425ef85fc 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_core.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_core.scss @@ -3,11 +3,10 @@ .#{$fa-css-prefix} { display: inline-block; - font: normal normal normal #{$fa-font-size-base}/1 FontAwesome; // shortening font declaration + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration font-size: inherit; // can't have font-size inherit on line above, so need to override text-rendering: auto; // optimizelegibility throws things off #1094 -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; - transform: translate(0, 0); // ensures no half-pixel rendering in firefox } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_fixed-width.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_fixed-width.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_fixed-width.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_fixed-width.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_icons.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_icons.scss similarity index 74% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_icons.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_icons.scss index fbcfe81237..e63e702c4d 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_icons.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_icons.scss @@ -163,6 +163,7 @@ .#{$fa-css-prefix}-github:before { content: $fa-var-github; } .#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } .#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-feed:before, .#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } .#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } .#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } @@ -437,7 +438,7 @@ .#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } .#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } .#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } .#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } .#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } .#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } @@ -487,11 +488,14 @@ .#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } .#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } .#{$fa-css-prefix}-ra:before, +.#{$fa-css-prefix}-resistance:before, .#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } .#{$fa-css-prefix}-ge:before, .#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } .#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } .#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-y-combinator-square:before, +.#{$fa-css-prefix}-yc-square:before, .#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } .#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } .#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } @@ -502,7 +506,6 @@ .#{$fa-css-prefix}-send-o:before, .#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } .#{$fa-css-prefix}-history:before { content: $fa-var-history; } -.#{$fa-css-prefix}-genderless:before, .#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } .#{$fa-css-prefix}-header:before { content: $fa-var-header; } .#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } @@ -573,6 +576,7 @@ .#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } .#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } .#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-intersex:before, .#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } .#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } .#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } @@ -582,6 +586,7 @@ .#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } .#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } .#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } +.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } .#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } .#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } .#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } @@ -594,3 +599,191 @@ .#{$fa-css-prefix}-train:before { content: $fa-var-train; } .#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } .#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-yc:before, +.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } +.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } +.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } +.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-battery-4:before, +.#{$fa-css-prefix}-battery:before, +.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-3:before, +.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-2:before, +.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-1:before, +.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-0:before, +.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } +.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } +.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } +.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } +.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } +.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } +.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } +.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } +.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } +.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } +.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } +.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-hourglass-1:before, +.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-2:before, +.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-3:before, +.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } +.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hand-grab-o:before, +.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-stop-o:before, +.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } +.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } +.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } +.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } +.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } +.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } +.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } +.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } +.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } +.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } +.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } +.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } +.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } +.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } +.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } +.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } +.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } +.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } +.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } +.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } +.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-tv:before, +.#{$fa-css-prefix}-television:before { content: $fa-var-television; } +.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } +.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } +.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } +.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } +.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } +.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } +.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } +.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } +.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } +.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } +.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } +.#{$fa-css-prefix}-map:before { content: $fa-var-map; } +.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } +.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } +.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } +.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } +.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } +.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } +.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } +.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } +.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } +.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } +.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } +.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } +.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } +.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } +.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } +.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } +.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } +.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } +.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } +.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } +.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } +.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } +.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } +.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } +.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } +.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } +.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } +.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } +.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } +.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } +.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } +.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } +.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } +.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } +.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } +.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } +.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } +.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } +.#{$fa-css-prefix}-asl-interpreting:before, +.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } +.#{$fa-css-prefix}-deafness:before, +.#{$fa-css-prefix}-hard-of-hearing:before, +.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } +.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } +.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } +.#{$fa-css-prefix}-signing:before, +.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } +.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } +.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } +.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } +.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } +.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } +.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } +.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } +.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } +.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } +.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } +.#{$fa-css-prefix}-google-plus-circle:before, +.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } +.#{$fa-css-prefix}-fa:before, +.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } +.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } +.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } +.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } +.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } +.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } +.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } +.#{$fa-css-prefix}-vcard:before, +.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } +.#{$fa-css-prefix}-vcard-o:before, +.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } +.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } +.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } +.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } +.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } +.#{$fa-css-prefix}-drivers-license:before, +.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } +.#{$fa-css-prefix}-drivers-license-o:before, +.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } +.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } +.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } +.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } +.#{$fa-css-prefix}-thermometer-4:before, +.#{$fa-css-prefix}-thermometer:before, +.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } +.#{$fa-css-prefix}-thermometer-3:before, +.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } +.#{$fa-css-prefix}-thermometer-2:before, +.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } +.#{$fa-css-prefix}-thermometer-1:before, +.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } +.#{$fa-css-prefix}-thermometer-0:before, +.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } +.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } +.#{$fa-css-prefix}-bathtub:before, +.#{$fa-css-prefix}-s15:before, +.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } +.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } +.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } +.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } +.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } +.#{$fa-css-prefix}-times-rectangle:before, +.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } +.#{$fa-css-prefix}-times-rectangle-o:before, +.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } +.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } +.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } +.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } +.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } +.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } +.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } +.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } +.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } +.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } +.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } +.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_larger.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_larger.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_larger.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_larger.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_list.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_list.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_list.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_list.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_mixins.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_mixins.scss new file mode 100644 index 0000000000..c3bbd5745d --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_mixins.scss @@ -0,0 +1,60 @@ +// Mixins +// -------------------------- + +@mixin fa-icon() { + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + +} + +@mixin fa-icon-rotate($degrees, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); +} + +@mixin fa-icon-flip($horiz, $vert, $rotation) { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); +} + + +// Only display content to screen readers. A la Bootstrap 4. +// +// See: http://a11yproject.com/posts/how-to-hide-content/ + +@mixin sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0,0,0,0); + border: 0; +} + +// Use in conjunction with .sr-only to only display content when it's focused. +// +// Useful for "Skip to main content" links; see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1 +// +// Credit: HTML5 Boilerplate + +@mixin sr-only-focusable { + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } +} diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_path.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_path.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_path.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_path.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_rotated-flipped.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_rotated-flipped.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_rotated-flipped.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_rotated-flipped.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_screen-reader.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_screen-reader.scss new file mode 100644 index 0000000000..637426f0da --- /dev/null +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_screen-reader.scss @@ -0,0 +1,5 @@ +// Screen Readers +// ------------------------- + +.sr-only { @include sr-only(); } +.sr-only-focusable { @include sr-only-focusable(); } diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_stacked.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_stacked.scss similarity index 100% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_stacked.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_stacked.scss diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_variables.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_variables.scss similarity index 73% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_variables.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_variables.scss index 9b7210e23b..498fc4a087 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/_variables.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/_variables.scss @@ -3,20 +3,28 @@ $fa-font-path: "../fonts" !default; $fa-font-size-base: 14px !default; -//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.3.0/fonts" !default; // for referencing Bootstrap CDN font files directly +$fa-line-height-base: 1 !default; +//$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly $fa-css-prefix: fa !default; -$fa-version: "4.3.0" !default; +$fa-version: "4.7.0" !default; $fa-border-color: #eee !default; $fa-inverse: #fff !default; $fa-li-width: (30em / 14) !default; +$fa-var-500px: "\f26e"; +$fa-var-address-book: "\f2b9"; +$fa-var-address-book-o: "\f2ba"; +$fa-var-address-card: "\f2bb"; +$fa-var-address-card-o: "\f2bc"; $fa-var-adjust: "\f042"; $fa-var-adn: "\f170"; $fa-var-align-center: "\f037"; $fa-var-align-justify: "\f039"; $fa-var-align-left: "\f036"; $fa-var-align-right: "\f038"; +$fa-var-amazon: "\f270"; $fa-var-ambulance: "\f0f9"; +$fa-var-american-sign-language-interpreting: "\f2a3"; $fa-var-anchor: "\f13d"; $fa-var-android: "\f17b"; $fa-var-angellist: "\f209"; @@ -47,16 +55,34 @@ $fa-var-arrows: "\f047"; $fa-var-arrows-alt: "\f0b2"; $fa-var-arrows-h: "\f07e"; $fa-var-arrows-v: "\f07d"; +$fa-var-asl-interpreting: "\f2a3"; +$fa-var-assistive-listening-systems: "\f2a2"; $fa-var-asterisk: "\f069"; $fa-var-at: "\f1fa"; +$fa-var-audio-description: "\f29e"; $fa-var-automobile: "\f1b9"; $fa-var-backward: "\f04a"; +$fa-var-balance-scale: "\f24e"; $fa-var-ban: "\f05e"; +$fa-var-bandcamp: "\f2d5"; $fa-var-bank: "\f19c"; $fa-var-bar-chart: "\f080"; $fa-var-bar-chart-o: "\f080"; $fa-var-barcode: "\f02a"; $fa-var-bars: "\f0c9"; +$fa-var-bath: "\f2cd"; +$fa-var-bathtub: "\f2cd"; +$fa-var-battery: "\f240"; +$fa-var-battery-0: "\f244"; +$fa-var-battery-1: "\f243"; +$fa-var-battery-2: "\f242"; +$fa-var-battery-3: "\f241"; +$fa-var-battery-4: "\f240"; +$fa-var-battery-empty: "\f244"; +$fa-var-battery-full: "\f240"; +$fa-var-battery-half: "\f242"; +$fa-var-battery-quarter: "\f243"; +$fa-var-battery-three-quarters: "\f241"; $fa-var-bed: "\f236"; $fa-var-beer: "\f0fc"; $fa-var-behance: "\f1b4"; @@ -71,12 +97,17 @@ $fa-var-birthday-cake: "\f1fd"; $fa-var-bitbucket: "\f171"; $fa-var-bitbucket-square: "\f172"; $fa-var-bitcoin: "\f15a"; +$fa-var-black-tie: "\f27e"; +$fa-var-blind: "\f29d"; +$fa-var-bluetooth: "\f293"; +$fa-var-bluetooth-b: "\f294"; $fa-var-bold: "\f032"; $fa-var-bolt: "\f0e7"; $fa-var-bomb: "\f1e2"; $fa-var-book: "\f02d"; $fa-var-bookmark: "\f02e"; $fa-var-bookmark-o: "\f097"; +$fa-var-braille: "\f2a1"; $fa-var-briefcase: "\f0b1"; $fa-var-btc: "\f15a"; $fa-var-bug: "\f188"; @@ -89,7 +120,11 @@ $fa-var-buysellads: "\f20d"; $fa-var-cab: "\f1ba"; $fa-var-calculator: "\f1ec"; $fa-var-calendar: "\f073"; +$fa-var-calendar-check-o: "\f274"; +$fa-var-calendar-minus-o: "\f272"; $fa-var-calendar-o: "\f133"; +$fa-var-calendar-plus-o: "\f271"; +$fa-var-calendar-times-o: "\f273"; $fa-var-camera: "\f030"; $fa-var-camera-retro: "\f083"; $fa-var-car: "\f1b9"; @@ -105,7 +140,9 @@ $fa-var-cart-arrow-down: "\f218"; $fa-var-cart-plus: "\f217"; $fa-var-cc: "\f20a"; $fa-var-cc-amex: "\f1f3"; +$fa-var-cc-diners-club: "\f24c"; $fa-var-cc-discover: "\f1f2"; +$fa-var-cc-jcb: "\f24b"; $fa-var-cc-mastercard: "\f1f1"; $fa-var-cc-paypal: "\f1f4"; $fa-var-cc-stripe: "\f1f5"; @@ -127,12 +164,14 @@ $fa-var-chevron-left: "\f053"; $fa-var-chevron-right: "\f054"; $fa-var-chevron-up: "\f077"; $fa-var-child: "\f1ae"; +$fa-var-chrome: "\f268"; $fa-var-circle: "\f111"; $fa-var-circle-o: "\f10c"; $fa-var-circle-o-notch: "\f1ce"; $fa-var-circle-thin: "\f1db"; $fa-var-clipboard: "\f0ea"; $fa-var-clock-o: "\f017"; +$fa-var-clone: "\f24d"; $fa-var-close: "\f00d"; $fa-var-cloud: "\f0c2"; $fa-var-cloud-download: "\f0ed"; @@ -141,20 +180,26 @@ $fa-var-cny: "\f157"; $fa-var-code: "\f121"; $fa-var-code-fork: "\f126"; $fa-var-codepen: "\f1cb"; +$fa-var-codiepie: "\f284"; $fa-var-coffee: "\f0f4"; $fa-var-cog: "\f013"; $fa-var-cogs: "\f085"; $fa-var-columns: "\f0db"; $fa-var-comment: "\f075"; $fa-var-comment-o: "\f0e5"; +$fa-var-commenting: "\f27a"; +$fa-var-commenting-o: "\f27b"; $fa-var-comments: "\f086"; $fa-var-comments-o: "\f0e6"; $fa-var-compass: "\f14e"; $fa-var-compress: "\f066"; $fa-var-connectdevelop: "\f20e"; +$fa-var-contao: "\f26d"; $fa-var-copy: "\f0c5"; $fa-var-copyright: "\f1f9"; +$fa-var-creative-commons: "\f25e"; $fa-var-credit-card: "\f09d"; +$fa-var-credit-card-alt: "\f283"; $fa-var-crop: "\f125"; $fa-var-crosshairs: "\f05b"; $fa-var-css3: "\f13c"; @@ -165,6 +210,8 @@ $fa-var-cutlery: "\f0f5"; $fa-var-dashboard: "\f0e4"; $fa-var-dashcube: "\f210"; $fa-var-database: "\f1c0"; +$fa-var-deaf: "\f2a4"; +$fa-var-deafness: "\f2a4"; $fa-var-dedent: "\f03b"; $fa-var-delicious: "\f1a5"; $fa-var-desktop: "\f108"; @@ -175,17 +222,25 @@ $fa-var-dollar: "\f155"; $fa-var-dot-circle-o: "\f192"; $fa-var-download: "\f019"; $fa-var-dribbble: "\f17d"; +$fa-var-drivers-license: "\f2c2"; +$fa-var-drivers-license-o: "\f2c3"; $fa-var-dropbox: "\f16b"; $fa-var-drupal: "\f1a9"; +$fa-var-edge: "\f282"; $fa-var-edit: "\f044"; +$fa-var-eercast: "\f2da"; $fa-var-eject: "\f052"; $fa-var-ellipsis-h: "\f141"; $fa-var-ellipsis-v: "\f142"; $fa-var-empire: "\f1d1"; $fa-var-envelope: "\f0e0"; $fa-var-envelope-o: "\f003"; +$fa-var-envelope-open: "\f2b6"; +$fa-var-envelope-open-o: "\f2b7"; $fa-var-envelope-square: "\f199"; +$fa-var-envira: "\f299"; $fa-var-eraser: "\f12d"; +$fa-var-etsy: "\f2d7"; $fa-var-eur: "\f153"; $fa-var-euro: "\f153"; $fa-var-exchange: "\f0ec"; @@ -193,11 +248,13 @@ $fa-var-exclamation: "\f12a"; $fa-var-exclamation-circle: "\f06a"; $fa-var-exclamation-triangle: "\f071"; $fa-var-expand: "\f065"; +$fa-var-expeditedssl: "\f23e"; $fa-var-external-link: "\f08e"; $fa-var-external-link-square: "\f14c"; $fa-var-eye: "\f06e"; $fa-var-eye-slash: "\f070"; $fa-var-eyedropper: "\f1fb"; +$fa-var-fa: "\f2b4"; $fa-var-facebook: "\f09a"; $fa-var-facebook-f: "\f09a"; $fa-var-facebook-official: "\f230"; @@ -205,6 +262,7 @@ $fa-var-facebook-square: "\f082"; $fa-var-fast-backward: "\f049"; $fa-var-fast-forward: "\f050"; $fa-var-fax: "\f1ac"; +$fa-var-feed: "\f09e"; $fa-var-female: "\f182"; $fa-var-fighter-jet: "\f0fb"; $fa-var-file: "\f15b"; @@ -230,6 +288,8 @@ $fa-var-film: "\f008"; $fa-var-filter: "\f0b0"; $fa-var-fire: "\f06d"; $fa-var-fire-extinguisher: "\f134"; +$fa-var-firefox: "\f269"; +$fa-var-first-order: "\f2b0"; $fa-var-flag: "\f024"; $fa-var-flag-checkered: "\f11e"; $fa-var-flag-o: "\f11d"; @@ -242,9 +302,13 @@ $fa-var-folder-o: "\f114"; $fa-var-folder-open: "\f07c"; $fa-var-folder-open-o: "\f115"; $fa-var-font: "\f031"; +$fa-var-font-awesome: "\f2b4"; +$fa-var-fonticons: "\f280"; +$fa-var-fort-awesome: "\f286"; $fa-var-forumbee: "\f211"; $fa-var-forward: "\f04e"; $fa-var-foursquare: "\f180"; +$fa-var-free-code-camp: "\f2c5"; $fa-var-frown-o: "\f119"; $fa-var-futbol-o: "\f1e3"; $fa-var-gamepad: "\f11b"; @@ -253,29 +317,50 @@ $fa-var-gbp: "\f154"; $fa-var-ge: "\f1d1"; $fa-var-gear: "\f013"; $fa-var-gears: "\f085"; -$fa-var-genderless: "\f1db"; +$fa-var-genderless: "\f22d"; +$fa-var-get-pocket: "\f265"; +$fa-var-gg: "\f260"; +$fa-var-gg-circle: "\f261"; $fa-var-gift: "\f06b"; $fa-var-git: "\f1d3"; $fa-var-git-square: "\f1d2"; $fa-var-github: "\f09b"; $fa-var-github-alt: "\f113"; $fa-var-github-square: "\f092"; +$fa-var-gitlab: "\f296"; $fa-var-gittip: "\f184"; $fa-var-glass: "\f000"; +$fa-var-glide: "\f2a5"; +$fa-var-glide-g: "\f2a6"; $fa-var-globe: "\f0ac"; $fa-var-google: "\f1a0"; $fa-var-google-plus: "\f0d5"; +$fa-var-google-plus-circle: "\f2b3"; +$fa-var-google-plus-official: "\f2b3"; $fa-var-google-plus-square: "\f0d4"; $fa-var-google-wallet: "\f1ee"; $fa-var-graduation-cap: "\f19d"; $fa-var-gratipay: "\f184"; +$fa-var-grav: "\f2d6"; $fa-var-group: "\f0c0"; $fa-var-h-square: "\f0fd"; $fa-var-hacker-news: "\f1d4"; +$fa-var-hand-grab-o: "\f255"; +$fa-var-hand-lizard-o: "\f258"; $fa-var-hand-o-down: "\f0a7"; $fa-var-hand-o-left: "\f0a5"; $fa-var-hand-o-right: "\f0a4"; $fa-var-hand-o-up: "\f0a6"; +$fa-var-hand-paper-o: "\f256"; +$fa-var-hand-peace-o: "\f25b"; +$fa-var-hand-pointer-o: "\f25a"; +$fa-var-hand-rock-o: "\f255"; +$fa-var-hand-scissors-o: "\f257"; +$fa-var-hand-spock-o: "\f259"; +$fa-var-hand-stop-o: "\f256"; +$fa-var-handshake-o: "\f2b5"; +$fa-var-hard-of-hearing: "\f2a4"; +$fa-var-hashtag: "\f292"; $fa-var-hdd-o: "\f0a0"; $fa-var-header: "\f1dc"; $fa-var-headphones: "\f025"; @@ -286,16 +371,33 @@ $fa-var-history: "\f1da"; $fa-var-home: "\f015"; $fa-var-hospital-o: "\f0f8"; $fa-var-hotel: "\f236"; +$fa-var-hourglass: "\f254"; +$fa-var-hourglass-1: "\f251"; +$fa-var-hourglass-2: "\f252"; +$fa-var-hourglass-3: "\f253"; +$fa-var-hourglass-end: "\f253"; +$fa-var-hourglass-half: "\f252"; +$fa-var-hourglass-o: "\f250"; +$fa-var-hourglass-start: "\f251"; +$fa-var-houzz: "\f27c"; $fa-var-html5: "\f13b"; +$fa-var-i-cursor: "\f246"; +$fa-var-id-badge: "\f2c1"; +$fa-var-id-card: "\f2c2"; +$fa-var-id-card-o: "\f2c3"; $fa-var-ils: "\f20b"; $fa-var-image: "\f03e"; +$fa-var-imdb: "\f2d8"; $fa-var-inbox: "\f01c"; $fa-var-indent: "\f03c"; +$fa-var-industry: "\f275"; $fa-var-info: "\f129"; $fa-var-info-circle: "\f05a"; $fa-var-inr: "\f156"; $fa-var-instagram: "\f16d"; $fa-var-institution: "\f19c"; +$fa-var-internet-explorer: "\f26b"; +$fa-var-intersex: "\f224"; $fa-var-ioxhost: "\f208"; $fa-var-italic: "\f033"; $fa-var-joomla: "\f1aa"; @@ -323,6 +425,7 @@ $fa-var-line-chart: "\f201"; $fa-var-link: "\f0c1"; $fa-var-linkedin: "\f0e1"; $fa-var-linkedin-square: "\f08c"; +$fa-var-linode: "\f2b8"; $fa-var-linux: "\f17c"; $fa-var-list: "\f03a"; $fa-var-list-alt: "\f022"; @@ -334,13 +437,18 @@ $fa-var-long-arrow-down: "\f175"; $fa-var-long-arrow-left: "\f177"; $fa-var-long-arrow-right: "\f178"; $fa-var-long-arrow-up: "\f176"; +$fa-var-low-vision: "\f2a8"; $fa-var-magic: "\f0d0"; $fa-var-magnet: "\f076"; $fa-var-mail-forward: "\f064"; $fa-var-mail-reply: "\f112"; $fa-var-mail-reply-all: "\f122"; $fa-var-male: "\f183"; +$fa-var-map: "\f279"; $fa-var-map-marker: "\f041"; +$fa-var-map-o: "\f278"; +$fa-var-map-pin: "\f276"; +$fa-var-map-signs: "\f277"; $fa-var-mars: "\f222"; $fa-var-mars-double: "\f227"; $fa-var-mars-stroke: "\f229"; @@ -350,25 +458,37 @@ $fa-var-maxcdn: "\f136"; $fa-var-meanpath: "\f20c"; $fa-var-medium: "\f23a"; $fa-var-medkit: "\f0fa"; +$fa-var-meetup: "\f2e0"; $fa-var-meh-o: "\f11a"; $fa-var-mercury: "\f223"; +$fa-var-microchip: "\f2db"; $fa-var-microphone: "\f130"; $fa-var-microphone-slash: "\f131"; $fa-var-minus: "\f068"; $fa-var-minus-circle: "\f056"; $fa-var-minus-square: "\f146"; $fa-var-minus-square-o: "\f147"; +$fa-var-mixcloud: "\f289"; $fa-var-mobile: "\f10b"; $fa-var-mobile-phone: "\f10b"; +$fa-var-modx: "\f285"; $fa-var-money: "\f0d6"; $fa-var-moon-o: "\f186"; $fa-var-mortar-board: "\f19d"; $fa-var-motorcycle: "\f21c"; +$fa-var-mouse-pointer: "\f245"; $fa-var-music: "\f001"; $fa-var-navicon: "\f0c9"; $fa-var-neuter: "\f22c"; $fa-var-newspaper-o: "\f1ea"; +$fa-var-object-group: "\f247"; +$fa-var-object-ungroup: "\f248"; +$fa-var-odnoklassniki: "\f263"; +$fa-var-odnoklassniki-square: "\f264"; +$fa-var-opencart: "\f23d"; $fa-var-openid: "\f19b"; +$fa-var-opera: "\f26a"; +$fa-var-optin-monster: "\f23c"; $fa-var-outdent: "\f03b"; $fa-var-pagelines: "\f18c"; $fa-var-paint-brush: "\f1fc"; @@ -378,18 +498,22 @@ $fa-var-paperclip: "\f0c6"; $fa-var-paragraph: "\f1dd"; $fa-var-paste: "\f0ea"; $fa-var-pause: "\f04c"; +$fa-var-pause-circle: "\f28b"; +$fa-var-pause-circle-o: "\f28c"; $fa-var-paw: "\f1b0"; $fa-var-paypal: "\f1ed"; $fa-var-pencil: "\f040"; $fa-var-pencil-square: "\f14b"; $fa-var-pencil-square-o: "\f044"; +$fa-var-percent: "\f295"; $fa-var-phone: "\f095"; $fa-var-phone-square: "\f098"; $fa-var-photo: "\f03e"; $fa-var-picture-o: "\f03e"; $fa-var-pie-chart: "\f200"; -$fa-var-pied-piper: "\f1a7"; +$fa-var-pied-piper: "\f2ae"; $fa-var-pied-piper-alt: "\f1a8"; +$fa-var-pied-piper-pp: "\f1a7"; $fa-var-pinterest: "\f0d2"; $fa-var-pinterest-p: "\f231"; $fa-var-pinterest-square: "\f0d3"; @@ -402,28 +526,36 @@ $fa-var-plus: "\f067"; $fa-var-plus-circle: "\f055"; $fa-var-plus-square: "\f0fe"; $fa-var-plus-square-o: "\f196"; +$fa-var-podcast: "\f2ce"; $fa-var-power-off: "\f011"; $fa-var-print: "\f02f"; +$fa-var-product-hunt: "\f288"; $fa-var-puzzle-piece: "\f12e"; $fa-var-qq: "\f1d6"; $fa-var-qrcode: "\f029"; $fa-var-question: "\f128"; $fa-var-question-circle: "\f059"; +$fa-var-question-circle-o: "\f29c"; +$fa-var-quora: "\f2c4"; $fa-var-quote-left: "\f10d"; $fa-var-quote-right: "\f10e"; $fa-var-ra: "\f1d0"; $fa-var-random: "\f074"; +$fa-var-ravelry: "\f2d9"; $fa-var-rebel: "\f1d0"; $fa-var-recycle: "\f1b8"; $fa-var-reddit: "\f1a1"; +$fa-var-reddit-alien: "\f281"; $fa-var-reddit-square: "\f1a2"; $fa-var-refresh: "\f021"; +$fa-var-registered: "\f25d"; $fa-var-remove: "\f00d"; $fa-var-renren: "\f18b"; $fa-var-reorder: "\f0c9"; $fa-var-repeat: "\f01e"; $fa-var-reply: "\f112"; $fa-var-reply-all: "\f122"; +$fa-var-resistance: "\f1d0"; $fa-var-retweet: "\f079"; $fa-var-rmb: "\f157"; $fa-var-road: "\f018"; @@ -436,8 +568,11 @@ $fa-var-rss-square: "\f143"; $fa-var-rub: "\f158"; $fa-var-ruble: "\f158"; $fa-var-rupee: "\f156"; +$fa-var-s15: "\f2cd"; +$fa-var-safari: "\f267"; $fa-var-save: "\f0c7"; $fa-var-scissors: "\f0c4"; +$fa-var-scribd: "\f28a"; $fa-var-search: "\f002"; $fa-var-search-minus: "\f010"; $fa-var-search-plus: "\f00e"; @@ -455,10 +590,15 @@ $fa-var-sheqel: "\f20b"; $fa-var-shield: "\f132"; $fa-var-ship: "\f21a"; $fa-var-shirtsinbulk: "\f214"; +$fa-var-shopping-bag: "\f290"; +$fa-var-shopping-basket: "\f291"; $fa-var-shopping-cart: "\f07a"; +$fa-var-shower: "\f2cc"; $fa-var-sign-in: "\f090"; +$fa-var-sign-language: "\f2a7"; $fa-var-sign-out: "\f08b"; $fa-var-signal: "\f012"; +$fa-var-signing: "\f2a7"; $fa-var-simplybuilt: "\f215"; $fa-var-sitemap: "\f0e8"; $fa-var-skyatlas: "\f216"; @@ -467,6 +607,10 @@ $fa-var-slack: "\f198"; $fa-var-sliders: "\f1de"; $fa-var-slideshare: "\f1e7"; $fa-var-smile-o: "\f118"; +$fa-var-snapchat: "\f2ab"; +$fa-var-snapchat-ghost: "\f2ac"; +$fa-var-snapchat-square: "\f2ad"; +$fa-var-snowflake-o: "\f2dc"; $fa-var-soccer-ball-o: "\f1e3"; $fa-var-sort: "\f0dc"; $fa-var-sort-alpha-asc: "\f15d"; @@ -499,7 +643,11 @@ $fa-var-steam-square: "\f1b7"; $fa-var-step-backward: "\f048"; $fa-var-step-forward: "\f051"; $fa-var-stethoscope: "\f0f1"; +$fa-var-sticky-note: "\f249"; +$fa-var-sticky-note-o: "\f24a"; $fa-var-stop: "\f04d"; +$fa-var-stop-circle: "\f28d"; +$fa-var-stop-circle-o: "\f28e"; $fa-var-street-view: "\f21d"; $fa-var-strikethrough: "\f0cc"; $fa-var-stumbleupon: "\f1a4"; @@ -508,6 +656,7 @@ $fa-var-subscript: "\f12c"; $fa-var-subway: "\f239"; $fa-var-suitcase: "\f0f2"; $fa-var-sun-o: "\f185"; +$fa-var-superpowers: "\f2dd"; $fa-var-superscript: "\f12b"; $fa-var-support: "\f1cd"; $fa-var-table: "\f0ce"; @@ -517,6 +666,8 @@ $fa-var-tag: "\f02b"; $fa-var-tags: "\f02c"; $fa-var-tasks: "\f0ae"; $fa-var-taxi: "\f1ba"; +$fa-var-telegram: "\f2c6"; +$fa-var-television: "\f26c"; $fa-var-tencent-weibo: "\f1d5"; $fa-var-terminal: "\f120"; $fa-var-text-height: "\f034"; @@ -524,6 +675,18 @@ $fa-var-text-width: "\f035"; $fa-var-th: "\f00a"; $fa-var-th-large: "\f009"; $fa-var-th-list: "\f00b"; +$fa-var-themeisle: "\f2b2"; +$fa-var-thermometer: "\f2c7"; +$fa-var-thermometer-0: "\f2cb"; +$fa-var-thermometer-1: "\f2ca"; +$fa-var-thermometer-2: "\f2c9"; +$fa-var-thermometer-3: "\f2c8"; +$fa-var-thermometer-4: "\f2c7"; +$fa-var-thermometer-empty: "\f2cb"; +$fa-var-thermometer-full: "\f2c7"; +$fa-var-thermometer-half: "\f2c9"; +$fa-var-thermometer-quarter: "\f2ca"; +$fa-var-thermometer-three-quarters: "\f2c8"; $fa-var-thumb-tack: "\f08d"; $fa-var-thumbs-down: "\f165"; $fa-var-thumbs-o-down: "\f088"; @@ -533,6 +696,8 @@ $fa-var-ticket: "\f145"; $fa-var-times: "\f00d"; $fa-var-times-circle: "\f057"; $fa-var-times-circle-o: "\f05c"; +$fa-var-times-rectangle: "\f2d3"; +$fa-var-times-rectangle-o: "\f2d4"; $fa-var-tint: "\f043"; $fa-var-toggle-down: "\f150"; $fa-var-toggle-left: "\f191"; @@ -540,6 +705,7 @@ $fa-var-toggle-off: "\f204"; $fa-var-toggle-on: "\f205"; $fa-var-toggle-right: "\f152"; $fa-var-toggle-up: "\f151"; +$fa-var-trademark: "\f25c"; $fa-var-train: "\f238"; $fa-var-transgender: "\f224"; $fa-var-transgender-alt: "\f225"; @@ -547,6 +713,7 @@ $fa-var-trash: "\f1f8"; $fa-var-trash-o: "\f014"; $fa-var-tree: "\f1bb"; $fa-var-trello: "\f181"; +$fa-var-tripadvisor: "\f262"; $fa-var-trophy: "\f091"; $fa-var-truck: "\f0d1"; $fa-var-try: "\f195"; @@ -554,33 +721,45 @@ $fa-var-tty: "\f1e4"; $fa-var-tumblr: "\f173"; $fa-var-tumblr-square: "\f174"; $fa-var-turkish-lira: "\f195"; +$fa-var-tv: "\f26c"; $fa-var-twitch: "\f1e8"; $fa-var-twitter: "\f099"; $fa-var-twitter-square: "\f081"; $fa-var-umbrella: "\f0e9"; $fa-var-underline: "\f0cd"; $fa-var-undo: "\f0e2"; +$fa-var-universal-access: "\f29a"; $fa-var-university: "\f19c"; $fa-var-unlink: "\f127"; $fa-var-unlock: "\f09c"; $fa-var-unlock-alt: "\f13e"; $fa-var-unsorted: "\f0dc"; $fa-var-upload: "\f093"; +$fa-var-usb: "\f287"; $fa-var-usd: "\f155"; $fa-var-user: "\f007"; +$fa-var-user-circle: "\f2bd"; +$fa-var-user-circle-o: "\f2be"; $fa-var-user-md: "\f0f0"; +$fa-var-user-o: "\f2c0"; $fa-var-user-plus: "\f234"; $fa-var-user-secret: "\f21b"; $fa-var-user-times: "\f235"; $fa-var-users: "\f0c0"; +$fa-var-vcard: "\f2bb"; +$fa-var-vcard-o: "\f2bc"; $fa-var-venus: "\f221"; $fa-var-venus-double: "\f226"; $fa-var-venus-mars: "\f228"; $fa-var-viacoin: "\f237"; +$fa-var-viadeo: "\f2a9"; +$fa-var-viadeo-square: "\f2aa"; $fa-var-video-camera: "\f03d"; +$fa-var-vimeo: "\f27d"; $fa-var-vimeo-square: "\f194"; $fa-var-vine: "\f1ca"; $fa-var-vk: "\f189"; +$fa-var-volume-control-phone: "\f2a0"; $fa-var-volume-down: "\f027"; $fa-var-volume-off: "\f026"; $fa-var-volume-up: "\f028"; @@ -590,16 +769,31 @@ $fa-var-weibo: "\f18a"; $fa-var-weixin: "\f1d7"; $fa-var-whatsapp: "\f232"; $fa-var-wheelchair: "\f193"; +$fa-var-wheelchair-alt: "\f29b"; $fa-var-wifi: "\f1eb"; +$fa-var-wikipedia-w: "\f266"; +$fa-var-window-close: "\f2d3"; +$fa-var-window-close-o: "\f2d4"; +$fa-var-window-maximize: "\f2d0"; +$fa-var-window-minimize: "\f2d1"; +$fa-var-window-restore: "\f2d2"; $fa-var-windows: "\f17a"; $fa-var-won: "\f159"; $fa-var-wordpress: "\f19a"; +$fa-var-wpbeginner: "\f297"; +$fa-var-wpexplorer: "\f2de"; +$fa-var-wpforms: "\f298"; $fa-var-wrench: "\f0ad"; $fa-var-xing: "\f168"; $fa-var-xing-square: "\f169"; +$fa-var-y-combinator: "\f23b"; +$fa-var-y-combinator-square: "\f1d4"; $fa-var-yahoo: "\f19e"; +$fa-var-yc: "\f23b"; +$fa-var-yc-square: "\f1d4"; $fa-var-yelp: "\f1e9"; $fa-var-yen: "\f157"; +$fa-var-yoast: "\f2b1"; $fa-var-youtube: "\f167"; $fa-var-youtube-play: "\f16a"; $fa-var-youtube-square: "\f166"; diff --git a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/font-awesome.scss b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/font-awesome.scss similarity index 79% rename from mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/font-awesome.scss rename to mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/font-awesome.scss index 388ac6b0cd..f1c83aaa5d 100644 --- a/mayan/apps/appearance/static/appearance/packages/font-awesome-4.3.0/scss/font-awesome.scss +++ b/mayan/apps/appearance/static/appearance/packages/font-awesome-4.7.0/scss/font-awesome.scss @@ -1,5 +1,5 @@ /*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) */ @@ -15,3 +15,4 @@ @import "rotated-flipped"; @import "stacked"; @import "icons"; +@import "screen-reader"; diff --git a/mayan/apps/appearance/templates/appearance/base.html b/mayan/apps/appearance/templates/appearance/base.html index ccf53112b1..34bd926549 100644 --- a/mayan/apps/appearance/templates/appearance/base.html +++ b/mayan/apps/appearance/templates/appearance/base.html @@ -22,8 +22,9 @@ {% compress css %} - - + + {# Disable base Bootstrap CSS, Flatly seems to include it already #} + {##} @@ -32,6 +33,17 @@ {% block stylesheets %}{% endblock %} {% endcompress %} + {% if appearance_type == 'plain' %} @@ -71,14 +83,19 @@ "); + this.element.attr('aria-activedescendant','j'+this._id+'_loading'); + } + this.load_node($.jstree.root, function (o, s) { + if(s) { + this.get_container_ul()[0].className = c; + if(this._firstChild(this.get_container_ul()[0])) { + this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); + } + this.set_state($.extend(true, {}, this._data.core.state), function () { + /** + * triggered when a `refresh` call completes + * @event + * @name refresh.jstree + */ + this.trigger('refresh'); + }); + } + this._data.core.state = null; + }); + }, + /** + * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`. + * @name refresh_node(obj) + * @param {mixed} obj the node + * @trigger refresh_node.jstree + */ + refresh_node : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var opened = [], to_load = [], s = this._data.core.selected.concat([]); + to_load.push(obj.id); + if(obj.state.opened === true) { opened.push(obj.id); } + this.get_node(obj, true).find('.jstree-open').each(function() { to_load.push(this.id); opened.push(this.id); }); + this._load_nodes(to_load, $.proxy(function (nodes) { + this.open_node(opened, false, 0); + this.select_node(s); + /** + * triggered when a node is refreshed + * @event + * @name refresh_node.jstree + * @param {Object} node - the refreshed node + * @param {Array} nodes - an array of the IDs of the nodes that were reloaded + */ + this.trigger('refresh_node', { 'node' : obj, 'nodes' : nodes }); + }, this), false, true); + }, + /** + * set (change) the ID of a node + * @name set_id(obj, id) + * @param {mixed} obj the node + * @param {String} id the new ID + * @return {Boolean} + * @trigger set_id.jstree + */ + set_id : function (obj, id) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var i, j, m = this._model.data, old = obj.id; + id = id.toString(); + // update parents (replace current ID with new one in children and children_d) + m[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id; + for(i = 0, j = obj.parents.length; i < j; i++) { + m[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id; + } + // update children (replace current ID with new one in parent and parents) + for(i = 0, j = obj.children.length; i < j; i++) { + m[obj.children[i]].parent = id; + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + m[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id; + } + i = $.inArray(obj.id, this._data.core.selected); + if(i !== -1) { this._data.core.selected[i] = id; } + // update model and obj itself (obj.id, this._model.data[KEY]) + i = this.get_node(obj.id, true); + if(i) { + i.attr('id', id); //.children('.jstree-anchor').attr('id', id + '_anchor').end().attr('aria-labelledby', id + '_anchor'); + if(this.element.attr('aria-activedescendant') === obj.id) { + this.element.attr('aria-activedescendant', id); + } + } + delete m[obj.id]; + obj.id = id; + obj.li_attr.id = id; + m[id] = obj; + /** + * triggered when a node id value is changed + * @event + * @name set_id.jstree + * @param {Object} node + * @param {String} old the old id + */ + this.trigger('set_id',{ "node" : obj, "new" : obj.id, "old" : old }); + return true; + }, + /** + * get the text value of a node + * @name get_text(obj) + * @param {mixed} obj the node + * @return {String} + */ + get_text : function (obj) { + obj = this.get_node(obj); + return (!obj || obj.id === $.jstree.root) ? false : obj.text; + }, + /** + * set the text value of a node. Used internally, please use `rename_node(obj, val)`. + * @private + * @name set_text(obj, val) + * @param {mixed} obj the node, you can pass an array to set the text on multiple nodes + * @param {String} val the new text value + * @return {Boolean} + * @trigger set_text.jstree + */ + set_text : function (obj, val) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_text(obj[t1], val); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + obj.text = val; + if(this.get_node(obj, true).length) { + this.redraw_node(obj.id); + } + /** + * triggered when a node text value is changed + * @event + * @name set_text.jstree + * @param {Object} obj + * @param {String} text the new value + */ + this.trigger('set_text',{ "obj" : obj, "text" : val }); + return true; + }, + /** + * gets a JSON representation of a node (or the whole tree) + * @name get_json([obj, options]) + * @param {mixed} obj + * @param {Object} options + * @param {Boolean} options.no_state do not return state information + * @param {Boolean} options.no_id do not return ID + * @param {Boolean} options.no_children do not include children + * @param {Boolean} options.no_data do not include node data + * @param {Boolean} options.no_li_attr do not include LI attributes + * @param {Boolean} options.no_a_attr do not include A attributes + * @param {Boolean} options.flat return flat JSON instead of nested + * @return {Object} + */ + get_json : function (obj, options, flat) { + obj = this.get_node(obj || $.jstree.root); + if(!obj) { return false; } + if(options && options.flat && !flat) { flat = []; } + var tmp = { + 'id' : obj.id, + 'text' : obj.text, + 'icon' : this.get_icon(obj), + 'li_attr' : $.extend(true, {}, obj.li_attr), + 'a_attr' : $.extend(true, {}, obj.a_attr), + 'state' : {}, + 'data' : options && options.no_data ? false : $.extend(true, {}, obj.data) + //( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ), + }, i, j; + if(options && options.flat) { + tmp.parent = obj.parent; + } + else { + tmp.children = []; + } + if(!options || !options.no_state) { + for(i in obj.state) { + if(obj.state.hasOwnProperty(i)) { + tmp.state[i] = obj.state[i]; + } + } + } else { + delete tmp.state; + } + if(options && options.no_li_attr) { + delete tmp.li_attr; + } + if(options && options.no_a_attr) { + delete tmp.a_attr; + } + if(options && options.no_id) { + delete tmp.id; + if(tmp.li_attr && tmp.li_attr.id) { + delete tmp.li_attr.id; + } + if(tmp.a_attr && tmp.a_attr.id) { + delete tmp.a_attr.id; + } + } + if(options && options.flat && obj.id !== $.jstree.root) { + flat.push(tmp); + } + if(!options || !options.no_children) { + for(i = 0, j = obj.children.length; i < j; i++) { + if(options && options.flat) { + this.get_json(obj.children[i], options, flat); + } + else { + tmp.children.push(this.get_json(obj.children[i], options)); + } + } + } + return options && options.flat ? flat : (obj.id === $.jstree.root ? tmp.children : tmp); + }, + /** + * create a new node (do not confuse with load_node) + * @name create_node([par, node, pos, callback, is_loaded]) + * @param {mixed} par the parent node (to create a root node use either "#" (string) or `null`) + * @param {mixed} node the data for the new node (a valid JSON object, or a simple string with the name) + * @param {mixed} pos the index at which to insert the node, "first" and "last" are also supported, default is "last" + * @param {Function} callback a function to be called once the node is created + * @param {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded + * @return {String} the ID of the newly create node + * @trigger model.jstree, create_node.jstree + */ + create_node : function (par, node, pos, callback, is_loaded) { + if(par === null) { par = $.jstree.root; } + par = this.get_node(par); + if(!par) { return false; } + pos = pos === undefined ? "last" : pos; + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.create_node(par, node, pos, callback, true); }); + } + if(!node) { node = { "text" : this.get_string('New node') }; } + if(typeof node === "string") { node = { "text" : node }; } + if(node.text === undefined) { node.text = this.get_string('New node'); } + var tmp, dpc, i, j; + + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + tmp = this.get_node(par.parent); + pos = $.inArray(par.id, tmp.children); + par = tmp; + break; + case "after" : + tmp = this.get_node(par.parent); + pos = $.inArray(par.id, tmp.children) + 1; + par = tmp; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > par.children.length) { pos = par.children.length; } + if(!node.id) { node.id = true; } + if(!this.check("create_node", node, par, pos)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(node.id === true) { delete node.id; } + node = this._parse_model_from_json(node, par.id, par.parents.concat()); + if(!node) { return false; } + tmp = this.get_node(node); + dpc = []; + dpc.push(node); + dpc = dpc.concat(tmp.children_d); + this.trigger('model', { "nodes" : dpc, "parent" : par.id }); + + par.children_d = par.children_d.concat(dpc); + for(i = 0, j = par.parents.length; i < j; i++) { + this._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc); + } + node = tmp; + tmp = []; + for(i = 0, j = par.children.length; i < j; i++) { + tmp[i >= pos ? i+1 : i] = par.children[i]; + } + tmp[pos] = node.id; + par.children = tmp; + + this.redraw_node(par, true); + if(callback) { callback.call(this, this.get_node(node)); } + /** + * triggered when a node is created + * @event + * @name create_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + * @param {Number} position the position of the new node among the parent's children + */ + this.trigger('create_node', { "node" : this.get_node(node), "parent" : par.id, "position" : pos }); + return node.id; + }, + /** + * set the text value of a node + * @name rename_node(obj, val) + * @param {mixed} obj the node, you can pass an array to rename multiple nodes to the same name + * @param {String} val the new text value + * @return {Boolean} + * @trigger rename_node.jstree + */ + rename_node : function (obj, val) { + var t1, t2, old; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.rename_node(obj[t1], val); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + old = obj.text; + if(!this.check("rename_node", obj, this.get_parent(obj), val)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + this.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments)) + /** + * triggered when a node is renamed + * @event + * @name rename_node.jstree + * @param {Object} node + * @param {String} text the new value + * @param {String} old the old value + */ + this.trigger('rename_node', { "node" : obj, "text" : val, "old" : old }); + return true; + }, + /** + * remove a node + * @name delete_node(obj) + * @param {mixed} obj the node, you can pass an array to delete multiple nodes + * @return {Boolean} + * @trigger delete_node.jstree, changed.jstree + */ + delete_node : function (obj) { + var t1, t2, par, pos, tmp, i, j, k, l, c, top, lft; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.delete_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + par = this.get_node(obj.parent); + pos = $.inArray(obj.id, par.children); + c = false; + if(!this.check("delete_node", obj, par, pos)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(pos !== -1) { + par.children = $.vakata.array_remove(par.children, pos); + } + tmp = obj.children_d.concat([]); + tmp.push(obj.id); + for(i = 0, j = obj.parents.length; i < j; i++) { + this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { + return $.inArray(v, tmp) === -1; + }); + } + for(k = 0, l = tmp.length; k < l; k++) { + if(this._model.data[tmp[k]].state.selected) { + c = true; + break; + } + } + if (c) { + this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { + return $.inArray(v, tmp) === -1; + }); + } + /** + * triggered when a node is deleted + * @event + * @name delete_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + */ + this.trigger('delete_node', { "node" : obj, "parent" : par.id }); + if(c) { + this.trigger('changed', { 'action' : 'delete_node', 'node' : obj, 'selected' : this._data.core.selected, 'parent' : par.id }); + } + for(k = 0, l = tmp.length; k < l; k++) { + delete this._model.data[tmp[k]]; + } + if($.inArray(this._data.core.focused, tmp) !== -1) { + this._data.core.focused = null; + top = this.element[0].scrollTop; + lft = this.element[0].scrollLeft; + if(par.id === $.jstree.root) { + if (this._model.data[$.jstree.root].children[0]) { + this.get_node(this._model.data[$.jstree.root].children[0], true).children('.jstree-anchor').focus(); + } + } + else { + this.get_node(par, true).children('.jstree-anchor').focus(); + } + this.element[0].scrollTop = top; + this.element[0].scrollLeft = lft; + } + this.redraw_node(par, true); + return true; + }, + /** + * check if an operation is premitted on the tree. Used internally. + * @private + * @name check(chk, obj, par, pos) + * @param {String} chk the operation to check, can be "create_node", "rename_node", "delete_node", "copy_node" or "move_node" + * @param {mixed} obj the node + * @param {mixed} par the parent + * @param {mixed} pos the position to insert at, or if "rename_node" - the new name + * @param {mixed} more some various additional information, for example if a "move_node" operations is triggered by DND this will be the hovered node + * @return {Boolean} + */ + check : function (chk, obj, par, pos, more) { + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + var tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj, + chc = this.settings.core.check_callback; + if(chk === "move_node" || chk === "copy_node") { + if((!more || !more.is_multi) && (obj.id === par.id || (chk === "move_node" && $.inArray(obj.id, par.children) === pos) || $.inArray(par.id, obj.children_d) !== -1)) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_01', 'reason' : 'Moving parent inside child', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + } + if(tmp && tmp.data) { tmp = tmp.data; } + if(tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) { + if(tmp.functions[chk] === false) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_02', 'reason' : 'Node data prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return tmp.functions[chk]; + } + if(chc === false || ($.isFunction(chc) && chc.call(this, chk, obj, par, pos, more) === false) || (chc && chc[chk] === false)) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_03', 'reason' : 'User config for core.check_callback prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + return true; + }, + /** + * get the last error + * @name last_error() + * @return {Object} + */ + last_error : function () { + return this._data.core.last_error; + }, + /** + * move a node to a new parent + * @name move_node(obj, par [, pos, callback, is_loaded]) + * @param {mixed} obj the node to move, pass an array to move multiple nodes + * @param {mixed} par the new parent + * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` + * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded + * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn + * @param {Boolean} instance internal parameter indicating if the node comes from another instance + * @trigger move_node.jstree + */ + move_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { + var t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p; + + par = this.get_node(par); + pos = pos === undefined ? 0 : pos; + if(!par) { return false; } + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.move_node(obj, par, pos, callback, true, false, origin); }); + } + + if($.isArray(obj)) { + if(obj.length === 1) { + obj = obj[0]; + } + else { + //obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + if((tmp = this.move_node(obj[t1], par, pos, callback, is_loaded, false, origin))) { + par = tmp; + pos = "after"; + } + } + this.redraw(); + return true; + } + } + obj = obj && obj.id ? obj : this.get_node(obj); + + if(!obj || obj.id === $.jstree.root) { return false; } + + old_par = (obj.parent || $.jstree.root).toString(); + new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); + old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); + is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); + old_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1; + if(old_ins && old_ins._id) { + obj = old_ins._model.data[obj.id]; + } + + if(is_multi) { + if((tmp = this.copy_node(obj, par, pos, callback, is_loaded, false, origin))) { + if(old_ins) { old_ins.delete_node(obj); } + return tmp; + } + return false; + } + //var m = this._model.data; + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + pos = $.inArray(par.id, new_par.children); + break; + case "after" : + pos = $.inArray(par.id, new_par.children) + 1; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = new_par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > new_par.children.length) { pos = new_par.children.length; } + if(!this.check("move_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(obj.parent === new_par.id) { + dpc = new_par.children.concat(); + tmp = $.inArray(obj.id, dpc); + if(tmp !== -1) { + dpc = $.vakata.array_remove(dpc, tmp); + if(pos > tmp) { pos--; } + } + tmp = []; + for(i = 0, j = dpc.length; i < j; i++) { + tmp[i >= pos ? i+1 : i] = dpc[i]; + } + tmp[pos] = obj.id; + new_par.children = tmp; + this._node_changed(new_par.id); + this.redraw(new_par.id === $.jstree.root); + } + else { + // clean old parent and up + tmp = obj.children_d.concat(); + tmp.push(obj.id); + for(i = 0, j = obj.parents.length; i < j; i++) { + dpc = []; + p = old_ins._model.data[obj.parents[i]].children_d; + for(k = 0, l = p.length; k < l; k++) { + if($.inArray(p[k], tmp) === -1) { + dpc.push(p[k]); + } + } + old_ins._model.data[obj.parents[i]].children_d = dpc; + } + old_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id); + + // insert into new parent and up + for(i = 0, j = new_par.parents.length; i < j; i++) { + this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp); + } + dpc = []; + for(i = 0, j = new_par.children.length; i < j; i++) { + dpc[i >= pos ? i+1 : i] = new_par.children[i]; + } + dpc[pos] = obj.id; + new_par.children = dpc; + new_par.children_d.push(obj.id); + new_par.children_d = new_par.children_d.concat(obj.children_d); + + // update object + obj.parent = new_par.id; + tmp = new_par.parents.concat(); + tmp.unshift(new_par.id); + p = obj.parents.length; + obj.parents = tmp; + + // update object children + tmp = tmp.concat(); + for(i = 0, j = obj.children_d.length; i < j; i++) { + this._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0,p*-1); + Array.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp); + } + + if(old_par === $.jstree.root || new_par.id === $.jstree.root) { + this._model.force_full_redraw = true; + } + if(!this._model.force_full_redraw) { + this._node_changed(old_par); + this._node_changed(new_par.id); + } + if(!skip_redraw) { + this.redraw(); + } + } + if(callback) { callback.call(this, obj, new_par, pos); } + /** + * triggered when a node is moved + * @event + * @name move_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + * @param {Number} position the position of the node among the parent's children + * @param {String} old_parent the old parent of the node + * @param {Number} old_position the old position of the node + * @param {Boolean} is_multi do the node and new parent belong to different instances + * @param {jsTree} old_instance the instance the node came from + * @param {jsTree} new_instance the instance of the new parent + */ + this.trigger('move_node', { "node" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_pos, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); + return obj.id; + }, + /** + * copy a node to a new parent + * @name copy_node(obj, par [, pos, callback, is_loaded]) + * @param {mixed} obj the node to copy, pass an array to copy multiple nodes + * @param {mixed} par the new parent + * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` + * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded + * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn + * @param {Boolean} instance internal parameter indicating if the node comes from another instance + * @trigger model.jstree copy_node.jstree + */ + copy_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { + var t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi; + + par = this.get_node(par); + pos = pos === undefined ? 0 : pos; + if(!par) { return false; } + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.copy_node(obj, par, pos, callback, true, false, origin); }); + } + + if($.isArray(obj)) { + if(obj.length === 1) { + obj = obj[0]; + } + else { + //obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + if((tmp = this.copy_node(obj[t1], par, pos, callback, is_loaded, true, origin))) { + par = tmp; + pos = "after"; + } + } + this.redraw(); + return true; + } + } + obj = obj && obj.id ? obj : this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + + old_par = (obj.parent || $.jstree.root).toString(); + new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); + old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); + is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); + + if(old_ins && old_ins._id) { + obj = old_ins._model.data[obj.id]; + } + + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + pos = $.inArray(par.id, new_par.children); + break; + case "after" : + pos = $.inArray(par.id, new_par.children) + 1; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = new_par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > new_par.children.length) { pos = new_par.children.length; } + if(!this.check("copy_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + node = old_ins ? old_ins.get_json(obj, { no_id : true, no_data : true, no_state : true }) : obj; + if(!node) { return false; } + if(node.id === true) { delete node.id; } + node = this._parse_model_from_json(node, new_par.id, new_par.parents.concat()); + if(!node) { return false; } + tmp = this.get_node(node); + if(obj && obj.state && obj.state.loaded === false) { tmp.state.loaded = false; } + dpc = []; + dpc.push(node); + dpc = dpc.concat(tmp.children_d); + this.trigger('model', { "nodes" : dpc, "parent" : new_par.id }); + + // insert into new parent and up + for(i = 0, j = new_par.parents.length; i < j; i++) { + this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc); + } + dpc = []; + for(i = 0, j = new_par.children.length; i < j; i++) { + dpc[i >= pos ? i+1 : i] = new_par.children[i]; + } + dpc[pos] = tmp.id; + new_par.children = dpc; + new_par.children_d.push(tmp.id); + new_par.children_d = new_par.children_d.concat(tmp.children_d); + + if(new_par.id === $.jstree.root) { + this._model.force_full_redraw = true; + } + if(!this._model.force_full_redraw) { + this._node_changed(new_par.id); + } + if(!skip_redraw) { + this.redraw(new_par.id === $.jstree.root); + } + if(callback) { callback.call(this, tmp, new_par, pos); } + /** + * triggered when a node is copied + * @event + * @name copy_node.jstree + * @param {Object} node the copied node + * @param {Object} original the original node + * @param {String} parent the parent's ID + * @param {Number} position the position of the node among the parent's children + * @param {String} old_parent the old parent of the node + * @param {Number} old_position the position of the original node + * @param {Boolean} is_multi do the node and new parent belong to different instances + * @param {jsTree} old_instance the instance the node came from + * @param {jsTree} new_instance the instance of the new parent + */ + this.trigger('copy_node', { "node" : tmp, "original" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); + return tmp.id; + }, + /** + * cut a node (a later call to `paste(obj)` would move the node) + * @name cut(obj) + * @param {mixed} obj multiple objects can be passed using an array + * @trigger cut.jstree + */ + cut : function (obj) { + if(!obj) { obj = this._data.core.selected.concat(); } + if(!$.isArray(obj)) { obj = [obj]; } + if(!obj.length) { return false; } + var tmp = [], o, t1, t2; + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + o = this.get_node(obj[t1]); + if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } + } + if(!tmp.length) { return false; } + ccp_node = tmp; + ccp_inst = this; + ccp_mode = 'move_node'; + /** + * triggered when nodes are added to the buffer for moving + * @event + * @name cut.jstree + * @param {Array} node + */ + this.trigger('cut', { "node" : obj }); + }, + /** + * copy a node (a later call to `paste(obj)` would copy the node) + * @name copy(obj) + * @param {mixed} obj multiple objects can be passed using an array + * @trigger copy.jstree + */ + copy : function (obj) { + if(!obj) { obj = this._data.core.selected.concat(); } + if(!$.isArray(obj)) { obj = [obj]; } + if(!obj.length) { return false; } + var tmp = [], o, t1, t2; + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + o = this.get_node(obj[t1]); + if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } + } + if(!tmp.length) { return false; } + ccp_node = tmp; + ccp_inst = this; + ccp_mode = 'copy_node'; + /** + * triggered when nodes are added to the buffer for copying + * @event + * @name copy.jstree + * @param {Array} node + */ + this.trigger('copy', { "node" : obj }); + }, + /** + * get the current buffer (any nodes that are waiting for a paste operation) + * @name get_buffer() + * @return {Object} an object consisting of `mode` ("copy_node" or "move_node"), `node` (an array of objects) and `inst` (the instance) + */ + get_buffer : function () { + return { 'mode' : ccp_mode, 'node' : ccp_node, 'inst' : ccp_inst }; + }, + /** + * check if there is something in the buffer to paste + * @name can_paste() + * @return {Boolean} + */ + can_paste : function () { + return ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node]; + }, + /** + * copy or move the previously cut or copied nodes to a new parent + * @name paste(obj [, pos]) + * @param {mixed} obj the new parent + * @param {mixed} pos the position to insert at (besides integer, "first" and "last" are supported), defaults to integer `0` + * @trigger paste.jstree + */ + paste : function (obj, pos) { + obj = this.get_node(obj); + if(!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) { return false; } + if(this[ccp_mode](ccp_node, obj, pos, false, false, false, ccp_inst)) { + /** + * triggered when paste is invoked + * @event + * @name paste.jstree + * @param {String} parent the ID of the receiving node + * @param {Array} node the nodes in the buffer + * @param {String} mode the performed operation - "copy_node" or "move_node" + */ + this.trigger('paste', { "parent" : obj.id, "node" : ccp_node, "mode" : ccp_mode }); + } + ccp_node = false; + ccp_mode = false; + ccp_inst = false; + }, + /** + * clear the buffer of previously copied or cut nodes + * @name clear_buffer() + * @trigger clear_buffer.jstree + */ + clear_buffer : function () { + ccp_node = false; + ccp_mode = false; + ccp_inst = false; + /** + * triggered when the copy / cut buffer is cleared + * @event + * @name clear_buffer.jstree + */ + this.trigger('clear_buffer'); + }, + /** + * put a node in edit mode (input field to rename the node) + * @name edit(obj [, default_text, callback]) + * @param {mixed} obj + * @param {String} default_text the text to populate the input with (if omitted or set to a non-string value the node's text value is used) + * @param {Function} callback a function to be called once the text box is blurred, it is called in the instance's scope and receives the node, a status parameter (true if the rename is successful, false otherwise) and a boolean indicating if the user cancelled the edit. You can access the node's title using .text + */ + edit : function (obj, default_text, callback) { + var rtl, w, a, s, t, h1, h2, fn, tmp, cancel = false; + obj = this.get_node(obj); + if(!obj) { return false; } + if(this.settings.core.check_callback === false) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_07', 'reason' : 'Could not edit node because of check_callback' }; + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + tmp = obj; + default_text = typeof default_text === 'string' ? default_text : obj.text; + this.set_text(obj, ""); + obj = this._open_to(obj); + tmp.text = default_text; + + rtl = this._data.core.rtl; + w = this.element.width(); + this._data.core.focused = tmp.id; + a = obj.children('.jstree-anchor').focus(); + s = $(''); + /*! + oi = obj.children("i:visible"), + ai = a.children("i:visible"), + w1 = oi.width() * oi.length, + w2 = ai.width() * ai.length, + */ + t = default_text; + h1 = $("<"+"div />", { css : { "position" : "absolute", "top" : "-200px", "left" : (rtl ? "0px" : "-1000px"), "visibility" : "hidden" } }).appendTo("body"); + h2 = $("<"+"input />", { + "value" : t, + "class" : "jstree-rename-input", + // "size" : t.length, + "css" : { + "padding" : "0", + "border" : "1px solid silver", + "box-sizing" : "border-box", + "display" : "inline-block", + "height" : (this._data.core.li_height) + "px", + "lineHeight" : (this._data.core.li_height) + "px", + "width" : "150px" // will be set a bit further down + }, + "blur" : $.proxy(function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + var i = s.children(".jstree-rename-input"), + v = i.val(), + f = this.settings.core.force_text, + nv; + if(v === "") { v = t; } + h1.remove(); + s.replaceWith(a); + s.remove(); + t = f ? t : $('
').append($.parseHTML(t)).html(); + this.set_text(obj, t); + nv = !!this.rename_node(obj, f ? $('
').text(v).text() : $('
').append($.parseHTML(v)).html()); + if(!nv) { + this.set_text(obj, t); // move this up? and fix #483 + } + this._data.core.focused = tmp.id; + setTimeout($.proxy(function () { + var node = this.get_node(tmp.id, true); + if(node.length) { + this._data.core.focused = tmp.id; + node.children('.jstree-anchor').focus(); + } + }, this), 0); + if(callback) { + callback.call(this, tmp, nv, cancel); + } + h2 = null; + }, this), + "keydown" : function (e) { + var key = e.which; + if(key === 27) { + cancel = true; + this.value = t; + } + if(key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) { + e.stopImmediatePropagation(); + } + if(key === 27 || key === 13) { + e.preventDefault(); + this.blur(); + } + }, + "click" : function (e) { e.stopImmediatePropagation(); }, + "mousedown" : function (e) { e.stopImmediatePropagation(); }, + "keyup" : function (e) { + h2.width(Math.min(h1.text("pW" + this.value).width(),w)); + }, + "keypress" : function(e) { + if(e.which === 13) { return false; } + } + }); + fn = { + fontFamily : a.css('fontFamily') || '', + fontSize : a.css('fontSize') || '', + fontWeight : a.css('fontWeight') || '', + fontStyle : a.css('fontStyle') || '', + fontStretch : a.css('fontStretch') || '', + fontVariant : a.css('fontVariant') || '', + letterSpacing : a.css('letterSpacing') || '', + wordSpacing : a.css('wordSpacing') || '' + }; + s.attr('class', a.attr('class')).append(a.contents().clone()).append(h2); + a.replaceWith(s); + h1.css(fn); + h2.css(fn).width(Math.min(h1.text("pW" + h2[0].value).width(),w))[0].select(); + $(document).one('mousedown.jstree touchstart.jstree dnd_start.vakata', function (e) { + if (h2 && e.target !== h2) { + $(h2).blur(); + } + }); + }, + + + /** + * changes the theme + * @name set_theme(theme_name [, theme_url]) + * @param {String} theme_name the name of the new theme to apply + * @param {mixed} theme_url the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory. + * @trigger set_theme.jstree + */ + set_theme : function (theme_name, theme_url) { + if(!theme_name) { return false; } + if(theme_url === true) { + var dir = this.settings.core.themes.dir; + if(!dir) { dir = $.jstree.path + '/themes'; } + theme_url = dir + '/' + theme_name + '/style.css'; + } + if(theme_url && $.inArray(theme_url, themes_loaded) === -1) { + $('head').append('<'+'link rel="stylesheet" href="' + theme_url + '" type="text/css" />'); + themes_loaded.push(theme_url); + } + if(this._data.core.themes.name) { + this.element.removeClass('jstree-' + this._data.core.themes.name); + } + this._data.core.themes.name = theme_name; + this.element.addClass('jstree-' + theme_name); + this.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass' ]('jstree-' + theme_name + '-responsive'); + /** + * triggered when a theme is set + * @event + * @name set_theme.jstree + * @param {String} theme the new theme + */ + this.trigger('set_theme', { 'theme' : theme_name }); + }, + /** + * gets the name of the currently applied theme name + * @name get_theme() + * @return {String} + */ + get_theme : function () { return this._data.core.themes.name; }, + /** + * changes the theme variant (if the theme has variants) + * @name set_theme_variant(variant_name) + * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed) + */ + set_theme_variant : function (variant_name) { + if(this._data.core.themes.variant) { + this.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); + } + this._data.core.themes.variant = variant_name; + if(variant_name) { + this.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); + } + }, + /** + * gets the name of the currently applied theme variant + * @name get_theme() + * @return {String} + */ + get_theme_variant : function () { return this._data.core.themes.variant; }, + /** + * shows a striped background on the container (if the theme supports it) + * @name show_stripes() + */ + show_stripes : function () { + this._data.core.themes.stripes = true; + this.get_container_ul().addClass("jstree-striped"); + /** + * triggered when stripes are shown + * @event + * @name show_stripes.jstree + */ + this.trigger('show_stripes'); + }, + /** + * hides the striped background on the container + * @name hide_stripes() + */ + hide_stripes : function () { + this._data.core.themes.stripes = false; + this.get_container_ul().removeClass("jstree-striped"); + /** + * triggered when stripes are hidden + * @event + * @name hide_stripes.jstree + */ + this.trigger('hide_stripes'); + }, + /** + * toggles the striped background on the container + * @name toggle_stripes() + */ + toggle_stripes : function () { if(this._data.core.themes.stripes) { this.hide_stripes(); } else { this.show_stripes(); } }, + /** + * shows the connecting dots (if the theme supports it) + * @name show_dots() + */ + show_dots : function () { + this._data.core.themes.dots = true; + this.get_container_ul().removeClass("jstree-no-dots"); + /** + * triggered when dots are shown + * @event + * @name show_dots.jstree + */ + this.trigger('show_dots'); + }, + /** + * hides the connecting dots + * @name hide_dots() + */ + hide_dots : function () { + this._data.core.themes.dots = false; + this.get_container_ul().addClass("jstree-no-dots"); + /** + * triggered when dots are hidden + * @event + * @name hide_dots.jstree + */ + this.trigger('hide_dots'); + }, + /** + * toggles the connecting dots + * @name toggle_dots() + */ + toggle_dots : function () { if(this._data.core.themes.dots) { this.hide_dots(); } else { this.show_dots(); } }, + /** + * show the node icons + * @name show_icons() + */ + show_icons : function () { + this._data.core.themes.icons = true; + this.get_container_ul().removeClass("jstree-no-icons"); + /** + * triggered when icons are shown + * @event + * @name show_icons.jstree + */ + this.trigger('show_icons'); + }, + /** + * hide the node icons + * @name hide_icons() + */ + hide_icons : function () { + this._data.core.themes.icons = false; + this.get_container_ul().addClass("jstree-no-icons"); + /** + * triggered when icons are hidden + * @event + * @name hide_icons.jstree + */ + this.trigger('hide_icons'); + }, + /** + * toggle the node icons + * @name toggle_icons() + */ + toggle_icons : function () { if(this._data.core.themes.icons) { this.hide_icons(); } else { this.show_icons(); } }, + /** + * show the node ellipsis + * @name show_icons() + */ + show_ellipsis : function () { + this._data.core.themes.ellipsis = true; + this.get_container_ul().addClass("jstree-ellipsis"); + /** + * triggered when ellisis is shown + * @event + * @name show_ellipsis.jstree + */ + this.trigger('show_ellipsis'); + }, + /** + * hide the node ellipsis + * @name hide_ellipsis() + */ + hide_ellipsis : function () { + this._data.core.themes.ellipsis = false; + this.get_container_ul().removeClass("jstree-ellipsis"); + /** + * triggered when ellisis is hidden + * @event + * @name hide_ellipsis.jstree + */ + this.trigger('hide_ellipsis'); + }, + /** + * toggle the node ellipsis + * @name toggle_icons() + */ + toggle_ellipsis : function () { if(this._data.core.themes.ellipsis) { this.hide_ellipsis(); } else { this.show_ellipsis(); } }, + /** + * set the node icon for a node + * @name set_icon(obj, icon) + * @param {mixed} obj + * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class + */ + set_icon : function (obj, icon) { + var t1, t2, dom, old; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_icon(obj[t1], icon); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + old = obj.icon; + obj.icon = icon === true || icon === null || icon === undefined || icon === '' ? true : icon; + dom = this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon"); + if(icon === false) { + this.hide_icon(obj); + } + else if(icon === true || icon === null || icon === undefined || icon === '') { + dom.removeClass('jstree-themeicon-custom ' + old).css("background","").removeAttr("rel"); + if(old === false) { this.show_icon(obj); } + } + else if(icon.indexOf("/") === -1 && icon.indexOf(".") === -1) { + dom.removeClass(old).css("background",""); + dom.addClass(icon + ' jstree-themeicon-custom').attr("rel",icon); + if(old === false) { this.show_icon(obj); } + } + else { + dom.removeClass(old).css("background",""); + dom.addClass('jstree-themeicon-custom').css("background", "url('" + icon + "') center center no-repeat").attr("rel",icon); + if(old === false) { this.show_icon(obj); } + } + return true; + }, + /** + * get the node icon for a node + * @name get_icon(obj) + * @param {mixed} obj + * @return {String} + */ + get_icon : function (obj) { + obj = this.get_node(obj); + return (!obj || obj.id === $.jstree.root) ? false : obj.icon; + }, + /** + * hide the icon on an individual node + * @name hide_icon(obj) + * @param {mixed} obj + */ + hide_icon : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.hide_icon(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj === $.jstree.root) { return false; } + obj.icon = false; + this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon").addClass('jstree-themeicon-hidden'); + return true; + }, + /** + * show the icon on an individual node + * @name show_icon(obj) + * @param {mixed} obj + */ + show_icon : function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.show_icon(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj === $.jstree.root) { return false; } + dom = this.get_node(obj, true); + obj.icon = dom.length ? dom.children(".jstree-anchor").children(".jstree-themeicon").attr('rel') : true; + if(!obj.icon) { obj.icon = true; } + dom.children(".jstree-anchor").children(".jstree-themeicon").removeClass('jstree-themeicon-hidden'); + return true; + } + }; + + // helpers + $.vakata = {}; + // collect attributes + $.vakata.attributes = function(node, with_values) { + node = $(node)[0]; + var attr = with_values ? {} : []; + if(node && node.attributes) { + $.each(node.attributes, function (i, v) { + if($.inArray(v.name.toLowerCase(),['style','contenteditable','hasfocus','tabindex']) !== -1) { return; } + if(v.value !== null && $.trim(v.value) !== '') { + if(with_values) { attr[v.name] = v.value; } + else { attr.push(v.name); } + } + }); + } + return attr; + }; + $.vakata.array_unique = function(array) { + var a = [], i, j, l, o = {}; + for(i = 0, l = array.length; i < l; i++) { + if(o[array[i]] === undefined) { + a.push(array[i]); + o[array[i]] = true; + } + } + return a; + }; + // remove item from array + $.vakata.array_remove = function(array, from) { + array.splice(from, 1); + return array; + //var rest = array.slice((to || from) + 1 || array.length); + //array.length = from < 0 ? array.length + from : from; + //array.push.apply(array, rest); + //return array; + }; + // remove item from array + $.vakata.array_remove_item = function(array, item) { + var tmp = $.inArray(item, array); + return tmp !== -1 ? $.vakata.array_remove(array, tmp) : array; + }; + $.vakata.array_filter = function(c,a,b,d,e) { + if (c.filter) { + return c.filter(a, b); + } + d=[]; + for (e in c) { + if (~~e+''===e+'' && e>=0 && a.call(b,c[e],+e,c)) { + d.push(c[e]); + } + } + return d; + }; + + +/** + * ### Changed plugin + * + * This plugin adds more information to the `changed.jstree` event. The new data is contained in the `changed` event data property, and contains a lists of `selected` and `deselected` nodes. + */ + + $.jstree.plugins.changed = function (options, parent) { + var last = []; + this.trigger = function (ev, data) { + var i, j; + if(!data) { + data = {}; + } + if(ev.replace('.jstree','') === 'changed') { + data.changed = { selected : [], deselected : [] }; + var tmp = {}; + for(i = 0, j = last.length; i < j; i++) { + tmp[last[i]] = 1; + } + for(i = 0, j = data.selected.length; i < j; i++) { + if(!tmp[data.selected[i]]) { + data.changed.selected.push(data.selected[i]); + } + else { + tmp[data.selected[i]] = 2; + } + } + for(i = 0, j = last.length; i < j; i++) { + if(tmp[last[i]] === 1) { + data.changed.deselected.push(last[i]); + } + } + last = data.selected.slice(); + } + /** + * triggered when selection changes (the "changed" plugin enhances the original event with more data) + * @event + * @name changed.jstree + * @param {Object} node + * @param {Object} action the action that caused the selection to change + * @param {Array} selected the current selection + * @param {Object} changed an object containing two properties `selected` and `deselected` - both arrays of node IDs, which were selected or deselected since the last changed event + * @param {Object} event the event (if any) that triggered this changed event + * @plugin changed + */ + parent.trigger.call(this, ev, data); + }; + this.refresh = function (skip_loading, forget_state) { + last = []; + return parent.refresh.apply(this, arguments); + }; + }; + +/** + * ### Checkbox plugin + * + * This plugin renders checkbox icons in front of each node, making multiple selection much easier. + * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up. + */ + + var _i = document.createElement('I'); + _i.className = 'jstree-icon jstree-checkbox'; + _i.setAttribute('role', 'presentation'); + /** + * stores all defaults for the checkbox plugin + * @name $.jstree.defaults.checkbox + * @plugin checkbox + */ + $.jstree.defaults.checkbox = { + /** + * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`. + * @name $.jstree.defaults.checkbox.visible + * @plugin checkbox + */ + visible : true, + /** + * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`. + * @name $.jstree.defaults.checkbox.three_state + * @plugin checkbox + */ + three_state : true, + /** + * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`. + * @name $.jstree.defaults.checkbox.whole_node + * @plugin checkbox + */ + whole_node : true, + /** + * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`. + * @name $.jstree.defaults.checkbox.keep_selected_style + * @plugin checkbox + */ + keep_selected_style : true, + /** + * This setting controls how cascading and undetermined nodes are applied. + * If 'up' is in the string - cascading up is enabled, if 'down' is in the string - cascading down is enabled, if 'undetermined' is in the string - undetermined nodes will be used. + * If `three_state` is set to `true` this setting is automatically set to 'up+down+undetermined'. Defaults to ''. + * @name $.jstree.defaults.checkbox.cascade + * @plugin checkbox + */ + cascade : '', + /** + * This setting controls if checkbox are bound to the general tree selection or to an internal array maintained by the checkbox plugin. Defaults to `true`, only set to `false` if you know exactly what you are doing. + * @name $.jstree.defaults.checkbox.tie_selection + * @plugin checkbox + */ + tie_selection : true + }; + $.jstree.plugins.checkbox = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this._data.checkbox.uto = false; + this._data.checkbox.selected = []; + if(this.settings.checkbox.three_state) { + this.settings.checkbox.cascade = 'up+down+undetermined'; + } + this.element + .on("init.jstree", $.proxy(function () { + this._data.checkbox.visible = this.settings.checkbox.visible; + if(!this.settings.checkbox.keep_selected_style) { + this.element.addClass('jstree-checkbox-no-clicked'); + } + if(this.settings.checkbox.tie_selection) { + this.element.addClass('jstree-checkbox-selection'); + } + }, this)) + .on("loading.jstree", $.proxy(function () { + this[ this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes' ](); + }, this)); + if(this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { + this.element + .on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', $.proxy(function () { + // only if undetermined is in setting + if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } + this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); + }, this)); + } + if(!this.settings.checkbox.tie_selection) { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + p = m[data.parent], + dpc = data.nodes, + i, j; + for(i = 0, j = dpc.length; i < j; i++) { + m[dpc[i]].state.checked = m[dpc[i]].state.checked || (m[dpc[i]].original && m[dpc[i]].original.state && m[dpc[i]].original.state.checked); + if(m[dpc[i]].state.checked) { + this._data.checkbox.selected.push(dpc[i]); + } + } + }, this)); + } + if(this.settings.checkbox.cascade.indexOf('up') !== -1 || this.settings.checkbox.cascade.indexOf('down') !== -1) { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + p = m[data.parent], + dpc = data.nodes, + chd = [], + c, i, j, k, l, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection; + + if(s.indexOf('down') !== -1) { + // apply down + if(p.state[ t ? 'selected' : 'checked' ]) { + for(i = 0, j = dpc.length; i < j; i++) { + m[dpc[i]].state[ t ? 'selected' : 'checked' ] = true; + } + this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(dpc); + } + else { + for(i = 0, j = dpc.length; i < j; i++) { + if(m[dpc[i]].state[ t ? 'selected' : 'checked' ]) { + for(k = 0, l = m[dpc[i]].children_d.length; k < l; k++) { + m[m[dpc[i]].children_d[k]].state[ t ? 'selected' : 'checked' ] = true; + } + this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(m[dpc[i]].children_d); + } + } + } + } + + if(s.indexOf('up') !== -1) { + // apply up + for(i = 0, j = p.children_d.length; i < j; i++) { + if(!m[p.children_d[i]].children.length) { + chd.push(m[p.children_d[i]].parent); + } + } + chd = $.vakata.array_unique(chd); + for(k = 0, l = chd.length; k < l; k++) { + p = m[chd[k]]; + while(p && p.id !== $.jstree.root) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass( t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + } + } + + this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected); + }, this)) + .on(this.settings.checkbox.tie_selection ? 'select_node.jstree' : 'check_node.jstree', $.proxy(function (e, data) { + var obj = data.node, + m = this._model.data, + par = this.get_node(obj.parent), + dom = this.get_node(obj, true), + i, j, c, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, + sel = {}, cur = this._data[ t ? 'core' : 'checkbox' ].selected; + + for (i = 0, j = cur.length; i < j; i++) { + sel[cur[i]] = true; + } + // apply down + if(s.indexOf('down') !== -1) { + //this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected.concat(obj.children_d)); + for(i = 0, j = obj.children_d.length; i < j; i++) { + sel[obj.children_d[i]] = true; + tmp = m[obj.children_d[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = true; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + } + + // apply up + if(s.indexOf('up') !== -1) { + while(par && par.id !== $.jstree.root) { + c = 0; + for(i = 0, j = par.children.length; i < j; i++) { + c += m[par.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + par.state[ t ? 'selected' : 'checked' ] = true; + sel[par.id] = true; + //this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id); + tmp = this.get_node(par, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + par = this.get_node(par.parent); + } + } + + cur = []; + for (i in sel) { + if (sel.hasOwnProperty(i)) { + cur.push(i); + } + } + this._data[ t ? 'core' : 'checkbox' ].selected = cur; + + // apply down (process .children separately?) + if(s.indexOf('down') !== -1 && dom.length) { + dom.find('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', true); + } + }, this)) + .on(this.settings.checkbox.tie_selection ? 'deselect_all.jstree' : 'uncheck_all.jstree', $.proxy(function (e, data) { + var obj = this.get_node($.jstree.root), + m = this._model.data, + i, j, tmp; + for(i = 0, j = obj.children_d.length; i < j; i++) { + tmp = m[obj.children_d[i]]; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + }, this)) + .on(this.settings.checkbox.tie_selection ? 'deselect_node.jstree' : 'uncheck_node.jstree', $.proxy(function (e, data) { + var obj = data.node, + dom = this.get_node(obj, true), + i, j, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, + cur = this._data[ t ? 'core' : 'checkbox' ].selected, sel = {}; + if(obj && obj.original && obj.original.state && obj.original.state.undetermined) { + obj.original.state.undetermined = false; + } + + // apply down + if(s.indexOf('down') !== -1) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + tmp = this._model.data[obj.children_d[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = false; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + } + + // apply up + if(s.indexOf('up') !== -1) { + for(i = 0, j = obj.parents.length; i < j; i++) { + tmp = this._model.data[obj.parents[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = false; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + tmp = this.get_node(obj.parents[i], true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + } + sel = {}; + for(i = 0, j = cur.length; i < j; i++) { + // apply down + apply up + if( + (s.indexOf('down') === -1 || $.inArray(cur[i], obj.children_d) === -1) && + (s.indexOf('up') === -1 || $.inArray(cur[i], obj.parents) === -1) + ) { + sel[cur[i]] = true; + } + } + cur = []; + for (i in sel) { + if (sel.hasOwnProperty(i)) { + cur.push(i); + } + } + this._data[ t ? 'core' : 'checkbox' ].selected = cur; + + // apply down (process .children separately?) + if(s.indexOf('down') !== -1 && dom.length) { + dom.find('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', false); + } + }, this)); + } + if(this.settings.checkbox.cascade.indexOf('up') !== -1) { + this.element + .on('delete_node.jstree', $.proxy(function (e, data) { + // apply up (whole handler) + var p = this.get_node(data.parent), + m = this._model.data, + i, j, c, tmp, t = this.settings.checkbox.tie_selection; + while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(j > 0 && c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + }, this)) + .on('move_node.jstree', $.proxy(function (e, data) { + // apply up (whole handler) + var is_multi = data.is_multi, + old_par = data.old_parent, + new_par = this.get_node(data.parent), + m = this._model.data, + p, c, i, j, tmp, t = this.settings.checkbox.tie_selection; + if(!is_multi) { + p = this.get_node(old_par); + while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(j > 0 && c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + } + p = new_par; + while(p && p.id !== $.jstree.root) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + if(!p.state[ t ? 'selected' : 'checked' ]) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + } + else { + if(p.state[ t ? 'selected' : 'checked' ]) { + p.state[ t ? 'selected' : 'checked' ] = false; + this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_remove_item(this._data[ t ? 'core' : 'checkbox' ].selected, p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + } + p = this.get_node(p.parent); + } + }, this)); + } + }; + /** + * set the undetermined state where and if necessary. Used internally. + * @private + * @name _undetermined() + * @plugin checkbox + */ + this._undetermined = function () { + if(this.element === null) { return; } + var i, j, k, l, o = {}, m = this._model.data, t = this.settings.checkbox.tie_selection, s = this._data[ t ? 'core' : 'checkbox' ].selected, p = [], tt = this; + for(i = 0, j = s.length; i < j; i++) { + if(m[s[i]] && m[s[i]].parents) { + for(k = 0, l = m[s[i]].parents.length; k < l; k++) { + if(o[m[s[i]].parents[k]] !== undefined) { + break; + } + if(m[s[i]].parents[k] !== $.jstree.root) { + o[m[s[i]].parents[k]] = true; + p.push(m[s[i]].parents[k]); + } + } + } + } + // attempt for server side undetermined state + this.element.find('.jstree-closed').not(':has(.jstree-children)') + .each(function () { + var tmp = tt.get_node(this), tmp2; + if(!tmp.state.loaded) { + if(tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) { + if(o[tmp.id] === undefined && tmp.id !== $.jstree.root) { + o[tmp.id] = true; + p.push(tmp.id); + } + for(k = 0, l = tmp.parents.length; k < l; k++) { + if(o[tmp.parents[k]] === undefined && tmp.parents[k] !== $.jstree.root) { + o[tmp.parents[k]] = true; + p.push(tmp.parents[k]); + } + } + } + } + else { + for(i = 0, j = tmp.children_d.length; i < j; i++) { + tmp2 = m[tmp.children_d[i]]; + if(!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) { + if(o[tmp2.id] === undefined && tmp2.id !== $.jstree.root) { + o[tmp2.id] = true; + p.push(tmp2.id); + } + for(k = 0, l = tmp2.parents.length; k < l; k++) { + if(o[tmp2.parents[k]] === undefined && tmp2.parents[k] !== $.jstree.root) { + o[tmp2.parents[k]] = true; + p.push(tmp2.parents[k]); + } + } + } + } + } + }); + + this.element.find('.jstree-undetermined').removeClass('jstree-undetermined'); + for(i = 0, j = p.length; i < j; i++) { + if(!m[p[i]].state[ t ? 'selected' : 'checked' ]) { + s = this.get_node(p[i], true); + if(s && s.length) { + s.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined'); + } + } + } + }; + this.redraw_node = function(obj, deep, is_callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var i, j, tmp = null, icon = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + if(!this.settings.checkbox.tie_selection && this._model.data[obj.id].state.checked) { tmp.className += ' jstree-checked'; } + icon = _i.cloneNode(false); + if(this._model.data[obj.id].state.checkbox_disabled) { icon.className += ' jstree-checkbox-disabled'; } + tmp.insertBefore(icon, tmp.childNodes[0]); + } + } + if(!is_callback && this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { + if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } + this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); + } + return obj; + }; + /** + * show the node checkbox icons + * @name show_checkboxes() + * @plugin checkbox + */ + this.show_checkboxes = function () { this._data.core.themes.checkboxes = true; this.get_container_ul().removeClass("jstree-no-checkboxes"); }; + /** + * hide the node checkbox icons + * @name hide_checkboxes() + * @plugin checkbox + */ + this.hide_checkboxes = function () { this._data.core.themes.checkboxes = false; this.get_container_ul().addClass("jstree-no-checkboxes"); }; + /** + * toggle the node icons + * @name toggle_checkboxes() + * @plugin checkbox + */ + this.toggle_checkboxes = function () { if(this._data.core.themes.checkboxes) { this.hide_checkboxes(); } else { this.show_checkboxes(); } }; + /** + * checks if a node is in an undetermined state + * @name is_undetermined(obj) + * @param {mixed} obj + * @return {Boolean} + */ + this.is_undetermined = function (obj) { + obj = this.get_node(obj); + var s = this.settings.checkbox.cascade, i, j, t = this.settings.checkbox.tie_selection, d = this._data[ t ? 'core' : 'checkbox' ].selected, m = this._model.data; + if(!obj || obj.state[ t ? 'selected' : 'checked' ] === true || s.indexOf('undetermined') === -1 || (s.indexOf('down') === -1 && s.indexOf('up') === -1)) { + return false; + } + if(!obj.state.loaded && obj.original.state.undetermined === true) { + return true; + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + if($.inArray(obj.children_d[i], d) !== -1 || (!m[obj.children_d[i]].state.loaded && m[obj.children_d[i]].original.state.undetermined)) { + return true; + } + } + return false; + }; + /** + * disable a node's checkbox + * @name disable_checkbox(obj) + * @param {mixed} obj an array can be used too + * @trigger disable_checkbox.jstree + * @plugin checkbox + */ + this.disable_checkbox = function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.disable_checkbox(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.checkbox_disabled) { + obj.state.checkbox_disabled = true; + if(dom && dom.length) { + dom.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-checkbox-disabled'); + } + /** + * triggered when an node's checkbox is disabled + * @event + * @name disable_checkbox.jstree + * @param {Object} node + * @plugin checkbox + */ + this.trigger('disable_checkbox', { 'node' : obj }); + } + }; + /** + * enable a node's checkbox + * @name disable_checkbox(obj) + * @param {mixed} obj an array can be used too + * @trigger enable_checkbox.jstree + * @plugin checkbox + */ + this.enable_checkbox = function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.enable_checkbox(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.checkbox_disabled) { + obj.state.checkbox_disabled = false; + if(dom && dom.length) { + dom.children('.jstree-anchor').children('.jstree-checkbox').removeClass('jstree-checkbox-disabled'); + } + /** + * triggered when an node's checkbox is enabled + * @event + * @name enable_checkbox.jstree + * @param {Object} node + * @plugin checkbox + */ + this.trigger('enable_checkbox', { 'node' : obj }); + } + }; + + this.activate_node = function (obj, e) { + if($(e.target).hasClass('jstree-checkbox-disabled')) { + return false; + } + if(this.settings.checkbox.tie_selection && (this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox'))) { + e.ctrlKey = true; + } + if(this.settings.checkbox.tie_selection || (!this.settings.checkbox.whole_node && !$(e.target).hasClass('jstree-checkbox'))) { + return parent.activate_node.call(this, obj, e); + } + if(this.is_disabled(obj)) { + return false; + } + if(this.is_checked(obj)) { + this.uncheck_node(obj, e); + } + else { + this.check_node(obj, e); + } + this.trigger('activate_node', { 'node' : this.get_node(obj) }); + }; + + /** + * check a node (only if tie_selection in checkbox settings is false, otherwise select_node will be called internally) + * @name check_node(obj) + * @param {mixed} obj an array can be used to check multiple nodes + * @trigger check_node.jstree + * @plugin checkbox + */ + this.check_node = function (obj, e) { + if(this.settings.checkbox.tie_selection) { return this.select_node(obj, false, true, e); } + var dom, t1, t2, th; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.check_node(obj[t1], e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.checked) { + obj.state.checked = true; + this._data.checkbox.selected.push(obj.id); + if(dom && dom.length) { + dom.children('.jstree-anchor').addClass('jstree-checked'); + } + /** + * triggered when an node is checked (only if tie_selection in checkbox settings is false) + * @event + * @name check_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this check_node + * @plugin checkbox + */ + this.trigger('check_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); + } + }; + /** + * uncheck a node (only if tie_selection in checkbox settings is false, otherwise deselect_node will be called internally) + * @name uncheck_node(obj) + * @param {mixed} obj an array can be used to uncheck multiple nodes + * @trigger uncheck_node.jstree + * @plugin checkbox + */ + this.uncheck_node = function (obj, e) { + if(this.settings.checkbox.tie_selection) { return this.deselect_node(obj, false, e); } + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.uncheck_node(obj[t1], e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.checked) { + obj.state.checked = false; + this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, obj.id); + if(dom.length) { + dom.children('.jstree-anchor').removeClass('jstree-checked'); + } + /** + * triggered when an node is unchecked (only if tie_selection in checkbox settings is false) + * @event + * @name uncheck_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this uncheck_node + * @plugin checkbox + */ + this.trigger('uncheck_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); + } + }; + /** + * checks all nodes in the tree (only if tie_selection in checkbox settings is false, otherwise select_all will be called internally) + * @name check_all() + * @trigger check_all.jstree, changed.jstree + * @plugin checkbox + */ + this.check_all = function () { + if(this.settings.checkbox.tie_selection) { return this.select_all(); } + var tmp = this._data.checkbox.selected.concat([]), i, j; + this._data.checkbox.selected = this._model.data[$.jstree.root].children_d.concat(); + for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { + if(this._model.data[this._data.checkbox.selected[i]]) { + this._model.data[this._data.checkbox.selected[i]].state.checked = true; + } + } + this.redraw(true); + /** + * triggered when all nodes are checked (only if tie_selection in checkbox settings is false) + * @event + * @name check_all.jstree + * @param {Array} selected the current selection + * @plugin checkbox + */ + this.trigger('check_all', { 'selected' : this._data.checkbox.selected }); + }; + /** + * uncheck all checked nodes (only if tie_selection in checkbox settings is false, otherwise deselect_all will be called internally) + * @name uncheck_all() + * @trigger uncheck_all.jstree + * @plugin checkbox + */ + this.uncheck_all = function () { + if(this.settings.checkbox.tie_selection) { return this.deselect_all(); } + var tmp = this._data.checkbox.selected.concat([]), i, j; + for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { + if(this._model.data[this._data.checkbox.selected[i]]) { + this._model.data[this._data.checkbox.selected[i]].state.checked = false; + } + } + this._data.checkbox.selected = []; + this.element.find('.jstree-checked').removeClass('jstree-checked'); + /** + * triggered when all nodes are unchecked (only if tie_selection in checkbox settings is false) + * @event + * @name uncheck_all.jstree + * @param {Object} node the previous selection + * @param {Array} selected the current selection + * @plugin checkbox + */ + this.trigger('uncheck_all', { 'selected' : this._data.checkbox.selected, 'node' : tmp }); + }; + /** + * checks if a node is checked (if tie_selection is on in the settings this function will return the same as is_selected) + * @name is_checked(obj) + * @param {mixed} obj + * @return {Boolean} + * @plugin checkbox + */ + this.is_checked = function (obj) { + if(this.settings.checkbox.tie_selection) { return this.is_selected(obj); } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + return obj.state.checked; + }; + /** + * get an array of all checked nodes (if tie_selection is on in the settings this function will return the same as get_selected) + * @name get_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_selected(full); } + return full ? $.map(this._data.checkbox.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.checkbox.selected; + }; + /** + * get an array of all top level checked nodes (ignoring children of checked nodes) (if tie_selection is on in the settings this function will return the same as get_top_selected) + * @name get_top_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_top_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_top_selected(full); } + var tmp = this.get_checked(true), + obj = {}, i, j, k, l; + for(i = 0, j = tmp.length; i < j; i++) { + obj[tmp[i].id] = tmp[i]; + } + for(i = 0, j = tmp.length; i < j; i++) { + for(k = 0, l = tmp[i].children_d.length; k < l; k++) { + if(obj[tmp[i].children_d[k]]) { + delete obj[tmp[i].children_d[k]]; + } + } + } + tmp = []; + for(i in obj) { + if(obj.hasOwnProperty(i)) { + tmp.push(i); + } + } + return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; + }; + /** + * get an array of all bottom level checked nodes (ignoring selected parents) (if tie_selection is on in the settings this function will return the same as get_bottom_selected) + * @name get_bottom_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_bottom_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_bottom_selected(full); } + var tmp = this.get_checked(true), + obj = [], i, j; + for(i = 0, j = tmp.length; i < j; i++) { + if(!tmp[i].children.length) { + obj.push(tmp[i].id); + } + } + return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; + }; + this.load_node = function (obj, callback) { + var k, l, i, j, c, tmp; + if(!$.isArray(obj) && !this.settings.checkbox.tie_selection) { + tmp = this.get_node(obj); + if(tmp && tmp.state.loaded) { + for(k = 0, l = tmp.children_d.length; k < l; k++) { + if(this._model.data[tmp.children_d[k]].state.checked) { + c = true; + this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, tmp.children_d[k]); + } + } + } + } + return parent.load_node.apply(this, arguments); + }; + this.get_state = function () { + var state = parent.get_state.apply(this, arguments); + if(this.settings.checkbox.tie_selection) { return state; } + state.checkbox = this._data.checkbox.selected.slice(); + return state; + }; + this.set_state = function (state, callback) { + var res = parent.set_state.apply(this, arguments); + if(res && state.checkbox) { + if(!this.settings.checkbox.tie_selection) { + this.uncheck_all(); + var _this = this; + $.each(state.checkbox, function (i, v) { + _this.check_node(v); + }); + } + delete state.checkbox; + this.set_state(state, callback); + return false; + } + return res; + }; + this.refresh = function (skip_loading, forget_state) { + if(!this.settings.checkbox.tie_selection) { + this._data.checkbox.selected = []; + } + return parent.refresh.apply(this, arguments); + }; + }; + + // include the checkbox plugin by default + // $.jstree.defaults.plugins.push("checkbox"); + +/** + * ### Conditionalselect plugin + * + * This plugin allows defining a callback to allow or deny node selection by user input (activate node method). + */ + + /** + * a callback (function) which is invoked in the instance's scope and receives two arguments - the node and the event that triggered the `activate_node` call. Returning false prevents working with the node, returning true allows invoking activate_node. Defaults to returning `true`. + * @name $.jstree.defaults.checkbox.visible + * @plugin checkbox + */ + $.jstree.defaults.conditionalselect = function () { return true; }; + $.jstree.plugins.conditionalselect = function (options, parent) { + // own function + this.activate_node = function (obj, e) { + if(this.settings.conditionalselect.call(this, this.get_node(obj), e)) { + parent.activate_node.call(this, obj, e); + } + }; + }; + + +/** + * ### Contextmenu plugin + * + * Shows a context menu when a node is right-clicked. + */ + + /** + * stores all defaults for the contextmenu plugin + * @name $.jstree.defaults.contextmenu + * @plugin contextmenu + */ + $.jstree.defaults.contextmenu = { + /** + * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`. + * @name $.jstree.defaults.contextmenu.select_node + * @plugin contextmenu + */ + select_node : true, + /** + * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used. + * @name $.jstree.defaults.contextmenu.show_at_node + * @plugin contextmenu + */ + show_at_node : true, + /** + * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too). + * + * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required). Once a menu item is activated the `action` function will be invoked with an object containing the following keys: item - the contextmenu item definition as seen below, reference - the DOM node that was used (the tree node), element - the contextmenu DOM element, position - an object with x/y properties indicating the position of the menu. + * + * * `separator_before` - a boolean indicating if there should be a separator before this item + * * `separator_after` - a boolean indicating if there should be a separator after this item + * * `_disabled` - a boolean indicating if this action should be disabled + * * `label` - a string - the name of the action (could be a function returning a string) + * * `title` - a string - an optional tooltip for the item + * * `action` - a function to be executed if this item is chosen, the function will receive + * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class + * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2) + * * `shortcut_label` - shortcut label (like for example `F2` for rename) + * * `submenu` - an object with the same structure as $.jstree.defaults.contextmenu.items which can be used to create a submenu - each key will be rendered as a separate option in a submenu that will appear once the current item is hovered + * + * @name $.jstree.defaults.contextmenu.items + * @plugin contextmenu + */ + items : function (o, cb) { // Could be an object directly + return { + "create" : { + "separator_before" : false, + "separator_after" : true, + "_disabled" : false, //(this.check("create_node", data.reference, {}, "last")), + "label" : "Create", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.create_node(obj, {}, "last", function (new_node) { + setTimeout(function () { inst.edit(new_node); },0); + }); + } + }, + "rename" : { + "separator_before" : false, + "separator_after" : false, + "_disabled" : false, //(this.check("rename_node", data.reference, this.get_parent(data.reference), "")), + "label" : "Rename", + /*! + "shortcut" : 113, + "shortcut_label" : 'F2', + "icon" : "glyphicon glyphicon-leaf", + */ + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.edit(obj); + } + }, + "remove" : { + "separator_before" : false, + "icon" : false, + "separator_after" : false, + "_disabled" : false, //(this.check("delete_node", data.reference, this.get_parent(data.reference), "")), + "label" : "Delete", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.delete_node(inst.get_selected()); + } + else { + inst.delete_node(obj); + } + } + }, + "ccp" : { + "separator_before" : true, + "icon" : false, + "separator_after" : false, + "label" : "Edit", + "action" : false, + "submenu" : { + "cut" : { + "separator_before" : false, + "separator_after" : false, + "label" : "Cut", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.cut(inst.get_top_selected()); + } + else { + inst.cut(obj); + } + } + }, + "copy" : { + "separator_before" : false, + "icon" : false, + "separator_after" : false, + "label" : "Copy", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.copy(inst.get_top_selected()); + } + else { + inst.copy(obj); + } + } + }, + "paste" : { + "separator_before" : false, + "icon" : false, + "_disabled" : function (data) { + return !$.jstree.reference(data.reference).can_paste(); + }, + "separator_after" : false, + "label" : "Paste", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.paste(obj); + } + } + } + } + }; + } + }; + + $.jstree.plugins.contextmenu = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + var last_ts = 0, cto = null, ex, ey; + this.element + .on("contextmenu.jstree", ".jstree-anchor", $.proxy(function (e, data) { + if (e.target.tagName.toLowerCase() === 'input') { + return; + } + e.preventDefault(); + last_ts = e.ctrlKey ? +new Date() : 0; + if(data || cto) { + last_ts = (+new Date()) + 10000; + } + if(cto) { + clearTimeout(cto); + } + if(!this.is_loading(e.currentTarget)) { + this.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e); + } + }, this)) + .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { + if(this._data.contextmenu.visible && (!last_ts || (+new Date()) - last_ts > 250)) { // work around safari & macOS ctrl+click + $.vakata.context.hide(); + } + last_ts = 0; + }, this)) + .on("touchstart.jstree", ".jstree-anchor", function (e) { + if(!e.originalEvent || !e.originalEvent.changedTouches || !e.originalEvent.changedTouches[0]) { + return; + } + ex = e.originalEvent.changedTouches[0].clientX; + ey = e.originalEvent.changedTouches[0].clientY; + cto = setTimeout(function () { + $(e.currentTarget).trigger('contextmenu', true); + }, 750); + }) + .on('touchmove.vakata.jstree', function (e) { + if(cto && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0] && (Math.abs(ex - e.originalEvent.changedTouches[0].clientX) > 50 || Math.abs(ey - e.originalEvent.changedTouches[0].clientY) > 50)) { + clearTimeout(cto); + } + }) + .on('touchend.vakata.jstree', function (e) { + if(cto) { + clearTimeout(cto); + } + }); + + /*! + if(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) { + var el = null, tm = null; + this.element + .on("touchstart", ".jstree-anchor", function (e) { + el = e.currentTarget; + tm = +new Date(); + $(document).one("touchend", function (e) { + e.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset); + e.currentTarget = e.target; + tm = ((+(new Date())) - tm); + if(e.target === el && tm > 600 && tm < 1000) { + e.preventDefault(); + $(el).trigger('contextmenu', e); + } + el = null; + tm = null; + }); + }); + } + */ + $(document).on("context_hide.vakata.jstree", $.proxy(function (e, data) { + this._data.contextmenu.visible = false; + $(data.reference).removeClass('jstree-context'); + }, this)); + }; + this.teardown = function () { + if(this._data.contextmenu.visible) { + $.vakata.context.hide(); + } + parent.teardown.call(this); + }; + + /** + * prepare and show the context menu for a node + * @name show_contextmenu(obj [, x, y]) + * @param {mixed} obj the node + * @param {Number} x the x-coordinate relative to the document to show the menu at + * @param {Number} y the y-coordinate relative to the document to show the menu at + * @param {Object} e the event if available that triggered the contextmenu + * @plugin contextmenu + * @trigger show_contextmenu.jstree + */ + this.show_contextmenu = function (obj, x, y, e) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var s = this.settings.contextmenu, + d = this.get_node(obj, true), + a = d.children(".jstree-anchor"), + o = false, + i = false; + if(s.show_at_node || x === undefined || y === undefined) { + o = a.offset(); + x = o.left; + y = o.top + this._data.core.li_height; + } + if(this.settings.contextmenu.select_node && !this.is_selected(obj)) { + this.activate_node(obj, e); + } + + i = s.items; + if($.isFunction(i)) { + i = i.call(this, obj, $.proxy(function (i) { + this._show_contextmenu(obj, x, y, i); + }, this)); + } + if($.isPlainObject(i)) { + this._show_contextmenu(obj, x, y, i); + } + }; + /** + * show the prepared context menu for a node + * @name _show_contextmenu(obj, x, y, i) + * @param {mixed} obj the node + * @param {Number} x the x-coordinate relative to the document to show the menu at + * @param {Number} y the y-coordinate relative to the document to show the menu at + * @param {Number} i the object of items to show + * @plugin contextmenu + * @trigger show_contextmenu.jstree + * @private + */ + this._show_contextmenu = function (obj, x, y, i) { + var d = this.get_node(obj, true), + a = d.children(".jstree-anchor"); + $(document).one("context_show.vakata.jstree", $.proxy(function (e, data) { + var cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu'; + $(data.element).addClass(cls); + a.addClass('jstree-context'); + }, this)); + this._data.contextmenu.visible = true; + $.vakata.context.show(a, { 'x' : x, 'y' : y }, i); + /** + * triggered when the contextmenu is shown for a node + * @event + * @name show_contextmenu.jstree + * @param {Object} node the node + * @param {Number} x the x-coordinate of the menu relative to the document + * @param {Number} y the y-coordinate of the menu relative to the document + * @plugin contextmenu + */ + this.trigger('show_contextmenu', { "node" : obj, "x" : x, "y" : y }); + }; + }; + + // contextmenu helper + (function ($) { + var right_to_left = false, + vakata_context = { + element : false, + reference : false, + position_x : 0, + position_y : 0, + items : [], + html : "", + is_visible : false + }; + + $.vakata.context = { + settings : { + hide_onmouseleave : 0, + icons : true + }, + _trigger : function (event_name) { + $(document).triggerHandler("context_" + event_name + ".vakata", { + "reference" : vakata_context.reference, + "element" : vakata_context.element, + "position" : { + "x" : vakata_context.position_x, + "y" : vakata_context.position_y + } + }); + }, + _execute : function (i) { + i = vakata_context.items[i]; + return i && (!i._disabled || ($.isFunction(i._disabled) && !i._disabled({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }))) && i.action ? i.action.call(null, { + "item" : i, + "reference" : vakata_context.reference, + "element" : vakata_context.element, + "position" : { + "x" : vakata_context.position_x, + "y" : vakata_context.position_y + } + }) : false; + }, + _parse : function (o, is_callback) { + if(!o) { return false; } + if(!is_callback) { + vakata_context.html = ""; + vakata_context.items = []; + } + var str = "", + sep = false, + tmp; + + if(is_callback) { str += "<"+"ul>"; } + $.each(o, function (i, val) { + if(!val) { return true; } + vakata_context.items.push(val); + if(!sep && val.separator_before) { + str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; + } + sep = false; + str += "<"+"li class='" + (val._class || "") + (val._disabled === true || ($.isFunction(val._disabled) && val._disabled({ "item" : val, "reference" : vakata_context.reference, "element" : vakata_context.element })) ? " vakata-contextmenu-disabled " : "") + "' "+(val.shortcut?" data-shortcut='"+val.shortcut+"' ":'')+">"; + str += "<"+"a href='#' rel='" + (vakata_context.items.length - 1) + "' " + (val.title ? "title='" + val.title + "'" : "") + ">"; + if($.vakata.context.settings.icons) { + str += "<"+"i "; + if(val.icon) { + if(val.icon.indexOf("/") !== -1 || val.icon.indexOf(".") !== -1) { str += " style='background:url(\"" + val.icon + "\") center center no-repeat' "; } + else { str += " class='" + val.icon + "' "; } + } + str += "><"+"/i><"+"span class='vakata-contextmenu-sep'> <"+"/span>"; + } + str += ($.isFunction(val.label) ? val.label({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }) : val.label) + (val.shortcut?' '+ (val.shortcut_label || '') +'':'') + "<"+"/a>"; + if(val.submenu) { + tmp = $.vakata.context._parse(val.submenu, true); + if(tmp) { str += tmp; } + } + str += "<"+"/li>"; + if(val.separator_after) { + str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; + sep = true; + } + }); + str = str.replace(/
  • <\/li\>$/,""); + if(is_callback) { str += ""; } + /** + * triggered on the document when the contextmenu is parsed (HTML is built) + * @event + * @plugin contextmenu + * @name context_parse.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + if(!is_callback) { vakata_context.html = str; $.vakata.context._trigger("parse"); } + return str.length > 10 ? str : false; + }, + _show_submenu : function (o) { + o = $(o); + if(!o.length || !o.children("ul").length) { return; } + var e = o.children("ul"), + xl = o.offset().left, + x = xl + o.outerWidth(), + y = o.offset().top, + w = e.width(), + h = e.height(), + dw = $(window).width() + $(window).scrollLeft(), + dh = $(window).height() + $(window).scrollTop(); + // може да се спести е една проверка - дали няма някой от класовете вече нагоре + if(right_to_left) { + o[x - (w + 10 + o.outerWidth()) < 0 ? "addClass" : "removeClass"]("vakata-context-left"); + } + else { + o[x + w > dw && xl > dw - x ? "addClass" : "removeClass"]("vakata-context-right"); + } + if(y + h + 10 > dh) { + e.css("bottom","-1px"); + } + + //if does not fit - stick it to the side + if (o.hasClass('vakata-context-right')) { + if (xl < w) { + e.css("margin-right", xl - w); + } + } else { + if (dw - x < w) { + e.css("margin-left", dw - x - w); + } + } + + e.show(); + }, + show : function (reference, position, data) { + var o, e, x, y, w, h, dw, dh, cond = true; + if(vakata_context.element && vakata_context.element.length) { + vakata_context.element.width(''); + } + switch(cond) { + case (!position && !reference): + return false; + case (!!position && !!reference): + vakata_context.reference = reference; + vakata_context.position_x = position.x; + vakata_context.position_y = position.y; + break; + case (!position && !!reference): + vakata_context.reference = reference; + o = reference.offset(); + vakata_context.position_x = o.left + reference.outerHeight(); + vakata_context.position_y = o.top; + break; + case (!!position && !reference): + vakata_context.position_x = position.x; + vakata_context.position_y = position.y; + break; + } + if(!!reference && !data && $(reference).data('vakata_contextmenu')) { + data = $(reference).data('vakata_contextmenu'); + } + if($.vakata.context._parse(data)) { + vakata_context.element.html(vakata_context.html); + } + if(vakata_context.items.length) { + vakata_context.element.appendTo("body"); + e = vakata_context.element; + x = vakata_context.position_x; + y = vakata_context.position_y; + w = e.width(); + h = e.height(); + dw = $(window).width() + $(window).scrollLeft(); + dh = $(window).height() + $(window).scrollTop(); + if(right_to_left) { + x -= (e.outerWidth() - $(reference).outerWidth()); + if(x < $(window).scrollLeft() + 20) { + x = $(window).scrollLeft() + 20; + } + } + if(x + w + 20 > dw) { + x = dw - (w + 20); + } + if(y + h + 20 > dh) { + y = dh - (h + 20); + } + + vakata_context.element + .css({ "left" : x, "top" : y }) + .show() + .find('a').first().focus().parent().addClass("vakata-context-hover"); + vakata_context.is_visible = true; + /** + * triggered on the document when the contextmenu is shown + * @event + * @plugin contextmenu + * @name context_show.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + $.vakata.context._trigger("show"); + } + }, + hide : function () { + if(vakata_context.is_visible) { + vakata_context.element.hide().find("ul").hide().end().find(':focus').blur().end().detach(); + vakata_context.is_visible = false; + /** + * triggered on the document when the contextmenu is hidden + * @event + * @plugin contextmenu + * @name context_hide.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + $.vakata.context._trigger("hide"); + } + } + }; + $(function () { + right_to_left = $("body").css("direction") === "rtl"; + var to = false; + + vakata_context.element = $("
      "); + vakata_context.element + .on("mouseenter", "li", function (e) { + e.stopImmediatePropagation(); + + if($.contains(this, e.relatedTarget)) { + // премахнато заради delegate mouseleave по-долу + // $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); + return; + } + + if(to) { clearTimeout(to); } + vakata_context.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(); + + $(this) + .siblings().find("ul").hide().end().end() + .parentsUntil(".vakata-context", "li").addBack().addClass("vakata-context-hover"); + $.vakata.context._show_submenu(this); + }) + // тестово - дали не натоварва? + .on("mouseleave", "li", function (e) { + if($.contains(this, e.relatedTarget)) { return; } + $(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover"); + }) + .on("mouseleave", function (e) { + $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); + if($.vakata.context.settings.hide_onmouseleave) { + to = setTimeout( + (function (t) { + return function () { $.vakata.context.hide(); }; + }(this)), $.vakata.context.settings.hide_onmouseleave); + } + }) + .on("click", "a", function (e) { + e.preventDefault(); + //}) + //.on("mouseup", "a", function (e) { + if(!$(this).blur().parent().hasClass("vakata-context-disabled") && $.vakata.context._execute($(this).attr("rel")) !== false) { + $.vakata.context.hide(); + } + }) + .on('keydown', 'a', function (e) { + var o = null; + switch(e.which) { + case 13: + case 32: + e.type = "click"; + e.preventDefault(); + $(e.currentTarget).trigger(e); + break; + case 37: + if(vakata_context.is_visible) { + vakata_context.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 38: + if(vakata_context.is_visible) { + o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(); + if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last(); } + o.addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 39: + if(vakata_context.is_visible) { + vakata_context.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 40: + if(vakata_context.is_visible) { + o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(); + if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first(); } + o.addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 27: + $.vakata.context.hide(); + e.preventDefault(); + break; + default: + //console.log(e.which); + break; + } + }) + .on('keydown', function (e) { + e.preventDefault(); + var a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent(); + if(a.parent().not('.vakata-context-disabled')) { + a.click(); + } + }); + + $(document) + .on("mousedown.vakata.jstree", function (e) { + if(vakata_context.is_visible && !$.contains(vakata_context.element[0], e.target)) { + $.vakata.context.hide(); + } + }) + .on("context_show.vakata.jstree", function (e, data) { + vakata_context.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"); + if(right_to_left) { + vakata_context.element.addClass("vakata-context-rtl").css("direction", "rtl"); + } + // also apply a RTL class? + vakata_context.element.find("ul").hide().end(); + }); + }); + }($)); + // $.jstree.defaults.plugins.push("contextmenu"); + + +/** + * ### Drag'n'drop plugin + * + * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations. + */ + + /** + * stores all defaults for the drag'n'drop plugin + * @name $.jstree.defaults.dnd + * @plugin dnd + */ + $.jstree.defaults.dnd = { + /** + * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`. + * @name $.jstree.defaults.dnd.copy + * @plugin dnd + */ + copy : true, + /** + * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`. + * @name $.jstree.defaults.dnd.open_timeout + * @plugin dnd + */ + open_timeout : 500, + /** + * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) and the event that started the drag - return `false` to prevent dragging + * @name $.jstree.defaults.dnd.is_draggable + * @plugin dnd + */ + is_draggable : true, + /** + * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true` + * @name $.jstree.defaults.dnd.check_while_dragging + * @plugin dnd + */ + check_while_dragging : true, + /** + * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false` + * @name $.jstree.defaults.dnd.always_copy + * @plugin dnd + */ + always_copy : false, + /** + * when dropping a node "inside", this setting indicates the position the node should go to - it can be an integer or a string: "first" (same as 0) or "last", default is `0` + * @name $.jstree.defaults.dnd.inside_pos + * @plugin dnd + */ + inside_pos : 0, + /** + * when starting the drag on a node that is selected this setting controls if all selected nodes are dragged or only the single node, default is `true`, which means all selected nodes are dragged when the drag is started on a selected node + * @name $.jstree.defaults.dnd.drag_selection + * @plugin dnd + */ + drag_selection : true, + /** + * controls whether dnd works on touch devices. If left as boolean true dnd will work the same as in desktop browsers, which in some cases may impair scrolling. If set to boolean false dnd will not work on touch devices. There is a special third option - string "selected" which means only selected nodes can be dragged on touch devices. + * @name $.jstree.defaults.dnd.touch + * @plugin dnd + */ + touch : true, + /** + * controls whether items can be dropped anywhere on the node, not just on the anchor, by default only the node anchor is a valid drop target. Works best with the wholerow plugin. If enabled on mobile depending on the interface it might be hard for the user to cancel the drop, since the whole tree container will be a valid drop target. + * @name $.jstree.defaults.dnd.large_drop_target + * @plugin dnd + */ + large_drop_target : false, + /** + * controls whether a drag can be initiated from any part of the node and not just the text/icon part, works best with the wholerow plugin. Keep in mind it can cause problems with tree scrolling on mobile depending on the interface - in that case set the touch option to "selected". + * @name $.jstree.defaults.dnd.large_drag_target + * @plugin dnd + */ + large_drag_target : false, + /** + * controls whether use HTML5 dnd api instead of classical. That will allow better integration of dnd events with other HTML5 controls. + * @reference http://caniuse.com/#feat=dragndrop + * @name $.jstree.defaults.dnd.use_html5 + * @plugin dnd + */ + use_html5: false + }; + var drg, elm; + // TODO: now check works by checking for each node individually, how about max_children, unique, etc? + $.jstree.plugins.dnd = function (options, parent) { + this.init = function (el, options) { + parent.init.call(this, el, options); + this.settings.dnd.use_html5 = this.settings.dnd.use_html5 && ('draggable' in document.createElement('span')); + }; + this.bind = function () { + parent.bind.call(this); + + this.element + .on(this.settings.dnd.use_html5 ? 'dragstart.jstree' : 'mousedown.jstree touchstart.jstree', this.settings.dnd.large_drag_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { + if(this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) { + return true; + } + if(e.type === "touchstart" && (!this.settings.dnd.touch || (this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked')))) { + return true; + } + var obj = this.get_node(e.target), + mlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1, + txt = (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget)); + if(this.settings.core.force_text) { + txt = $.vakata.html.escape(txt); + } + if(obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === "touchstart" || e.type === "dragstart") && + (this.settings.dnd.is_draggable === true || ($.isFunction(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, (mlt > 1 ? this.get_top_selected(true) : [obj]), e))) + ) { + drg = { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_top_selected() : [obj.id] }; + elm = e.currentTarget; + if (this.settings.dnd.use_html5) { + $.vakata.dnd._trigger('start', e, { 'helper': $(), 'element': elm, 'data': drg }); + } else { + this.element.trigger('mousedown.jstree'); + return $.vakata.dnd.start(e, drg, '
      ' + txt + '
      '); + } + } + }, this)); + if (this.settings.dnd.use_html5) { + this.element + .on('dragover.jstree', function (e) { + e.preventDefault(); + $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); + return false; + }) + //.on('dragenter.jstree', this.settings.dnd.large_drop_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { + // e.preventDefault(); + // $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); + // return false; + // }, this)) + .on('drop.jstree', $.proxy(function (e) { + e.preventDefault(); + $.vakata.dnd._trigger('stop', e, { 'helper': $(), 'element': elm, 'data': drg }); + return false; + }, this)); + } + }; + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if (obj && this.settings.dnd.use_html5) { + if (this.settings.dnd.large_drag_target) { + obj.setAttribute('draggable', true); + } else { + var i, j, tmp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + tmp.setAttribute('draggable', true); + } + } + } + return obj; + }; + }; + + $(function() { + // bind only once for all instances + var lastmv = false, + laster = false, + lastev = false, + opento = false, + marker = $('
       
      ').hide(); //.appendTo('body'); + + $(document) + .on('dnd_start.vakata.jstree', function (e, data) { + lastmv = false; + lastev = false; + if(!data || !data.data || !data.data.jstree) { return; } + marker.appendTo('body'); //.show(); + }) + .on('dnd_move.vakata.jstree', function (e, data) { + if(opento) { + if (!data.event || data.event.type !== 'dragover' || data.event.target !== lastev.target) { + clearTimeout(opento); + } + } + if(!data || !data.data || !data.data.jstree) { return; } + + // if we are hovering the marker image do nothing (can happen on "inside" drags) + if(data.event.target.id && data.event.target.id === 'jstree-marker') { + return; + } + lastev = data.event; + + var ins = $.jstree.reference(data.event.target), + ref = false, + off = false, + rel = false, + tmp, l, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm, is_copy, pn; + // if we are over an instance + if(ins && ins._data && ins._data.dnd) { + marker.attr('class', 'jstree-' + ins.get_theme() + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )); + is_copy = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))); + data.helper + .children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )) + .find('.jstree-copy').first()[ is_copy ? 'show' : 'hide' ](); + + // if are hovering the container itself add a new root node + //console.log(data.event); + if( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) { + ok = true; + for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { + ok = ok && ins.check( (data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ) ? "copy_node" : "move_node"), (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), $.jstree.root, 'last', { 'dnd' : true, 'ref' : ins.get_node($.jstree.root), 'pos' : 'i', 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }); + if(!ok) { break; } + } + if(ok) { + lastmv = { 'ins' : ins, 'par' : $.jstree.root, 'pos' : 'last' }; + marker.hide(); + data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; + } + return; + } + } + else { + // if we are hovering a tree node + ref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor'); + if(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) { + off = ref.offset(); + rel = (data.event.pageY !== undefined ? data.event.pageY : data.event.originalEvent.pageY) - off.top; + h = ref.outerHeight(); + if(rel < h / 3) { + o = ['b', 'i', 'a']; + } + else if(rel > h - h / 3) { + o = ['a', 'i', 'b']; + } + else { + o = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a']; + } + $.each(o, function (j, v) { + switch(v) { + case 'b': + l = off.left - 6; + t = off.top; + p = ins.get_parent(ref); + i = ref.parent().index(); + break; + case 'i': + ip = ins.settings.dnd.inside_pos; + tm = ins.get_node(ref.parent()); + l = off.left - 2; + t = off.top + h / 2 + 1; + p = tm.id; + i = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length)); + break; + case 'a': + l = off.left - 6; + t = off.top + h; + p = ins.get_parent(ref); + i = ref.parent().index() + 1; + break; + } + ok = true; + for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { + op = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? "copy_node" : "move_node"; + ps = i; + if(op === "move_node" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) { + pr = ins.get_node(p); + if(ps > $.inArray(data.data.nodes[t1], pr.children)) { + ps -= 1; + } + } + ok = ok && ( (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false) || ins.check(op, (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), p, ps, { 'dnd' : true, 'ref' : ins.get_node(ref.parent()), 'pos' : v, 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }) ); + if(!ok) { + if(ins && ins.last_error) { laster = ins.last_error(); } + break; + } + } + if(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) { + opento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout); + } + if(ok) { + pn = ins.get_node(p, true); + if (!pn.hasClass('.jstree-dnd-parent')) { + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + pn.addClass('jstree-dnd-parent'); + } + lastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i }; + marker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show(); + data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; + } + laster = {}; + o = true; + return false; + } + }); + if(o === true) { return; } + } + } + } + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + lastmv = false; + data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = 'none'; + } + marker.hide(); + }) + .on('dnd_scroll.vakata.jstree', function (e, data) { + if(!data || !data.data || !data.data.jstree) { return; } + marker.hide(); + lastmv = false; + lastev = false; + data.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er'); + }) + .on('dnd_stop.vakata.jstree', function (e, data) { + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + if(opento) { clearTimeout(opento); } + if(!data || !data.data || !data.data.jstree) { return; } + marker.hide().detach(); + var i, j, nodes = []; + if(lastmv) { + for(i = 0, j = data.data.nodes.length; i < j; i++) { + nodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i]; + } + lastmv.ins[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'copy_node' : 'move_node' ](nodes, lastmv.par, lastmv.pos, false, false, false, data.data.origin); + } + else { + i = $(data.event.target).closest('.jstree'); + if(i.length && laster && laster.error && laster.error === 'check') { + i = i.jstree(true); + if(i) { + i.settings.core.error.call(this, laster); + } + } + } + lastev = false; + lastmv = false; + }) + .on('keyup.jstree keydown.jstree', function (e, data) { + data = $.vakata.dnd._get(); + if(data && data.data && data.data.jstree) { + if (e.type === "keyup" && e.which === 27) { + if (opento) { clearTimeout(opento); } + lastmv = false; + laster = false; + lastev = false; + opento = false; + marker.hide().detach(); + $.vakata.dnd._clean(); + } else { + data.helper.find('.jstree-copy').first()[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey))) ? 'show' : 'hide' ](); + if(lastev) { + lastev.metaKey = e.metaKey; + lastev.ctrlKey = e.ctrlKey; + $.vakata.dnd._trigger('move', lastev); + } + } + } + }); + }); + + // helpers + (function ($) { + $.vakata.html = { + div : $('
      '), + escape : function (str) { + return $.vakata.html.div.text(str).html(); + }, + strip : function (str) { + return $.vakata.html.div.empty().append($.parseHTML(str)).text(); + } + }; + // private variable + var vakata_dnd = { + element : false, + target : false, + is_down : false, + is_drag : false, + helper : false, + helper_w: 0, + data : false, + init_x : 0, + init_y : 0, + scroll_l: 0, + scroll_t: 0, + scroll_e: false, + scroll_i: false, + is_touch: false + }; + $.vakata.dnd = { + settings : { + scroll_speed : 10, + scroll_proximity : 20, + helper_left : 5, + helper_top : 10, + threshold : 5, + threshold_touch : 50 + }, + _trigger : function (event_name, e, data) { + if (data === undefined) { + data = $.vakata.dnd._get(); + } + data.event = e; + $(document).triggerHandler("dnd_" + event_name + ".vakata", data); + }, + _get : function () { + return { + "data" : vakata_dnd.data, + "element" : vakata_dnd.element, + "helper" : vakata_dnd.helper + }; + }, + _clean : function () { + if(vakata_dnd.helper) { vakata_dnd.helper.remove(); } + if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } + vakata_dnd = { + element : false, + target : false, + is_down : false, + is_drag : false, + helper : false, + helper_w: 0, + data : false, + init_x : 0, + init_y : 0, + scroll_l: 0, + scroll_t: 0, + scroll_e: false, + scroll_i: false, + is_touch: false + }; + $(document).off("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); + $(document).off("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); + }, + _scroll : function (init_only) { + if(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) { + if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } + return false; + } + if(!vakata_dnd.scroll_i) { + vakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100); + return false; + } + if(init_only === true) { return false; } + + var i = vakata_dnd.scroll_e.scrollTop(), + j = vakata_dnd.scroll_e.scrollLeft(); + vakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed); + vakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed); + if(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) { + /** + * triggered on the document when a drag causes an element to scroll + * @event + * @plugin dnd + * @name dnd_scroll.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {jQuery} event the element that is scrolling + */ + $.vakata.dnd._trigger("scroll", vakata_dnd.scroll_e); + } + }, + start : function (e, data, html) { + if(e.type === "touchstart" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); } + try { + e.currentTarget.unselectable = "on"; + e.currentTarget.onselectstart = function() { return false; }; + if(e.currentTarget.style) { + e.currentTarget.style.touchAction = "none"; + e.currentTarget.style.msTouchAction = "none"; + e.currentTarget.style.MozUserSelect = "none"; + } + } catch(ignore) { } + vakata_dnd.init_x = e.pageX; + vakata_dnd.init_y = e.pageY; + vakata_dnd.data = data; + vakata_dnd.is_down = true; + vakata_dnd.element = e.currentTarget; + vakata_dnd.target = e.target; + vakata_dnd.is_touch = e.type === "touchstart"; + if(html !== false) { + vakata_dnd.helper = $("
      ").html(html).css({ + "display" : "block", + "margin" : "0", + "padding" : "0", + "position" : "absolute", + "top" : "-2000px", + "lineHeight" : "16px", + "zIndex" : "10000" + }); + } + $(document).on("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); + $(document).on("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); + return false; + }, + drag : function (e) { + if(e.type === "touchmove" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(!vakata_dnd.is_down) { return; } + if(!vakata_dnd.is_drag) { + if( + Math.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) || + Math.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) + ) { + if(vakata_dnd.helper) { + vakata_dnd.helper.appendTo("body"); + vakata_dnd.helper_w = vakata_dnd.helper.outerWidth(); + } + vakata_dnd.is_drag = true; + $(vakata_dnd.target).one('click.vakata', false); + /** + * triggered on the document when a drag starts + * @event + * @plugin dnd + * @name dnd_start.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused the start (probably mousemove) + */ + $.vakata.dnd._trigger("start", e); + } + else { return; } + } + + var d = false, w = false, + dh = false, wh = false, + dw = false, ww = false, + dt = false, dl = false, + ht = false, hl = false; + + vakata_dnd.scroll_t = 0; + vakata_dnd.scroll_l = 0; + vakata_dnd.scroll_e = false; + $($(e.target).parentsUntil("body").addBack().get().reverse()) + .filter(function () { + return (/^auto|scroll$/).test($(this).css("overflow")) && + (this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth); + }) + .each(function () { + var t = $(this), o = t.offset(); + if(this.scrollHeight > this.offsetHeight) { + if(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } + if(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } + } + if(this.scrollWidth > this.offsetWidth) { + if(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } + if(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } + } + if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { + vakata_dnd.scroll_e = $(this); + return false; + } + }); + + if(!vakata_dnd.scroll_e) { + d = $(document); w = $(window); + dh = d.height(); wh = w.height(); + dw = d.width(); ww = w.width(); + dt = d.scrollTop(); dl = d.scrollLeft(); + if(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } + if(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } + if(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } + if(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } + if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { + vakata_dnd.scroll_e = d; + } + } + if(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); } + + if(vakata_dnd.helper) { + ht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10); + hl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10); + if(dh && ht + 25 > dh) { ht = dh - 50; } + if(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); } + vakata_dnd.helper.css({ + left : hl + "px", + top : ht + "px" + }); + } + /** + * triggered on the document when a drag is in progress + * @event + * @plugin dnd + * @name dnd_move.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused this to trigger (most likely mousemove) + */ + $.vakata.dnd._trigger("move", e); + return false; + }, + stop : function (e) { + if(e.type === "touchend" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(vakata_dnd.is_drag) { + /** + * triggered on the document when a drag stops (the dragged element is dropped) + * @event + * @plugin dnd + * @name dnd_stop.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused the stop + */ + if (e.target !== vakata_dnd.target) { + $(vakata_dnd.target).off('click.vakata'); + } + $.vakata.dnd._trigger("stop", e); + } + else { + if(e.type === "touchend" && e.target === vakata_dnd.target) { + var to = setTimeout(function () { $(e.target).click(); }, 100); + $(e.target).one('click', function() { if(to) { clearTimeout(to); } }); + } + } + $.vakata.dnd._clean(); + return false; + } + }; + }($)); + + // include the dnd plugin by default + // $.jstree.defaults.plugins.push("dnd"); + + +/** + * ### Massload plugin + * + * Adds massload functionality to jsTree, so that multiple nodes can be loaded in a single request (only useful with lazy loading). + */ + + /** + * massload configuration + * + * It is possible to set this to a standard jQuery-like AJAX config. + * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node IDs need to be loaded, the return value of those functions will be used. + * + * You can also set this to a function, that function will receive the node IDs being loaded as argument and a second param which is a function (callback) which should be called with the result. + * + * Both the AJAX and the function approach rely on the same return value - an object where the keys are the node IDs, and the value is the children of that node as an array. + * + * { + * "id1" : [{ "text" : "Child of ID1", "id" : "c1" }, { "text" : "Another child of ID1", "id" : "c2" }], + * "id2" : [{ "text" : "Child of ID2", "id" : "c3" }] + * } + * + * @name $.jstree.defaults.massload + * @plugin massload + */ + $.jstree.defaults.massload = null; + $.jstree.plugins.massload = function (options, parent) { + this.init = function (el, options) { + this._data.massload = {}; + parent.init.call(this, el, options); + }; + this._load_nodes = function (nodes, callback, is_callback, force_reload) { + var s = this.settings.massload, + nodesString = JSON.stringify(nodes), + toLoad = [], + m = this._model.data, + i, j, dom; + if (!is_callback) { + for(i = 0, j = nodes.length; i < j; i++) { + if(!m[nodes[i]] || ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || force_reload) ) { + toLoad.push(nodes[i]); + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.addClass("jstree-loading").attr('aria-busy',true); + } + } + } + this._data.massload = {}; + if (toLoad.length) { + if($.isFunction(s)) { + return s.call(this, toLoad, $.proxy(function (data) { + var i, j; + if(data) { + for(i in data) { + if(data.hasOwnProperty(i)) { + this._data.massload[i] = data[i]; + } + } + } + for(i = 0, j = nodes.length; i < j; i++) { + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + } + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)); + } + if(typeof s === 'object' && s && s.url) { + s = $.extend(true, {}, s); + if($.isFunction(s.url)) { + s.url = s.url.call(this, toLoad); + } + if($.isFunction(s.data)) { + s.data = s.data.call(this, toLoad); + } + return $.ajax(s) + .done($.proxy(function (data,t,x) { + var i, j; + if(data) { + for(i in data) { + if(data.hasOwnProperty(i)) { + this._data.massload[i] = data[i]; + } + } + } + for(i = 0, j = nodes.length; i < j; i++) { + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + } + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)) + .fail($.proxy(function (f) { + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)); + } + } + } + return parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }; + this._load_node = function (obj, callback) { + var data = this._data.massload[obj.id], + rslt = null, dom; + if(data) { + rslt = this[typeof data === 'string' ? '_append_html_data' : '_append_json_data']( + obj, + typeof data === 'string' ? $($.parseHTML(data)).filter(function () { return this.nodeType !== 3; }) : data, + function (status) { callback.call(this, status); } + ); + dom = this.get_node(obj.id, true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + delete this._data.massload[obj.id]; + return rslt; + } + return parent._load_node.call(this, obj, callback); + }; + }; + +/** + * ### Search plugin + * + * Adds search functionality to jsTree. + */ + + /** + * stores all defaults for the search plugin + * @name $.jstree.defaults.search + * @plugin search + */ + $.jstree.defaults.search = { + /** + * a jQuery-like AJAX config, which jstree uses if a server should be queried for results. + * + * A `str` (which is the search string) parameter will be added with the request, an optional `inside` parameter will be added if the search is limited to a node id. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed. + * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 3 parameters - the search string, the callback to call with the array of nodes to load, and the optional node ID to limit the search to + * @name $.jstree.defaults.search.ajax + * @plugin search + */ + ajax : false, + /** + * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `false`. + * @name $.jstree.defaults.search.fuzzy + * @plugin search + */ + fuzzy : false, + /** + * Indicates if the search should be case sensitive. Default is `false`. + * @name $.jstree.defaults.search.case_sensitive + * @plugin search + */ + case_sensitive : false, + /** + * Indicates if the tree should be filtered (by default) to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers). + * This setting can be changed at runtime when calling the search method. Default is `false`. + * @name $.jstree.defaults.search.show_only_matches + * @plugin search + */ + show_only_matches : false, + /** + * Indicates if the children of matched element are shown (when show_only_matches is true) + * This setting can be changed at runtime when calling the search method. Default is `false`. + * @name $.jstree.defaults.search.show_only_matches_children + * @plugin search + */ + show_only_matches_children : false, + /** + * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`. + * @name $.jstree.defaults.search.close_opened_onclear + * @plugin search + */ + close_opened_onclear : true, + /** + * Indicates if only leaf nodes should be included in search results. Default is `false`. + * @name $.jstree.defaults.search.search_leaves_only + * @plugin search + */ + search_leaves_only : false, + /** + * If set to a function it wil be called in the instance's scope with two arguments - search string and node (where node will be every node in the structure, so use with caution). + * If the function returns a truthy value the node will be considered a match (it might not be displayed if search_only_leaves is set to true and the node is not a leaf). Default is `false`. + * @name $.jstree.defaults.search.search_callback + * @plugin search + */ + search_callback : false + }; + + $.jstree.plugins.search = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + this._data.search.str = ""; + this._data.search.dom = $(); + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.som = false; + this._data.search.smc = false; + this._data.search.hdn = []; + + this.element + .on("search.jstree", $.proxy(function (e, data) { + if(this._data.search.som && data.res.length) { + var m = this._model.data, i, j, p = [], k, l; + for(i = 0, j = data.res.length; i < j; i++) { + if(m[data.res[i]] && !m[data.res[i]].state.hidden) { + p.push(data.res[i]); + p = p.concat(m[data.res[i]].parents); + if(this._data.search.smc) { + for (k = 0, l = m[data.res[i]].children_d.length; k < l; k++) { + if (m[m[data.res[i]].children_d[k]] && !m[m[data.res[i]].children_d[k]].state.hidden) { + p.push(m[data.res[i]].children_d[k]); + } + } + } + } + } + p = $.vakata.array_remove_item($.vakata.array_unique(p), $.jstree.root); + this._data.search.hdn = this.hide_all(true); + this.show_node(p, true); + this.redraw(true); + } + }, this)) + .on("clear_search.jstree", $.proxy(function (e, data) { + if(this._data.search.som && data.res.length) { + this.show_node(this._data.search.hdn, true); + this.redraw(true); + } + }, this)); + }; + /** + * used to search the tree nodes for a given string + * @name search(str [, skip_async]) + * @param {String} str the search string + * @param {Boolean} skip_async if set to true server will not be queried even if configured + * @param {Boolean} show_only_matches if set to true only matching nodes will be shown (keep in mind this can be very slow on large trees or old browsers) + * @param {mixed} inside an optional node to whose children to limit the search + * @param {Boolean} append if set to true the results of this search are appended to the previous search + * @plugin search + * @trigger search.jstree + */ + this.search = function (str, skip_async, show_only_matches, inside, append, show_only_matches_children) { + if(str === false || $.trim(str.toString()) === "") { + return this.clear_search(); + } + inside = this.get_node(inside); + inside = inside && inside.id ? inside.id : null; + str = str.toString(); + var s = this.settings.search, + a = s.ajax ? s.ajax : false, + m = this._model.data, + f = null, + r = [], + p = [], i, j; + if(this._data.search.res.length && !append) { + this.clear_search(); + } + if(show_only_matches === undefined) { + show_only_matches = s.show_only_matches; + } + if(show_only_matches_children === undefined) { + show_only_matches_children = s.show_only_matches_children; + } + if(!skip_async && a !== false) { + if($.isFunction(a)) { + return a.call(this, str, $.proxy(function (d) { + if(d && d.d) { d = d.d; } + this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { + this.search(str, true, show_only_matches, inside, append, show_only_matches_children); + }); + }, this), inside); + } + else { + a = $.extend({}, a); + if(!a.data) { a.data = {}; } + a.data.str = str; + if(inside) { + a.data.inside = inside; + } + if (this._data.search.lastRequest) { + this._data.search.lastRequest.abort(); + } + this._data.search.lastRequest = $.ajax(a) + .fail($.proxy(function () { + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'search', 'id' : 'search_01', 'reason' : 'Could not load search parents', 'data' : JSON.stringify(a) }; + this.settings.core.error.call(this, this._data.core.last_error); + }, this)) + .done($.proxy(function (d) { + if(d && d.d) { d = d.d; } + this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { + this.search(str, true, show_only_matches, inside, append, show_only_matches_children); + }); + }, this)); + return this._data.search.lastRequest; + } + } + if(!append) { + this._data.search.str = str; + this._data.search.dom = $(); + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.som = show_only_matches; + this._data.search.smc = show_only_matches_children; + } + + f = new $.vakata.search(str, true, { caseSensitive : s.case_sensitive, fuzzy : s.fuzzy }); + $.each(m[inside ? inside : $.jstree.root].children_d, function (ii, i) { + var v = m[i]; + if(v.text && !v.state.hidden && (!s.search_leaves_only || (v.state.loaded && v.children.length === 0)) && ( (s.search_callback && s.search_callback.call(this, str, v)) || (!s.search_callback && f.search(v.text).isMatch) ) ) { + r.push(i); + p = p.concat(v.parents); + } + }); + if(r.length) { + p = $.vakata.array_unique(p); + for(i = 0, j = p.length; i < j; i++) { + if(p[i] !== $.jstree.root && m[p[i]] && this.open_node(p[i], null, 0) === true) { + this._data.search.opn.push(p[i]); + } + } + if(!append) { + this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #'))); + this._data.search.res = r; + } + else { + this._data.search.dom = this._data.search.dom.add($(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #')))); + this._data.search.res = $.vakata.array_unique(this._data.search.res.concat(r)); + } + this._data.search.dom.children(".jstree-anchor").addClass('jstree-search'); + } + /** + * triggered after search is complete + * @event + * @name search.jstree + * @param {jQuery} nodes a jQuery collection of matching nodes + * @param {String} str the search string + * @param {Array} res a collection of objects represeing the matching nodes + * @plugin search + */ + this.trigger('search', { nodes : this._data.search.dom, str : str, res : this._data.search.res, show_only_matches : show_only_matches }); + }; + /** + * used to clear the last search (removes classes and shows all nodes if filtering is on) + * @name clear_search() + * @plugin search + * @trigger clear_search.jstree + */ + this.clear_search = function () { + if(this.settings.search.close_opened_onclear) { + this.close_node(this._data.search.opn, 0); + } + /** + * triggered after search is complete + * @event + * @name clear_search.jstree + * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search) + * @param {String} str the search string (the last search string) + * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search) + * @plugin search + */ + this.trigger('clear_search', { 'nodes' : this._data.search.dom, str : this._data.search.str, res : this._data.search.res }); + if(this._data.search.res.length) { + this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(this._data.search.res, function (v) { + return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); + }).join(', #'))); + this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search"); + } + this._data.search.str = ""; + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.dom = $(); + }; + + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + if($.inArray(obj.id, this._data.search.res) !== -1) { + var i, j, tmp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + tmp.className += ' jstree-search'; + } + } + } + return obj; + }; + }; + + // helpers + (function ($) { + // from http://kiro.me/projects/fuse.html + $.vakata.search = function(pattern, txt, options) { + options = options || {}; + options = $.extend({}, $.vakata.search.defaults, options); + if(options.fuzzy !== false) { + options.fuzzy = true; + } + pattern = options.caseSensitive ? pattern : pattern.toLowerCase(); + var MATCH_LOCATION = options.location, + MATCH_DISTANCE = options.distance, + MATCH_THRESHOLD = options.threshold, + patternLen = pattern.length, + matchmask, pattern_alphabet, match_bitapScore, search; + if(patternLen > 32) { + options.fuzzy = false; + } + if(options.fuzzy) { + matchmask = 1 << (patternLen - 1); + pattern_alphabet = (function () { + var mask = {}, + i = 0; + for (i = 0; i < patternLen; i++) { + mask[pattern.charAt(i)] = 0; + } + for (i = 0; i < patternLen; i++) { + mask[pattern.charAt(i)] |= 1 << (patternLen - i - 1); + } + return mask; + }()); + match_bitapScore = function (e, x) { + var accuracy = e / patternLen, + proximity = Math.abs(MATCH_LOCATION - x); + if(!MATCH_DISTANCE) { + return proximity ? 1.0 : accuracy; + } + return accuracy + (proximity / MATCH_DISTANCE); + }; + } + search = function (text) { + text = options.caseSensitive ? text : text.toLowerCase(); + if(pattern === text || text.indexOf(pattern) !== -1) { + return { + isMatch: true, + score: 0 + }; + } + if(!options.fuzzy) { + return { + isMatch: false, + score: 1 + }; + } + var i, j, + textLen = text.length, + scoreThreshold = MATCH_THRESHOLD, + bestLoc = text.indexOf(pattern, MATCH_LOCATION), + binMin, binMid, + binMax = patternLen + textLen, + lastRd, start, finish, rd, charMatch, + score = 1, + locations = []; + if (bestLoc !== -1) { + scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); + bestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen); + if (bestLoc !== -1) { + scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); + } + } + bestLoc = -1; + for (i = 0; i < patternLen; i++) { + binMin = 0; + binMid = binMax; + while (binMin < binMid) { + if (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) { + binMin = binMid; + } else { + binMax = binMid; + } + binMid = Math.floor((binMax - binMin) / 2 + binMin); + } + binMax = binMid; + start = Math.max(1, MATCH_LOCATION - binMid + 1); + finish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen; + rd = new Array(finish + 2); + rd[finish + 1] = (1 << i) - 1; + for (j = finish; j >= start; j--) { + charMatch = pattern_alphabet[text.charAt(j - 1)]; + if (i === 0) { + rd[j] = ((rd[j + 1] << 1) | 1) & charMatch; + } else { + rd[j] = ((rd[j + 1] << 1) | 1) & charMatch | (((lastRd[j + 1] | lastRd[j]) << 1) | 1) | lastRd[j + 1]; + } + if (rd[j] & matchmask) { + score = match_bitapScore(i, j - 1); + if (score <= scoreThreshold) { + scoreThreshold = score; + bestLoc = j - 1; + locations.push(bestLoc); + if (bestLoc > MATCH_LOCATION) { + start = Math.max(1, 2 * MATCH_LOCATION - bestLoc); + } else { + break; + } + } + } + } + if (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) { + break; + } + lastRd = rd; + } + return { + isMatch: bestLoc >= 0, + score: score + }; + }; + return txt === true ? { 'search' : search } : search(txt); + }; + $.vakata.search.defaults = { + location : 0, + distance : 100, + threshold : 0.6, + fuzzy : false, + caseSensitive : false + }; + }($)); + + // include the search plugin by default + // $.jstree.defaults.plugins.push("search"); + + +/** + * ### Sort plugin + * + * Automatically sorts all siblings in the tree according to a sorting function. + */ + + /** + * the settings function used to sort the nodes. + * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`. + * @name $.jstree.defaults.sort + * @plugin sort + */ + $.jstree.defaults.sort = function (a, b) { + //return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b); + return this.get_text(a) > this.get_text(b) ? 1 : -1; + }; + $.jstree.plugins.sort = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this.element + .on("model.jstree", $.proxy(function (e, data) { + this.sort(data.parent, true); + }, this)) + .on("rename_node.jstree create_node.jstree", $.proxy(function (e, data) { + this.sort(data.parent || data.node.parent, false); + this.redraw_node(data.parent || data.node.parent, true); + }, this)) + .on("move_node.jstree copy_node.jstree", $.proxy(function (e, data) { + this.sort(data.parent, false); + this.redraw_node(data.parent, true); + }, this)); + }; + /** + * used to sort a node's children + * @private + * @name sort(obj [, deep]) + * @param {mixed} obj the node + * @param {Boolean} deep if set to `true` nodes are sorted recursively. + * @plugin sort + * @trigger search.jstree + */ + this.sort = function (obj, deep) { + var i, j; + obj = this.get_node(obj); + if(obj && obj.children && obj.children.length) { + obj.children.sort($.proxy(this.settings.sort, this)); + if(deep) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + this.sort(obj.children_d[i], false); + } + } + } + }; + }; + + // include the sort plugin by default + // $.jstree.defaults.plugins.push("sort"); + +/** + * ### State plugin + * + * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc) + */ + + var to = false; + /** + * stores all defaults for the state plugin + * @name $.jstree.defaults.state + * @plugin state + */ + $.jstree.defaults.state = { + /** + * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`. + * @name $.jstree.defaults.state.key + * @plugin state + */ + key : 'jstree', + /** + * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`. + * @name $.jstree.defaults.state.events + * @plugin state + */ + events : 'changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree', + /** + * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire. + * @name $.jstree.defaults.state.ttl + * @plugin state + */ + ttl : false, + /** + * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state. + * @name $.jstree.defaults.state.filter + * @plugin state + */ + filter : false + }; + $.jstree.plugins.state = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + var bind = $.proxy(function () { + this.element.on(this.settings.state.events, $.proxy(function () { + if(to) { clearTimeout(to); } + to = setTimeout($.proxy(function () { this.save_state(); }, this), 100); + }, this)); + /** + * triggered when the state plugin is finished restoring the state (and immediately after ready if there is no state to restore). + * @event + * @name state_ready.jstree + * @plugin state + */ + this.trigger('state_ready'); + }, this); + this.element + .on("ready.jstree", $.proxy(function (e, data) { + this.element.one("restore_state.jstree", bind); + if(!this.restore_state()) { bind(); } + }, this)); + }; + /** + * save the state + * @name save_state() + * @plugin state + */ + this.save_state = function () { + var st = { 'state' : this.get_state(), 'ttl' : this.settings.state.ttl, 'sec' : +(new Date()) }; + $.vakata.storage.set(this.settings.state.key, JSON.stringify(st)); + }; + /** + * restore the state from the user's computer + * @name restore_state() + * @plugin state + */ + this.restore_state = function () { + var k = $.vakata.storage.get(this.settings.state.key); + if(!!k) { try { k = JSON.parse(k); } catch(ex) { return false; } } + if(!!k && k.ttl && k.sec && +(new Date()) - k.sec > k.ttl) { return false; } + if(!!k && k.state) { k = k.state; } + if(!!k && $.isFunction(this.settings.state.filter)) { k = this.settings.state.filter.call(this, k); } + if(!!k) { + this.element.one("set_state.jstree", function (e, data) { data.instance.trigger('restore_state', { 'state' : $.extend(true, {}, k) }); }); + this.set_state(k); + return true; + } + return false; + }; + /** + * clear the state on the user's computer + * @name clear_state() + * @plugin state + */ + this.clear_state = function () { + return $.vakata.storage.del(this.settings.state.key); + }; + }; + + (function ($, undefined) { + $.vakata.storage = { + // simply specifying the functions in FF throws an error + set : function (key, val) { return window.localStorage.setItem(key, val); }, + get : function (key) { return window.localStorage.getItem(key); }, + del : function (key) { return window.localStorage.removeItem(key); } + }; + }($)); + + // include the state plugin by default + // $.jstree.defaults.plugins.push("state"); + +/** + * ### Types plugin + * + * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group. + */ + + /** + * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional). + * + * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited. + * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited. + * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits. + * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme. + * * `li_attr` an object of values which will be used to add HTML attributes on the resulting LI DOM node (merged with the node's own data) + * * `a_attr` an object of values which will be used to add HTML attributes on the resulting A DOM node (merged with the node's own data) + * + * There are two predefined types: + * + * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes. + * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified. + * + * @name $.jstree.defaults.types + * @plugin types + */ + $.jstree.defaults.types = { + 'default' : {} + }; + $.jstree.defaults.types[$.jstree.root] = {}; + + $.jstree.plugins.types = function (options, parent) { + this.init = function (el, options) { + var i, j; + if(options && options.types && options.types['default']) { + for(i in options.types) { + if(i !== "default" && i !== $.jstree.root && options.types.hasOwnProperty(i)) { + for(j in options.types['default']) { + if(options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) { + options.types[i][j] = options.types['default'][j]; + } + } + } + } + } + parent.init.call(this, el, options); + this._model.data[$.jstree.root].type = $.jstree.root; + }; + this.refresh = function (skip_loading, forget_state) { + parent.refresh.call(this, skip_loading, forget_state); + this._model.data[$.jstree.root].type = $.jstree.root; + }; + this.bind = function () { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + dpc = data.nodes, + t = this.settings.types, + i, j, c = 'default', k; + for(i = 0, j = dpc.length; i < j; i++) { + c = 'default'; + if(m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) { + c = m[dpc[i]].original.type; + } + if(m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) { + c = m[dpc[i]].data.jstree.type; + } + m[dpc[i]].type = c; + if(m[dpc[i]].icon === true && t[c].icon !== undefined) { + m[dpc[i]].icon = t[c].icon; + } + if(t[c].li_attr !== undefined && typeof t[c].li_attr === 'object') { + for (k in t[c].li_attr) { + if (t[c].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[dpc[i]].li_attr[k] === undefined) { + m[dpc[i]].li_attr[k] = t[c].li_attr[k]; + } + else if (k === 'class') { + m[dpc[i]].li_attr['class'] = t[c].li_attr['class'] + ' ' + m[dpc[i]].li_attr['class']; + } + } + } + } + if(t[c].a_attr !== undefined && typeof t[c].a_attr === 'object') { + for (k in t[c].a_attr) { + if (t[c].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[dpc[i]].a_attr[k] === undefined) { + m[dpc[i]].a_attr[k] = t[c].a_attr[k]; + } + else if (k === 'href' && m[dpc[i]].a_attr[k] === '#') { + m[dpc[i]].a_attr['href'] = t[c].a_attr['href']; + } + else if (k === 'class') { + m[dpc[i]].a_attr['class'] = t[c].a_attr['class'] + ' ' + m[dpc[i]].a_attr['class']; + } + } + } + } + } + m[$.jstree.root].type = $.jstree.root; + }, this)); + parent.bind.call(this); + }; + this.get_json = function (obj, options, flat) { + var i, j, + m = this._model.data, + opt = options ? $.extend(true, {}, options, {no_id:false}) : {}, + tmp = parent.get_json.call(this, obj, opt, flat); + if(tmp === false) { return false; } + if($.isArray(tmp)) { + for(i = 0, j = tmp.length; i < j; i++) { + tmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : "default"; + if(options && options.no_id) { + delete tmp[i].id; + if(tmp[i].li_attr && tmp[i].li_attr.id) { + delete tmp[i].li_attr.id; + } + if(tmp[i].a_attr && tmp[i].a_attr.id) { + delete tmp[i].a_attr.id; + } + } + } + } + else { + tmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : "default"; + if(options && options.no_id) { + tmp = this._delete_ids(tmp); + } + } + return tmp; + }; + this._delete_ids = function (tmp) { + if($.isArray(tmp)) { + for(var i = 0, j = tmp.length; i < j; i++) { + tmp[i] = this._delete_ids(tmp[i]); + } + return tmp; + } + delete tmp.id; + if(tmp.li_attr && tmp.li_attr.id) { + delete tmp.li_attr.id; + } + if(tmp.a_attr && tmp.a_attr.id) { + delete tmp.a_attr.id; + } + if(tmp.children && $.isArray(tmp.children)) { + tmp.children = this._delete_ids(tmp.children); + } + return tmp; + }; + this.check = function (chk, obj, par, pos, more) { + if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + var m = obj && obj.id ? (more && more.origin ? more.origin : $.jstree.reference(obj.id)) : null, tmp, d, i, j; + m = m && m._model && m._model.data ? m._model.data : null; + switch(chk) { + case "create_node": + case "move_node": + case "copy_node": + if(chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) { + tmp = this.get_rules(par); + if(tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_01', 'reason' : 'max_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + if(tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray((obj.type || 'default'), tmp.valid_children) === -1) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_02', 'reason' : 'valid_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + if(m && obj.children_d && obj.parents) { + d = 0; + for(i = 0, j = obj.children_d.length; i < j; i++) { + d = Math.max(d, m[obj.children_d[i]].parents.length); + } + d = d - obj.parents.length + 1; + } + if(d <= 0 || d === undefined) { d = 1; } + do { + if(tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_03', 'reason' : 'max_depth prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + par = this.get_node(par.parent); + tmp = this.get_rules(par); + d++; + } while(par); + } + break; + } + return true; + }; + /** + * used to retrieve the type settings object for a node + * @name get_rules(obj) + * @param {mixed} obj the node to find the rules for + * @return {Object} + * @plugin types + */ + this.get_rules = function (obj) { + obj = this.get_node(obj); + if(!obj) { return false; } + var tmp = this.get_type(obj, true); + if(tmp.max_depth === undefined) { tmp.max_depth = -1; } + if(tmp.max_children === undefined) { tmp.max_children = -1; } + if(tmp.valid_children === undefined) { tmp.valid_children = -1; } + return tmp; + }; + /** + * used to retrieve the type string or settings object for a node + * @name get_type(obj [, rules]) + * @param {mixed} obj the node to find the rules for + * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned + * @return {String|Object} + * @plugin types + */ + this.get_type = function (obj, rules) { + obj = this.get_node(obj); + return (!obj) ? false : ( rules ? $.extend({ 'type' : obj.type }, this.settings.types[obj.type]) : obj.type); + }; + /** + * used to change a node's type + * @name set_type(obj, type) + * @param {mixed} obj the node to change + * @param {String} type the new type + * @plugin types + */ + this.set_type = function (obj, type) { + var m = this._model.data, t, t1, t2, old_type, old_icon, k, d, a; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_type(obj[t1], type); + } + return true; + } + t = this.settings.types; + obj = this.get_node(obj); + if(!t[type] || !obj) { return false; } + d = this.get_node(obj, true); + if (d && d.length) { + a = d.children('.jstree-anchor'); + } + old_type = obj.type; + old_icon = this.get_icon(obj); + obj.type = type; + if(old_icon === true || !t[old_type] || (t[old_type].icon !== undefined && old_icon === t[old_type].icon)) { + this.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true); + } + + // remove old type props + if(t[old_type] && t[old_type].li_attr !== undefined && typeof t[old_type].li_attr === 'object') { + for (k in t[old_type].li_attr) { + if (t[old_type].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (k === 'class') { + m[obj.id].li_attr['class'] = (m[obj.id].li_attr['class'] || '').replace(t[old_type].li_attr[k], ''); + if (d) { d.removeClass(t[old_type].li_attr[k]); } + } + else if (m[obj.id].li_attr[k] === t[old_type].li_attr[k]) { + m[obj.id].li_attr[k] = null; + if (d) { d.removeAttr(k); } + } + } + } + } + if(t[old_type] && t[old_type].a_attr !== undefined && typeof t[old_type].a_attr === 'object') { + for (k in t[old_type].a_attr) { + if (t[old_type].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (k === 'class') { + m[obj.id].a_attr['class'] = (m[obj.id].a_attr['class'] || '').replace(t[old_type].a_attr[k], ''); + if (a) { a.removeClass(t[old_type].a_attr[k]); } + } + else if (m[obj.id].a_attr[k] === t[old_type].a_attr[k]) { + if (k === 'href') { + m[obj.id].a_attr[k] = '#'; + if (a) { a.attr('href', '#'); } + } + else { + delete m[obj.id].a_attr[k]; + if (a) { a.removeAttr(k); } + } + } + } + } + } + + // add new props + if(t[type].li_attr !== undefined && typeof t[type].li_attr === 'object') { + for (k in t[type].li_attr) { + if (t[type].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[obj.id].li_attr[k] === undefined) { + m[obj.id].li_attr[k] = t[type].li_attr[k]; + if (d) { + if (k === 'class') { + d.addClass(t[type].li_attr[k]); + } + else { + d.attr(k, t[type].li_attr[k]); + } + } + } + else if (k === 'class') { + m[obj.id].li_attr['class'] = t[type].li_attr[k] + ' ' + m[obj.id].li_attr['class']; + if (d) { d.addClass(t[type].li_attr[k]); } + } + } + } + } + if(t[type].a_attr !== undefined && typeof t[type].a_attr === 'object') { + for (k in t[type].a_attr) { + if (t[type].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[obj.id].a_attr[k] === undefined) { + m[obj.id].a_attr[k] = t[type].a_attr[k]; + if (a) { + if (k === 'class') { + a.addClass(t[type].a_attr[k]); + } + else { + a.attr(k, t[type].a_attr[k]); + } + } + } + else if (k === 'href' && m[obj.id].a_attr[k] === '#') { + m[obj.id].a_attr['href'] = t[type].a_attr['href']; + if (a) { a.attr('href', t[type].a_attr['href']); } + } + else if (k === 'class') { + m[obj.id].a_attr['class'] = t[type].a_attr['class'] + ' ' + m[obj.id].a_attr['class']; + if (a) { a.addClass(t[type].a_attr[k]); } + } + } + } + } + + return true; + }; + }; + // include the types plugin by default + // $.jstree.defaults.plugins.push("types"); + + +/** + * ### Unique plugin + * + * Enforces that no nodes with the same name can coexist as siblings. + */ + + /** + * stores all defaults for the unique plugin + * @name $.jstree.defaults.unique + * @plugin unique + */ + $.jstree.defaults.unique = { + /** + * Indicates if the comparison should be case sensitive. Default is `false`. + * @name $.jstree.defaults.unique.case_sensitive + * @plugin unique + */ + case_sensitive : false, + /** + * A callback executed in the instance's scope when a new node is created and the name is already taken, the two arguments are the conflicting name and the counter. The default will produce results like `New node (2)`. + * @name $.jstree.defaults.unique.duplicate + * @plugin unique + */ + duplicate : function (name, counter) { + return name + ' (' + counter + ')'; + } + }; + + $.jstree.plugins.unique = function (options, parent) { + this.check = function (chk, obj, par, pos, more) { + if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + if(!par || !par.children) { return true; } + var n = chk === "rename_node" ? pos : obj.text, + c = [], + s = this.settings.unique.case_sensitive, + m = this._model.data, i, j; + for(i = 0, j = par.children.length; i < j; i++) { + c.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); + } + if(!s) { n = n.toLowerCase(); } + switch(chk) { + case "delete_node": + return true; + case "rename_node": + i = ($.inArray(n, c) === -1 || (obj.text && obj.text[ s ? 'toString' : 'toLowerCase']() === n)); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_01', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "create_node": + i = ($.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_04', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "copy_node": + i = ($.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_02', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "move_node": + i = ( (obj.parent === par.id && (!more || !more.is_multi)) || $.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_03', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + } + return true; + }; + this.create_node = function (par, node, pos, callback, is_loaded) { + if(!node || node.text === undefined) { + if(par === null) { + par = $.jstree.root; + } + par = this.get_node(par); + if(!par) { + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + } + pos = pos === undefined ? "last" : pos; + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + } + if(!node) { node = {}; } + var tmp, n, dpc, i, j, m = this._model.data, s = this.settings.unique.case_sensitive, cb = this.settings.unique.duplicate; + n = tmp = this.get_string('New node'); + dpc = []; + for(i = 0, j = par.children.length; i < j; i++) { + dpc.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); + } + i = 1; + while($.inArray(s ? n : n.toLowerCase(), dpc) !== -1) { + n = cb.call(this, tmp, (++i)).toString(); + } + node.text = n; + } + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + }; + }; + + // include the unique plugin by default + // $.jstree.defaults.plugins.push("unique"); + + +/** + * ### Wholerow plugin + * + * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers. + */ + + var div = document.createElement('DIV'); + div.setAttribute('unselectable','on'); + div.setAttribute('role','presentation'); + div.className = 'jstree-wholerow'; + div.innerHTML = ' '; + $.jstree.plugins.wholerow = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + this.element + .on('ready.jstree set_state.jstree', $.proxy(function () { + this.hide_dots(); + }, this)) + .on("init.jstree loading.jstree ready.jstree", $.proxy(function () { + //div.style.height = this._data.core.li_height + 'px'; + this.get_container_ul().addClass('jstree-wholerow-ul'); + }, this)) + .on("deselect_all.jstree", $.proxy(function (e, data) { + this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); + }, this)) + .on("changed.jstree", $.proxy(function (e, data) { + this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); + var tmp = false, i, j; + for(i = 0, j = data.selected.length; i < j; i++) { + tmp = this.get_node(data.selected[i], true); + if(tmp && tmp.length) { + tmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); + } + } + }, this)) + .on("open_node.jstree", $.proxy(function (e, data) { + this.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); + }, this)) + .on("hover_node.jstree dehover_node.jstree", $.proxy(function (e, data) { + if(e.type === "hover_node" && this.is_disabled(data.node)) { return; } + this.get_node(data.node, true).children('.jstree-wholerow')[e.type === "hover_node"?"addClass":"removeClass"]('jstree-wholerow-hovered'); + }, this)) + .on("contextmenu.jstree", ".jstree-wholerow", $.proxy(function (e) { + if (this._data.contextmenu) { + e.preventDefault(); + var tmp = $.Event('contextmenu', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey, pageX : e.pageX, pageY : e.pageY }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp); + } + }, this)) + /*! + .on("mousedown.jstree touchstart.jstree", ".jstree-wholerow", function (e) { + if(e.target === e.currentTarget) { + var a = $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor"); + e.target = a[0]; + a.trigger(e); + } + }) + */ + .on("click.jstree", ".jstree-wholerow", function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }) + .on("dblclick.jstree", ".jstree-wholerow", function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('dblclick', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }) + .on("click.jstree", ".jstree-leaf > .jstree-ocl", $.proxy(function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }, this)) + .on("mouseover.jstree", ".jstree-wholerow, .jstree-icon", $.proxy(function (e) { + e.stopImmediatePropagation(); + if(!this.is_disabled(e.currentTarget)) { + this.hover_node(e.currentTarget); + } + return false; + }, this)) + .on("mouseleave.jstree", ".jstree-node", $.proxy(function (e) { + this.dehover_node(e.currentTarget); + }, this)); + }; + this.teardown = function () { + if(this.settings.wholerow) { + this.element.find(".jstree-wholerow").remove(); + } + parent.teardown.call(this); + }; + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var tmp = div.cloneNode(true); + //tmp.style.height = this._data.core.li_height + 'px'; + if($.inArray(obj.id, this._data.core.selected) !== -1) { tmp.className += ' jstree-wholerow-clicked'; } + if(this._data.core.focused && this._data.core.focused === obj.id) { tmp.className += ' jstree-wholerow-hovered'; } + obj.insertBefore(tmp, obj.childNodes[0]); + } + return obj; + }; + }; + // include the wholerow plugin by default + // $.jstree.defaults.plugins.push("wholerow"); + if(document.registerElement && Object && Object.create) { + var proto = Object.create(HTMLElement.prototype); + proto.createdCallback = function () { + var c = { core : {}, plugins : [] }, i; + for(i in $.jstree.plugins) { + if($.jstree.plugins.hasOwnProperty(i) && this.attributes[i]) { + c.plugins.push(i); + if(this.getAttribute(i) && JSON.parse(this.getAttribute(i))) { + c[i] = JSON.parse(this.getAttribute(i)); + } + } + } + for(i in $.jstree.defaults.core) { + if($.jstree.defaults.core.hasOwnProperty(i) && this.attributes[i]) { + c.core[i] = JSON.parse(this.getAttribute(i)) || this.getAttribute(i); + } + } + $(this).jstree(c); + }; + // proto.attributeChangedCallback = function (name, previous, value) { }; + try { + document.registerElement("vakata-jstree", { prototype: proto }); + } catch(ignore) { } + } + +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.min.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.min.js new file mode 100644 index 0000000000..24c420489e --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/jstree.min.js @@ -0,0 +1,6 @@ +/*! jsTree - v3.3.3 - 2016-10-31 - (MIT) */ +!function(a){"use strict";"function"==typeof define&&define.amd?define(["jquery"],a):"undefined"!=typeof module&&module.exports?module.exports=a(require("jquery")):a(jQuery)}(function(a,b){"use strict";if(!a.jstree){var c=0,d=!1,e=!1,f=!1,g=[],h=a("script:last").attr("src"),i=window.document;a.jstree={version:"3.3.3",defaults:{plugins:[]},plugins:{},path:h&&-1!==h.indexOf("/")?h.replace(/\/[^\/]+$/,""):"",idregex:/[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g,root:"#"},a.jstree.create=function(b,d){var e=new a.jstree.core(++c),f=d;return d=a.extend(!0,{},a.jstree.defaults,d),f&&f.plugins&&(d.plugins=f.plugins),a.each(d.plugins,function(a,b){"core"!==a&&(e=e.plugin(b,d[b]))}),a(b).data("jstree",e),e.init(b,d),e},a.jstree.destroy=function(){a(".jstree:jstree").jstree("destroy"),a(i).off(".jstree")},a.jstree.core=function(a){this._id=a,this._cnt=0,this._wrk=null,this._data={core:{themes:{name:!1,dots:!1,icons:!1,ellipsis:!1},selected:[],last_error:{},working:!1,worker_queue:[],focused:null}}},a.jstree.reference=function(b){var c=null,d=null;if(!b||!b.id||b.tagName&&b.nodeType||(b=b.id),!d||!d.length)try{d=a(b)}catch(e){}if(!d||!d.length)try{d=a("#"+b.replace(a.jstree.idregex,"\\$&"))}catch(e){}return d&&d.length&&(d=d.closest(".jstree")).length&&(d=d.data("jstree"))?c=d:a(".jstree").each(function(){var d=a(this).data("jstree");return d&&d._model.data[b]?(c=d,!1):void 0}),c},a.fn.jstree=function(c){var d="string"==typeof c,e=Array.prototype.slice.call(arguments,1),f=null;return c!==!0||this.length?(this.each(function(){var g=a.jstree.reference(this),h=d&&g?g[c]:null;return f=d&&h?h.apply(g,e):null,g||d||c!==b&&!a.isPlainObject(c)||a.jstree.create(this,c),(g&&!d||c===!0)&&(f=g||!1),null!==f&&f!==b?!1:void 0}),null!==f&&f!==b?f:this):!1},a.expr.pseudos.jstree=a.expr.createPseudo(function(c){return function(c){return a(c).hasClass("jstree")&&a(c).data("jstree")!==b}}),a.jstree.defaults.core={data:!1,strings:!1,check_callback:!1,error:a.noop,animation:200,multiple:!0,themes:{name:!1,url:!1,dir:!1,dots:!0,icons:!0,ellipsis:!1,stripes:!1,variant:!1,responsive:!1},expand_selected_onload:!0,worker:!0,force_text:!1,dblclick_toggle:!0},a.jstree.core.prototype={plugin:function(b,c){var d=a.jstree.plugins[b];return d?(this._data[b]={},d.prototype=this,new d(c,this)):this},init:function(b,c){this._model={data:{},changed:[],force_full_redraw:!1,redraw_timeout:!1,default_state:{loaded:!0,opened:!1,selected:!1,disabled:!1}},this._model.data[a.jstree.root]={id:a.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this.element=a(b).addClass("jstree jstree-"+this._id),this.settings=c,this._data.core.ready=!1,this._data.core.loaded=!1,this._data.core.rtl="rtl"===this.element.css("direction"),this.element[this._data.core.rtl?"addClass":"removeClass"]("jstree-rtl"),this.element.attr("role","tree"),this.settings.core.multiple&&this.element.attr("aria-multiselectable",!0),this.element.attr("tabindex")||this.element.attr("tabindex","0"),this.bind(),this.trigger("init"),this._data.core.original_container_html=this.element.find(" > ul > li").clone(!0),this._data.core.original_container_html.find("li").addBack().contents().filter(function(){return 3===this.nodeType&&(!this.nodeValue||/^\s+$/.test(this.nodeValue))}).remove(),this.element.html(""),this.element.attr("aria-activedescendant","j"+this._id+"_loading"),this._data.core.li_height=this.get_container_ul().children("li").first().height()||24,this._data.core.node=this._create_prototype_node(),this.trigger("loading"),this.load_node(a.jstree.root)},destroy:function(a){if(this._wrk)try{window.URL.revokeObjectURL(this._wrk),this._wrk=null}catch(b){}a||this.element.empty(),this.teardown()},_create_prototype_node:function(){var a=i.createElement("LI"),b,c;return a.setAttribute("role","treeitem"),b=i.createElement("I"),b.className="jstree-icon jstree-ocl",b.setAttribute("role","presentation"),a.appendChild(b),b=i.createElement("A"),b.className="jstree-anchor",b.setAttribute("href","#"),b.setAttribute("tabindex","-1"),c=i.createElement("I"),c.className="jstree-icon jstree-themeicon",c.setAttribute("role","presentation"),b.appendChild(c),a.appendChild(b),b=c=null,a},teardown:function(){this.unbind(),this.element.removeClass("jstree").removeData("jstree").find("[class^='jstree']").addBack().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")}),this.element=null},bind:function(){var b="",c=null,d=0;this.element.on("dblclick.jstree",function(a){if(a.target.tagName&&"input"===a.target.tagName.toLowerCase())return!0;if(i.selection&&i.selection.empty)i.selection.empty();else if(window.getSelection){var b=window.getSelection();try{b.removeAllRanges(),b.collapse()}catch(c){}}}).on("mousedown.jstree",a.proxy(function(a){a.target===this.element[0]&&(a.preventDefault(),d=+new Date)},this)).on("mousedown.jstree",".jstree-ocl",function(a){a.preventDefault()}).on("click.jstree",".jstree-ocl",a.proxy(function(a){this.toggle_node(a.target)},this)).on("dblclick.jstree",".jstree-anchor",a.proxy(function(a){return a.target.tagName&&"input"===a.target.tagName.toLowerCase()?!0:void(this.settings.core.dblclick_toggle&&this.toggle_node(a.target))},this)).on("click.jstree",".jstree-anchor",a.proxy(function(b){b.preventDefault(),b.currentTarget!==i.activeElement&&a(b.currentTarget).focus(),this.activate_node(b.currentTarget,b)},this)).on("keydown.jstree",".jstree-anchor",a.proxy(function(b){if(b.target.tagName&&"input"===b.target.tagName.toLowerCase())return!0;if(32!==b.which&&13!==b.which&&(b.shiftKey||b.ctrlKey||b.altKey||b.metaKey))return!0;var c=null;switch(this._data.core.rtl&&(37===b.which?b.which=39:39===b.which&&(b.which=37)),b.which){case 32:b.ctrlKey&&(b.type="click",a(b.currentTarget).trigger(b));break;case 13:b.type="click",a(b.currentTarget).trigger(b);break;case 37:b.preventDefault(),this.is_open(b.currentTarget)?this.close_node(b.currentTarget):(c=this.get_parent(b.currentTarget),c&&c.id!==a.jstree.root&&this.get_node(c,!0).children(".jstree-anchor").focus());break;case 38:b.preventDefault(),c=this.get_prev_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 39:b.preventDefault(),this.is_closed(b.currentTarget)?this.open_node(b.currentTarget,function(a){this.get_node(a,!0).children(".jstree-anchor").focus()}):this.is_open(b.currentTarget)&&(c=this.get_node(b.currentTarget,!0).children(".jstree-children")[0],c&&a(this._firstChild(c)).children(".jstree-anchor").focus());break;case 40:b.preventDefault(),c=this.get_next_dom(b.currentTarget),c&&c.length&&c.children(".jstree-anchor").focus();break;case 106:this.open_all();break;case 36:b.preventDefault(),c=this._firstChild(this.get_container_ul()[0]),c&&a(c).children(".jstree-anchor").filter(":visible").focus();break;case 35:b.preventDefault(),this.element.find(".jstree-anchor").filter(":visible").last().focus();break;case 113:b.preventDefault(),this.edit(b.currentTarget)}},this)).on("load_node.jstree",a.proxy(function(b,c){c.status&&(c.node.id!==a.jstree.root||this._data.core.loaded||(this._data.core.loaded=!0,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.trigger("loaded")),this._data.core.ready||setTimeout(a.proxy(function(){if(this.element&&!this.get_container_ul().find(".jstree-loading").length){if(this._data.core.ready=!0,this._data.core.selected.length){if(this.settings.core.expand_selected_onload){var b=[],c,d;for(c=0,d=this._data.core.selected.length;d>c;c++)b=b.concat(this._model.data[this._data.core.selected[c]].parents);for(b=a.vakata.array_unique(b),c=0,d=b.length;d>c;c++)this.open_node(b[c],!1,0)}this.trigger("changed",{action:"ready",selected:this._data.core.selected})}this.trigger("ready")}},this),0))},this)).on("keypress.jstree",a.proxy(function(d){if(d.target.tagName&&"input"===d.target.tagName.toLowerCase())return!0;c&&clearTimeout(c),c=setTimeout(function(){b=""},500);var e=String.fromCharCode(d.which).toLowerCase(),f=this.element.find(".jstree-anchor").filter(":visible"),g=f.index(i.activeElement)||0,h=!1;if(b+=e,b.length>1){if(f.slice(g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g).each(a.proxy(function(c,d){return 0===a(d).text().toLowerCase().indexOf(b)?(a(d).focus(),h=!0,!1):void 0},this)),h)return}if(new RegExp("^"+e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")+"+$").test(b)){if(f.slice(g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return;if(f.slice(0,g+1).each(a.proxy(function(b,c){return a(c).text().toLowerCase().charAt(0)===e?(a(c).focus(),h=!0,!1):void 0},this)),h)return}},this)).on("init.jstree",a.proxy(function(){var a=this.settings.core.themes;this._data.core.themes.dots=a.dots,this._data.core.themes.stripes=a.stripes,this._data.core.themes.icons=a.icons,this._data.core.themes.ellipsis=a.ellipsis,this.set_theme(a.name||"default",a.url),this.set_theme_variant(a.variant)},this)).on("loading.jstree",a.proxy(function(){this[this._data.core.themes.dots?"show_dots":"hide_dots"](),this[this._data.core.themes.icons?"show_icons":"hide_icons"](),this[this._data.core.themes.stripes?"show_stripes":"hide_stripes"](),this[this._data.core.themes.ellipsis?"show_ellipsis":"hide_ellipsis"]()},this)).on("blur.jstree",".jstree-anchor",a.proxy(function(b){this._data.core.focused=null,a(b.currentTarget).filter(".jstree-hovered").mouseleave(),this.element.attr("tabindex","0")},this)).on("focus.jstree",".jstree-anchor",a.proxy(function(b){var c=this.get_node(b.currentTarget);c&&c.id&&(this._data.core.focused=c.id),this.element.find(".jstree-hovered").not(b.currentTarget).mouseleave(),a(b.currentTarget).mouseenter(),this.element.attr("tabindex","-1")},this)).on("focus.jstree",a.proxy(function(){if(+new Date-d>500&&!this._data.core.focused){d=0;var a=this.get_node(this.element.attr("aria-activedescendant"),!0);a&&a.find("> .jstree-anchor").focus()}},this)).on("mouseenter.jstree",".jstree-anchor",a.proxy(function(a){this.hover_node(a.currentTarget)},this)).on("mouseleave.jstree",".jstree-anchor",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},unbind:function(){this.element.off(".jstree"),a(i).off(".jstree-"+this._id)},trigger:function(a,b){b||(b={}),b.instance=this,this.element.triggerHandler(a.replace(".jstree","")+".jstree",b)},get_container:function(){return this.element},get_container_ul:function(){return this.element.children(".jstree-children").first()},get_string:function(b){var c=this.settings.core.strings;return a.isFunction(c)?c.call(this,b):c&&c[b]?c[b]:b},_firstChild:function(a){a=a?a.firstChild:null;while(null!==a&&1!==a.nodeType)a=a.nextSibling;return a},_nextSibling:function(a){a=a?a.nextSibling:null;while(null!==a&&1!==a.nodeType)a=a.nextSibling;return a},_previousSibling:function(a){a=a?a.previousSibling:null;while(null!==a&&1!==a.nodeType)a=a.previousSibling;return a},get_node:function(b,c){b&&b.id&&(b=b.id);var d;try{if(this._model.data[b])b=this._model.data[b];else if("string"==typeof b&&this._model.data[b.replace(/^#/,"")])b=this._model.data[b.replace(/^#/,"")];else if("string"==typeof b&&(d=a("#"+b.replace(a.jstree.idregex,"\\$&"),this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else if((d=a(b,this.element)).length&&this._model.data[d.closest(".jstree-node").attr("id")])b=this._model.data[d.closest(".jstree-node").attr("id")];else{if(!(d=a(b,this.element)).length||!d.hasClass("jstree"))return!1;b=this._model.data[a.jstree.root]}return c&&(b=b.id===a.jstree.root?this.element:a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)),b}catch(e){return!1}},get_path:function(b,c,d){if(b=b.parents?b:this.get_node(b),!b||b.id===a.jstree.root||!b.parents)return!1;var e,f,g=[];for(g.push(d?b.id:b.text),e=0,f=b.parents.length;f>e;e++)g.push(d?b.parents[e]:this.get_text(b.parents[e]));return g=g.reverse().slice(1),c?g.join(c):g},get_next_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){d=this._firstChild(this.get_container_ul()[0]);while(d&&0===d.offsetHeight)d=this._nextSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}if(b.hasClass("jstree-open")){d=this._firstChild(b.children(".jstree-children")[0]);while(d&&0===d.offsetHeight)d=this._nextSibling(d);if(null!==d)return a(d)}d=b[0];do d=this._nextSibling(d);while(d&&0===d.offsetHeight);return null!==d?a(d):b.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first()},get_prev_dom:function(b,c){var d;if(b=this.get_node(b,!0),b[0]===this.element[0]){d=this.get_container_ul()[0].lastChild;while(d&&0===d.offsetHeight)d=this._previousSibling(d);return d?a(d):!1}if(!b||!b.length)return!1;if(c){d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);return d?a(d):!1}d=b[0];do d=this._previousSibling(d);while(d&&0===d.offsetHeight);if(null!==d){b=a(d);while(b.hasClass("jstree-open"))b=b.children(".jstree-children").first().children(".jstree-node:visible:last");return b}return d=b[0].parentNode.parentNode,d&&d.className&&-1!==d.className.indexOf("jstree-node")?a(d):!1},get_parent:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.parent:!1},get_children_dom:function(a){return a=this.get_node(a,!0),a[0]===this.element[0]?this.get_container_ul().children(".jstree-node"):a&&a.length?a.children(".jstree-children").children(".jstree-node"):!1},is_parent:function(a){return a=this.get_node(a),a&&(a.state.loaded===!1||a.children.length>0)},is_loaded:function(a){return a=this.get_node(a),a&&a.state.loaded},is_loading:function(a){return a=this.get_node(a),a&&a.state&&a.state.loading},is_open:function(a){return a=this.get_node(a),a&&a.state.opened},is_closed:function(a){return a=this.get_node(a),a&&this.is_parent(a)&&!a.state.opened},is_leaf:function(a){return!this.is_parent(a)},load_node:function(b,c){var d,e,f,g,h;if(a.isArray(b))return this._load_nodes(b.slice(),c),!0;if(b=this.get_node(b),!b)return c&&c.call(this,b,!1),!1;if(b.state.loaded){for(b.state.loaded=!1,f=0,g=b.parents.length;g>f;f++)this._model.data[b.parents[f]].children_d=a.vakata.array_filter(this._model.data[b.parents[f]].children_d,function(c){return-1===a.inArray(c,b.children_d)});for(d=0,e=b.children_d.length;e>d;d++)this._model.data[b.children_d[d]].state.selected&&(h=!0),delete this._model.data[b.children_d[d]];h&&(this._data.core.selected=a.vakata.array_filter(this._data.core.selected,function(c){return-1===a.inArray(c,b.children_d)})),b.children=[],b.children_d=[],h&&this.trigger("changed",{action:"load_node",node:b,selected:this._data.core.selected})}return b.state.failed=!1,b.state.loading=!0,this.get_node(b,!0).addClass("jstree-loading").attr("aria-busy",!0),this._load_node(b,a.proxy(function(a){b=this._model.data[b.id],b.state.loading=!1,b.state.loaded=a,b.state.failed=!b.state.loaded;var d=this.get_node(b,!0),e=0,f=0,g=this._model.data,h=!1;for(e=0,f=b.children.length;f>e;e++)if(g[b.children[e]]&&!g[b.children[e]].state.hidden){h=!0;break}b.state.loaded&&d&&d.length&&(d.removeClass("jstree-closed jstree-open jstree-leaf"),h?"#"!==b.id&&d.addClass(b.state.opened?"jstree-open":"jstree-closed"):d.addClass("jstree-leaf")),d.removeClass("jstree-loading").attr("aria-busy",!1),this.trigger("load_node",{node:b,status:a}),c&&c.call(this,b,a)},this)),!0},_load_nodes:function(a,b,c,d){var e=!0,f=function(){this._load_nodes(a,b,!0)},g=this._model.data,h,i,j=[];for(h=0,i=a.length;i>h;h++)g[a[h]]&&(!g[a[h]].state.loaded&&!g[a[h]].state.failed||!c&&d)&&(this.is_loading(a[h])||this.load_node(a[h],f),e=!1);if(e){for(h=0,i=a.length;i>h;h++)g[a[h]]&&g[a[h]].state.loaded&&j.push(a[h]);b&&!b.done&&(b.call(this,j),b.done=!0)}},load_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d=[],e=this._model.data,f=e[b.id].children_d,g,h;for(b.state&&!b.state.loaded&&d.push(b.id),g=0,h=f.length;h>g;g++)e[f[g]]&&e[f[g]].state&&!e[f[g]].state.loaded&&d.push(f[g]);d.length?this._load_nodes(d,function(){this.load_all(b,c)}):(c&&c.call(this,b),this.trigger("load_all",{node:b}))},_load_node:function(b,c){var d=this.settings.core.data,e,f=function g(){return 3!==this.nodeType&&8!==this.nodeType};return d?a.isFunction(d)?d.call(this,b,a.proxy(function(d){d===!1?c.call(this,!1):this["string"==typeof d?"_append_html_data":"_append_json_data"](b,"string"==typeof d?a(a.parseHTML(d)).filter(f):d,function(a){c.call(this,a)})},this)):"object"==typeof d?d.url?(d=a.extend(!0,{},d),a.isFunction(d.url)&&(d.url=d.url.call(this,b)),a.isFunction(d.data)&&(d.data=d.data.call(this,b)),a.ajax(d).done(a.proxy(function(d,e,g){var h=g.getResponseHeader("Content-Type");return h&&-1!==h.indexOf("json")||"object"==typeof d?this._append_json_data(b,d,function(a){c.call(this,a)}):h&&-1!==h.indexOf("html")||"string"==typeof d?this._append_html_data(b,a(a.parseHTML(d)).filter(f),function(a){c.call(this,a)}):(this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:g})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))},this)).fail(a.proxy(function(a){c.call(this,!1),this._data.core.last_error={error:"ajax",plugin:"core",id:"core_04",reason:"Could not load node",data:JSON.stringify({id:b.id,xhr:a})},this.settings.core.error.call(this,this._data.core.last_error)},this))):(e=a.isArray(d)||a.isPlainObject(d)?JSON.parse(JSON.stringify(d)):d,b.id===a.jstree.root?this._append_json_data(b,e,function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_05",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1))):"string"==typeof d?b.id===a.jstree.root?this._append_html_data(b,a(a.parseHTML(d)).filter(f),function(a){c.call(this,a)}):(this._data.core.last_error={error:"nodata",plugin:"core",id:"core_06",reason:"Could not load node",data:JSON.stringify({id:b.id})},this.settings.core.error.call(this,this._data.core.last_error),c.call(this,!1)):c.call(this,!1):b.id===a.jstree.root?this._append_html_data(b,this._data.core.original_container_html.clone(!0),function(a){c.call(this,a)}):c.call(this,!1)},_node_changed:function(a){a=this.get_node(a),a&&this._model.changed.push(a.id)},_append_html_data:function(b,c,d){b=this.get_node(b),b.children=[],b.children_d=[];var e=c.is("ul")?c.children():c,f=b.id,g=[],h=[],i=this._model.data,j=i[f],k=this._data.core.selected.length,l,m,n;for(e.each(a.proxy(function(b,c){l=this._parse_model_from_html(a(c),f,j.parents.concat()),l&&(g.push(l),h.push(l),i[l].children_d.length&&(h=h.concat(i[l].children_d)))},this)),j.children=g,j.children_d=h,m=0,n=j.parents.length;n>m;m++)i[j.parents[m]].children_d=i[j.parents[m]].children_d.concat(h);this.trigger("model",{nodes:h,parent:f}),f!==a.jstree.root?(this._node_changed(f),this.redraw()):(this.get_container_ul().children(".jstree-initial-node").remove(),this.redraw(!0)),this._data.core.selected.length!==k&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)},_append_json_data:function(b,c,d,e){if(null!==this.element){b=this.get_node(b),b.children=[],b.children_d=[],c.d&&(c=c.d,"string"==typeof c&&(c=JSON.parse(c))),a.isArray(c)||(c=[c]);var f=null,g={df:this._model.default_state,dat:c,par:b.id,m:this._model.data,t_id:this._id,t_cnt:this._cnt,sel:this._data.core.selected},h=function(a,b){a.data&&(a=a.data);var c=a.dat,d=a.par,e=[],f=[],g=[],h=a.df,i=a.t_id,j=a.t_cnt,k=a.m,l=k[d],m=a.sel,n,o,p,q,r=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=a.id.toString(),f,i,j,l,m={id:e,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(f in h)h.hasOwnProperty(f)&&(m.state[f]=h[f]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(m.icon=a.data.jstree.icon),(m.icon===b||null===m.icon||""===m.icon)&&(m.icon=!0),a&&a.data&&(m.data=a.data,a.data.jstree))for(f in a.data.jstree)a.data.jstree.hasOwnProperty(f)&&(m.state[f]=a.data.jstree[f]);if(a&&"object"==typeof a.state)for(f in a.state)a.state.hasOwnProperty(f)&&(m.state[f]=a.state[f]);if(a&&"object"==typeof a.li_attr)for(f in a.li_attr)a.li_attr.hasOwnProperty(f)&&(m.li_attr[f]=a.li_attr[f]);if(m.li_attr.id||(m.li_attr.id=e),a&&"object"==typeof a.a_attr)for(f in a.a_attr)a.a_attr.hasOwnProperty(f)&&(m.a_attr[f]=a.a_attr[f]);for(a&&a.children&&a.children===!0&&(m.state.loaded=!1,m.children=[],m.children_d=[]),k[m.id]=m,f=0,i=m.children.length;i>f;f++)j=r(k[m.children[f]],m.id,d),l=k[j],m.children_d.push(j),l.children_d.length&&(m.children_d=m.children_d.concat(l.children_d));return delete a.data,delete a.children,k[m.id].original=a,m.state.selected&&g.push(m.id),m.id},s=function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=!1,f,l,m,n,o;do e="j"+i+"_"+ ++j;while(k[e]);o={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(f in h)h.hasOwnProperty(f)&&(o.state[f]=h[f]);if(a&&a.id&&(o.id=a.id.toString()),a&&a.text&&(o.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(o.icon=a.data.jstree.icon),(o.icon===b||null===o.icon||""===o.icon)&&(o.icon=!0),a&&a.data&&(o.data=a.data,a.data.jstree))for(f in a.data.jstree)a.data.jstree.hasOwnProperty(f)&&(o.state[f]=a.data.jstree[f]);if(a&&"object"==typeof a.state)for(f in a.state)a.state.hasOwnProperty(f)&&(o.state[f]=a.state[f]);if(a&&"object"==typeof a.li_attr)for(f in a.li_attr)a.li_attr.hasOwnProperty(f)&&(o.li_attr[f]=a.li_attr[f]);if(o.li_attr.id&&!o.id&&(o.id=o.li_attr.id.toString()),o.id||(o.id=e),o.li_attr.id||(o.li_attr.id=o.id),a&&"object"==typeof a.a_attr)for(f in a.a_attr)a.a_attr.hasOwnProperty(f)&&(o.a_attr[f]=a.a_attr[f]);if(a&&a.children&&a.children.length){for(f=0,l=a.children.length;l>f;f++)m=s(a.children[f],o.id,d),n=k[m],o.children.push(m),n.children_d.length&&(o.children_d=o.children_d.concat(n.children_d));o.children_d=o.children_d.concat(o.children)}return a&&a.children&&a.children===!0&&(o.state.loaded=!1,o.children=[],o.children_d=[]),delete a.data,delete a.children,o.original=a,k[o.id]=o,o.state.selected&&g.push(o.id),o.id};if(c.length&&c[0].id!==b&&c[0].parent!==b){for(o=0,p=c.length;p>o;o++)c[o].children||(c[o].children=[]),k[c[o].id.toString()]=c[o];for(o=0,p=c.length;p>o;o++)k[c[o].parent.toString()].children.push(c[o].id.toString()),l.children_d.push(c[o].id.toString());for(o=0,p=l.children.length;p>o;o++)n=r(k[l.children[o]],d,l.parents.concat()),f.push(n),k[n].children_d.length&&(f=f.concat(k[n].children_d));for(o=0,p=l.parents.length;p>o;o++)k[l.parents[o]].children_d=k[l.parents[o]].children_d.concat(f);q={cnt:j,mod:k,sel:m,par:d,dpc:f,add:g}}else{for(o=0,p=c.length;p>o;o++)n=s(c[o],d,l.parents.concat()),n&&(e.push(n),f.push(n),k[n].children_d.length&&(f=f.concat(k[n].children_d)));for(l.children=e,l.children_d=f,o=0,p=l.parents.length;p>o;o++)k[l.parents[o]].children_d=k[l.parents[o]].children_d.concat(f);q={cnt:j,mod:k,sel:m,par:d,dpc:f,add:g}}return"undefined"!=typeof window&&"undefined"!=typeof window.document?q:void postMessage(q)},i=function(b,c){if(null!==this.element){this._cnt=b.cnt;var e,f=this._model.data;for(e in f)f.hasOwnProperty(e)&&f[e].state&&f[e].state.loading&&b.mod[e]&&(b.mod[e].state.loading=!0);if(this._model.data=b.mod,c){var g,h=b.add,i=b.sel,j=this._data.core.selected.slice();if(f=this._model.data,i.length!==j.length||a.vakata.array_unique(i.concat(j)).length!==i.length){for(e=0,g=i.length;g>e;e++)-1===a.inArray(i[e],h)&&-1===a.inArray(i[e],j)&&(f[i[e]].state.selected=!1);for(e=0,g=j.length;g>e;e++)-1===a.inArray(j[e],i)&&(f[j[e]].state.selected=!0)}}b.add.length&&(this._data.core.selected=this._data.core.selected.concat(b.add)),this.trigger("model",{nodes:b.dpc,parent:b.par}),b.par!==a.jstree.root?(this._node_changed(b.par),this.redraw()):this.redraw(!0),b.add.length&&this.trigger("changed",{action:"model",selected:this._data.core.selected}),d.call(this,!0)}};if(this.settings.core.worker&&window.Blob&&window.URL&&window.Worker)try{null===this._wrk&&(this._wrk=window.URL.createObjectURL(new window.Blob(["self.onmessage = "+h.toString()],{type:"text/javascript"}))),!this._data.core.working||e?(this._data.core.working=!0,f=new window.Worker(this._wrk),f.onmessage=a.proxy(function(a){i.call(this,a.data,!0);try{f.terminate(),f=null}catch(b){}this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1},this),g.par?f.postMessage(g):this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1):this._data.core.worker_queue.push([b,c,d,!0])}catch(j){i.call(this,h(g),!1),this._data.core.worker_queue.length?this._append_json_data.apply(this,this._data.core.worker_queue.shift()):this._data.core.working=!1}else i.call(this,h(g),!1)}},_parse_model_from_html:function(c,d,e){e=e?[].concat(e):[],d&&e.unshift(d);var f,g,h=this._model.data,i={id:!1,text:!1,icon:!0,parent:d,parents:e,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1},j,k,l;for(j in this._model.default_state)this._model.default_state.hasOwnProperty(j)&&(i.state[j]=this._model.default_state[j]);if(k=a.vakata.attributes(c,!0),a.each(k,function(b,c){return c=a.trim(c),c.length?(i.li_attr[b]=c,void("id"===b&&(i.id=c.toString()))):!0}),k=c.children("a").first(),k.length&&(k=a.vakata.attributes(k,!0),a.each(k,function(b,c){c=a.trim(c),c.length&&(i.a_attr[b]=c)})),k=c.children("a").first().length?c.children("a").first().clone():c.clone(),k.children("ins, i, ul").remove(),k=k.html(),k=a("
      ").html(k),i.text=this.settings.core.force_text?k.text():k.html(),k=c.data(),i.data=k?a.extend(!0,{},k):null,i.state.opened=c.hasClass("jstree-open"),i.state.selected=c.children("a").hasClass("jstree-clicked"),i.state.disabled=c.children("a").hasClass("jstree-disabled"),i.data&&i.data.jstree)for(j in i.data.jstree)i.data.jstree.hasOwnProperty(j)&&(i.state[j]=i.data.jstree[j]);k=c.children("a").children(".jstree-themeicon"),k.length&&(i.icon=k.hasClass("jstree-themeicon-hidden")?!1:k.attr("rel")),i.state.icon!==b&&(i.icon=i.state.icon),(i.icon===b||null===i.icon||""===i.icon)&&(i.icon=!0),k=c.children("ul").children("li");do l="j"+this._id+"_"+ ++this._cnt;while(h[l]);return i.id=i.li_attr.id?i.li_attr.id.toString():l,k.length?(k.each(a.proxy(function(b,c){f=this._parse_model_from_html(a(c),i.id,e),g=this._model.data[f],i.children.push(f),g.children_d.length&&(i.children_d=i.children_d.concat(g.children_d))},this)),i.children_d=i.children_d.concat(i.children)):c.hasClass("jstree-closed")&&(i.state.loaded=!1),i.li_attr["class"]&&(i.li_attr["class"]=i.li_attr["class"].replace("jstree-closed","").replace("jstree-open","")),i.a_attr["class"]&&(i.a_attr["class"]=i.a_attr["class"].replace("jstree-clicked","").replace("jstree-disabled","")),h[i.id]=i,i.state.selected&&this._data.core.selected.push(i.id),i.id},_parse_model_from_flat_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=a.id.toString(),f=this._model.data,g=this._model.default_state,h,i,j,k,l={id:e,text:a.text||"",icon:a.icon!==b?a.icon:!0,parent:c,parents:d,children:a.children||[],children_d:a.children_d||[],data:a.data,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(h in g)g.hasOwnProperty(h)&&(l.state[h]=g[h]);if(a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(l.icon=a.data.jstree.icon),(l.icon===b||null===l.icon||""===l.icon)&&(l.icon=!0),a&&a.data&&(l.data=a.data,a.data.jstree))for(h in a.data.jstree)a.data.jstree.hasOwnProperty(h)&&(l.state[h]=a.data.jstree[h]);if(a&&"object"==typeof a.state)for(h in a.state)a.state.hasOwnProperty(h)&&(l.state[h]=a.state[h]);if(a&&"object"==typeof a.li_attr)for(h in a.li_attr)a.li_attr.hasOwnProperty(h)&&(l.li_attr[h]=a.li_attr[h]);if(l.li_attr.id||(l.li_attr.id=e),a&&"object"==typeof a.a_attr)for(h in a.a_attr)a.a_attr.hasOwnProperty(h)&&(l.a_attr[h]=a.a_attr[h]);for(a&&a.children&&a.children===!0&&(l.state.loaded=!1,l.children=[],l.children_d=[]),f[l.id]=l,h=0,i=l.children.length;i>h;h++)j=this._parse_model_from_flat_json(f[l.children[h]],l.id,d),k=f[j],l.children_d.push(j),k.children_d.length&&(l.children_d=l.children_d.concat(k.children_d));return delete a.data,delete a.children,f[l.id].original=a,l.state.selected&&this._data.core.selected.push(l.id),l.id},_parse_model_from_json:function(a,c,d){d=d?d.concat():[],c&&d.unshift(c);var e=!1,f,g,h,i,j=this._model.data,k=this._model.default_state,l;do e="j"+this._id+"_"+ ++this._cnt;while(j[e]);l={id:!1,text:"string"==typeof a?a:"",icon:"object"==typeof a&&a.icon!==b?a.icon:!0,parent:c,parents:d,children:[],children_d:[],data:null,state:{},li_attr:{id:!1},a_attr:{href:"#"},original:!1};for(f in k)k.hasOwnProperty(f)&&(l.state[f]=k[f]);if(a&&a.id&&(l.id=a.id.toString()),a&&a.text&&(l.text=a.text),a&&a.data&&a.data.jstree&&a.data.jstree.icon&&(l.icon=a.data.jstree.icon),(l.icon===b||null===l.icon||""===l.icon)&&(l.icon=!0),a&&a.data&&(l.data=a.data,a.data.jstree))for(f in a.data.jstree)a.data.jstree.hasOwnProperty(f)&&(l.state[f]=a.data.jstree[f]);if(a&&"object"==typeof a.state)for(f in a.state)a.state.hasOwnProperty(f)&&(l.state[f]=a.state[f]);if(a&&"object"==typeof a.li_attr)for(f in a.li_attr)a.li_attr.hasOwnProperty(f)&&(l.li_attr[f]=a.li_attr[f]);if(l.li_attr.id&&!l.id&&(l.id=l.li_attr.id.toString()),l.id||(l.id=e),l.li_attr.id||(l.li_attr.id=l.id),a&&"object"==typeof a.a_attr)for(f in a.a_attr)a.a_attr.hasOwnProperty(f)&&(l.a_attr[f]=a.a_attr[f]);if(a&&a.children&&a.children.length){for(f=0,g=a.children.length;g>f;f++)h=this._parse_model_from_json(a.children[f],l.id,d),i=j[h],l.children.push(h),i.children_d.length&&(l.children_d=l.children_d.concat(i.children_d));l.children_d=l.children_d.concat(l.children)}return a&&a.children&&a.children===!0&&(l.state.loaded=!1,l.children=[],l.children_d=[]),delete a.data,delete a.children,l.original=a,j[l.id]=l,l.state.selected&&this._data.core.selected.push(l.id),l.id},_redraw:function(){var b=this._model.force_full_redraw?this._model.data[a.jstree.root].children.concat([]):this._model.changed.concat([]),c=i.createElement("UL"),d,e,f,g=this._data.core.focused;for(e=0,f=b.length;f>e;e++)d=this.redraw_node(b[e],!0,this._model.force_full_redraw),d&&this._model.force_full_redraw&&c.appendChild(d);this._model.force_full_redraw&&(c.className=this.get_container_ul()[0].className,c.setAttribute("role","group"),this.element.empty().append(c)),null!==g&&(d=this.get_node(g,!0),d&&d.length&&d.children(".jstree-anchor")[0]!==i.activeElement?d.children(".jstree-anchor").focus():this._data.core.focused=null),this._model.force_full_redraw=!1,this._model.changed=[],this.trigger("redraw",{nodes:b})},redraw:function(a){a&&(this._model.force_full_redraw=!0),this._redraw()},draw_children:function(b){var c=this.get_node(b),d=!1,e=!1,f=!1,g=i;if(!c)return!1;if(c.id===a.jstree.root)return this.redraw(!0);if(b=this.get_node(b,!0),!b||!b.length)return!1;if(b.children(".jstree-children").remove(),b=b[0],c.children.length&&c.state.loaded){for(f=g.createElement("UL"),f.setAttribute("role","group"),f.className="jstree-children",d=0,e=c.children.length;e>d;d++)f.appendChild(this.redraw_node(c.children[d],!0,!0));b.appendChild(f)}},redraw_node:function(b,c,d,e){var f=this.get_node(b),g=!1,h=!1,j=!1,k=!1,l=!1,m=!1,n="",o=i,p=this._model.data,q=!1,r=!1,s=null,t=0,u=0,v=!1,w=!1; +if(!f)return!1;if(f.id===a.jstree.root)return this.redraw(!0);if(c=c||0===f.children.length,b=i.querySelector?this.element[0].querySelector("#"+(-1!=="0123456789".indexOf(f.id[0])?"\\3"+f.id[0]+" "+f.id.substr(1).replace(a.jstree.idregex,"\\$&"):f.id.replace(a.jstree.idregex,"\\$&"))):i.getElementById(f.id))b=a(b),d||(g=b.parent().parent()[0],g===this.element[0]&&(g=null),h=b.index()),c||!f.children.length||b.children(".jstree-children").length||(c=!0),c||(j=b.children(".jstree-children")[0]),q=b.children(".jstree-anchor")[0]===i.activeElement,b.remove();else if(c=!0,!d){if(g=f.parent!==a.jstree.root?a("#"+f.parent.replace(a.jstree.idregex,"\\$&"),this.element)[0]:null,!(null===g||g&&p[f.parent].state.opened))return!1;h=a.inArray(f.id,null===g?p[a.jstree.root].children:p[f.parent].children)}b=this._data.core.node.cloneNode(!0),n="jstree-node ";for(k in f.li_attr)if(f.li_attr.hasOwnProperty(k)){if("id"===k)continue;"class"!==k?b.setAttribute(k,f.li_attr[k]):n+=f.li_attr[k]}for(f.a_attr.id||(f.a_attr.id=f.id+"_anchor"),b.setAttribute("aria-selected",!!f.state.selected),b.setAttribute("aria-level",f.parents.length),b.setAttribute("aria-labelledby",f.a_attr.id),f.state.disabled&&b.setAttribute("aria-disabled",!0),k=0,l=f.children.length;l>k;k++)if(!p[f.children[k]].state.hidden){v=!0;break}if(null!==f.parent&&p[f.parent]&&!f.state.hidden&&(k=a.inArray(f.id,p[f.parent].children),w=f.id,-1!==k))for(k++,l=p[f.parent].children.length;l>k;k++)if(p[p[f.parent].children[k]].state.hidden||(w=p[f.parent].children[k]),w!==f.id)break;f.state.hidden&&(n+=" jstree-hidden"),f.state.loaded&&!v?n+=" jstree-leaf":(n+=f.state.opened&&f.state.loaded?" jstree-open":" jstree-closed",b.setAttribute("aria-expanded",f.state.opened&&f.state.loaded)),w===f.id&&(n+=" jstree-last"),b.id=f.id,b.className=n,n=(f.state.selected?" jstree-clicked":"")+(f.state.disabled?" jstree-disabled":"");for(l in f.a_attr)if(f.a_attr.hasOwnProperty(l)){if("href"===l&&"#"===f.a_attr[l])continue;"class"!==l?b.childNodes[1].setAttribute(l,f.a_attr[l]):n+=" "+f.a_attr[l]}if(n.length&&(b.childNodes[1].className="jstree-anchor "+n),(f.icon&&f.icon!==!0||f.icon===!1)&&(f.icon===!1?b.childNodes[1].childNodes[0].className+=" jstree-themeicon-hidden":-1===f.icon.indexOf("/")&&-1===f.icon.indexOf(".")?b.childNodes[1].childNodes[0].className+=" "+f.icon+" jstree-themeicon-custom":(b.childNodes[1].childNodes[0].style.backgroundImage='url("'+f.icon+'")',b.childNodes[1].childNodes[0].style.backgroundPosition="center center",b.childNodes[1].childNodes[0].style.backgroundSize="auto",b.childNodes[1].childNodes[0].className+=" jstree-themeicon-custom")),this.settings.core.force_text?b.childNodes[1].appendChild(o.createTextNode(f.text)):b.childNodes[1].innerHTML+=f.text,c&&f.children.length&&(f.state.opened||e)&&f.state.loaded){for(m=o.createElement("UL"),m.setAttribute("role","group"),m.className="jstree-children",k=0,l=f.children.length;l>k;k++)m.appendChild(this.redraw_node(f.children[k],c,!0));b.appendChild(m)}if(j&&b.appendChild(j),!d){for(g||(g=this.element[0]),k=0,l=g.childNodes.length;l>k;k++)if(g.childNodes[k]&&g.childNodes[k].className&&-1!==g.childNodes[k].className.indexOf("jstree-children")){s=g.childNodes[k];break}s||(s=o.createElement("UL"),s.setAttribute("role","group"),s.className="jstree-children",g.appendChild(s)),g=s,hf;f++)this.open_node(c[f],d,e);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(e=e===b?this.settings.core.animation:e,this.is_closed(c)?this.is_loaded(c)?(h=this.get_node(c,!0),i=this,h.length&&(e&&h.children(".jstree-children").length&&h.children(".jstree-children").stop(!0,!0),c.children.length&&!this._firstChild(h.children(".jstree-children")[0])&&this.draw_children(c),e?(this.trigger("before_open",{node:c}),h.children(".jstree-children").css("display","none").end().removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded",!0).children(".jstree-children").stop(!0,!0).slideDown(e,function(){this.style.display="",i.element&&i.trigger("after_open",{node:c})})):(this.trigger("before_open",{node:c}),h[0].className=h[0].className.replace("jstree-closed","jstree-open"),h[0].setAttribute("aria-expanded",!0))),c.state.opened=!0,d&&d.call(this,c,!0),h.length||this.trigger("before_open",{node:c}),this.trigger("open_node",{node:c}),e&&h.length||this.trigger("after_open",{node:c}),!0):this.is_loading(c)?setTimeout(a.proxy(function(){this.open_node(c,d,e)},this),500):void this.load_node(c,function(a,b){return b?this.open_node(a,d,e):d?d.call(this,a,!1):!1}):(d&&d.call(this,c,!1),!1)):!1},_open_to:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c,d,e=b.parents;for(c=0,d=e.length;d>c;c+=1)c!==a.jstree.root&&this.open_node(e[c],!1,0);return a("#"+b.id.replace(a.jstree.idregex,"\\$&"),this.element)},close_node:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.close_node(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?this.is_closed(c)?!1:(d=d===b?this.settings.core.animation:d,g=this,h=this.get_node(c,!0),c.state.opened=!1,this.trigger("close_node",{node:c}),void(h.length?d?h.children(".jstree-children").attr("style","display:block !important").end().removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded",!1).children(".jstree-children").stop(!0,!0).slideUp(d,function(){this.style.display="",h.children(".jstree-children").remove(),g.element&&g.trigger("after_close",{node:c})}):(h[0].className=h[0].className.replace("jstree-open","jstree-closed"),h.attr("aria-expanded",!1).children(".jstree-children").remove(),this.trigger("after_close",{node:c})):this.trigger("after_close",{node:c}))):!1},toggle_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.toggle_node(b[c]);return!0}return this.is_closed(b)?this.open_node(b):this.is_open(b)?this.close_node(b):void 0},open_all:function(b,c,d){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var e=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0),f,g,h;if(!e.length){for(f=0,g=b.children_d.length;g>f;f++)this.is_closed(this._model.data[b.children_d[f]])&&(this._model.data[b.children_d[f]].state.opened=!0);return this.trigger("open_all",{node:b})}d=d||e,h=this,e=this.is_closed(b)?e.find(".jstree-closed").addBack():e.find(".jstree-closed"),e.each(function(){h.open_node(this,function(a,b){b&&this.is_parent(a)&&this.open_all(a,c,d)},c||0)}),0===d.find(".jstree-closed").length&&this.trigger("open_all",{node:this.get_node(d)})},close_all:function(b,c){if(b||(b=a.jstree.root),b=this.get_node(b),!b)return!1;var d=b.id===a.jstree.root?this.get_container_ul():this.get_node(b,!0),e=this,f,g;for(d.length&&(d=this.is_open(b)?d.find(".jstree-open").addBack():d.find(".jstree-open"),a(d.get().reverse()).each(function(){e.close_node(this,c||0)})),f=0,g=b.children_d.length;g>f;f++)this._model.data[b.children_d[f]].state.opened=!1;this.trigger("close_all",{node:b})},is_disabled:function(a){return a=this.get_node(a),a&&a.state&&a.state.disabled},enable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!1,this.get_node(b,!0).children(".jstree-anchor").removeClass("jstree-disabled").attr("aria-disabled",!1),void this.trigger("enable_node",{node:b})):!1},disable_node:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_node(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.state.disabled=!0,this.get_node(b,!0).children(".jstree-anchor").addClass("jstree-disabled").attr("aria-disabled",!0),void this.trigger("disable_node",{node:b})):!1},is_hidden:function(a){return a=this.get_node(a),a.state.hidden===!0},hide_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.hide_node(b[d],!0);return c||this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden||(b.state.hidden=!0,this._node_changed(b.parent),c||this.redraw(),this.trigger("hide_node",{node:b}))):!1},show_node:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.show_node(b[d],!0);return c||this.redraw(),!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?void(b.state.hidden&&(b.state.hidden=!1,this._node_changed(b.parent),c||this.redraw(),this.trigger("show_node",{node:b}))):!1},hide_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&!d[c].state.hidden&&(d[c].state.hidden=!0,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("hide_all",{nodes:e}),e},show_all:function(b){var c,d=this._model.data,e=[];for(c in d)d.hasOwnProperty(c)&&c!==a.jstree.root&&d[c].state.hidden&&(d[c].state.hidden=!1,e.push(c));return this._model.force_full_redraw=!0,b||this.redraw(),this.trigger("show_all",{nodes:e}),e},activate_node:function(a,c){if(this.is_disabled(a))return!1;if(c&&"object"==typeof c||(c={}),this._data.core.last_clicked=this._data.core.last_clicked&&this._data.core.last_clicked.id!==b?this.get_node(this._data.core.last_clicked.id):null,this._data.core.last_clicked&&!this._data.core.last_clicked.state.selected&&(this._data.core.last_clicked=null),!this._data.core.last_clicked&&this._data.core.selected.length&&(this._data.core.last_clicked=this.get_node(this._data.core.selected[this._data.core.selected.length-1])),this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&(!c.shiftKey||this._data.core.last_clicked&&this.get_parent(a)&&this.get_parent(a)===this._data.core.last_clicked.parent))if(c.shiftKey){var d=this.get_node(a).id,e=this._data.core.last_clicked.id,f=this.get_node(this._data.core.last_clicked.parent).children,g=!1,h,i;for(h=0,i=f.length;i>h;h+=1)f[h]===d&&(g=!g),f[h]===e&&(g=!g),this.is_disabled(f[h])||!g&&f[h]!==d&&f[h]!==e?this.deselect_node(f[h],!0,c):this.is_hidden(f[h])||this.select_node(f[h],!0,!1,c);this.trigger("changed",{action:"select_node",node:this.get_node(a),selected:this._data.core.selected,event:c})}else this.is_selected(a)?this.deselect_node(a,!1,c):this.select_node(a,!1,!1,c);else!this.settings.core.multiple&&(c.metaKey||c.ctrlKey||c.shiftKey)&&this.is_selected(a)?this.deselect_node(a,!1,c):(this.deselect_all(!0),this.select_node(a,!1,!1,c),this._data.core.last_clicked=this.get_node(a));this.trigger("activate_node",{node:this.get_node(a),event:c})},hover_node:function(a){if(a=this.get_node(a,!0),!a||!a.length||a.children(".jstree-hovered").length)return!1;var b=this.element.find(".jstree-hovered"),c=this.element;b&&b.length&&this.dehover_node(b),a.children(".jstree-anchor").addClass("jstree-hovered"),this.trigger("hover_node",{node:this.get_node(a)}),setTimeout(function(){c.attr("aria-activedescendant",a[0].id)},0)},dehover_node:function(a){return a=this.get_node(a,!0),a&&a.length&&a.children(".jstree-hovered").length?(a.children(".jstree-anchor").removeClass("jstree-hovered"),void this.trigger("dehover_node",{node:this.get_node(a)})):!1},select_node:function(b,c,d,e){var f,g,h,i;if(a.isArray(b)){for(b=b.slice(),g=0,h=b.length;h>g;g++)this.select_node(b[g],c,d,e);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.selected||(b.state.selected=!0,this._data.core.selected.push(b.id),d||(f=this._open_to(b)),f&&f.length&&f.attr("aria-selected",!0).children(".jstree-anchor").addClass("jstree-clicked"),this.trigger("select_node",{node:b,selected:this._data.core.selected,event:e}),c||this.trigger("changed",{action:"select_node",node:b,selected:this._data.core.selected,event:e})))):!1},deselect_node:function(b,c,d){var e,f,g;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.deselect_node(b[e],c,d);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(g=this.get_node(b,!0),void(b.state.selected&&(b.state.selected=!1,this._data.core.selected=a.vakata.array_remove_item(this._data.core.selected,b.id),g.length&&g.attr("aria-selected",!1).children(".jstree-anchor").removeClass("jstree-clicked"),this.trigger("deselect_node",{node:b,selected:this._data.core.selected,event:d}),c||this.trigger("changed",{action:"deselect_node",node:b,selected:this._data.core.selected,event:d})))):!1},select_all:function(b){var c=this._data.core.selected.concat([]),d,e;for(this._data.core.selected=this._model.data[a.jstree.root].children_d.concat(),d=0,e=this._data.core.selected.length;e>d;d++)this._model.data[this._data.core.selected[d]]&&(this._model.data[this._data.core.selected[d]].state.selected=!0);this.redraw(!0),this.trigger("select_all",{selected:this._data.core.selected}),b||this.trigger("changed",{action:"select_all",selected:this._data.core.selected,old_selection:c})},deselect_all:function(a){var b=this._data.core.selected.concat([]),c,d;for(c=0,d=this._data.core.selected.length;d>c;c++)this._model.data[this._data.core.selected[c]]&&(this._model.data[this._data.core.selected[c]].state.selected=!1);this._data.core.selected=[],this.element.find(".jstree-clicked").removeClass("jstree-clicked").parent().attr("aria-selected",!1),this.trigger("deselect_all",{selected:this._data.core.selected,node:b}),a||this.trigger("changed",{action:"deselect_all",selected:this._data.core.selected,old_selection:b})},is_selected:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.selected:!1},get_selected:function(b){return b?a.map(this._data.core.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.core.selected.slice()},get_top_selected:function(b){var c=this.get_selected(!0),d={},e,f,g,h;for(e=0,f=c.length;f>e;e++)d[c[e].id]=c[e];for(e=0,f=c.length;f>e;e++)for(g=0,h=c[e].children_d.length;h>g;g++)d[c[e].children_d[g]]&&delete d[c[e].children_d[g]];c=[];for(e in d)d.hasOwnProperty(e)&&c.push(e);return b?a.map(c,a.proxy(function(a){return this.get_node(a)},this)):c},get_bottom_selected:function(b){var c=this.get_selected(!0),d=[],e,f;for(e=0,f=c.length;f>e;e++)c[e].children.length||d.push(c[e].id);return b?a.map(d,a.proxy(function(a){return this.get_node(a)},this)):d},get_state:function(){var b={core:{open:[],scroll:{left:this.element.scrollLeft(),top:this.element.scrollTop()},selected:[]}},c;for(c in this._model.data)this._model.data.hasOwnProperty(c)&&c!==a.jstree.root&&(this._model.data[c].state.opened&&b.core.open.push(c),this._model.data[c].state.selected&&b.core.selected.push(c));return b},set_state:function(c,d){if(c){if(c.core){var e,f,g,h,i;if(c.core.open)return a.isArray(c.core.open)&&c.core.open.length?this._load_nodes(c.core.open,function(a){this.open_node(a,!1,0),delete c.core.open,this.set_state(c,d)}):(delete c.core.open,this.set_state(c,d)),!1;if(c.core.scroll)return c.core.scroll&&c.core.scroll.left!==b&&this.element.scrollLeft(c.core.scroll.left),c.core.scroll&&c.core.scroll.top!==b&&this.element.scrollTop(c.core.scroll.top),delete c.core.scroll,this.set_state(c,d),!1;if(c.core.selected)return h=this,this.deselect_all(),a.each(c.core.selected,function(a,b){h.select_node(b,!1,!0)}),delete c.core.selected,this.set_state(c,d),!1;for(i in c)c.hasOwnProperty(i)&&"core"!==i&&-1===a.inArray(i,this.settings.plugins)&&delete c[i];if(a.isEmptyObject(c.core))return delete c.core,this.set_state(c,d),!1}return a.isEmptyObject(c)?(c=null,d&&d.call(this),this.trigger("set_state"),!1):!0}return!1},refresh:function(b,c){this._data.core.state=c===!0?{}:this.get_state(),c&&a.isFunction(c)&&(this._data.core.state=c.call(this,this._data.core.state)),this._cnt=0,this._model.data={},this._model.data[a.jstree.root]={id:a.jstree.root,parent:null,parents:[],children:[],children_d:[],state:{loaded:!1}},this._data.core.selected=[],this._data.core.last_clicked=null,this._data.core.focused=null;var d=this.get_container_ul()[0].className;b||(this.element.html(""),this.element.attr("aria-activedescendant","j"+this._id+"_loading")),this.load_node(a.jstree.root,function(b,c){c&&(this.get_container_ul()[0].className=d,this._firstChild(this.get_container_ul()[0])&&this.element.attr("aria-activedescendant",this._firstChild(this.get_container_ul()[0]).id),this.set_state(a.extend(!0,{},this._data.core.state),function(){this.trigger("refresh")})),this._data.core.state=null})},refresh_node:function(b){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var c=[],d=[],e=this._data.core.selected.concat([]);d.push(b.id),b.state.opened===!0&&c.push(b.id),this.get_node(b,!0).find(".jstree-open").each(function(){d.push(this.id),c.push(this.id)}),this._load_nodes(d,a.proxy(function(a){this.open_node(c,!1,0),this.select_node(e),this.trigger("refresh_node",{node:b,nodes:a})},this),!1,!0)},set_id:function(b,c){if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;var d,e,f=this._model.data,g=b.id;for(c=c.toString(),f[b.parent].children[a.inArray(b.id,f[b.parent].children)]=c,d=0,e=b.parents.length;e>d;d++)f[b.parents[d]].children_d[a.inArray(b.id,f[b.parents[d]].children_d)]=c;for(d=0,e=b.children.length;e>d;d++)f[b.children[d]].parent=c;for(d=0,e=b.children_d.length;e>d;d++)f[b.children_d[d]].parents[a.inArray(b.id,f[b.children_d[d]].parents)]=c;return d=a.inArray(b.id,this._data.core.selected),-1!==d&&(this._data.core.selected[d]=c),d=this.get_node(b.id,!0),d&&(d.attr("id",c),this.element.attr("aria-activedescendant")===b.id&&this.element.attr("aria-activedescendant",c)),delete f[b.id],b.id=c,b.li_attr.id=c,f[c]=b,this.trigger("set_id",{node:b,"new":b.id,old:g}),!0},get_text:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.text:!1},set_text:function(b,c){var d,e;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.set_text(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(b.text=c,this.get_node(b,!0).length&&this.redraw_node(b.id),this.trigger("set_text",{obj:b,text:c}),!0):!1},get_json:function(b,c,d){if(b=this.get_node(b||a.jstree.root),!b)return!1;c&&c.flat&&!d&&(d=[]);var e={id:b.id,text:b.text,icon:this.get_icon(b),li_attr:a.extend(!0,{},b.li_attr),a_attr:a.extend(!0,{},b.a_attr),state:{},data:c&&c.no_data?!1:a.extend(!0,{},b.data)},f,g;if(c&&c.flat?e.parent=b.parent:e.children=[],c&&c.no_state)delete e.state;else for(f in b.state)b.state.hasOwnProperty(f)&&(e.state[f]=b.state[f]);if(c&&c.no_li_attr&&delete e.li_attr,c&&c.no_a_attr&&delete e.a_attr,c&&c.no_id&&(delete e.id,e.li_attr&&e.li_attr.id&&delete e.li_attr.id,e.a_attr&&e.a_attr.id&&delete e.a_attr.id),c&&c.flat&&b.id!==a.jstree.root&&d.push(e),!c||!c.no_children)for(f=0,g=b.children.length;g>f;f++)c&&c.flat?this.get_json(b.children[f],c,d):e.children.push(this.get_json(b.children[f],c));return c&&c.flat?d:b.id===a.jstree.root?e.children:e},create_node:function(c,d,e,f,g){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return!1;if(e=e===b?"last":e,!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(c))return this.load_node(c,function(){this.create_node(c,d,e,f,!0)});d||(d={text:this.get_string("New node")}),"string"==typeof d&&(d={text:d}),d.text===b&&(d.text=this.get_string("New node"));var h,i,j,k;switch(c.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":h=this.get_node(c.parent),e=a.inArray(c.id,h.children),c=h;break;case"after":h=this.get_node(c.parent),e=a.inArray(c.id,h.children)+1,c=h;break;case"inside":case"first":e=0;break;case"last":e=c.children.length;break;default:e||(e=0)}if(e>c.children.length&&(e=c.children.length),d.id||(d.id=!0),!this.check("create_node",d,c,e))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(d.id===!0&&delete d.id,d=this._parse_model_from_json(d,c.id,c.parents.concat()),!d)return!1;for(h=this.get_node(d),i=[],i.push(d),i=i.concat(h.children_d),this.trigger("model",{nodes:i,parent:c.id}),c.children_d=c.children_d.concat(i),j=0,k=c.parents.length;k>j;j++)this._model.data[c.parents[j]].children_d=this._model.data[c.parents[j]].children_d.concat(i);for(d=h,h=[],j=0,k=c.children.length;k>j;j++)h[j>=e?j+1:j]=c.children[j];return h[e]=d.id,c.children=h,this.redraw_node(c,!0),f&&f.call(this,this.get_node(d)),this.trigger("create_node",{node:this.get_node(d),parent:c.id,position:e}),d.id},rename_node:function(b,c){var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.rename_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=b.text,this.check("rename_node",b,this.get_parent(b),c)?(this.set_text(b,c),this.trigger("rename_node",{node:b,text:c,old:f}),!0):(this.settings.core.error.call(this,this._data.core.last_error),!1)):!1},delete_node:function(b){var c,d,e,f,g,h,i,j,k,l,m,n;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.delete_node(b[c]);return!0}if(b=this.get_node(b),!b||b.id===a.jstree.root)return!1;if(e=this.get_node(b.parent),f=a.inArray(b.id,e.children),l=!1,!this.check("delete_node",b,e,f))return this.settings.core.error.call(this,this._data.core.last_error),!1;for(-1!==f&&(e.children=a.vakata.array_remove(e.children,f)),g=b.children_d.concat([]),g.push(b.id),h=0,i=b.parents.length;i>h;h++)this._model.data[b.parents[h]].children_d=a.vakata.array_filter(this._model.data[b.parents[h]].children_d,function(b){return-1===a.inArray(b,g)});for(j=0,k=g.length;k>j;j++)if(this._model.data[g[j]].state.selected){l=!0;break}for(l&&(this._data.core.selected=a.vakata.array_filter(this._data.core.selected,function(b){return-1===a.inArray(b,g)})),this.trigger("delete_node",{node:b,parent:e.id}),l&&this.trigger("changed",{action:"delete_node",node:b,selected:this._data.core.selected,parent:e.id}),j=0,k=g.length;k>j;j++)delete this._model.data[g[j]];return-1!==a.inArray(this._data.core.focused,g)&&(this._data.core.focused=null,m=this.element[0].scrollTop,n=this.element[0].scrollLeft,e.id===a.jstree.root?this._model.data[a.jstree.root].children[0]&&this.get_node(this._model.data[a.jstree.root].children[0],!0).children(".jstree-anchor").focus():this.get_node(e,!0).children(".jstree-anchor").focus(),this.element[0].scrollTop=m,this.element[0].scrollLeft=n),this.redraw_node(e,!0),!0},check:function(b,c,d,e,f){c=c&&c.id?c:this.get_node(c),d=d&&d.id?d:this.get_node(d);var g=b.match(/^move_node|copy_node|create_node$/i)?d:c,h=this.settings.core.check_callback;return"move_node"!==b&&"copy_node"!==b||f&&f.is_multi||c.id!==d.id&&("move_node"!==b||a.inArray(c.id,d.children)!==e)&&-1===a.inArray(d.id,c.children_d)?(g&&g.data&&(g=g.data),g&&g.functions&&(g.functions[b]===!1||g.functions[b]===!0)?(g.functions[b]===!1&&(this._data.core.last_error={error:"check",plugin:"core",id:"core_02",reason:"Node data prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})}),g.functions[b]):h===!1||a.isFunction(h)&&h.call(this,b,c,d,e,f)===!1||h&&h[b]===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_03",reason:"User config for core.check_callback prevents function: "+b,data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1):!0):(this._data.core.last_error={error:"check",plugin:"core",id:"core_01",reason:"Moving parent inside child",data:JSON.stringify({chk:b,pos:e,obj:c&&c.id?c.id:!1,par:d&&d.id?d.id:!1})},!1)},last_error:function(){return this._data.core.last_error},move_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t,u,v,w;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.move_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(r=this.move_node(c[j],d,e,f,g,!1,i))&&(d=r,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;if(l=(c.parent||a.jstree.root).toString(),n=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,o=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),p=!o||!o._id||this._id!==o._id,m=o&&o._id&&l&&o._model.data[l]&&o._model.data[l].children?a.inArray(c.id,o._model.data[l].children):-1,o&&o._id&&(c=o._model.data[c.id]),p)return(r=this.copy_node(c,d,e,f,g,!1,i))?(o&&o.delete_node(c),r):!1;switch(d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,n.children);break;case"after":e=a.inArray(d.id,n.children)+1;break;case"inside":case"first":e=0;break;case"last":e=n.children.length;break;default:e||(e=0)}if(e>n.children.length&&(e=n.children.length),!this.check("move_node",c,n,e,{core:!0,origin:i,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(c.parent===n.id){for(q=n.children.concat(),r=a.inArray(c.id,q),-1!==r&&(q=a.vakata.array_remove(q,r),e>r&&e--),r=[],s=0,t=q.length;t>s;s++)r[s>=e?s+1:s]=q[s];r[e]=c.id,n.children=r,this._node_changed(n.id),this.redraw(n.id===a.jstree.root)}else{for(r=c.children_d.concat(),r.push(c.id),s=0,t=c.parents.length;t>s;s++){for(q=[],w=o._model.data[c.parents[s]].children_d,u=0,v=w.length;v>u;u++)-1===a.inArray(w[u],r)&&q.push(w[u]);o._model.data[c.parents[s]].children_d=q}for(o._model.data[l].children=a.vakata.array_remove_item(o._model.data[l].children,c.id),s=0,t=n.parents.length;t>s;s++)this._model.data[n.parents[s]].children_d=this._model.data[n.parents[s]].children_d.concat(r);for(q=[],s=0,t=n.children.length;t>s;s++)q[s>=e?s+1:s]=n.children[s];for(q[e]=c.id,n.children=q,n.children_d.push(c.id),n.children_d=n.children_d.concat(c.children_d),c.parent=n.id,r=n.parents.concat(),r.unshift(n.id),w=c.parents.length,c.parents=r,r=r.concat(),s=0,t=c.children_d.length;t>s;s++)this._model.data[c.children_d[s]].parents=this._model.data[c.children_d[s]].parents.slice(0,-1*w),Array.prototype.push.apply(this._model.data[c.children_d[s]].parents,r);(l===a.jstree.root||n.id===a.jstree.root)&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||(this._node_changed(l),this._node_changed(n.id)),h||this.redraw()}return f&&f.call(this,c,n,e),this.trigger("move_node",{node:c,parent:n.id,position:e,old_parent:l,old_position:m,is_multi:o&&o._id&&o._id!==this._id,is_foreign:!o||!o._id,old_instance:o,new_instance:this}),c.id},copy_node:function(c,d,e,f,g,h,i){var j,k,l,m,n,o,p,q,r,s,t;if(d=this.get_node(d),e=e===b?0:e,!d)return!1;if(!e.toString().match(/^(before|after)$/)&&!g&&!this.is_loaded(d))return this.load_node(d,function(){this.copy_node(c,d,e,f,!0,!1,i)});if(a.isArray(c)){if(1!==c.length){for(j=0,k=c.length;k>j;j++)(m=this.copy_node(c[j],d,e,f,g,!0,i))&&(d=m,e="after");return this.redraw(),!0}c=c[0]}if(c=c&&c.id?c:this.get_node(c),!c||c.id===a.jstree.root)return!1;switch(q=(c.parent||a.jstree.root).toString(),r=e.toString().match(/^(before|after)$/)&&d.id!==a.jstree.root?this.get_node(d.parent):d,s=i?i:this._model.data[c.id]?this:a.jstree.reference(c.id),t=!s||!s._id||this._id!==s._id,s&&s._id&&(c=s._model.data[c.id]),d.id===a.jstree.root&&("before"===e&&(e="first"),"after"===e&&(e="last")),e){case"before":e=a.inArray(d.id,r.children);break;case"after":e=a.inArray(d.id,r.children)+1;break;case"inside":case"first":e=0;break;case"last":e=r.children.length;break;default:e||(e=0)}if(e>r.children.length&&(e=r.children.length),!this.check("copy_node",c,r,e,{core:!0,origin:i,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id}))return this.settings.core.error.call(this,this._data.core.last_error),!1;if(p=s?s.get_json(c,{no_id:!0,no_data:!0,no_state:!0}):c,!p)return!1;if(p.id===!0&&delete p.id,p=this._parse_model_from_json(p,r.id,r.parents.concat()),!p)return!1;for(m=this.get_node(p),c&&c.state&&c.state.loaded===!1&&(m.state.loaded=!1),l=[],l.push(p),l=l.concat(m.children_d),this.trigger("model",{nodes:l,parent:r.id}),n=0,o=r.parents.length;o>n;n++)this._model.data[r.parents[n]].children_d=this._model.data[r.parents[n]].children_d.concat(l);for(l=[],n=0,o=r.children.length;o>n;n++)l[n>=e?n+1:n]=r.children[n];return l[e]=m.id,r.children=l,r.children_d.push(m.id),r.children_d=r.children_d.concat(m.children_d),r.id===a.jstree.root&&(this._model.force_full_redraw=!0),this._model.force_full_redraw||this._node_changed(r.id),h||this.redraw(r.id===a.jstree.root),f&&f.call(this,m,r,e),this.trigger("copy_node",{node:m,original:c,parent:r.id,position:e,old_parent:q,old_position:s&&s._id&&q&&s._model.data[q]&&s._model.data[q].children?a.inArray(c.id,s._model.data[q].children):-1,is_multi:s&&s._id&&s._id!==this._id,is_foreign:!s||!s._id,old_instance:s,new_instance:this}),m.id},cut:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c=[],g,h,i;for(h=0,i=b.length;i>h;h++)g=this.get_node(b[h]),g&&g.id&&g.id!==a.jstree.root&&c.push(g);return c.length?(d=c,f=this,e="move_node",void this.trigger("cut",{node:b})):!1},copy:function(b){if(b||(b=this._data.core.selected.concat()),a.isArray(b)||(b=[b]),!b.length)return!1;var c=[],g,h,i;for(h=0,i=b.length;i>h;h++)g=this.get_node(b[h]),g&&g.id&&g.id!==a.jstree.root&&c.push(g);return c.length?(d=c,f=this,e="copy_node",void this.trigger("copy",{node:b})):!1},get_buffer:function(){return{mode:e,node:d,inst:f}},can_paste:function(){return e!==!1&&d!==!1},paste:function(a,b){return a=this.get_node(a),a&&e&&e.match(/^(copy_node|move_node)$/)&&d?(this[e](d,a,b,!1,!1,!1,f)&&this.trigger("paste",{parent:a.id,node:d,mode:e}),d=!1,e=!1,void(f=!1)):!1},clear_buffer:function(){d=!1,e=!1,f=!1,this.trigger("clear_buffer")},edit:function(b,c,d){var e,f,g,h,j,k,l,m,n,o=!1;return(b=this.get_node(b))?this.settings.core.check_callback===!1?(this._data.core.last_error={error:"check",plugin:"core",id:"core_07",reason:"Could not edit node because of check_callback"},this.settings.core.error.call(this,this._data.core.last_error),!1):(n=b,c="string"==typeof c?c:b.text,this.set_text(b,""),b=this._open_to(b),n.text=c,e=this._data.core.rtl,f=this.element.width(),this._data.core.focused=n.id,g=b.children(".jstree-anchor").focus(),h=a(""),j=c,k=a("
      ",{css:{position:"absolute",top:"-200px",left:e?"0px":"-1000px",visibility:"hidden"}}).appendTo("body"),l=a("",{value:j,"class":"jstree-rename-input",css:{padding:"0",border:"1px solid silver","box-sizing":"border-box",display:"inline-block",height:this._data.core.li_height+"px",lineHeight:this._data.core.li_height+"px",width:"150px"},blur:a.proxy(function(c){c.stopImmediatePropagation(),c.preventDefault();var e=h.children(".jstree-rename-input"),f=e.val(),i=this.settings.core.force_text,m;""===f&&(f=j),k.remove(),h.replaceWith(g),h.remove(),j=i?j:a("
      ").append(a.parseHTML(j)).html(),this.set_text(b,j),m=!!this.rename_node(b,i?a("
      ").text(f).text():a("
      ").append(a.parseHTML(f)).html()),m||this.set_text(b,j),this._data.core.focused=n.id,setTimeout(a.proxy(function(){var a=this.get_node(n.id,!0);a.length&&(this._data.core.focused=n.id,a.children(".jstree-anchor").focus())},this),0),d&&d.call(this,n,m,o),l=null},this),keydown:function(a){var b=a.which;27===b&&(o=!0,this.value=j),(27===b||13===b||37===b||38===b||39===b||40===b||32===b)&&a.stopImmediatePropagation(),(27===b||13===b)&&(a.preventDefault(),this.blur())},click:function(a){a.stopImmediatePropagation()},mousedown:function(a){a.stopImmediatePropagation()},keyup:function(a){l.width(Math.min(k.text("pW"+this.value).width(),f))},keypress:function(a){return 13===a.which?!1:void 0}}),m={fontFamily:g.css("fontFamily")||"",fontSize:g.css("fontSize")||"", +fontWeight:g.css("fontWeight")||"",fontStyle:g.css("fontStyle")||"",fontStretch:g.css("fontStretch")||"",fontVariant:g.css("fontVariant")||"",letterSpacing:g.css("letterSpacing")||"",wordSpacing:g.css("wordSpacing")||""},h.attr("class",g.attr("class")).append(g.contents().clone()).append(l),g.replaceWith(h),k.css(m),l.css(m).width(Math.min(k.text("pW"+l[0].value).width(),f))[0].select(),void a(i).one("mousedown.jstree touchstart.jstree dnd_start.vakata",function(b){l&&b.target!==l&&a(l).blur()})):!1},set_theme:function(b,c){if(!b)return!1;if(c===!0){var d=this.settings.core.themes.dir;d||(d=a.jstree.path+"/themes"),c=d+"/"+b+"/style.css"}c&&-1===a.inArray(c,g)&&(a("head").append(''),g.push(c)),this._data.core.themes.name&&this.element.removeClass("jstree-"+this._data.core.themes.name),this._data.core.themes.name=b,this.element.addClass("jstree-"+b),this.element[this.settings.core.themes.responsive?"addClass":"removeClass"]("jstree-"+b+"-responsive"),this.trigger("set_theme",{theme:b})},get_theme:function(){return this._data.core.themes.name},set_theme_variant:function(a){this._data.core.themes.variant&&this.element.removeClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant),this._data.core.themes.variant=a,a&&this.element.addClass("jstree-"+this._data.core.themes.name+"-"+this._data.core.themes.variant)},get_theme_variant:function(){return this._data.core.themes.variant},show_stripes:function(){this._data.core.themes.stripes=!0,this.get_container_ul().addClass("jstree-striped"),this.trigger("show_stripes")},hide_stripes:function(){this._data.core.themes.stripes=!1,this.get_container_ul().removeClass("jstree-striped"),this.trigger("hide_stripes")},toggle_stripes:function(){this._data.core.themes.stripes?this.hide_stripes():this.show_stripes()},show_dots:function(){this._data.core.themes.dots=!0,this.get_container_ul().removeClass("jstree-no-dots"),this.trigger("show_dots")},hide_dots:function(){this._data.core.themes.dots=!1,this.get_container_ul().addClass("jstree-no-dots"),this.trigger("hide_dots")},toggle_dots:function(){this._data.core.themes.dots?this.hide_dots():this.show_dots()},show_icons:function(){this._data.core.themes.icons=!0,this.get_container_ul().removeClass("jstree-no-icons"),this.trigger("show_icons")},hide_icons:function(){this._data.core.themes.icons=!1,this.get_container_ul().addClass("jstree-no-icons"),this.trigger("hide_icons")},toggle_icons:function(){this._data.core.themes.icons?this.hide_icons():this.show_icons()},show_ellipsis:function(){this._data.core.themes.ellipsis=!0,this.get_container_ul().addClass("jstree-ellipsis"),this.trigger("show_ellipsis")},hide_ellipsis:function(){this._data.core.themes.ellipsis=!1,this.get_container_ul().removeClass("jstree-ellipsis"),this.trigger("hide_ellipsis")},toggle_ellipsis:function(){this._data.core.themes.ellipsis?this.hide_ellipsis():this.show_ellipsis()},set_icon:function(c,d){var e,f,g,h;if(a.isArray(c)){for(c=c.slice(),e=0,f=c.length;f>e;e++)this.set_icon(c[e],d);return!0}return c=this.get_node(c),c&&c.id!==a.jstree.root?(h=c.icon,c.icon=d===!0||null===d||d===b||""===d?!0:d,g=this.get_node(c,!0).children(".jstree-anchor").children(".jstree-themeicon"),d===!1?this.hide_icon(c):d===!0||null===d||d===b||""===d?(g.removeClass("jstree-themeicon-custom "+h).css("background","").removeAttr("rel"),h===!1&&this.show_icon(c)):-1===d.indexOf("/")&&-1===d.indexOf(".")?(g.removeClass(h).css("background",""),g.addClass(d+" jstree-themeicon-custom").attr("rel",d),h===!1&&this.show_icon(c)):(g.removeClass(h).css("background",""),g.addClass("jstree-themeicon-custom").css("background","url('"+d+"') center center no-repeat").attr("rel",d),h===!1&&this.show_icon(c)),!0):!1},get_icon:function(b){return b=this.get_node(b),b&&b.id!==a.jstree.root?b.icon:!1},hide_icon:function(b){var c,d;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.hide_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(b.icon=!1,this.get_node(b,!0).children(".jstree-anchor").children(".jstree-themeicon").addClass("jstree-themeicon-hidden"),!0):!1},show_icon:function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.show_icon(b[c]);return!0}return b=this.get_node(b),b&&b!==a.jstree.root?(e=this.get_node(b,!0),b.icon=e.length?e.children(".jstree-anchor").children(".jstree-themeicon").attr("rel"):!0,b.icon||(b.icon=!0),e.children(".jstree-anchor").children(".jstree-themeicon").removeClass("jstree-themeicon-hidden"),!0):!1}},a.vakata={},a.vakata.attributes=function(b,c){b=a(b)[0];var d=c?{}:[];return b&&b.attributes&&a.each(b.attributes,function(b,e){-1===a.inArray(e.name.toLowerCase(),["style","contenteditable","hasfocus","tabindex"])&&null!==e.value&&""!==a.trim(e.value)&&(c?d[e.name]=e.value:d.push(e.name))}),d},a.vakata.array_unique=function(a){var c=[],d,e,f,g={};for(d=0,f=a.length;f>d;d++)g[a[d]]===b&&(c.push(a[d]),g[a[d]]=!0);return c},a.vakata.array_remove=function(a,b){return a.splice(b,1),a},a.vakata.array_remove_item=function(b,c){var d=a.inArray(c,b);return-1!==d?a.vakata.array_remove(b,d):b},a.vakata.array_filter=function(a,b,c,d,e){if(a.filter)return a.filter(b,c);d=[];for(e in a)~~e+""==e+""&&e>=0&&b.call(c,a[e],+e,a)&&d.push(a[e]);return d},a.jstree.plugins.changed=function(a,b){var c=[];this.trigger=function(a,d){var e,f;if(d||(d={}),"changed"===a.replace(".jstree","")){d.changed={selected:[],deselected:[]};var g={};for(e=0,f=c.length;f>e;e++)g[c[e]]=1;for(e=0,f=d.selected.length;f>e;e++)g[d.selected[e]]?g[d.selected[e]]=2:d.changed.selected.push(d.selected[e]);for(e=0,f=c.length;f>e;e++)1===g[c[e]]&&d.changed.deselected.push(c[e]);c=d.selected.slice()}b.trigger.call(this,a,d)},this.refresh=function(a,d){return c=[],b.refresh.apply(this,arguments)}};var j=i.createElement("I");j.className="jstree-icon jstree-checkbox",j.setAttribute("role","presentation"),a.jstree.defaults.checkbox={visible:!0,three_state:!0,whole_node:!0,keep_selected_style:!0,cascade:"",tie_selection:!0},a.jstree.plugins.checkbox=function(c,d){this.bind=function(){d.bind.call(this),this._data.checkbox.uto=!1,this._data.checkbox.selected=[],this.settings.checkbox.three_state&&(this.settings.checkbox.cascade="up+down+undetermined"),this.element.on("init.jstree",a.proxy(function(){this._data.checkbox.visible=this.settings.checkbox.visible,this.settings.checkbox.keep_selected_style||this.element.addClass("jstree-checkbox-no-clicked"),this.settings.checkbox.tie_selection&&this.element.addClass("jstree-checkbox-selection")},this)).on("loading.jstree",a.proxy(function(){this[this._data.checkbox.visible?"show_checkboxes":"hide_checkboxes"]()},this)),-1!==this.settings.checkbox.cascade.indexOf("undetermined")&&this.element.on("changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree",a.proxy(function(){this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)},this)),this.settings.checkbox.tie_selection||this.element.on("model.jstree",a.proxy(function(a,b){var c=this._model.data,d=c[b.parent],e=b.nodes,f,g;for(f=0,g=e.length;g>f;f++)c[e[f]].state.checked=c[e[f]].state.checked||c[e[f]].original&&c[e[f]].original.state&&c[e[f]].original.state.checked,c[e[f]].state.checked&&this._data.checkbox.selected.push(e[f])},this)),(-1!==this.settings.checkbox.cascade.indexOf("up")||-1!==this.settings.checkbox.cascade.indexOf("down"))&&this.element.on("model.jstree",a.proxy(function(b,c){var d=this._model.data,e=d[c.parent],f=c.nodes,g=[],h,i,j,k,l,m,n=this.settings.checkbox.cascade,o=this.settings.checkbox.tie_selection;if(-1!==n.indexOf("down"))if(e.state[o?"selected":"checked"]){for(i=0,j=f.length;j>i;i++)d[f[i]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(f)}else for(i=0,j=f.length;j>i;i++)if(d[f[i]].state[o?"selected":"checked"]){for(k=0,l=d[f[i]].children_d.length;l>k;k++)d[d[f[i]].children_d[k]].state[o?"selected":"checked"]=!0;this._data[o?"core":"checkbox"].selected=this._data[o?"core":"checkbox"].selected.concat(d[f[i]].children_d)}if(-1!==n.indexOf("up")){for(i=0,j=e.children_d.length;j>i;i++)d[e.children_d[i]].children.length||g.push(d[e.children_d[i]].parent);for(g=a.vakata.array_unique(g),k=0,l=g.length;l>k;k++){e=d[g[k]];while(e&&e.id!==a.jstree.root){for(h=0,i=0,j=e.children.length;j>i;i++)h+=d[e.children[i]].state[o?"selected":"checked"];if(h!==j)break;e.state[o?"selected":"checked"]=!0,this._data[o?"core":"checkbox"].selected.push(e.id),m=this.get_node(e,!0),m&&m.length&&m.attr("aria-selected",!0).children(".jstree-anchor").addClass(o?"jstree-clicked":"jstree-checked"),e=this.get_node(e.parent)}}}this._data[o?"core":"checkbox"].selected=a.vakata.array_unique(this._data[o?"core":"checkbox"].selected)},this)).on(this.settings.checkbox.tie_selection?"select_node.jstree":"check_node.jstree",a.proxy(function(b,c){var d=c.node,e=this._model.data,f=this.get_node(d.parent),g=this.get_node(d,!0),h,i,j,k,l=this.settings.checkbox.cascade,m=this.settings.checkbox.tie_selection,n={},o=this._data[m?"core":"checkbox"].selected;for(h=0,i=o.length;i>h;h++)n[o[h]]=!0;if(-1!==l.indexOf("down"))for(h=0,i=d.children_d.length;i>h;h++)n[d.children_d[h]]=!0,k=e[d.children_d[h]],k.state[m?"selected":"checked"]=!0,k&&k.original&&k.original.state&&k.original.state.undetermined&&(k.original.state.undetermined=!1);if(-1!==l.indexOf("up"))while(f&&f.id!==a.jstree.root){for(j=0,h=0,i=f.children.length;i>h;h++)j+=e[f.children[h]].state[m?"selected":"checked"];if(j!==i)break;f.state[m?"selected":"checked"]=!0,n[f.id]=!0,k=this.get_node(f,!0),k&&k.length&&k.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),f=this.get_node(f.parent)}o=[];for(h in n)n.hasOwnProperty(h)&&o.push(h);this._data[m?"core":"checkbox"].selected=o,-1!==l.indexOf("down")&&g.length&&g.find(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!0)},this)).on(this.settings.checkbox.tie_selection?"deselect_all.jstree":"uncheck_all.jstree",a.proxy(function(b,c){var d=this.get_node(a.jstree.root),e=this._model.data,f,g,h;for(f=0,g=d.children_d.length;g>f;f++)h=e[d.children_d[f]],h&&h.original&&h.original.state&&h.original.state.undetermined&&(h.original.state.undetermined=!1)},this)).on(this.settings.checkbox.tie_selection?"deselect_node.jstree":"uncheck_node.jstree",a.proxy(function(b,c){var d=c.node,e=this.get_node(d,!0),f,g,h,i=this.settings.checkbox.cascade,j=this.settings.checkbox.tie_selection,k=this._data[j?"core":"checkbox"].selected,l={};if(d&&d.original&&d.original.state&&d.original.state.undetermined&&(d.original.state.undetermined=!1),-1!==i.indexOf("down"))for(f=0,g=d.children_d.length;g>f;f++)h=this._model.data[d.children_d[f]],h.state[j?"selected":"checked"]=!1,h&&h.original&&h.original.state&&h.original.state.undetermined&&(h.original.state.undetermined=!1);if(-1!==i.indexOf("up"))for(f=0,g=d.parents.length;g>f;f++)h=this._model.data[d.parents[f]],h.state[j?"selected":"checked"]=!1,h&&h.original&&h.original.state&&h.original.state.undetermined&&(h.original.state.undetermined=!1),h=this.get_node(d.parents[f],!0),h&&h.length&&h.attr("aria-selected",!1).children(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked");for(l={},f=0,g=k.length;g>f;f++)-1!==i.indexOf("down")&&-1!==a.inArray(k[f],d.children_d)||-1!==i.indexOf("up")&&-1!==a.inArray(k[f],d.parents)||(l[k[f]]=!0);k=[];for(f in l)l.hasOwnProperty(f)&&k.push(f);this._data[j?"core":"checkbox"].selected=k,-1!==i.indexOf("down")&&e.length&&e.find(".jstree-anchor").removeClass(j?"jstree-clicked":"jstree-checked").parent().attr("aria-selected",!1)},this)),-1!==this.settings.checkbox.cascade.indexOf("up")&&this.element.on("delete_node.jstree",a.proxy(function(b,c){var d=this.get_node(c.parent),e=this._model.data,f,g,h,i,j=this.settings.checkbox.tie_selection;while(d&&d.id!==a.jstree.root&&!d.state[j?"selected":"checked"]){for(h=0,f=0,g=d.children.length;g>f;f++)h+=e[d.children[f]].state[j?"selected":"checked"];if(!(g>0&&h===g))break;d.state[j?"selected":"checked"]=!0,this._data[j?"core":"checkbox"].selected.push(d.id),i=this.get_node(d,!0),i&&i.length&&i.attr("aria-selected",!0).children(".jstree-anchor").addClass(j?"jstree-clicked":"jstree-checked"),d=this.get_node(d.parent)}},this)).on("move_node.jstree",a.proxy(function(b,c){var d=c.is_multi,e=c.old_parent,f=this.get_node(c.parent),g=this._model.data,h,i,j,k,l,m=this.settings.checkbox.tie_selection;if(!d){h=this.get_node(e);while(h&&h.id!==a.jstree.root&&!h.state[m?"selected":"checked"]){for(i=0,j=0,k=h.children.length;k>j;j++)i+=g[h.children[j]].state[m?"selected":"checked"];if(!(k>0&&i===k))break;h.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(h.id),l=this.get_node(h,!0),l&&l.length&&l.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"),h=this.get_node(h.parent)}}h=f;while(h&&h.id!==a.jstree.root){for(i=0,j=0,k=h.children.length;k>j;j++)i+=g[h.children[j]].state[m?"selected":"checked"];if(i===k)h.state[m?"selected":"checked"]||(h.state[m?"selected":"checked"]=!0,this._data[m?"core":"checkbox"].selected.push(h.id),l=this.get_node(h,!0),l&&l.length&&l.attr("aria-selected",!0).children(".jstree-anchor").addClass(m?"jstree-clicked":"jstree-checked"));else{if(!h.state[m?"selected":"checked"])break;h.state[m?"selected":"checked"]=!1,this._data[m?"core":"checkbox"].selected=a.vakata.array_remove_item(this._data[m?"core":"checkbox"].selected,h.id),l=this.get_node(h,!0),l&&l.length&&l.attr("aria-selected",!1).children(".jstree-anchor").removeClass(m?"jstree-clicked":"jstree-checked")}h=this.get_node(h.parent)}},this))},this._undetermined=function(){if(null!==this.element){var c,d,e,f,g={},h=this._model.data,i=this.settings.checkbox.tie_selection,j=this._data[i?"core":"checkbox"].selected,k=[],l=this;for(c=0,d=j.length;d>c;c++)if(h[j[c]]&&h[j[c]].parents)for(e=0,f=h[j[c]].parents.length;f>e;e++){if(g[h[j[c]].parents[e]]!==b)break;h[j[c]].parents[e]!==a.jstree.root&&(g[h[j[c]].parents[e]]=!0,k.push(h[j[c]].parents[e]))}for(this.element.find(".jstree-closed").not(":has(.jstree-children)").each(function(){var i=l.get_node(this),j;if(i.state.loaded){for(c=0,d=i.children_d.length;d>c;c++)if(j=h[i.children_d[c]],!j.state.loaded&&j.original&&j.original.state&&j.original.state.undetermined&&j.original.state.undetermined===!0)for(g[j.id]===b&&j.id!==a.jstree.root&&(g[j.id]=!0,k.push(j.id)),e=0,f=j.parents.length;f>e;e++)g[j.parents[e]]===b&&j.parents[e]!==a.jstree.root&&(g[j.parents[e]]=!0,k.push(j.parents[e]))}else if(i.original&&i.original.state&&i.original.state.undetermined&&i.original.state.undetermined===!0)for(g[i.id]===b&&i.id!==a.jstree.root&&(g[i.id]=!0,k.push(i.id)),e=0,f=i.parents.length;f>e;e++)g[i.parents[e]]===b&&i.parents[e]!==a.jstree.root&&(g[i.parents[e]]=!0,k.push(i.parents[e]))}),this.element.find(".jstree-undetermined").removeClass("jstree-undetermined"),c=0,d=k.length;d>c;c++)h[k[c]].state[i?"selected":"checked"]||(j=this.get_node(k[c],!0),j&&j.length&&j.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-undetermined"))}},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments)){var g,h,i=null,k=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(!this.settings.checkbox.tie_selection&&this._model.data[b.id].state.checked&&(i.className+=" jstree-checked"),k=j.cloneNode(!1),this._model.data[b.id].state.checkbox_disabled&&(k.className+=" jstree-checkbox-disabled"),i.insertBefore(k,i.childNodes[0]))}return e||-1===this.settings.checkbox.cascade.indexOf("undetermined")||(this._data.checkbox.uto&&clearTimeout(this._data.checkbox.uto),this._data.checkbox.uto=setTimeout(a.proxy(this._undetermined,this),50)),b},this.show_checkboxes=function(){this._data.core.themes.checkboxes=!0,this.get_container_ul().removeClass("jstree-no-checkboxes")},this.hide_checkboxes=function(){this._data.core.themes.checkboxes=!1,this.get_container_ul().addClass("jstree-no-checkboxes")},this.toggle_checkboxes=function(){this._data.core.themes.checkboxes?this.hide_checkboxes():this.show_checkboxes()},this.is_undetermined=function(b){b=this.get_node(b);var c=this.settings.checkbox.cascade,d,e,f=this.settings.checkbox.tie_selection,g=this._data[f?"core":"checkbox"].selected,h=this._model.data;if(!b||b.state[f?"selected":"checked"]===!0||-1===c.indexOf("undetermined")||-1===c.indexOf("down")&&-1===c.indexOf("up"))return!1;if(!b.state.loaded&&b.original.state.undetermined===!0)return!0;for(d=0,e=b.children_d.length;e>d;d++)if(-1!==a.inArray(b.children_d[d],g)||!h[b.children_d[d]].state.loaded&&h[b.children_d[d]].original.state.undetermined)return!0;return!1},this.disable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.disable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled||(b.state.checkbox_disabled=!0,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").addClass("jstree-checkbox-disabled"),this.trigger("disable_checkbox",{node:b})))):!1},this.enable_checkbox=function(b){var c,d,e;if(a.isArray(b)){for(b=b.slice(),c=0,d=b.length;d>c;c++)this.enable_checkbox(b[c]);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(e=this.get_node(b,!0),void(b.state.checkbox_disabled&&(b.state.checkbox_disabled=!1,e&&e.length&&e.children(".jstree-anchor").children(".jstree-checkbox").removeClass("jstree-checkbox-disabled"),this.trigger("enable_checkbox",{node:b})))):!1},this.activate_node=function(b,c){return a(c.target).hasClass("jstree-checkbox-disabled")?!1:(this.settings.checkbox.tie_selection&&(this.settings.checkbox.whole_node||a(c.target).hasClass("jstree-checkbox"))&&(c.ctrlKey=!0),this.settings.checkbox.tie_selection||!this.settings.checkbox.whole_node&&!a(c.target).hasClass("jstree-checkbox")?d.activate_node.call(this,b,c):this.is_disabled(b)?!1:(this.is_checked(b)?this.uncheck_node(b,c):this.check_node(b,c),void this.trigger("activate_node",{node:this.get_node(b)})))},this.check_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.select_node(b,!1,!0,c);var d,e,f,g;if(a.isArray(b)){for(b=b.slice(),e=0,f=b.length;f>e;e++)this.check_node(b[e],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(d=this.get_node(b,!0),void(b.state.checked||(b.state.checked=!0,this._data.checkbox.selected.push(b.id),d&&d.length&&d.children(".jstree-anchor").addClass("jstree-checked"),this.trigger("check_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.uncheck_node=function(b,c){if(this.settings.checkbox.tie_selection)return this.deselect_node(b,!1,c);var d,e,f;if(a.isArray(b)){for(b=b.slice(),d=0,e=b.length;e>d;d++)this.uncheck_node(b[d],c);return!0}return b=this.get_node(b),b&&b.id!==a.jstree.root?(f=this.get_node(b,!0),void(b.state.checked&&(b.state.checked=!1,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,b.id),f.length&&f.children(".jstree-anchor").removeClass("jstree-checked"),this.trigger("uncheck_node",{node:b,selected:this._data.checkbox.selected,event:c})))):!1},this.check_all=function(){if(this.settings.checkbox.tie_selection)return this.select_all();var b=this._data.checkbox.selected.concat([]),c,d;for(this._data.checkbox.selected=this._model.data[a.jstree.root].children_d.concat(),c=0,d=this._data.checkbox.selected.length;d>c;c++)this._model.data[this._data.checkbox.selected[c]]&&(this._model.data[this._data.checkbox.selected[c]].state.checked=!0);this.redraw(!0),this.trigger("check_all",{selected:this._data.checkbox.selected})},this.uncheck_all=function(){if(this.settings.checkbox.tie_selection)return this.deselect_all();var a=this._data.checkbox.selected.concat([]),b,c;for(b=0,c=this._data.checkbox.selected.length;c>b;b++)this._model.data[this._data.checkbox.selected[b]]&&(this._model.data[this._data.checkbox.selected[b]].state.checked=!1);this._data.checkbox.selected=[],this.element.find(".jstree-checked").removeClass("jstree-checked"),this.trigger("uncheck_all",{selected:this._data.checkbox.selected,node:a})},this.is_checked=function(b){return this.settings.checkbox.tie_selection?this.is_selected(b):(b=this.get_node(b),b&&b.id!==a.jstree.root?b.state.checked:!1)},this.get_checked=function(b){return this.settings.checkbox.tie_selection?this.get_selected(b):b?a.map(this._data.checkbox.selected,a.proxy(function(a){return this.get_node(a)},this)):this._data.checkbox.selected},this.get_top_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_top_selected(b);var c=this.get_checked(!0),d={},e,f,g,h;for(e=0,f=c.length;f>e;e++)d[c[e].id]=c[e];for(e=0,f=c.length;f>e;e++)for(g=0,h=c[e].children_d.length;h>g;g++)d[c[e].children_d[g]]&&delete d[c[e].children_d[g]];c=[];for(e in d)d.hasOwnProperty(e)&&c.push(e);return b?a.map(c,a.proxy(function(a){return this.get_node(a)},this)):c},this.get_bottom_checked=function(b){if(this.settings.checkbox.tie_selection)return this.get_bottom_selected(b);var c=this.get_checked(!0),d=[],e,f;for(e=0,f=c.length;f>e;e++)c[e].children.length||d.push(c[e].id);return b?a.map(d,a.proxy(function(a){return this.get_node(a)},this)):d},this.load_node=function(b,c){var e,f,g,h,i,j;if(!a.isArray(b)&&!this.settings.checkbox.tie_selection&&(j=this.get_node(b),j&&j.state.loaded))for(e=0,f=j.children_d.length;f>e;e++)this._model.data[j.children_d[e]].state.checked&&(i=!0,this._data.checkbox.selected=a.vakata.array_remove_item(this._data.checkbox.selected,j.children_d[e]));return d.load_node.apply(this,arguments)},this.get_state=function(){var a=d.get_state.apply(this,arguments);return this.settings.checkbox.tie_selection?a:(a.checkbox=this._data.checkbox.selected.slice(),a)},this.set_state=function(b,c){var e=d.set_state.apply(this,arguments);if(e&&b.checkbox){if(!this.settings.checkbox.tie_selection){this.uncheck_all();var f=this;a.each(b.checkbox,function(a,b){f.check_node(b)})}return delete b.checkbox,this.set_state(b,c),!1}return e},this.refresh=function(a,b){return this.settings.checkbox.tie_selection||(this._data.checkbox.selected=[]),d.refresh.apply(this,arguments)}},a.jstree.defaults.conditionalselect=function(){return!0},a.jstree.plugins.conditionalselect=function(a,b){this.activate_node=function(a,c){this.settings.conditionalselect.call(this,this.get_node(a),c)&&b.activate_node.call(this,a,c)}},a.jstree.defaults.contextmenu={select_node:!0,show_at_node:!0,items:function(b,c){return{create:{separator_before:!1,separator_after:!0,_disabled:!1,label:"Create",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.create_node(d,{},"last",function(a){setTimeout(function(){c.edit(a)},0)})}},rename:{separator_before:!1,separator_after:!1,_disabled:!1,label:"Rename",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.edit(d)}},remove:{separator_before:!1,icon:!1,separator_after:!1,_disabled:!1,label:"Delete",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.delete_node(c.get_selected()):c.delete_node(d)}},ccp:{separator_before:!0,icon:!1,separator_after:!1,label:"Edit",action:!1,submenu:{cut:{separator_before:!1,separator_after:!1,label:"Cut",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.cut(c.get_top_selected()):c.cut(d)}},copy:{separator_before:!1,icon:!1,separator_after:!1,label:"Copy",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.is_selected(d)?c.copy(c.get_top_selected()):c.copy(d)}},paste:{separator_before:!1,icon:!1,_disabled:function(b){return!a.jstree.reference(b.reference).can_paste()},separator_after:!1,label:"Paste",action:function(b){var c=a.jstree.reference(b.reference),d=c.get_node(b.reference);c.paste(d)}}}}}}},a.jstree.plugins.contextmenu=function(c,d){this.bind=function(){d.bind.call(this);var b=0,c=null,e,f;this.element.on("contextmenu.jstree",".jstree-anchor",a.proxy(function(a,d){"input"!==a.target.tagName.toLowerCase()&&(a.preventDefault(),b=a.ctrlKey?+new Date:0,(d||c)&&(b=+new Date+1e4),c&&clearTimeout(c),this.is_loading(a.currentTarget)||this.show_contextmenu(a.currentTarget,a.pageX,a.pageY,a))},this)).on("click.jstree",".jstree-anchor",a.proxy(function(c){this._data.contextmenu.visible&&(!b||+new Date-b>250)&&a.vakata.context.hide(),b=0},this)).on("touchstart.jstree",".jstree-anchor",function(b){b.originalEvent&&b.originalEvent.changedTouches&&b.originalEvent.changedTouches[0]&&(e=b.originalEvent.changedTouches[0].clientX,f=b.originalEvent.changedTouches[0].clientY,c=setTimeout(function(){a(b.currentTarget).trigger("contextmenu",!0)},750))}).on("touchmove.vakata.jstree",function(a){c&&a.originalEvent&&a.originalEvent.changedTouches&&a.originalEvent.changedTouches[0]&&(Math.abs(e-a.originalEvent.changedTouches[0].clientX)>50||Math.abs(f-a.originalEvent.changedTouches[0].clientY)>50)&&clearTimeout(c)}).on("touchend.vakata.jstree",function(a){c&&clearTimeout(c)}),a(i).on("context_hide.vakata.jstree",a.proxy(function(b,c){this._data.contextmenu.visible=!1,a(c.reference).removeClass("jstree-context")},this))},this.teardown=function(){this._data.contextmenu.visible&&a.vakata.context.hide(),d.teardown.call(this)},this.show_contextmenu=function(c,d,e,f){if(c=this.get_node(c),!c||c.id===a.jstree.root)return!1;var g=this.settings.contextmenu,h=this.get_node(c,!0),i=h.children(".jstree-anchor"),j=!1,k=!1;(g.show_at_node||d===b||e===b)&&(j=i.offset(),d=j.left,e=j.top+this._data.core.li_height),this.settings.contextmenu.select_node&&!this.is_selected(c)&&this.activate_node(c,f),k=g.items,a.isFunction(k)&&(k=k.call(this,c,a.proxy(function(a){this._show_contextmenu(c,d,e,a)},this))),a.isPlainObject(k)&&this._show_contextmenu(c,d,e,k)},this._show_contextmenu=function(b,c,d,e){var f=this.get_node(b,!0),g=f.children(".jstree-anchor");a(i).one("context_show.vakata.jstree",a.proxy(function(b,c){var d="jstree-contextmenu jstree-"+this.get_theme()+"-contextmenu";a(c.element).addClass(d),g.addClass("jstree-context")},this)),this._data.contextmenu.visible=!0,a.vakata.context.show(g,{x:c,y:d},e),this.trigger("show_contextmenu",{node:b,x:c,y:d})}},function(a){var b=!1,c={element:!1,reference:!1,position_x:0,position_y:0,items:[],html:"",is_visible:!1};a.vakata.context={settings:{hide_onmouseleave:0,icons:!0},_trigger:function(b){a(i).triggerHandler("context_"+b+".vakata",{reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}})},_execute:function(b){return b=c.items[b],b&&(!b._disabled||a.isFunction(b._disabled)&&!b._disabled({item:b,reference:c.reference,element:c.element}))&&b.action?b.action.call(null,{item:b,reference:c.reference,element:c.element,position:{x:c.position_x,y:c.position_y}}):!1},_parse:function(b,d){if(!b)return!1;d||(c.html="",c.items=[]);var e="",f=!1,g;return d&&(e+=""),d||(c.html=e,a.vakata.context._trigger("parse")),e.length>10?e:!1},_show_submenu:function(c){if(c=a(c),c.length&&c.children("ul").length){var d=c.children("ul"),e=c.offset().left,f=e+c.outerWidth(),g=c.offset().top,h=d.width(),i=d.height(),j=a(window).width()+a(window).scrollLeft(),k=a(window).height()+a(window).scrollTop();b?c[f-(h+10+c.outerWidth())<0?"addClass":"removeClass"]("vakata-context-left"):c[f+h>j&&e>j-f?"addClass":"removeClass"]("vakata-context-right"),g+i+10>k&&d.css("bottom","-1px"),c.hasClass("vakata-context-right")?h>e&&d.css("margin-right",e-h):h>j-f&&d.css("margin-left",j-f-h),d.show()}},show:function(d,e,f){var g,h,i,j,k,l,m,n,o=!0;switch(c.element&&c.element.length&&c.element.width(""),o){case!e&&!d:return!1;case!!e&&!!d:c.reference=d,c.position_x=e.x,c.position_y=e.y;break;case!e&&!!d:c.reference=d,g=d.offset(),c.position_x=g.left+d.outerHeight(),c.position_y=g.top;break;case!!e&&!d:c.position_x=e.x,c.position_y=e.y}d&&!f&&a(d).data("vakata_contextmenu")&&(f=a(d).data("vakata_contextmenu")),a.vakata.context._parse(f)&&c.element.html(c.html),c.items.length&&(c.element.appendTo("body"),h=c.element,i=c.position_x,j=c.position_y,k=h.width(),l=h.height(),m=a(window).width()+a(window).scrollLeft(),n=a(window).height()+a(window).scrollTop(),b&&(i-=h.outerWidth()-a(d).outerWidth(),im&&(i=m-(k+20)),j+l+20>n&&(j=n-(l+20)),c.element.css({left:i,top:j}).show().find("a").first().focus().parent().addClass("vakata-context-hover"),c.is_visible=!0,a.vakata.context._trigger("show"))},hide:function(){c.is_visible&&(c.element.hide().find("ul").hide().end().find(":focus").blur().end().detach(),c.is_visible=!1,a.vakata.context._trigger("hide"))}},a(function(){b="rtl"===a("body").css("direction");var d=!1;c.element=a("
        "),c.element.on("mouseenter","li",function(b){b.stopImmediatePropagation(),a.contains(this,b.relatedTarget)||(d&&clearTimeout(d),c.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(),a(this).siblings().find("ul").hide().end().end().parentsUntil(".vakata-context","li").addBack().addClass("vakata-context-hover"),a.vakata.context._show_submenu(this))}).on("mouseleave","li",function(b){a.contains(this,b.relatedTarget)||a(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover")}).on("mouseleave",function(b){a(this).find(".vakata-context-hover").removeClass("vakata-context-hover"),a.vakata.context.settings.hide_onmouseleave&&(d=setTimeout(function(b){return function(){a.vakata.context.hide()}}(this),a.vakata.context.settings.hide_onmouseleave))}).on("click","a",function(b){b.preventDefault(),a(this).blur().parent().hasClass("vakata-context-disabled")||a.vakata.context._execute(a(this).attr("rel"))===!1||a.vakata.context.hide()}).on("keydown","a",function(b){var d=null;switch(b.which){case 13:case 32:b.type="click",b.preventDefault(),a(b.currentTarget).trigger(b);break;case 37:c.is_visible&&(c.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 38:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(), +d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 39:c.is_visible&&(c.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 40:c.is_visible&&(d=c.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(),d.length||(d=c.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first()),d.addClass("vakata-context-hover").children("a").focus(),b.stopImmediatePropagation(),b.preventDefault());break;case 27:a.vakata.context.hide(),b.preventDefault()}}).on("keydown",function(a){a.preventDefault();var b=c.element.find(".vakata-contextmenu-shortcut-"+a.which).parent();b.parent().not(".vakata-context-disabled")&&b.click()}),a(i).on("mousedown.vakata.jstree",function(b){c.is_visible&&!a.contains(c.element[0],b.target)&&a.vakata.context.hide()}).on("context_show.vakata.jstree",function(a,d){c.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"),b&&c.element.addClass("vakata-context-rtl").css("direction","rtl"),c.element.find("ul").hide().end()})})}(a),a.jstree.defaults.dnd={copy:!0,open_timeout:500,is_draggable:!0,check_while_dragging:!0,always_copy:!1,inside_pos:0,drag_selection:!0,touch:!0,large_drop_target:!1,large_drag_target:!1,use_html5:!1};var k,l;a.jstree.plugins.dnd=function(b,c){this.init=function(a,b){c.init.call(this,a,b),this.settings.dnd.use_html5=this.settings.dnd.use_html5&&"draggable"in i.createElement("span")},this.bind=function(){c.bind.call(this),this.element.on(this.settings.dnd.use_html5?"dragstart.jstree":"mousedown.jstree touchstart.jstree",this.settings.dnd.large_drag_target?".jstree-node":".jstree-anchor",a.proxy(function(b){if(this.settings.dnd.large_drag_target&&a(b.target).closest(".jstree-node")[0]!==b.currentTarget)return!0;if("touchstart"===b.type&&(!this.settings.dnd.touch||"selected"===this.settings.dnd.touch&&!a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").hasClass("jstree-clicked")))return!0;var c=this.get_node(b.target),d=this.is_selected(c)&&this.settings.dnd.drag_selection?this.get_top_selected().length:1,e=d>1?d+" "+this.get_string("nodes"):this.get_text(b.currentTarget);if(this.settings.core.force_text&&(e=a.vakata.html.escape(e)),c&&c.id&&c.id!==a.jstree.root&&(1===b.which||"touchstart"===b.type||"dragstart"===b.type)&&(this.settings.dnd.is_draggable===!0||a.isFunction(this.settings.dnd.is_draggable)&&this.settings.dnd.is_draggable.call(this,d>1?this.get_top_selected(!0):[c],b))){if(k={jstree:!0,origin:this,obj:this.get_node(c,!0),nodes:d>1?this.get_top_selected():[c.id]},l=b.currentTarget,!this.settings.dnd.use_html5)return this.element.trigger("mousedown.jstree"),a.vakata.dnd.start(b,k,'
        '+e+'
        ');a.vakata.dnd._trigger("start",b,{helper:a(),element:l,data:k})}},this)),this.settings.dnd.use_html5&&this.element.on("dragover.jstree",function(b){return b.preventDefault(),a.vakata.dnd._trigger("move",b,{helper:a(),element:l,data:k}),!1}).on("drop.jstree",a.proxy(function(b){return b.preventDefault(),a.vakata.dnd._trigger("stop",b,{helper:a(),element:l,data:k}),!1},this))},this.redraw_node=function(a,b,d,e){if(a=c.redraw_node.apply(this,arguments),a&&this.settings.dnd.use_html5)if(this.settings.dnd.large_drag_target)a.setAttribute("draggable",!0);else{var f,g,h=null;for(f=0,g=a.childNodes.length;g>f;f++)if(a.childNodes[f]&&a.childNodes[f].className&&-1!==a.childNodes[f].className.indexOf("jstree-anchor")){h=a.childNodes[f];break}h&&h.setAttribute("draggable",!0)}return a}},a(function(){var c=!1,d=!1,e=!1,f=!1,g=a('
         
        ').hide();a(i).on("dnd_start.vakata.jstree",function(a,b){c=!1,e=!1,b&&b.data&&b.data.jstree&&g.appendTo("body")}).on("dnd_move.vakata.jstree",function(h,i){if(f&&(i.event&&"dragover"===i.event.type&&i.event.target===e.target||clearTimeout(f)),i&&i.data&&i.data.jstree&&(!i.event.target.id||"jstree-marker"!==i.event.target.id)){e=i.event;var j=a.jstree.reference(i.event.target),k=!1,l=!1,m=!1,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D;if(j&&j._data&&j._data.dnd)if(g.attr("class","jstree-"+j.get_theme()+(j.settings.core.themes.responsive?" jstree-dnd-responsive":"")),C=i.data.origin&&(i.data.origin.settings.dnd.always_copy||i.data.origin.settings.dnd.copy&&(i.event.metaKey||i.event.ctrlKey)),i.helper.children().attr("class","jstree-"+j.get_theme()+" jstree-"+j.get_theme()+"-"+j.get_theme_variant()+" "+(j.settings.core.themes.responsive?" jstree-dnd-responsive":"")).find(".jstree-copy").first()[C?"show":"hide"](),i.event.target!==j.element[0]&&i.event.target!==j.get_container_ul()[0]||0!==j.get_container_ul().children().length){if(k=j.settings.dnd.large_drop_target?a(i.event.target).closest(".jstree-node").children(".jstree-anchor"):a(i.event.target).closest(".jstree-anchor"),k&&k.length&&k.parent().is(".jstree-closed, .jstree-open, .jstree-leaf")&&(l=k.offset(),m=(i.event.pageY!==b?i.event.pageY:i.event.originalEvent.pageY)-l.top,q=k.outerHeight(),t=q/3>m?["b","i","a"]:m>q-q/3?["a","i","b"]:m>q/2?["i","a","b"]:["i","b","a"],a.each(t,function(b,e){switch(e){case"b":o=l.left-6,p=l.top,r=j.get_parent(k),s=k.parent().index();break;case"i":A=j.settings.dnd.inside_pos,B=j.get_node(k.parent()),o=l.left-2,p=l.top+q/2+1,r=B.id,s="first"===A?0:"last"===A?B.children.length:Math.min(A,B.children.length);break;case"a":o=l.left-6,p=l.top+q,r=j.get_parent(k),s=k.parent().index()+1}for(u=!0,v=0,w=i.data.nodes.length;w>v;v++)if(x=i.data.origin&&(i.data.origin.settings.dnd.always_copy||i.data.origin.settings.dnd.copy&&(i.event.metaKey||i.event.ctrlKey))?"copy_node":"move_node",y=s,"move_node"===x&&"a"===e&&i.data.origin&&i.data.origin===j&&r===j.get_parent(i.data.nodes[v])&&(z=j.get_node(r),y>a.inArray(i.data.nodes[v],z.children)&&(y-=1)),u=u&&(j&&j.settings&&j.settings.dnd&&j.settings.dnd.check_while_dragging===!1||j.check(x,i.data.origin&&i.data.origin!==j?i.data.origin.get_node(i.data.nodes[v]):i.data.nodes[v],r,y,{dnd:!0,ref:j.get_node(k.parent()),pos:e,origin:i.data.origin,is_multi:i.data.origin&&i.data.origin!==j,is_foreign:!i.data.origin})),!u){j&&j.last_error&&(d=j.last_error());break}return"i"===e&&k.parent().is(".jstree-closed")&&j.settings.dnd.open_timeout&&(f=setTimeout(function(a,b){return function(){a.open_node(b)}}(j,k),j.settings.dnd.open_timeout)),u?(D=j.get_node(r,!0),D.hasClass(".jstree-dnd-parent")||(a(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),D.addClass("jstree-dnd-parent")),c={ins:j,par:r,pos:"i"!==e||"last"!==A||0!==s||j.is_loaded(B)?s:"last"},g.css({left:o+"px",top:p+"px"}).show(),i.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),i.event.originalEvent&&i.event.originalEvent.dataTransfer&&(i.event.originalEvent.dataTransfer.dropEffect=C?"copy":"move"),d={},t=!0,!1):void 0}),t===!0))return}else{for(u=!0,v=0,w=i.data.nodes.length;w>v;v++)if(u=u&&j.check(i.data.origin&&(i.data.origin.settings.dnd.always_copy||i.data.origin.settings.dnd.copy&&(i.event.metaKey||i.event.ctrlKey))?"copy_node":"move_node",i.data.origin&&i.data.origin!==j?i.data.origin.get_node(i.data.nodes[v]):i.data.nodes[v],a.jstree.root,"last",{dnd:!0,ref:j.get_node(a.jstree.root),pos:"i",origin:i.data.origin,is_multi:i.data.origin&&i.data.origin!==j,is_foreign:!i.data.origin}),!u)break;if(u)return c={ins:j,par:a.jstree.root,pos:"last"},g.hide(),i.helper.find(".jstree-icon").first().removeClass("jstree-er").addClass("jstree-ok"),void(i.event.originalEvent&&i.event.originalEvent.dataTransfer&&(i.event.originalEvent.dataTransfer.dropEffect=C?"copy":"move"))}a(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),c=!1,i.helper.find(".jstree-icon").removeClass("jstree-ok").addClass("jstree-er"),i.event.originalEvent&&i.event.originalEvent.dataTransfer&&(i.event.originalEvent.dataTransfer.dropEffect="none"),g.hide()}}).on("dnd_scroll.vakata.jstree",function(a,b){b&&b.data&&b.data.jstree&&(g.hide(),c=!1,e=!1,b.helper.find(".jstree-icon").first().removeClass("jstree-ok").addClass("jstree-er"))}).on("dnd_stop.vakata.jstree",function(b,h){if(a(".jstree-dnd-parent").removeClass("jstree-dnd-parent"),f&&clearTimeout(f),h&&h.data&&h.data.jstree){g.hide().detach();var i,j,k=[];if(c){for(i=0,j=h.data.nodes.length;j>i;i++)k[i]=h.data.origin?h.data.origin.get_node(h.data.nodes[i]):h.data.nodes[i];c.ins[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(h.event.metaKey||h.event.ctrlKey))?"copy_node":"move_node"](k,c.par,c.pos,!1,!1,!1,h.data.origin)}else i=a(h.event.target).closest(".jstree"),i.length&&d&&d.error&&"check"===d.error&&(i=i.jstree(!0),i&&i.settings.core.error.call(this,d));e=!1,c=!1}}).on("keyup.jstree keydown.jstree",function(b,h){h=a.vakata.dnd._get(),h&&h.data&&h.data.jstree&&("keyup"===b.type&&27===b.which?(f&&clearTimeout(f),c=!1,d=!1,e=!1,f=!1,g.hide().detach(),a.vakata.dnd._clean()):(h.helper.find(".jstree-copy").first()[h.data.origin&&(h.data.origin.settings.dnd.always_copy||h.data.origin.settings.dnd.copy&&(b.metaKey||b.ctrlKey))?"show":"hide"](),e&&(e.metaKey=b.metaKey,e.ctrlKey=b.ctrlKey,a.vakata.dnd._trigger("move",e))))})}),function(a){a.vakata.html={div:a("
        "),escape:function(b){return a.vakata.html.div.text(b).html()},strip:function(b){return a.vakata.html.div.empty().append(a.parseHTML(b)).text()}};var c={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1};a.vakata.dnd={settings:{scroll_speed:10,scroll_proximity:20,helper_left:5,helper_top:10,threshold:5,threshold_touch:50},_trigger:function(c,d,e){e===b&&(e=a.vakata.dnd._get()),e.event=d,a(i).triggerHandler("dnd_"+c+".vakata",e)},_get:function(){return{data:c.data,element:c.element,helper:c.helper}},_clean:function(){c.helper&&c.helper.remove(),c.scroll_i&&(clearInterval(c.scroll_i),c.scroll_i=!1),c={element:!1,target:!1,is_down:!1,is_drag:!1,helper:!1,helper_w:0,data:!1,init_x:0,init_y:0,scroll_l:0,scroll_t:0,scroll_e:!1,scroll_i:!1,is_touch:!1},a(i).off("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(i).off("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop)},_scroll:function(b){if(!c.scroll_e||!c.scroll_l&&!c.scroll_t)return c.scroll_i&&(clearInterval(c.scroll_i),c.scroll_i=!1),!1;if(!c.scroll_i)return c.scroll_i=setInterval(a.vakata.dnd._scroll,100),!1;if(b===!0)return!1;var d=c.scroll_e.scrollTop(),e=c.scroll_e.scrollLeft();c.scroll_e.scrollTop(d+c.scroll_t*a.vakata.dnd.settings.scroll_speed),c.scroll_e.scrollLeft(e+c.scroll_l*a.vakata.dnd.settings.scroll_speed),(d!==c.scroll_e.scrollTop()||e!==c.scroll_e.scrollLeft())&&a.vakata.dnd._trigger("scroll",c.scroll_e)},start:function(b,d,e){"touchstart"===b.type&&b.originalEvent&&b.originalEvent.changedTouches&&b.originalEvent.changedTouches[0]&&(b.pageX=b.originalEvent.changedTouches[0].pageX,b.pageY=b.originalEvent.changedTouches[0].pageY,b.target=i.elementFromPoint(b.originalEvent.changedTouches[0].pageX-window.pageXOffset,b.originalEvent.changedTouches[0].pageY-window.pageYOffset)),c.is_drag&&a.vakata.dnd.stop({});try{b.currentTarget.unselectable="on",b.currentTarget.onselectstart=function(){return!1},b.currentTarget.style&&(b.currentTarget.style.touchAction="none",b.currentTarget.style.msTouchAction="none",b.currentTarget.style.MozUserSelect="none")}catch(f){}return c.init_x=b.pageX,c.init_y=b.pageY,c.data=d,c.is_down=!0,c.element=b.currentTarget,c.target=b.target,c.is_touch="touchstart"===b.type,e!==!1&&(c.helper=a("
        ").html(e).css({display:"block",margin:"0",padding:"0",position:"absolute",top:"-2000px",lineHeight:"16px",zIndex:"10000"})),a(i).on("mousemove.vakata.jstree touchmove.vakata.jstree",a.vakata.dnd.drag),a(i).on("mouseup.vakata.jstree touchend.vakata.jstree",a.vakata.dnd.stop),!1},drag:function(b){if("touchmove"===b.type&&b.originalEvent&&b.originalEvent.changedTouches&&b.originalEvent.changedTouches[0]&&(b.pageX=b.originalEvent.changedTouches[0].pageX,b.pageY=b.originalEvent.changedTouches[0].pageY,b.target=i.elementFromPoint(b.originalEvent.changedTouches[0].pageX-window.pageXOffset,b.originalEvent.changedTouches[0].pageY-window.pageYOffset)),c.is_down){if(!c.is_drag){if(!(Math.abs(b.pageX-c.init_x)>(c.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)||Math.abs(b.pageY-c.init_y)>(c.is_touch?a.vakata.dnd.settings.threshold_touch:a.vakata.dnd.settings.threshold)))return;c.helper&&(c.helper.appendTo("body"),c.helper_w=c.helper.outerWidth()),c.is_drag=!0,a(c.target).one("click.vakata",!1),a.vakata.dnd._trigger("start",b)}var d=!1,e=!1,f=!1,g=!1,h=!1,j=!1,k=!1,l=!1,m=!1,n=!1;return c.scroll_t=0,c.scroll_l=0,c.scroll_e=!1,a(a(b.target).parentsUntil("body").addBack().get().reverse()).filter(function(){return/^auto|scroll$/.test(a(this).css("overflow"))&&(this.scrollHeight>this.offsetHeight||this.scrollWidth>this.offsetWidth)}).each(function(){var d=a(this),e=d.offset();return this.scrollHeight>this.offsetHeight&&(e.top+d.height()-b.pageYthis.offsetWidth&&(e.left+d.width()-b.pageXg&&b.pageY-kg&&g-(b.pageY-k)j&&b.pageX-lj&&j-(b.pageX-l)f&&(m=f-50),h&&n+c.helper_w>h&&(n=h-(c.helper_w+2)),c.helper.css({left:n+"px",top:m+"px"})),a.vakata.dnd._trigger("move",b),!1}},stop:function(b){if("touchend"===b.type&&b.originalEvent&&b.originalEvent.changedTouches&&b.originalEvent.changedTouches[0]&&(b.pageX=b.originalEvent.changedTouches[0].pageX,b.pageY=b.originalEvent.changedTouches[0].pageY,b.target=i.elementFromPoint(b.originalEvent.changedTouches[0].pageX-window.pageXOffset,b.originalEvent.changedTouches[0].pageY-window.pageYOffset)),c.is_drag)b.target!==c.target&&a(c.target).off("click.vakata"),a.vakata.dnd._trigger("stop",b);else if("touchend"===b.type&&b.target===c.target){var d=setTimeout(function(){a(b.target).click()},100);a(b.target).one("click",function(){d&&clearTimeout(d)})}return a.vakata.dnd._clean(),!1}}}(a),a.jstree.defaults.massload=null,a.jstree.plugins.massload=function(b,c){this.init=function(a,b){this._data.massload={},c.init.call(this,a,b)},this._load_nodes=function(b,d,e,f){var g=this.settings.massload,h=JSON.stringify(b),i=[],j=this._model.data,k,l,m;if(!e){for(k=0,l=b.length;l>k;k++)(!j[b[k]]||!j[b[k]].state.loaded&&!j[b[k]].state.failed||f)&&(i.push(b[k]),m=this.get_node(b[k],!0),m&&m.length&&m.addClass("jstree-loading").attr("aria-busy",!0));if(this._data.massload={},i.length){if(a.isFunction(g))return g.call(this,i,a.proxy(function(a){var g,h;if(a)for(g in a)a.hasOwnProperty(g)&&(this._data.massload[g]=a[g]);for(g=0,h=b.length;h>g;g++)m=this.get_node(b[g],!0),m&&m.length&&m.removeClass("jstree-loading").attr("aria-busy",!1);c._load_nodes.call(this,b,d,e,f)},this));if("object"==typeof g&&g&&g.url)return g=a.extend(!0,{},g),a.isFunction(g.url)&&(g.url=g.url.call(this,i)),a.isFunction(g.data)&&(g.data=g.data.call(this,i)),a.ajax(g).done(a.proxy(function(a,g,h){var i,j;if(a)for(i in a)a.hasOwnProperty(i)&&(this._data.massload[i]=a[i]);for(i=0,j=b.length;j>i;i++)m=this.get_node(b[i],!0),m&&m.length&&m.removeClass("jstree-loading").attr("aria-busy",!1);c._load_nodes.call(this,b,d,e,f)},this)).fail(a.proxy(function(a){c._load_nodes.call(this,b,d,e,f)},this))}}return c._load_nodes.call(this,b,d,e,f)},this._load_node=function(b,d){var e=this._data.massload[b.id],f=null,g;return e?(f=this["string"==typeof e?"_append_html_data":"_append_json_data"](b,"string"==typeof e?a(a.parseHTML(e)).filter(function(){return 3!==this.nodeType}):e,function(a){d.call(this,a)}),g=this.get_node(b.id,!0),g&&g.length&&g.removeClass("jstree-loading").attr("aria-busy",!1),delete this._data.massload[b.id],f):c._load_node.call(this,b,d)}},a.jstree.defaults.search={ajax:!1,fuzzy:!1,case_sensitive:!1,show_only_matches:!1,show_only_matches_children:!1,close_opened_onclear:!0,search_leaves_only:!1,search_callback:!1},a.jstree.plugins.search=function(c,d){this.bind=function(){d.bind.call(this),this._data.search.str="",this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=!1,this._data.search.smc=!1,this._data.search.hdn=[],this.element.on("search.jstree",a.proxy(function(b,c){if(this._data.search.som&&c.res.length){var d=this._model.data,e,f,g=[],h,i;for(e=0,f=c.res.length;f>e;e++)if(d[c.res[e]]&&!d[c.res[e]].state.hidden&&(g.push(c.res[e]),g=g.concat(d[c.res[e]].parents),this._data.search.smc))for(h=0,i=d[c.res[e]].children_d.length;i>h;h++)d[d[c.res[e]].children_d[h]]&&!d[d[c.res[e]].children_d[h]].state.hidden&&g.push(d[c.res[e]].children_d[h]);g=a.vakata.array_remove_item(a.vakata.array_unique(g),a.jstree.root),this._data.search.hdn=this.hide_all(!0),this.show_node(g,!0),this.redraw(!0)}},this)).on("clear_search.jstree",a.proxy(function(a,b){this._data.search.som&&b.res.length&&(this.show_node(this._data.search.hdn,!0),this.redraw(!0))},this))},this.search=function(c,d,e,f,g,h){if(c===!1||""===a.trim(c.toString()))return this.clear_search();f=this.get_node(f),f=f&&f.id?f.id:null,c=c.toString();var i=this.settings.search,j=i.ajax?i.ajax:!1,k=this._model.data,l=null,m=[],n=[],o,p;if(this._data.search.res.length&&!g&&this.clear_search(),e===b&&(e=i.show_only_matches),h===b&&(h=i.show_only_matches_children),!d&&j!==!1)return a.isFunction(j)?j.call(this,c,a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g,h)})},this),f):(j=a.extend({},j),j.data||(j.data={}),j.data.str=c,f&&(j.data.inside=f),this._data.search.lastRequest&&this._data.search.lastRequest.abort(),this._data.search.lastRequest=a.ajax(j).fail(a.proxy(function(){this._data.core.last_error={error:"ajax",plugin:"search",id:"search_01",reason:"Could not load search parents",data:JSON.stringify(j)},this.settings.core.error.call(this,this._data.core.last_error)},this)).done(a.proxy(function(b){b&&b.d&&(b=b.d),this._load_nodes(a.isArray(b)?a.vakata.array_unique(b):[],function(){this.search(c,!0,e,f,g,h)})},this)),this._data.search.lastRequest);if(g||(this._data.search.str=c,this._data.search.dom=a(),this._data.search.res=[],this._data.search.opn=[],this._data.search.som=e,this._data.search.smc=h),l=new a.vakata.search(c,!0,{caseSensitive:i.case_sensitive,fuzzy:i.fuzzy}),a.each(k[f?f:a.jstree.root].children_d,function(a,b){var d=k[b];d.text&&!d.state.hidden&&(!i.search_leaves_only||d.state.loaded&&0===d.children.length)&&(i.search_callback&&i.search_callback.call(this,c,d)||!i.search_callback&&l.search(d.text).isMatch)&&(m.push(b),n=n.concat(d.parents))}),m.length){for(n=a.vakata.array_unique(n),o=0,p=n.length;p>o;o++)n[o]!==a.jstree.root&&k[n[o]]&&this.open_node(n[o],null,0)===!0&&this._data.search.opn.push(n[o]);g?(this._data.search.dom=this._data.search.dom.add(a(this.element[0].querySelectorAll("#"+a.map(m,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #")))),this._data.search.res=a.vakata.array_unique(this._data.search.res.concat(m))):(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(m,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.res=m),this._data.search.dom.children(".jstree-anchor").addClass("jstree-search")}this.trigger("search",{nodes:this._data.search.dom,str:c,res:this._data.search.res,show_only_matches:e})},this.clear_search=function(){this.settings.search.close_opened_onclear&&this.close_node(this._data.search.opn,0),this.trigger("clear_search",{nodes:this._data.search.dom,str:this._data.search.str,res:this._data.search.res}),this._data.search.res.length&&(this._data.search.dom=a(this.element[0].querySelectorAll("#"+a.map(this._data.search.res,function(b){return-1!=="0123456789".indexOf(b[0])?"\\3"+b[0]+" "+b.substr(1).replace(a.jstree.idregex,"\\$&"):b.replace(a.jstree.idregex,"\\$&")}).join(", #"))),this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search")),this._data.search.str="",this._data.search.res=[],this._data.search.opn=[],this._data.search.dom=a()},this.redraw_node=function(b,c,e,f){if(b=d.redraw_node.apply(this,arguments),b&&-1!==a.inArray(b.id,this._data.search.res)){var g,h,i=null;for(g=0,h=b.childNodes.length;h>g;g++)if(b.childNodes[g]&&b.childNodes[g].className&&-1!==b.childNodes[g].className.indexOf("jstree-anchor")){i=b.childNodes[g];break}i&&(i.className+=" jstree-search")}return b}},function(a){a.vakata.search=function(b,c,d){d=d||{},d=a.extend({},a.vakata.search.defaults,d),d.fuzzy!==!1&&(d.fuzzy=!0),b=d.caseSensitive?b:b.toLowerCase();var e=d.location,f=d.distance,g=d.threshold,h=b.length,i,j,k,l;return h>32&&(d.fuzzy=!1),d.fuzzy&&(i=1<c;c++)a[b.charAt(c)]=0;for(c=0;h>c;c++)a[b.charAt(c)]|=1<c;c++){o=0,p=q;while(p>o)k(c,e+p)<=m?o=p:q=p,p=Math.floor((q-o)/2+o);for(q=p,s=Math.max(1,e-p+1),t=Math.min(e+p,l)+h,u=new Array(t+2),u[t+1]=(1<=s;f--)if(v=j[a.charAt(f-1)],0===c?u[f]=(u[f+1]<<1|1)&v:u[f]=(u[f+1]<<1|1)&v|((r[f+1]|r[f])<<1|1)|r[f+1],u[f]&i&&(w=k(c,f-1),m>=w)){if(m=w,n=f-1,x.push(n),!(n>e))break;s=Math.max(1,2*e-n)}if(k(c+1,e)>m)break;r=u}return{isMatch:n>=0,score:w}},c===!0?{search:l}:l(c)},a.vakata.search.defaults={location:0,distance:100,threshold:.6,fuzzy:!1,caseSensitive:!1}}(a),a.jstree.defaults.sort=function(a,b){return this.get_text(a)>this.get_text(b)?1:-1},a.jstree.plugins.sort=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("model.jstree",a.proxy(function(a,b){this.sort(b.parent,!0)},this)).on("rename_node.jstree create_node.jstree",a.proxy(function(a,b){this.sort(b.parent||b.node.parent,!1),this.redraw_node(b.parent||b.node.parent,!0)},this)).on("move_node.jstree copy_node.jstree",a.proxy(function(a,b){this.sort(b.parent,!1),this.redraw_node(b.parent,!0)},this))},this.sort=function(b,c){var d,e;if(b=this.get_node(b),b&&b.children&&b.children.length&&(b.children.sort(a.proxy(this.settings.sort,this)),c))for(d=0,e=b.children_d.length;e>d;d++)this.sort(b.children_d[d],!1)}};var m=!1;a.jstree.defaults.state={key:"jstree",events:"changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree",ttl:!1,filter:!1},a.jstree.plugins.state=function(b,c){this.bind=function(){c.bind.call(this);var b=a.proxy(function(){this.element.on(this.settings.state.events,a.proxy(function(){m&&clearTimeout(m),m=setTimeout(a.proxy(function(){this.save_state()},this),100)},this)),this.trigger("state_ready")},this);this.element.on("ready.jstree",a.proxy(function(a,c){this.element.one("restore_state.jstree",b),this.restore_state()||b()},this))},this.save_state=function(){var b={state:this.get_state(),ttl:this.settings.state.ttl,sec:+new Date};a.vakata.storage.set(this.settings.state.key,JSON.stringify(b))},this.restore_state=function(){var b=a.vakata.storage.get(this.settings.state.key);if(b)try{b=JSON.parse(b)}catch(c){return!1}return b&&b.ttl&&b.sec&&+new Date-b.sec>b.ttl?!1:(b&&b.state&&(b=b.state),b&&a.isFunction(this.settings.state.filter)&&(b=this.settings.state.filter.call(this,b)),b?(this.element.one("set_state.jstree",function(c,d){d.instance.trigger("restore_state",{state:a.extend(!0,{},b)})}),this.set_state(b),!0):!1)},this.clear_state=function(){return a.vakata.storage.del(this.settings.state.key)}},function(a,b){a.vakata.storage={set:function(a,b){return window.localStorage.setItem(a,b)},get:function(a){return window.localStorage.getItem(a)},del:function(a){return window.localStorage.removeItem(a)}}}(a),a.jstree.defaults.types={"default":{}},a.jstree.defaults.types[a.jstree.root]={},a.jstree.plugins.types=function(c,d){this.init=function(c,e){var f,g;if(e&&e.types&&e.types["default"])for(f in e.types)if("default"!==f&&f!==a.jstree.root&&e.types.hasOwnProperty(f))for(g in e.types["default"])e.types["default"].hasOwnProperty(g)&&e.types[f][g]===b&&(e.types[f][g]=e.types["default"][g]);d.init.call(this,c,e),this._model.data[a.jstree.root].type=a.jstree.root},this.refresh=function(b,c){d.refresh.call(this,b,c),this._model.data[a.jstree.root].type=a.jstree.root},this.bind=function(){this.element.on("model.jstree",a.proxy(function(c,d){var e=this._model.data,f=d.nodes,g=this.settings.types,h,i,j="default",k;for(h=0,i=f.length;i>h;h++){if(j="default",e[f[h]].original&&e[f[h]].original.type&&g[e[f[h]].original.type]&&(j=e[f[h]].original.type),e[f[h]].data&&e[f[h]].data.jstree&&e[f[h]].data.jstree.type&&g[e[f[h]].data.jstree.type]&&(j=e[f[h]].data.jstree.type),e[f[h]].type=j,e[f[h]].icon===!0&&g[j].icon!==b&&(e[f[h]].icon=g[j].icon),g[j].li_attr!==b&&"object"==typeof g[j].li_attr)for(k in g[j].li_attr)if(g[j].li_attr.hasOwnProperty(k)){if("id"===k)continue;e[f[h]].li_attr[k]===b?e[f[h]].li_attr[k]=g[j].li_attr[k]:"class"===k&&(e[f[h]].li_attr["class"]=g[j].li_attr["class"]+" "+e[f[h]].li_attr["class"])}if(g[j].a_attr!==b&&"object"==typeof g[j].a_attr)for(k in g[j].a_attr)if(g[j].a_attr.hasOwnProperty(k)){if("id"===k)continue;e[f[h]].a_attr[k]===b?e[f[h]].a_attr[k]=g[j].a_attr[k]:"href"===k&&"#"===e[f[h]].a_attr[k]?e[f[h]].a_attr.href=g[j].a_attr.href:"class"===k&&(e[f[h]].a_attr["class"]=g[j].a_attr["class"]+" "+e[f[h]].a_attr["class"])}}e[a.jstree.root].type=a.jstree.root},this)),d.bind.call(this)},this.get_json=function(b,c,e){var f,g,h=this._model.data,i=c?a.extend(!0,{},c,{no_id:!1}):{},j=d.get_json.call(this,b,i,e);if(j===!1)return!1;if(a.isArray(j))for(f=0,g=j.length;g>f;f++)j[f].type=j[f].id&&h[j[f].id]&&h[j[f].id].type?h[j[f].id].type:"default",c&&c.no_id&&(delete j[f].id,j[f].li_attr&&j[f].li_attr.id&&delete j[f].li_attr.id,j[f].a_attr&&j[f].a_attr.id&&delete j[f].a_attr.id);else j.type=j.id&&h[j.id]&&h[j.id].type?h[j.id].type:"default",c&&c.no_id&&(j=this._delete_ids(j));return j},this._delete_ids=function(b){if(a.isArray(b)){for(var c=0,d=b.length;d>c;c++)b[c]=this._delete_ids(b[c]);return b}return delete b.id,b.li_attr&&b.li_attr.id&&delete b.li_attr.id,b.a_attr&&b.a_attr.id&&delete b.a_attr.id,b.children&&a.isArray(b.children)&&(b.children=this._delete_ids(b.children)),b},this.check=function(c,e,f,g,h){if(d.check.call(this,c,e,f,g,h)===!1)return!1;e=e&&e.id?e:this.get_node(e),f=f&&f.id?f:this.get_node(f);var i=e&&e.id?h&&h.origin?h.origin:a.jstree.reference(e.id):null,j,k,l,m;switch(i=i&&i._model&&i._model.data?i._model.data:null,c){case"create_node":case"move_node":case"copy_node":if("move_node"!==c||-1===a.inArray(e.id,f.children)){if(j=this.get_rules(f),j.max_children!==b&&-1!==j.max_children&&j.max_children===f.children.length)return this._data.core.last_error={error:"check",plugin:"types",id:"types_01",reason:"max_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(j.valid_children!==b&&-1!==j.valid_children&&-1===a.inArray(e.type||"default",j.valid_children))return this._data.core.last_error={error:"check",plugin:"types",id:"types_02",reason:"valid_children prevents function: "+c,data:JSON.stringify({chk:c,pos:g,obj:e&&e.id?e.id:!1,par:f&&f.id?f.id:!1})},!1;if(i&&e.children_d&&e.parents){for(k=0,l=0,m=e.children_d.length;m>l;l++)k=Math.max(k,i[e.children_d[l]].parents.length);k=k-e.parents.length+1}(0>=k||k===b)&&(k=1);do{if(j.max_depth!==b&&-1!==j.max_depth&&j.max_depthg;g++)this.set_type(c[g],d);return!0}if(f=this.settings.types,c=this.get_node(c),!f[d]||!c)return!1;if(l=this.get_node(c,!0),l&&l.length&&(m=l.children(".jstree-anchor")),i=c.type,j=this.get_icon(c),c.type=d,(j===!0||!f[i]||f[i].icon!==b&&j===f[i].icon)&&this.set_icon(c,f[d].icon!==b?f[d].icon:!0),f[i]&&f[i].li_attr!==b&&"object"==typeof f[i].li_attr)for(k in f[i].li_attr)if(f[i].li_attr.hasOwnProperty(k)){if("id"===k)continue;"class"===k?(e[c.id].li_attr["class"]=(e[c.id].li_attr["class"]||"").replace(f[i].li_attr[k],""),l&&l.removeClass(f[i].li_attr[k])):e[c.id].li_attr[k]===f[i].li_attr[k]&&(e[c.id].li_attr[k]=null,l&&l.removeAttr(k))}if(f[i]&&f[i].a_attr!==b&&"object"==typeof f[i].a_attr)for(k in f[i].a_attr)if(f[i].a_attr.hasOwnProperty(k)){if("id"===k)continue;"class"===k?(e[c.id].a_attr["class"]=(e[c.id].a_attr["class"]||"").replace(f[i].a_attr[k],""),m&&m.removeClass(f[i].a_attr[k])):e[c.id].a_attr[k]===f[i].a_attr[k]&&("href"===k?(e[c.id].a_attr[k]="#",m&&m.attr("href","#")):(delete e[c.id].a_attr[k],m&&m.removeAttr(k)))}if(f[d].li_attr!==b&&"object"==typeof f[d].li_attr)for(k in f[d].li_attr)if(f[d].li_attr.hasOwnProperty(k)){if("id"===k)continue;e[c.id].li_attr[k]===b?(e[c.id].li_attr[k]=f[d].li_attr[k],l&&("class"===k?l.addClass(f[d].li_attr[k]):l.attr(k,f[d].li_attr[k]))):"class"===k&&(e[c.id].li_attr["class"]=f[d].li_attr[k]+" "+e[c.id].li_attr["class"],l&&l.addClass(f[d].li_attr[k]))}if(f[d].a_attr!==b&&"object"==typeof f[d].a_attr)for(k in f[d].a_attr)if(f[d].a_attr.hasOwnProperty(k)){if("id"===k)continue;e[c.id].a_attr[k]===b?(e[c.id].a_attr[k]=f[d].a_attr[k],m&&("class"===k?m.addClass(f[d].a_attr[k]):m.attr(k,f[d].a_attr[k]))):"href"===k&&"#"===e[c.id].a_attr[k]?(e[c.id].a_attr.href=f[d].a_attr.href,m&&m.attr("href",f[d].a_attr.href)):"class"===k&&(e[c.id].a_attr["class"]=f[d].a_attr["class"]+" "+e[c.id].a_attr["class"],m&&m.addClass(f[d].a_attr[k]))}return!0}},a.jstree.defaults.unique={case_sensitive:!1,duplicate:function(a,b){return a+" ("+b+")"}},a.jstree.plugins.unique=function(c,d){this.check=function(b,c,e,f,g){if(d.check.call(this,b,c,e,f,g)===!1)return!1; +if(c=c&&c.id?c:this.get_node(c),e=e&&e.id?e:this.get_node(e),!e||!e.children)return!0;var h="rename_node"===b?f:c.text,i=[],j=this.settings.unique.case_sensitive,k=this._model.data,l,m;for(l=0,m=e.children.length;m>l;l++)i.push(j?k[e.children[l]].text:k[e.children[l]].text.toLowerCase());switch(j||(h=h.toLowerCase()),b){case"delete_node":return!0;case"rename_node":return l=-1===a.inArray(h,i)||c.text&&c.text[j?"toString":"toLowerCase"]()===h,l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_01",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l;case"create_node":return l=-1===a.inArray(h,i),l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_04",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l;case"copy_node":return l=-1===a.inArray(h,i),l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_02",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l;case"move_node":return l=c.parent===e.id&&(!g||!g.is_multi)||-1===a.inArray(h,i),l||(this._data.core.last_error={error:"check",plugin:"unique",id:"unique_03",reason:"Child with name "+h+" already exists. Preventing: "+b,data:JSON.stringify({chk:b,pos:f,obj:c&&c.id?c.id:!1,par:e&&e.id?e.id:!1})}),l}return!0},this.create_node=function(c,e,f,g,h){if(!e||e.text===b){if(null===c&&(c=a.jstree.root),c=this.get_node(c),!c)return d.create_node.call(this,c,e,f,g,h);if(f=f===b?"last":f,!f.toString().match(/^(before|after)$/)&&!h&&!this.is_loaded(c))return d.create_node.call(this,c,e,f,g,h);e||(e={});var i,j,k,l,m,n=this._model.data,o=this.settings.unique.case_sensitive,p=this.settings.unique.duplicate;for(j=i=this.get_string("New node"),k=[],l=0,m=c.children.length;m>l;l++)k.push(o?n[c.children[l]].text:n[c.children[l]].text.toLowerCase());l=1;while(-1!==a.inArray(o?j:j.toLowerCase(),k))j=p.call(this,i,++l).toString();e.text=j}return d.create_node.call(this,c,e,f,g,h)}};var n=i.createElement("DIV");if(n.setAttribute("unselectable","on"),n.setAttribute("role","presentation"),n.className="jstree-wholerow",n.innerHTML=" ",a.jstree.plugins.wholerow=function(b,c){this.bind=function(){c.bind.call(this),this.element.on("ready.jstree set_state.jstree",a.proxy(function(){this.hide_dots()},this)).on("init.jstree loading.jstree ready.jstree",a.proxy(function(){this.get_container_ul().addClass("jstree-wholerow-ul")},this)).on("deselect_all.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked")},this)).on("changed.jstree",a.proxy(function(a,b){this.element.find(".jstree-wholerow-clicked").removeClass("jstree-wholerow-clicked");var c=!1,d,e;for(d=0,e=b.selected.length;e>d;d++)c=this.get_node(b.selected[d],!0),c&&c.length&&c.children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("open_node.jstree",a.proxy(function(a,b){this.get_node(b.node,!0).find(".jstree-clicked").parent().children(".jstree-wholerow").addClass("jstree-wholerow-clicked")},this)).on("hover_node.jstree dehover_node.jstree",a.proxy(function(a,b){"hover_node"===a.type&&this.is_disabled(b.node)||this.get_node(b.node,!0).children(".jstree-wholerow")["hover_node"===a.type?"addClass":"removeClass"]("jstree-wholerow-hovered")},this)).on("contextmenu.jstree",".jstree-wholerow",a.proxy(function(b){if(this._data.contextmenu){b.preventDefault();var c=a.Event("contextmenu",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey,pageX:b.pageX,pageY:b.pageY});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c)}},this)).on("click.jstree",".jstree-wholerow",function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()}).on("dblclick.jstree",".jstree-wholerow",function(b){b.stopImmediatePropagation();var c=a.Event("dblclick",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()}).on("click.jstree",".jstree-leaf > .jstree-ocl",a.proxy(function(b){b.stopImmediatePropagation();var c=a.Event("click",{metaKey:b.metaKey,ctrlKey:b.ctrlKey,altKey:b.altKey,shiftKey:b.shiftKey});a(b.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(c).focus()},this)).on("mouseover.jstree",".jstree-wholerow, .jstree-icon",a.proxy(function(a){return a.stopImmediatePropagation(),this.is_disabled(a.currentTarget)||this.hover_node(a.currentTarget),!1},this)).on("mouseleave.jstree",".jstree-node",a.proxy(function(a){this.dehover_node(a.currentTarget)},this))},this.teardown=function(){this.settings.wholerow&&this.element.find(".jstree-wholerow").remove(),c.teardown.call(this)},this.redraw_node=function(b,d,e,f){if(b=c.redraw_node.apply(this,arguments)){var g=n.cloneNode(!0);-1!==a.inArray(b.id,this._data.core.selected)&&(g.className+=" jstree-wholerow-clicked"),this._data.core.focused&&this._data.core.focused===b.id&&(g.className+=" jstree-wholerow-hovered"),b.insertBefore(g,b.childNodes[0])}return b}},i.registerElement&&Object&&Object.create){var o=Object.create(HTMLElement.prototype);o.createdCallback=function(){var b={core:{},plugins:[]},c;for(c in a.jstree.plugins)a.jstree.plugins.hasOwnProperty(c)&&this.attributes[c]&&(b.plugins.push(c),this.getAttribute(c)&&JSON.parse(this.getAttribute(c))&&(b[c]=JSON.parse(this.getAttribute(c))));for(c in a.jstree.defaults.core)a.jstree.defaults.core.hasOwnProperty(c)&&this.attributes[c]&&(b.core[c]=JSON.parse(this.getAttribute(c))||this.getAttribute(c));a(this).jstree(b)};try{i.registerElement("vakata-jstree",{prototype:o})}catch(p){}}}}); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/32px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/32px.png new file mode 100644 index 0000000000..d6fd72114f Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/32px.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/40px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/40px.png new file mode 100644 index 0000000000..4fc88e41e6 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/40px.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.css new file mode 100644 index 0000000000..3af003f2d5 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.css @@ -0,0 +1,1146 @@ +/* jsTree default dark theme */ +.jstree-node, +.jstree-children, +.jstree-container-ul { + display: block; + margin: 0; + padding: 0; + list-style-type: none; + list-style-image: none; +} +.jstree-node { + white-space: nowrap; +} +.jstree-anchor { + display: inline-block; + color: black; + white-space: nowrap; + padding: 0 4px 0 1px; + margin: 0; + vertical-align: top; +} +.jstree-anchor:focus { + outline: 0; +} +.jstree-anchor, +.jstree-anchor:link, +.jstree-anchor:visited, +.jstree-anchor:hover, +.jstree-anchor:active { + text-decoration: none; + color: inherit; +} +.jstree-icon { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-icon:empty { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-ocl { + cursor: pointer; +} +.jstree-leaf > .jstree-ocl { + cursor: default; +} +.jstree .jstree-open > .jstree-children { + display: block; +} +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { + display: none; +} +.jstree-anchor > .jstree-themeicon { + margin-right: 2px; +} +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { + display: none; +} +.jstree-hidden, +.jstree-node.jstree-hidden { + display: none; +} +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; +} +.jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; +} +.jstree-rtl .jstree-node { + margin-left: 0; +} +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; +} +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; +} +.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; +} +.jstree-wholerow-ul .jstree-anchor, +.jstree-wholerow-ul .jstree-icon { + position: relative; +} +.jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.vakata-context { + display: none; +} +.vakata-context, +.vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + box-shadow: 2px 2px 2px #999999; +} +.vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; +} +.vakata-context .vakata-context-right ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context li { + list-style: none; +} +.vakata-context li > a { + display: block; + padding: 0 2em 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; +} +.vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); + background-position: right center; + background-repeat: no-repeat; +} +.vakata-context li > a:focus { + outline: 0; +} +.vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context .vakata-context-separator > a, +.vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; +} +.vakata-context .vakata-contextmenu-disabled a, +.vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + box-shadow: 0 0 0; +} +.vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; +} +.vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; +} +.vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; +} +.vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; +} +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); + background-position: left center; + background-repeat: no-repeat; +} +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; +} +.vakata-context-rtl .vakata-context-left ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; +} +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; +} +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; +} +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; +} +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; +} +#jstree-dnd .jstree-icon, +#jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; +} +#jstree-dnd .jstree-ok { + background: green; +} +#jstree-dnd .jstree-er { + background: red; +} +#jstree-dnd .jstree-copy { + margin: 0 2px 0 2px; +} +.jstree-default-dark .jstree-node, +.jstree-default-dark .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; +} +.jstree-default-dark .jstree-anchor, +.jstree-default-dark .jstree-animated, +.jstree-default-dark .jstree-wholerow { + transition: background-color 0.15s, box-shadow 0.15s; +} +.jstree-default-dark .jstree-hovered { + background: #555555; + border-radius: 2px; + box-shadow: inset 0 0 1px #555555; +} +.jstree-default-dark .jstree-context { + background: #555555; + border-radius: 2px; + box-shadow: inset 0 0 1px #555555; +} +.jstree-default-dark .jstree-clicked { + background: #5fa2db; + border-radius: 2px; + box-shadow: inset 0 0 1px #666666; +} +.jstree-default-dark .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; +} +.jstree-default-dark .jstree-disabled { + background: transparent; + color: #666666; +} +.jstree-default-dark .jstree-disabled.jstree-hovered { + background: transparent; + box-shadow: none; +} +.jstree-default-dark .jstree-disabled.jstree-clicked { + background: #333333; +} +.jstree-default-dark .jstree-disabled > .jstree-icon { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark .jstree-search { + font-style: italic; + color: #ffffff; + font-weight: bold; +} +.jstree-default-dark .jstree-no-checkboxes .jstree-checkbox { + display: none !important; +} +.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + box-shadow: none; +} +.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #555555; +} +.jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; +} +.jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #555555; +} +.jstree-default-dark > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; +} +.jstree-default-dark > .jstree-wholerow-ul .jstree-hovered, +.jstree-default-dark > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.jstree-default-dark .jstree-wholerow { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.jstree-default-dark .jstree-wholerow-hovered { + background: #555555; +} +.jstree-default-dark .jstree-wholerow-clicked { + background: #5fa2db; + background: -webkit-linear-gradient(top, #5fa2db 0%, #5fa2db 100%); + background: linear-gradient(to bottom, #5fa2db 0%, #5fa2db 100%); +} +.jstree-default-dark .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; +} +.jstree-default-dark .jstree-anchor { + line-height: 24px; + height: 24px; +} +.jstree-default-dark .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default-dark .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default-dark.jstree-rtl .jstree-node { + margin-right: 24px; +} +.jstree-default-dark .jstree-wholerow { + height: 24px; +} +.jstree-default-dark .jstree-node, +.jstree-default-dark .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark .jstree-node { + background-position: -292px -4px; + background-repeat: repeat-y; +} +.jstree-default-dark .jstree-last { + background: transparent; +} +.jstree-default-dark .jstree-open > .jstree-ocl { + background-position: -132px -4px; +} +.jstree-default-dark .jstree-closed > .jstree-ocl { + background-position: -100px -4px; +} +.jstree-default-dark .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; +} +.jstree-default-dark .jstree-themeicon { + background-position: -260px -4px; +} +.jstree-default-dark > .jstree-no-dots .jstree-node, +.jstree-default-dark > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; +} +.jstree-default-dark > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; +} +.jstree-default-dark .jstree-disabled { + background: transparent; +} +.jstree-default-dark .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark .jstree-checkbox { + background-position: -164px -4px; +} +.jstree-default-dark .jstree-checkbox:hover { + background-position: -164px -36px; +} +.jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; +} +.jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; +} +.jstree-default-dark .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; +} +.jstree-default-dark .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; +} +.jstree-default-dark .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark > .jstree-striped { + background-size: auto 48px; +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; +} +.jstree-default-dark.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; +} +.jstree-default-dark.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; +} +.jstree-default-dark .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark .jstree-file { + background: url("32px.png") -100px -68px no-repeat; +} +.jstree-default-dark .jstree-folder { + background: url("32px.png") -260px -4px no-repeat; +} +.jstree-default-dark > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark { + line-height: 24px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark .jstree-ok, +#jstree-dnd.jstree-default-dark .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; +} +#jstree-dnd.jstree-default-dark .jstree-ok { + background-position: -4px -68px; +} +#jstree-dnd.jstree-default-dark .jstree-er { + background-position: -36px -68px; +} +.jstree-default-dark .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark .jstree-ellipsis .jstree-anchor { + width: calc(100% - 29px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; +} +.jstree-default-dark-small .jstree-anchor { + line-height: 18px; + height: 18px; +} +.jstree-default-dark-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-dark-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + margin-right: 18px; +} +.jstree-default-dark-small .jstree-wholerow { + height: 18px; +} +.jstree-default-dark-small .jstree-node, +.jstree-default-dark-small .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark-small .jstree-node { + background-position: -295px -7px; + background-repeat: repeat-y; +} +.jstree-default-dark-small .jstree-last { + background: transparent; +} +.jstree-default-dark-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; +} +.jstree-default-dark-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; +} +.jstree-default-dark-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; +} +.jstree-default-dark-small .jstree-themeicon { + background-position: -263px -7px; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-node, +.jstree-default-dark-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; +} +.jstree-default-dark-small .jstree-disabled { + background: transparent; +} +.jstree-default-dark-small .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark-small .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark-small .jstree-checkbox { + background-position: -167px -7px; +} +.jstree-default-dark-small .jstree-checkbox:hover { + background-position: -167px -39px; +} +.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; +} +.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; +} +.jstree-default-dark-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; +} +.jstree-default-dark-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; +} +.jstree-default-dark-small .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark-small > .jstree-striped { + background-size: auto 36px; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; +} +.jstree-default-dark-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; +} +.jstree-default-dark-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; +} +.jstree-default-dark-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark-small .jstree-file { + background: url("32px.png") -103px -71px no-repeat; +} +.jstree-default-dark-small .jstree-folder { + background: url("32px.png") -263px -7px no-repeat; +} +.jstree-default-dark-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark-small { + line-height: 18px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark-small .jstree-ok, +#jstree-dnd.jstree-default-dark-small .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; +} +#jstree-dnd.jstree-default-dark-small .jstree-ok { + background-position: -7px -71px; +} +#jstree-dnd.jstree-default-dark-small .jstree-er { + background-position: -39px -71px; +} +.jstree-default-dark-small .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark-small .jstree-ellipsis .jstree-anchor { + width: calc(100% - 23px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark-small .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; +} +.jstree-default-dark-large .jstree-anchor { + line-height: 32px; + height: 32px; +} +.jstree-default-dark-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-dark-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + margin-right: 32px; +} +.jstree-default-dark-large .jstree-wholerow { + height: 32px; +} +.jstree-default-dark-large .jstree-node, +.jstree-default-dark-large .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark-large .jstree-node { + background-position: -288px 0px; + background-repeat: repeat-y; +} +.jstree-default-dark-large .jstree-last { + background: transparent; +} +.jstree-default-dark-large .jstree-open > .jstree-ocl { + background-position: -128px 0px; +} +.jstree-default-dark-large .jstree-closed > .jstree-ocl { + background-position: -96px 0px; +} +.jstree-default-dark-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0px; +} +.jstree-default-dark-large .jstree-themeicon { + background-position: -256px 0px; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-node, +.jstree-default-dark-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0px; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px 0px; +} +.jstree-default-dark-large .jstree-disabled { + background: transparent; +} +.jstree-default-dark-large .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark-large .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark-large .jstree-checkbox { + background-position: -160px 0px; +} +.jstree-default-dark-large .jstree-checkbox:hover { + background-position: -160px -32px; +} +.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0px; +} +.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; +} +.jstree-default-dark-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0px; +} +.jstree-default-dark-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; +} +.jstree-default-dark-large .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark-large > .jstree-striped { + background-size: auto 64px; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px -32px; +} +.jstree-default-dark-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark-large .jstree-file { + background: url("32px.png") -96px -64px no-repeat; +} +.jstree-default-dark-large .jstree-folder { + background: url("32px.png") -256px 0px no-repeat; +} +.jstree-default-dark-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark-large { + line-height: 32px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark-large .jstree-ok, +#jstree-dnd.jstree-default-dark-large .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; +} +#jstree-dnd.jstree-default-dark-large .jstree-ok { + background-position: 0px -64px; +} +#jstree-dnd.jstree-default-dark-large .jstree-er { + background-position: -32px -64px; +} +.jstree-default-dark-large .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark-large .jstree-ellipsis .jstree-anchor { + width: calc(100% - 37px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark-large .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url("40px.png"); + background-position: 0 -200px; + background-size: 120px 240px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url("40px.png"); + background-position: -40px -200px; + background-size: 120px 240px; + } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; + } +} +@media (max-width: 768px) { + .jstree-default-dark-responsive { + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + } + .jstree-default-dark-responsive .jstree-icon { + background-image: url("40px.png"); + } + .jstree-default-dark-responsive .jstree-node, + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-dark-responsive .jstree-node { + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + } + .jstree-default-dark-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + } + .jstree-default-dark-responsive .jstree-icon, + .jstree-default-dark-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; + } + .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; + background: transparent; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; + } + .jstree-default-dark-responsive .jstree-ocl, + .jstree-default-dark-responsive .jstree-themeicon, + .jstree-default-dark-responsive .jstree-checkbox { + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl, + .jstree-default-dark-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-dark-responsive .jstree-open > .jstree-ocl { + background-position: 0 0px !important; + } + .jstree-default-dark-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0px !important; + } + .jstree-default-dark-responsive .jstree-themeicon { + background-position: -40px -40px; + } + .jstree-default-dark-responsive .jstree-checkbox, + .jstree-default-dark-responsive .jstree-checkbox:hover { + background-position: -40px -80px; + } + .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox, + .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; + } + .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined, + .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; + } + .jstree-default-dark-responsive .jstree-anchor { + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + .jstree-default-dark-responsive > .jstree-striped { + background: transparent; + } + .jstree-default-dark-responsive .jstree-wholerow { + border-top: 1px solid #666666; + border-bottom: 1px solid #000000; + background: #333333; + height: 40px; + } + .jstree-default-dark-responsive .jstree-wholerow-hovered { + background: #555555; + } + .jstree-default-dark-responsive .jstree-wholerow-clicked { + background: #5fa2db; + } + .jstree-default-dark-responsive .jstree-children .jstree-last > .jstree-wholerow { + box-shadow: inset 0 -6px 3px -5px #111111; + } + .jstree-default-dark-responsive .jstree-children .jstree-open > .jstree-wholerow { + box-shadow: inset 0 6px 3px -5px #111111; + border-top: 0; + } + .jstree-default-dark-responsive .jstree-children .jstree-open + .jstree-open { + box-shadow: none; + } + .jstree-default-dark-responsive .jstree-node, + .jstree-default-dark-responsive .jstree-icon, + .jstree-default-dark-responsive .jstree-node > .jstree-ocl, + .jstree-default-dark-responsive .jstree-themeicon, + .jstree-default-dark-responsive .jstree-checkbox { + background-image: url("40px.png"); + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-node { + background-position: -80px 0; + background-repeat: repeat-y; + } + .jstree-default-dark-responsive .jstree-last { + background: transparent; + } + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl { + background-position: -40px -120px; + } + .jstree-default-dark-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; + } + .jstree-default-dark-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; + } + .jstree-default-dark-responsive .jstree-file { + background: url("40px.png") 0 -160px no-repeat; + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-folder { + background: url("40px.png") -40px -40px no-repeat; + background-size: 120px 240px; + } + .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; + } +} +.jstree-default-dark { + background: #333; +} +.jstree-default-dark .jstree-anchor { + color: #999; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5); +} +.jstree-default-dark .jstree-clicked, +.jstree-default-dark .jstree-checked { + color: white; +} +.jstree-default-dark .jstree-hovered { + color: white; +} +#jstree-marker.jstree-default-dark { + border-left-color: #999; + background: transparent; +} +.jstree-default-dark .jstree-anchor > .jstree-icon { + opacity: 0.75; +} +.jstree-default-dark .jstree-clicked > .jstree-icon, +.jstree-default-dark .jstree-hovered > .jstree-icon, +.jstree-default-dark .jstree-checked > .jstree-icon { + opacity: 1; +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.min.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.min.css new file mode 100644 index 0000000000..d9084d403c --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/style.min.css @@ -0,0 +1 @@ +.jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-hidden,.jstree-node.jstree-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-default-dark .jstree-node,.jstree-default-dark .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default-dark .jstree-anchor,.jstree-default-dark .jstree-animated,.jstree-default-dark .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default-dark .jstree-hovered{background:#555;border-radius:2px;box-shadow:inset 0 0 1px #555}.jstree-default-dark .jstree-context{background:#555;border-radius:2px;box-shadow:inset 0 0 1px #555}.jstree-default-dark .jstree-clicked{background:#5fa2db;border-radius:2px;box-shadow:inset 0 0 1px #666}.jstree-default-dark .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default-dark .jstree-disabled{background:0 0;color:#666}.jstree-default-dark .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-default-dark .jstree-disabled.jstree-clicked{background:#333}.jstree-default-dark .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark .jstree-search{font-style:italic;color:#fff;font-weight:700}.jstree-default-dark .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#555}.jstree-default-dark.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default-dark.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#555}.jstree-default-dark>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-default-dark>.jstree-wholerow-ul .jstree-hovered,.jstree-default-dark>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-default-dark .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default-dark .jstree-wholerow-hovered{background:#555}.jstree-default-dark .jstree-wholerow-clicked{background:#5fa2db;background:-webkit-linear-gradient(top,#5fa2db 0,#5fa2db 100%);background:linear-gradient(to bottom,#5fa2db 0,#5fa2db 100%)}.jstree-default-dark .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default-dark .jstree-anchor{line-height:24px;height:24px}.jstree-default-dark .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default-dark .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default-dark.jstree-rtl .jstree-node{margin-right:24px}.jstree-default-dark .jstree-wholerow{height:24px}.jstree-default-dark .jstree-node,.jstree-default-dark .jstree-icon{background-image:url(32px.png)}.jstree-default-dark .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default-dark .jstree-last{background:0 0}.jstree-default-dark .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default-dark .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default-dark .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default-dark .jstree-themeicon{background-position:-260px -4px}.jstree-default-dark>.jstree-no-dots .jstree-node,.jstree-default-dark>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default-dark>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default-dark .jstree-disabled{background:0 0}.jstree-default-dark .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-dark .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-dark .jstree-checkbox{background-position:-164px -4px}.jstree-default-dark .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default-dark.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default-dark.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default-dark .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default-dark .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default-dark .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark>.jstree-striped{background-size:auto 48px}.jstree-default-dark.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default-dark.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default-dark.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default-dark.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default-dark .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-default-dark .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-default-dark>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default-dark .jstree-ok,#jstree-dnd.jstree-default-dark .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default-dark .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default-dark .jstree-er{background-position:-36px -68px}.jstree-default-dark .jstree-ellipsis{overflow:hidden}.jstree-default-dark .jstree-ellipsis .jstree-anchor{width:calc(100% - 29px);text-overflow:ellipsis;overflow:hidden}.jstree-default-dark .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-dark.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default-dark.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-dark-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-dark-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-dark-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-dark-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-dark-small .jstree-wholerow{height:18px}.jstree-default-dark-small .jstree-node,.jstree-default-dark-small .jstree-icon{background-image:url(32px.png)}.jstree-default-dark-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-dark-small .jstree-last{background:0 0}.jstree-default-dark-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-dark-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-dark-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-dark-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-dark-small>.jstree-no-dots .jstree-node,.jstree-default-dark-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-dark-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-dark-small .jstree-disabled{background:0 0}.jstree-default-dark-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-dark-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-dark-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-dark-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-dark-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-dark-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-dark-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark-small>.jstree-striped{background-size:auto 36px}.jstree-default-dark-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-dark-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-dark-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-dark-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-dark-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-default-dark-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-default-dark-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-dark-small .jstree-ok,#jstree-dnd.jstree-default-dark-small .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-default-dark-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-dark-small .jstree-er{background-position:-39px -71px}.jstree-default-dark-small .jstree-ellipsis{overflow:hidden}.jstree-default-dark-small .jstree-ellipsis .jstree-anchor{width:calc(100% - 23px);text-overflow:ellipsis;overflow:hidden}.jstree-default-dark-small .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-dark-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-dark-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-dark-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-dark-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-dark-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-dark-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-dark-large .jstree-wholerow{height:32px}.jstree-default-dark-large .jstree-node,.jstree-default-dark-large .jstree-icon{background-image:url(32px.png)}.jstree-default-dark-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-dark-large .jstree-last{background:0 0}.jstree-default-dark-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-dark-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-dark-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-dark-large .jstree-themeicon{background-position:-256px 0}.jstree-default-dark-large>.jstree-no-dots .jstree-node,.jstree-default-dark-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-dark-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-dark-large .jstree-disabled{background:0 0}.jstree-default-dark-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-dark-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-dark-large .jstree-checkbox{background-position:-160px 0}.jstree-default-dark-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-dark-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-dark-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-dark-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-dark-large>.jstree-striped{background-size:auto 64px}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-dark-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-dark-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-dark-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-dark-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-dark-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-default-dark-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-default-dark-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-dark-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-dark-large .jstree-ok,#jstree-dnd.jstree-default-dark-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-dark-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-dark-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-dark-large .jstree-er{background-position:-32px -64px}.jstree-default-dark-large .jstree-ellipsis{overflow:hidden}.jstree-default-dark-large .jstree-ellipsis .jstree-anchor{width:calc(100% - 37px);text-overflow:ellipsis;overflow:hidden}.jstree-default-dark-large .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-dark-responsive .jstree-icon{background-image:url(40px.png)}.jstree-default-dark-responsive .jstree-node,.jstree-default-dark-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-dark-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-dark-responsive .jstree-icon,.jstree-default-dark-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-dark-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-dark-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px;background:0 0}.jstree-default-dark-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-dark-responsive .jstree-ocl,.jstree-default-dark-responsive .jstree-themeicon,.jstree-default-dark-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-dark-responsive .jstree-leaf>.jstree-ocl,.jstree-default-dark-responsive.jstree-rtl .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-dark-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-dark-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-dark-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-dark-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-dark-responsive .jstree-checkbox,.jstree-default-dark-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-dark-responsive .jstree-checked>.jstree-checkbox,.jstree-default-dark-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-dark-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-dark-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-dark-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-dark-responsive>.jstree-striped{background:0 0}.jstree-default-dark-responsive .jstree-wholerow{border-top:1px solid #666;border-bottom:1px solid #000;background:#333;height:40px}.jstree-default-dark-responsive .jstree-wholerow-hovered{background:#555}.jstree-default-dark-responsive .jstree-wholerow-clicked{background:#5fa2db}.jstree-default-dark-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #111}.jstree-default-dark-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #111;border-top:0}.jstree-default-dark-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-dark-responsive .jstree-node,.jstree-default-dark-responsive .jstree-icon,.jstree-default-dark-responsive .jstree-node>.jstree-ocl,.jstree-default-dark-responsive .jstree-themeicon,.jstree-default-dark-responsive .jstree-checkbox{background-image:url(40px.png);background-size:120px 240px}.jstree-default-dark-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-dark-responsive .jstree-last{background:0 0}.jstree-default-dark-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-dark-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-dark-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-dark-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-dark-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-dark-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}}.jstree-default-dark{background:#333}.jstree-default-dark .jstree-anchor{color:#999;text-shadow:1px 1px 0 rgba(0,0,0,.5)}.jstree-default-dark .jstree-clicked,.jstree-default-dark .jstree-checked{color:#fff}.jstree-default-dark .jstree-hovered{color:#fff}#jstree-marker.jstree-default-dark{border-left-color:#999;background:0 0}.jstree-default-dark .jstree-anchor>.jstree-icon{opacity:.75}.jstree-default-dark .jstree-clicked>.jstree-icon,.jstree-default-dark .jstree-hovered>.jstree-icon,.jstree-default-dark .jstree-checked>.jstree-icon{opacity:1}.jstree-default-dark.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default-dark.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-dark-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-dark-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-dark-large.jstree-rtl .jstree-last{background:0 0} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/throbber.gif b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/throbber.gif new file mode 100644 index 0000000000..cd75035ce8 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default-dark/throbber.gif differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/32px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/32px.png new file mode 100644 index 0000000000..1532715248 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/32px.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/40px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/40px.png new file mode 100644 index 0000000000..1959347aea Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/40px.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.css new file mode 100644 index 0000000000..616be241be --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.css @@ -0,0 +1,1102 @@ +/* jsTree default theme */ +.jstree-node, +.jstree-children, +.jstree-container-ul { + display: block; + margin: 0; + padding: 0; + list-style-type: none; + list-style-image: none; +} +.jstree-node { + white-space: nowrap; +} +.jstree-anchor { + display: inline-block; + color: black; + white-space: nowrap; + padding: 0 4px 0 1px; + margin: 0; + vertical-align: top; +} +.jstree-anchor:focus { + outline: 0; +} +.jstree-anchor, +.jstree-anchor:link, +.jstree-anchor:visited, +.jstree-anchor:hover, +.jstree-anchor:active { + text-decoration: none; + color: inherit; +} +.jstree-icon { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-icon:empty { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-ocl { + cursor: pointer; +} +.jstree-leaf > .jstree-ocl { + cursor: default; +} +.jstree .jstree-open > .jstree-children { + display: block; +} +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { + display: none; +} +.jstree-anchor > .jstree-themeicon { + margin-right: 2px; +} +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { + display: none; +} +.jstree-hidden, +.jstree-node.jstree-hidden { + display: none; +} +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; +} +.jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; +} +.jstree-rtl .jstree-node { + margin-left: 0; +} +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; +} +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; +} +.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; +} +.jstree-wholerow-ul .jstree-anchor, +.jstree-wholerow-ul .jstree-icon { + position: relative; +} +.jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.vakata-context { + display: none; +} +.vakata-context, +.vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + box-shadow: 2px 2px 2px #999999; +} +.vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; +} +.vakata-context .vakata-context-right ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context li { + list-style: none; +} +.vakata-context li > a { + display: block; + padding: 0 2em 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; +} +.vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); + background-position: right center; + background-repeat: no-repeat; +} +.vakata-context li > a:focus { + outline: 0; +} +.vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context .vakata-context-separator > a, +.vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; +} +.vakata-context .vakata-contextmenu-disabled a, +.vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + box-shadow: 0 0 0; +} +.vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; +} +.vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; +} +.vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; +} +.vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; +} +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); + background-position: left center; + background-repeat: no-repeat; +} +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; +} +.vakata-context-rtl .vakata-context-left ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; +} +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; +} +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; +} +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; +} +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; +} +#jstree-dnd .jstree-icon, +#jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; +} +#jstree-dnd .jstree-ok { + background: green; +} +#jstree-dnd .jstree-er { + background: red; +} +#jstree-dnd .jstree-copy { + margin: 0 2px 0 2px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; +} +.jstree-default .jstree-anchor, +.jstree-default .jstree-animated, +.jstree-default .jstree-wholerow { + transition: background-color 0.15s, box-shadow 0.15s; +} +.jstree-default .jstree-hovered { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-context { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-clicked { + background: #beebff; + border-radius: 2px; + box-shadow: inset 0 0 1px #999999; +} +.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; +} +.jstree-default .jstree-disabled { + background: transparent; + color: #666666; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; + box-shadow: none; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-disabled > .jstree-icon { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default .jstree-search { + font-style: italic; + color: #8b0000; + font-weight: bold; +} +.jstree-default .jstree-no-checkboxes .jstree-checkbox { + display: none !important; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + box-shadow: none; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #e7f4f9; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; +} +.jstree-default > .jstree-wholerow-ul .jstree-hovered, +.jstree-default > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.jstree-default .jstree-wholerow { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.jstree-default .jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default .jstree-wholerow-clicked { + background: #beebff; + background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%); + background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%); +} +.jstree-default .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; +} +.jstree-default .jstree-anchor { + line-height: 24px; + height: 24px; +} +.jstree-default .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default.jstree-rtl .jstree-node { + margin-right: 24px; +} +.jstree-default .jstree-wholerow { + height: 24px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default .jstree-node { + background-position: -292px -4px; + background-repeat: repeat-y; +} +.jstree-default .jstree-last { + background: transparent; +} +.jstree-default .jstree-open > .jstree-ocl { + background-position: -132px -4px; +} +.jstree-default .jstree-closed > .jstree-ocl { + background-position: -100px -4px; +} +.jstree-default .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; +} +.jstree-default .jstree-themeicon { + background-position: -260px -4px; +} +.jstree-default > .jstree-no-dots .jstree-node, +.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; +} +.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; +} +.jstree-default .jstree-disabled { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-checkbox { + background-position: -164px -4px; +} +.jstree-default .jstree-checkbox:hover { + background-position: -164px -36px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; +} +.jstree-default .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; +} +.jstree-default .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; +} +.jstree-default .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default > .jstree-striped { + background-size: auto 48px; +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; +} +.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; +} +.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; +} +.jstree-default .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default .jstree-file { + background: url("32px.png") -100px -68px no-repeat; +} +.jstree-default .jstree-folder { + background: url("32px.png") -260px -4px no-repeat; +} +.jstree-default > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default { + line-height: 24px; + padding: 0 4px; +} +#jstree-dnd.jstree-default .jstree-ok, +#jstree-dnd.jstree-default .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; +} +#jstree-dnd.jstree-default .jstree-ok { + background-position: -4px -68px; +} +#jstree-dnd.jstree-default .jstree-er { + background-position: -36px -68px; +} +.jstree-default .jstree-ellipsis { + overflow: hidden; +} +.jstree-default .jstree-ellipsis .jstree-anchor { + width: calc(100% - 29px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; +} +.jstree-default-small .jstree-anchor { + line-height: 18px; + height: 18px; +} +.jstree-default-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small.jstree-rtl .jstree-node { + margin-right: 18px; +} +.jstree-default-small .jstree-wholerow { + height: 18px; +} +.jstree-default-small .jstree-node, +.jstree-default-small .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-small .jstree-node { + background-position: -295px -7px; + background-repeat: repeat-y; +} +.jstree-default-small .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; +} +.jstree-default-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; +} +.jstree-default-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; +} +.jstree-default-small .jstree-themeicon { + background-position: -263px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-node, +.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; +} +.jstree-default-small .jstree-disabled { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-small .jstree-checkbox { + background-position: -167px -7px; +} +.jstree-default-small .jstree-checkbox:hover { + background-position: -167px -39px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; +} +.jstree-default-small .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-small > .jstree-striped { + background-size: auto 36px; +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; +} +.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; +} +.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; +} +.jstree-default-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-small .jstree-file { + background: url("32px.png") -103px -71px no-repeat; +} +.jstree-default-small .jstree-folder { + background: url("32px.png") -263px -7px no-repeat; +} +.jstree-default-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-small { + line-height: 18px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-small .jstree-ok, +#jstree-dnd.jstree-default-small .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; +} +#jstree-dnd.jstree-default-small .jstree-ok { + background-position: -7px -71px; +} +#jstree-dnd.jstree-default-small .jstree-er { + background-position: -39px -71px; +} +.jstree-default-small .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-small .jstree-ellipsis .jstree-anchor { + width: calc(100% - 23px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; +} +.jstree-default-large .jstree-anchor { + line-height: 32px; + height: 32px; +} +.jstree-default-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large.jstree-rtl .jstree-node { + margin-right: 32px; +} +.jstree-default-large .jstree-wholerow { + height: 32px; +} +.jstree-default-large .jstree-node, +.jstree-default-large .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-large .jstree-node { + background-position: -288px 0px; + background-repeat: repeat-y; +} +.jstree-default-large .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-open > .jstree-ocl { + background-position: -128px 0px; +} +.jstree-default-large .jstree-closed > .jstree-ocl { + background-position: -96px 0px; +} +.jstree-default-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0px; +} +.jstree-default-large .jstree-themeicon { + background-position: -256px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-node, +.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px 0px; +} +.jstree-default-large .jstree-disabled { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-large .jstree-checkbox { + background-position: -160px 0px; +} +.jstree-default-large .jstree-checkbox:hover { + background-position: -160px -32px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; +} +.jstree-default-large .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-large > .jstree-striped { + background-size: auto 64px; +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; +} +.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; +} +.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px -32px; +} +.jstree-default-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-large .jstree-file { + background: url("32px.png") -96px -64px no-repeat; +} +.jstree-default-large .jstree-folder { + background: url("32px.png") -256px 0px no-repeat; +} +.jstree-default-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-large { + line-height: 32px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-large .jstree-ok, +#jstree-dnd.jstree-default-large .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; +} +#jstree-dnd.jstree-default-large .jstree-ok { + background-position: 0px -64px; +} +#jstree-dnd.jstree-default-large .jstree-er { + background-position: -32px -64px; +} +.jstree-default-large .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-large .jstree-ellipsis .jstree-anchor { + width: calc(100% - 37px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url("40px.png"); + background-position: 0 -200px; + background-size: 120px 240px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url("40px.png"); + background-position: -40px -200px; + background-size: 120px 240px; + } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; + } +} +@media (max-width: 768px) { + .jstree-default-responsive { + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + } + .jstree-default-responsive .jstree-icon { + background-image: url("40px.png"); + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-node { + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + } + .jstree-default-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + } + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + } + .jstree-default-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; + background: transparent; + } + .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; + } + .jstree-default-responsive .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl, + .jstree-default-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-open > .jstree-ocl { + background-position: 0 0px !important; + } + .jstree-default-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; + } + .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0px !important; + } + .jstree-default-responsive .jstree-themeicon { + background-position: -40px -40px; + } + .jstree-default-responsive .jstree-checkbox, + .jstree-default-responsive .jstree-checkbox:hover { + background-position: -40px -80px; + } + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-default-responsive .jstree-checked > .jstree-checkbox, + .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; + } + .jstree-default-responsive .jstree-anchor > .jstree-undetermined, + .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; + } + .jstree-default-responsive .jstree-anchor { + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + .jstree-default-responsive > .jstree-striped { + background: transparent; + } + .jstree-default-responsive .jstree-wholerow { + border-top: 1px solid rgba(255, 255, 255, 0.7); + border-bottom: 1px solid rgba(64, 64, 64, 0.2); + background: #ebebeb; + height: 40px; + } + .jstree-default-responsive .jstree-wholerow-hovered { + background: #e7f4f9; + } + .jstree-default-responsive .jstree-wholerow-clicked { + background: #beebff; + } + .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { + box-shadow: inset 0 -6px 3px -5px #666666; + } + .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { + box-shadow: inset 0 6px 3px -5px #666666; + border-top: 0; + } + .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { + box-shadow: none; + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-node > .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-image: url("40px.png"); + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-node { + background-position: -80px 0; + background-repeat: repeat-y; + } + .jstree-default-responsive .jstree-last { + background: transparent; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background-position: -40px -120px; + } + .jstree-default-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; + } + .jstree-default-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; + } + .jstree-default-responsive .jstree-file { + background: url("40px.png") 0 -160px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-folder { + background: url("40px.png") -40px -40px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; + } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.min.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.min.css new file mode 100644 index 0000000000..a76f15c094 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/style.min.css @@ -0,0 +1 @@ +.jstree-node,.jstree-children,.jstree-container-ul{display:block;margin:0;padding:0;list-style-type:none;list-style-image:none}.jstree-node{white-space:nowrap}.jstree-anchor{display:inline-block;color:#000;white-space:nowrap;padding:0 4px 0 1px;margin:0;vertical-align:top}.jstree-anchor:focus{outline:0}.jstree-anchor,.jstree-anchor:link,.jstree-anchor:visited,.jstree-anchor:hover,.jstree-anchor:active{text-decoration:none;color:inherit}.jstree-icon{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-icon:empty{display:inline-block;text-decoration:none;margin:0;padding:0;vertical-align:top;text-align:center}.jstree-ocl{cursor:pointer}.jstree-leaf>.jstree-ocl{cursor:default}.jstree .jstree-open>.jstree-children{display:block}.jstree .jstree-closed>.jstree-children,.jstree .jstree-leaf>.jstree-children{display:none}.jstree-anchor>.jstree-themeicon{margin-right:2px}.jstree-no-icons .jstree-themeicon,.jstree-anchor>.jstree-themeicon-hidden{display:none}.jstree-hidden,.jstree-node.jstree-hidden{display:none}.jstree-rtl .jstree-anchor{padding:0 1px 0 4px}.jstree-rtl .jstree-anchor>.jstree-themeicon{margin-left:2px;margin-right:0}.jstree-rtl .jstree-node{margin-left:0}.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-wholerow-ul{position:relative;display:inline-block;min-width:100%}.jstree-wholerow-ul .jstree-leaf>.jstree-ocl{cursor:pointer}.jstree-wholerow-ul .jstree-anchor,.jstree-wholerow-ul .jstree-icon{position:relative}.jstree-wholerow-ul .jstree-wholerow{width:100%;cursor:pointer;position:absolute;left:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.vakata-context{display:none}.vakata-context,.vakata-context ul{margin:0;padding:2px;position:absolute;background:#f5f5f5;border:1px solid #979797;box-shadow:2px 2px 2px #999}.vakata-context ul{list-style:none;left:100%;margin-top:-2.7em;margin-left:-4px}.vakata-context .vakata-context-right ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context li{list-style:none}.vakata-context li>a{display:block;padding:0 2em;text-decoration:none;width:auto;color:#000;white-space:nowrap;line-height:2.4em;text-shadow:1px 1px 0 #fff;border-radius:1px}.vakata-context li>a:hover{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw==);background-position:right center;background-repeat:no-repeat}.vakata-context li>a:focus{outline:0}.vakata-context .vakata-context-hover>a{position:relative;background-color:#e8eff7;box-shadow:0 0 2px #0a6aa1}.vakata-context .vakata-context-separator>a,.vakata-context .vakata-context-separator>a:hover{background:#fff;border:0;border-top:1px solid #e2e3e3;height:1px;min-height:1px;max-height:1px;padding:0;margin:0 0 0 2.4em;border-left:1px solid #e0e0e0;text-shadow:0 0 0 transparent;box-shadow:0 0 0 transparent;border-radius:0}.vakata-context .vakata-contextmenu-disabled a,.vakata-context .vakata-contextmenu-disabled a:hover{color:silver;background-color:transparent;border:0;box-shadow:0 0 0}.vakata-context li>a>i{text-decoration:none;display:inline-block;width:2.4em;height:2.4em;background:0 0;margin:0 0 0 -2em;vertical-align:top;text-align:center;line-height:2.4em}.vakata-context li>a>i:empty{width:2.4em;line-height:2.4em}.vakata-context li>a .vakata-contextmenu-sep{display:inline-block;width:1px;height:2.4em;background:#fff;margin:0 .5em 0 0;border-left:1px solid #e2e3e3}.vakata-context .vakata-contextmenu-shortcut{font-size:.8em;color:silver;opacity:.5;display:none}.vakata-context-rtl ul{left:auto;right:100%;margin-left:auto;margin-right:-4px}.vakata-context-rtl li>a.vakata-context-parent{background-image:url(data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7);background-position:left center;background-repeat:no-repeat}.vakata-context-rtl .vakata-context-separator>a{margin:0 2.4em 0 0;border-left:0;border-right:1px solid #e2e3e3}.vakata-context-rtl .vakata-context-left ul{right:auto;left:100%;margin-left:-4px;margin-right:auto}.vakata-context-rtl li>a>i{margin:0 -2em 0 0}.vakata-context-rtl li>a .vakata-contextmenu-sep{margin:0 0 0 .5em;border-left-color:#fff;background:#e2e3e3}#jstree-marker{position:absolute;top:0;left:0;margin:-5px 0 0 0;padding:0;border-right:0;border-top:5px solid transparent;border-bottom:5px solid transparent;border-left:5px solid;width:0;height:0;font-size:0;line-height:0}#jstree-dnd{line-height:16px;margin:0;padding:4px}#jstree-dnd .jstree-icon,#jstree-dnd .jstree-copy{display:inline-block;text-decoration:none;margin:0 2px 0 0;padding:0;width:16px;height:16px}#jstree-dnd .jstree-ok{background:green}#jstree-dnd .jstree-er{background:red}#jstree-dnd .jstree-copy{margin:0 2px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-repeat:no-repeat;background-color:transparent}.jstree-default .jstree-anchor,.jstree-default .jstree-animated,.jstree-default .jstree-wholerow{transition:background-color .15s,box-shadow .15s}.jstree-default .jstree-hovered{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-context{background:#e7f4f9;border-radius:2px;box-shadow:inset 0 0 1px #ccc}.jstree-default .jstree-clicked{background:#beebff;border-radius:2px;box-shadow:inset 0 0 1px #999}.jstree-default .jstree-no-icons .jstree-anchor>.jstree-themeicon{display:none}.jstree-default .jstree-disabled{background:0 0;color:#666}.jstree-default .jstree-disabled.jstree-hovered{background:0 0;box-shadow:none}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-disabled>.jstree-icon{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default .jstree-search{font-style:italic;color:#8b0000;font-weight:700}.jstree-default .jstree-no-checkboxes .jstree-checkbox{display:none!important}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked{background:0 0;box-shadow:none}.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered{background:#e7f4f9}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked{background:0 0}.jstree-default.jstree-checkbox-no-clicked>.jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered{background:#e7f4f9}.jstree-default>.jstree-striped{min-width:100%;display:inline-block;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==) left top repeat}.jstree-default>.jstree-wholerow-ul .jstree-hovered,.jstree-default>.jstree-wholerow-ul .jstree-clicked{background:0 0;box-shadow:none;border-radius:0}.jstree-default .jstree-wholerow{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.jstree-default .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default .jstree-wholerow-clicked{background:#beebff;background:-webkit-linear-gradient(top,#beebff 0,#a8e4ff 100%);background:linear-gradient(to bottom,#beebff 0,#a8e4ff 100%)}.jstree-default .jstree-node{min-height:24px;line-height:24px;margin-left:24px;min-width:24px}.jstree-default .jstree-anchor{line-height:24px;height:24px}.jstree-default .jstree-icon{width:24px;height:24px;line-height:24px}.jstree-default .jstree-icon:empty{width:24px;height:24px;line-height:24px}.jstree-default.jstree-rtl .jstree-node{margin-right:24px}.jstree-default .jstree-wholerow{height:24px}.jstree-default .jstree-node,.jstree-default .jstree-icon{background-image:url(32px.png)}.jstree-default .jstree-node{background-position:-292px -4px;background-repeat:repeat-y}.jstree-default .jstree-last{background:0 0}.jstree-default .jstree-open>.jstree-ocl{background-position:-132px -4px}.jstree-default .jstree-closed>.jstree-ocl{background-position:-100px -4px}.jstree-default .jstree-leaf>.jstree-ocl{background-position:-68px -4px}.jstree-default .jstree-themeicon{background-position:-260px -4px}.jstree-default>.jstree-no-dots .jstree-node,.jstree-default>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -4px}.jstree-default>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -4px}.jstree-default .jstree-disabled{background:0 0}.jstree-default .jstree-disabled.jstree-hovered{background:0 0}.jstree-default .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default .jstree-checkbox{background-position:-164px -4px}.jstree-default .jstree-checkbox:hover{background-position:-164px -36px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default .jstree-checked>.jstree-checkbox{background-position:-228px -4px}.jstree-default.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default .jstree-checked>.jstree-checkbox:hover{background-position:-228px -36px}.jstree-default .jstree-anchor>.jstree-undetermined{background-position:-196px -4px}.jstree-default .jstree-anchor>.jstree-undetermined:hover{background-position:-196px -36px}.jstree-default .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default>.jstree-striped{background-size:auto 48px}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default.jstree-rtl .jstree-open>.jstree-ocl{background-position:-132px -36px}.jstree-default.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-100px -36px}.jstree-default.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-68px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-36px -36px}.jstree-default.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-4px -36px}.jstree-default .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default .jstree-file{background:url(32px.png) -100px -68px no-repeat}.jstree-default .jstree-folder{background:url(32px.png) -260px -4px no-repeat}.jstree-default>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default{line-height:24px;padding:0 4px}#jstree-dnd.jstree-default .jstree-ok,#jstree-dnd.jstree-default .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default i{background:0 0;width:24px;height:24px;line-height:24px}#jstree-dnd.jstree-default .jstree-ok{background-position:-4px -68px}#jstree-dnd.jstree-default .jstree-er{background-position:-36px -68px}.jstree-default .jstree-ellipsis{overflow:hidden}.jstree-default .jstree-ellipsis .jstree-anchor{width:calc(100% - 29px);text-overflow:ellipsis;overflow:hidden}.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==)}.jstree-default.jstree-rtl .jstree-last{background:0 0}.jstree-default-small .jstree-node{min-height:18px;line-height:18px;margin-left:18px;min-width:18px}.jstree-default-small .jstree-anchor{line-height:18px;height:18px}.jstree-default-small .jstree-icon{width:18px;height:18px;line-height:18px}.jstree-default-small .jstree-icon:empty{width:18px;height:18px;line-height:18px}.jstree-default-small.jstree-rtl .jstree-node{margin-right:18px}.jstree-default-small .jstree-wholerow{height:18px}.jstree-default-small .jstree-node,.jstree-default-small .jstree-icon{background-image:url(32px.png)}.jstree-default-small .jstree-node{background-position:-295px -7px;background-repeat:repeat-y}.jstree-default-small .jstree-last{background:0 0}.jstree-default-small .jstree-open>.jstree-ocl{background-position:-135px -7px}.jstree-default-small .jstree-closed>.jstree-ocl{background-position:-103px -7px}.jstree-default-small .jstree-leaf>.jstree-ocl{background-position:-71px -7px}.jstree-default-small .jstree-themeicon{background-position:-263px -7px}.jstree-default-small>.jstree-no-dots .jstree-node,.jstree-default-small>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-small>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -7px}.jstree-default-small>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -7px}.jstree-default-small .jstree-disabled{background:0 0}.jstree-default-small .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-small .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-small .jstree-checkbox{background-position:-167px -7px}.jstree-default-small .jstree-checkbox:hover{background-position:-167px -39px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-small .jstree-checked>.jstree-checkbox{background-position:-231px -7px}.jstree-default-small.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-small .jstree-checked>.jstree-checkbox:hover{background-position:-231px -39px}.jstree-default-small .jstree-anchor>.jstree-undetermined{background-position:-199px -7px}.jstree-default-small .jstree-anchor>.jstree-undetermined:hover{background-position:-199px -39px}.jstree-default-small .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-small>.jstree-striped{background-size:auto 36px}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-small.jstree-rtl .jstree-open>.jstree-ocl{background-position:-135px -39px}.jstree-default-small.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-103px -39px}.jstree-default-small.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-71px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-39px -39px}.jstree-default-small.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:-7px -39px}.jstree-default-small .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-small>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-small .jstree-file{background:url(32px.png) -103px -71px no-repeat}.jstree-default-small .jstree-folder{background:url(32px.png) -263px -7px no-repeat}.jstree-default-small>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-small{line-height:18px;padding:0 4px}#jstree-dnd.jstree-default-small .jstree-ok,#jstree-dnd.jstree-default-small .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-small i{background:0 0;width:18px;height:18px;line-height:18px}#jstree-dnd.jstree-default-small .jstree-ok{background-position:-7px -71px}#jstree-dnd.jstree-default-small .jstree-er{background-position:-39px -71px}.jstree-default-small .jstree-ellipsis{overflow:hidden}.jstree-default-small .jstree-ellipsis .jstree-anchor{width:calc(100% - 23px);text-overflow:ellipsis;overflow:hidden}.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-small.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg==)}.jstree-default-small.jstree-rtl .jstree-last{background:0 0}.jstree-default-large .jstree-node{min-height:32px;line-height:32px;margin-left:32px;min-width:32px}.jstree-default-large .jstree-anchor{line-height:32px;height:32px}.jstree-default-large .jstree-icon{width:32px;height:32px;line-height:32px}.jstree-default-large .jstree-icon:empty{width:32px;height:32px;line-height:32px}.jstree-default-large.jstree-rtl .jstree-node{margin-right:32px}.jstree-default-large .jstree-wholerow{height:32px}.jstree-default-large .jstree-node,.jstree-default-large .jstree-icon{background-image:url(32px.png)}.jstree-default-large .jstree-node{background-position:-288px 0;background-repeat:repeat-y}.jstree-default-large .jstree-last{background:0 0}.jstree-default-large .jstree-open>.jstree-ocl{background-position:-128px 0}.jstree-default-large .jstree-closed>.jstree-ocl{background-position:-96px 0}.jstree-default-large .jstree-leaf>.jstree-ocl{background-position:-64px 0}.jstree-default-large .jstree-themeicon{background-position:-256px 0}.jstree-default-large>.jstree-no-dots .jstree-node,.jstree-default-large>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-large>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px 0}.jstree-default-large>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 0}.jstree-default-large .jstree-disabled{background:0 0}.jstree-default-large .jstree-disabled.jstree-hovered{background:0 0}.jstree-default-large .jstree-disabled.jstree-clicked{background:#efefef}.jstree-default-large .jstree-checkbox{background-position:-160px 0}.jstree-default-large .jstree-checkbox:hover{background-position:-160px -32px}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-large .jstree-checked>.jstree-checkbox{background-position:-224px 0}.jstree-default-large.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-large .jstree-checked>.jstree-checkbox:hover{background-position:-224px -32px}.jstree-default-large .jstree-anchor>.jstree-undetermined{background-position:-192px 0}.jstree-default-large .jstree-anchor>.jstree-undetermined:hover{background-position:-192px -32px}.jstree-default-large .jstree-checkbox-disabled{opacity:.8;filter:url("data:image/svg+xml;utf8,#jstree-grayscale");filter:gray;-webkit-filter:grayscale(100%)}.jstree-default-large>.jstree-striped{background-size:auto 64px}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg==);background-position:100% 1px;background-repeat:repeat-y}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}.jstree-default-large.jstree-rtl .jstree-open>.jstree-ocl{background-position:-128px -32px}.jstree-default-large.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-96px -32px}.jstree-default-large.jstree-rtl .jstree-leaf>.jstree-ocl{background-position:-64px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-node,.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-open>.jstree-ocl{background-position:-32px -32px}.jstree-default-large.jstree-rtl>.jstree-no-dots .jstree-closed>.jstree-ocl{background-position:0 -32px}.jstree-default-large .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-large>.jstree-container-ul .jstree-loading>.jstree-ocl{background:url(throbber.gif) center center no-repeat}.jstree-default-large .jstree-file{background:url(32px.png) -96px -64px no-repeat}.jstree-default-large .jstree-folder{background:url(32px.png) -256px 0 no-repeat}.jstree-default-large>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}#jstree-dnd.jstree-default-large{line-height:32px;padding:0 4px}#jstree-dnd.jstree-default-large .jstree-ok,#jstree-dnd.jstree-default-large .jstree-er{background-image:url(32px.png);background-repeat:no-repeat;background-color:transparent}#jstree-dnd.jstree-default-large i{background:0 0;width:32px;height:32px;line-height:32px}#jstree-dnd.jstree-default-large .jstree-ok{background-position:0 -64px}#jstree-dnd.jstree-default-large .jstree-er{background-position:-32px -64px}.jstree-default-large .jstree-ellipsis{overflow:hidden}.jstree-default-large .jstree-ellipsis .jstree-anchor{width:calc(100% - 37px);text-overflow:ellipsis;overflow:hidden}.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor{width:calc(100% - 5px)}.jstree-default-large.jstree-rtl .jstree-node{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg==)}.jstree-default-large.jstree-rtl .jstree-last{background:0 0}@media (max-width:768px){#jstree-dnd.jstree-dnd-responsive{line-height:40px;font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}#jstree-dnd.jstree-dnd-responsive>i{background:0 0;width:40px;height:40px}#jstree-dnd.jstree-dnd-responsive>.jstree-ok{background-image:url(40px.png);background-position:0 -200px;background-size:120px 240px}#jstree-dnd.jstree-dnd-responsive>.jstree-er{background-image:url(40px.png);background-position:-40px -200px;background-size:120px 240px}#jstree-marker.jstree-dnd-responsive{border-left-width:10px;border-top-width:10px;border-bottom-width:10px;margin-top:-10px}}@media (max-width:768px){.jstree-default-responsive .jstree-icon{background-image:url(40px.png)}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-node{min-height:40px;line-height:40px;margin-left:40px;min-width:40px;white-space:nowrap}.jstree-default-responsive .jstree-anchor{line-height:40px;height:40px}.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-icon:empty{width:40px;height:40px;line-height:40px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0}.jstree-default-responsive.jstree-rtl .jstree-node{margin-left:0;margin-right:40px;background:0 0}.jstree-default-responsive.jstree-rtl .jstree-container-ul>.jstree-node{margin-right:0}.jstree-default-responsive .jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-size:120px 240px}.jstree-default-responsive .jstree-leaf>.jstree-ocl,.jstree-default-responsive.jstree-rtl .jstree-leaf>.jstree-ocl{background:0 0}.jstree-default-responsive .jstree-open>.jstree-ocl{background-position:0 0!important}.jstree-default-responsive .jstree-closed>.jstree-ocl{background-position:0 -40px!important}.jstree-default-responsive.jstree-rtl .jstree-closed>.jstree-ocl{background-position:-40px 0!important}.jstree-default-responsive .jstree-themeicon{background-position:-40px -40px}.jstree-default-responsive .jstree-checkbox,.jstree-default-responsive .jstree-checkbox:hover{background-position:-40px -80px}.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox,.jstree-default-responsive.jstree-checkbox-selection .jstree-clicked>.jstree-checkbox:hover,.jstree-default-responsive .jstree-checked>.jstree-checkbox,.jstree-default-responsive .jstree-checked>.jstree-checkbox:hover{background-position:0 -80px}.jstree-default-responsive .jstree-anchor>.jstree-undetermined,.jstree-default-responsive .jstree-anchor>.jstree-undetermined:hover{background-position:0 -120px}.jstree-default-responsive .jstree-anchor{font-weight:700;font-size:1.1em;text-shadow:1px 1px #fff}.jstree-default-responsive>.jstree-striped{background:0 0}.jstree-default-responsive .jstree-wholerow{border-top:1px solid rgba(255,255,255,.7);border-bottom:1px solid rgba(64,64,64,.2);background:#ebebeb;height:40px}.jstree-default-responsive .jstree-wholerow-hovered{background:#e7f4f9}.jstree-default-responsive .jstree-wholerow-clicked{background:#beebff}.jstree-default-responsive .jstree-children .jstree-last>.jstree-wholerow{box-shadow:inset 0 -6px 3px -5px #666}.jstree-default-responsive .jstree-children .jstree-open>.jstree-wholerow{box-shadow:inset 0 6px 3px -5px #666;border-top:0}.jstree-default-responsive .jstree-children .jstree-open+.jstree-open{box-shadow:none}.jstree-default-responsive .jstree-node,.jstree-default-responsive .jstree-icon,.jstree-default-responsive .jstree-node>.jstree-ocl,.jstree-default-responsive .jstree-themeicon,.jstree-default-responsive .jstree-checkbox{background-image:url(40px.png);background-size:120px 240px}.jstree-default-responsive .jstree-node{background-position:-80px 0;background-repeat:repeat-y}.jstree-default-responsive .jstree-last{background:0 0}.jstree-default-responsive .jstree-leaf>.jstree-ocl{background-position:-40px -120px}.jstree-default-responsive .jstree-last>.jstree-ocl{background-position:-40px -160px}.jstree-default-responsive .jstree-themeicon-custom{background-color:transparent;background-image:none;background-position:0 0}.jstree-default-responsive .jstree-file{background:url(40px.png) 0 -160px no-repeat;background-size:120px 240px}.jstree-default-responsive .jstree-folder{background:url(40px.png) -40px -40px no-repeat;background-size:120px 240px}.jstree-default-responsive>.jstree-container-ul>.jstree-node{margin-left:0;margin-right:0}} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/throbber.gif b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/throbber.gif new file mode 100644 index 0000000000..1b5b2fde42 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/dist/themes/default/throbber.gif differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/gruntfile.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/gruntfile.js new file mode 100644 index 0000000000..45a5f94e3c --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/gruntfile.js @@ -0,0 +1,241 @@ +/*global module:false, require:false, __dirname:false*/ + +module.exports = function(grunt) { + grunt.util.linefeed = "\n"; + + // Project configuration. + grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), + concat: { + options : { + separator : "\n" + }, + dist: { + src: ['src/<%= pkg.name %>.js', 'src/<%= pkg.name %>.*.js', 'src/vakata-jstree.js'], + dest: 'dist/<%= pkg.name %>.js' + } + }, + copy: { + libs : { + files : [ + { expand: true, cwd : 'libs/', src: ['*'], dest: 'dist/libs/' } + ] + }, + docs : { + files : [ + { expand: true, cwd : 'dist/', src: ['**/*'], dest: 'docs/assets/dist/' } + ] + } + }, + uglify: { + options: { + banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - <%= grunt.template.today("yyyy-mm-dd") %> - (<%= _.pluck(pkg.licenses, "type").join(", ") %>) */\n', + preserveComments: false, + //sourceMap: "dist/jstree.min.map", + //sourceMappingURL: "jstree.min.map", + report: "min", + beautify: { + ascii_only: true + }, + compress: { + hoist_funs: false, + loops: false, + unused: false + } + }, + dist: { + src: ['<%= concat.dist.dest %>'], + dest: 'dist/<%= pkg.name %>.min.js' + } + }, + qunit: { + files: ['test/unit/**/*.html'] + }, + jshint: { + options: { + 'curly' : true, + 'eqeqeq' : true, + 'latedef' : true, + 'newcap' : true, + 'noarg' : true, + 'sub' : true, + 'undef' : true, + 'boss' : true, + 'eqnull' : true, + 'browser' : true, + 'trailing' : true, + 'globals' : { + 'console' : true, + 'jQuery' : true, + 'browser' : true, + 'XSLTProcessor' : true, + 'ActiveXObject' : true + } + }, + beforeconcat: ['src/<%= pkg.name %>.js', 'src/<%= pkg.name %>.*.js'], + afterconcat: ['dist/<%= pkg.name %>.js'] + }, + dox: { + files: { + src: ['src/*.js'], + dest: 'docs' + } + }, + amd : { + files: { + src: ['dist/jstree.js'], + dest: 'dist/jstree.js' + } + }, + less: { + production: { + options : { + cleancss : true, + compress : true + }, + files: { + "dist/themes/default/style.min.css" : "src/themes/default/style.less", + "dist/themes/default-dark/style.min.css" : "src/themes/default-dark/style.less" + } + }, + development: { + files: { + "src/themes/default/style.css" : "src/themes/default/style.less", + "dist/themes/default/style.css" : "src/themes/default/style.less", + "src/themes/default-dark/style.css" : "src/themes/default-dark/style.less", + "dist/themes/default-dark/style.css" : "src/themes/default-dark/style.less" + } + } + }, + watch: { + js : { + files: ['src/**/*.js'], + tasks: ['js'], + options : { + atBegin : true + } + }, + css : { + files: ['src/**/*.less','src/**/*.png','src/**/*.gif'], + tasks: ['css'], + options : { + atBegin : true + } + }, + }, + resemble: { + options: { + screenshotRoot: 'test/visual/screenshots/', + url: 'http://127.0.0.1/jstree/test/visual/', + gm: false + }, + desktop: { + options: { + width: 1280, + }, + src: ['desktop'], + dest: 'desktop', + }, + mobile: { + options: { + width: 360, + }, + src: ['mobile'], + dest: 'mobile' + } + }, + imagemin: { + dynamic: { + options: { // Target options + optimizationLevel: 7, + pngquant : true + }, + files: [{ + expand: true, // Enable dynamic expansion + cwd: 'src/themes/default/', // Src matches are relative to this path + src: ['**/*.{png,jpg,gif}'], // Actual patterns to match + dest: 'dist/themes/default/' // Destination path prefix + },{ + expand: true, // Enable dynamic expansion + cwd: 'src/themes/default-dark/', // Src matches are relative to this path + src: ['**/*.{png,jpg,gif}'], // Actual patterns to match + dest: 'dist/themes/default-dark/' // Destination path prefix + }] + } + }, + replace: { + files: { + src: ['dist/*.js', 'bower.json', 'component.json', 'jstree.jquery.json'], + overwrite: true, + replacements: [ + { + from: '{{VERSION}}', + to: "<%= pkg.version %>" + }, + { + from: /"version": "[^"]+"/g, + to: "\"version\": \"<%= pkg.version %>\"" + }, + ] + } + } + }); + + grunt.loadNpmTasks('grunt-contrib-jshint'); + grunt.loadNpmTasks('grunt-contrib-concat'); + grunt.loadNpmTasks('grunt-contrib-copy'); + grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-contrib-less'); + grunt.loadNpmTasks('grunt-contrib-qunit'); + grunt.loadNpmTasks('grunt-resemble-cli'); + grunt.loadNpmTasks('grunt-contrib-watch'); + grunt.loadNpmTasks('grunt-contrib-imagemin'); + grunt.loadNpmTasks('grunt-text-replace'); + + grunt.registerMultiTask('amd', 'Clean up AMD', function () { + var s, d; + this.files.forEach(function (f) { + s = f.src; + d = f.dest; + }); + grunt.file.copy(s, d, { + process: function (contents) { + contents = contents.replace(/\s*if\(\$\.jstree\.plugins\.[a-z]+\)\s*\{\s*return;\s*\}/ig, ''); + contents = contents.replace(/\/\*globals[^\/]+\//ig, ''); + //contents = contents.replace(/\(function \(factory[\s\S]*?undefined/mig, '(function ($, undefined'); + //contents = contents.replace(/\}\)\);/g, '}(jQuery));'); + contents = contents.replace(/\(function \(factory[\s\S]*?undefined\s*\)[^\n]+/mig, ''); + contents = contents.replace(/\}\)\);/g, ''); + contents = contents.replace(/\s*("|')use strict("|');/g, ''); + contents = contents.replace(/\s*return \$\.fn\.jstree;/g, ''); + return grunt.file.read('src/intro.js') + contents + grunt.file.read('src/outro.js'); + } + }); + }); + + grunt.registerMultiTask('dox', 'Generate dox output ', function() { + var exec = require('child_process').exec, + path = require('path'), + done = this.async(), + doxPath = path.resolve(__dirname), + formatter = [doxPath, 'node_modules', '.bin', 'dox'].join(path.sep); + exec(formatter + ' < "dist/jstree.js" > "docs/jstree.json"', {maxBuffer: 5000*1024}, function(error, stout, sterr){ + if (error) { + grunt.log.error(formatter); + grunt.log.error("WARN: "+ error); + } + if (!error) { + grunt.log.writeln('dist/jstree.js doxxed.'); + done(); + } + }); + }); + + grunt.util.linefeed = "\n"; + + // Default task. + grunt.registerTask('default', ['jshint:beforeconcat','concat','amd','jshint:afterconcat','copy:libs','uglify','less','imagemin','replace','copy:docs','qunit','resemble','dox']); + grunt.registerTask('js', ['concat','amd','uglify']); + grunt.registerTask('css', ['copy','less']); + +}; diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/jstree.jquery.json b/mayan/apps/cabinets/static/cabinets/packages/jstree/jstree.jquery.json new file mode 100644 index 0000000000..c0e4945b59 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/jstree.jquery.json @@ -0,0 +1,28 @@ +{ + "name": "jstree", + "title": "jsTree", + "description": "Tree view for jQuery", + "version": "3.3.3", + "homepage": "http://jstree.com", + "keywords": [ + "ui", + "tree", + "jstree" + ], + "author": { + "name": "Ivan Bozhanov", + "email": "jstree@jstree.com", + "url": "http://vakata.com" + }, + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/vakata/jstree/blob/master/LICENSE-MIT" + } + ], + "bugs": "https://github.com/vakata/jstree/issues", + "demo": "http://jstree.com/demo", + "dependencies": { + "jquery": ">=1.9.1" + } +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/package.json b/mayan/apps/cabinets/static/cabinets/packages/jstree/package.json new file mode 100644 index 0000000000..709242cba6 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/package.json @@ -0,0 +1,58 @@ +{ + "name": "jstree", + "title": "jsTree", + "description": "jQuery tree plugin", + "version": "3.3.3", + "homepage": "http://jstree.com", + "main": "./dist/jstree.js", + "author": { + "name": "Ivan Bozhanov", + "email": "jstree@jstree.com", + "url": "http://vakata.com" + }, + "repository": { + "type": "git", + "url": "git://github.com/vakata/jstree.git" + }, + "bugs": { + "url": "https://github.com/vakata/jstree/issues" + }, + "license": "MIT", + "licenses": [ + { + "type": "MIT", + "url": "https://github.com/vakata/jstree/blob/master/LICENSE-MIT" + } + ], + "keywords": [], + "devDependencies": { + "dox": "~0.4.4", + "grunt": "~0.4.0", + "grunt-contrib-concat": "*", + "grunt-contrib-copy": "*", + "grunt-contrib-imagemin": "~0.4.0", + "grunt-contrib-jshint": "*", + "grunt-contrib-less": "~0.8.2", + "grunt-contrib-qunit": "~v0.3.0", + "grunt-contrib-uglify": "*", + "grunt-contrib-watch": "~0.5.3", + "grunt-phantomcss-gitdiff": "0.0.7", + "grunt-resemble-cli": "0.0.8", + "grunt-text-replace": "~0.3.11" + }, + "dependencies": { + "jquery": ">=1.9.1" + }, + "npmName": "jstree", + "npmFileMap": [ + { + "basePath": "/dist/", + "files": [ + "jstree.min.js", + "themes/**/*.png", + "themes/**/*.gif", + "themes/**/*.min.css" + ] + } + ] +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/intro.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/intro.js new file mode 100644 index 0000000000..5c95a5cdfb --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/intro.js @@ -0,0 +1,14 @@ +/*globals jQuery, define, module, exports, require, window, document, postMessage */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } + else if(typeof module !== 'undefined' && module.exports) { + module.exports = factory(require('jquery')); + } + else { + factory(jQuery); + } +}(function ($, undefined) { + "use strict"; diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.changed.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.changed.js new file mode 100644 index 0000000000..be8cfd7d12 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.changed.js @@ -0,0 +1,69 @@ +/** + * ### Changed plugin + * + * This plugin adds more information to the `changed.jstree` event. The new data is contained in the `changed` event data property, and contains a lists of `selected` and `deselected` nodes. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.changed', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.changed) { return; } + + $.jstree.plugins.changed = function (options, parent) { + var last = []; + this.trigger = function (ev, data) { + var i, j; + if(!data) { + data = {}; + } + if(ev.replace('.jstree','') === 'changed') { + data.changed = { selected : [], deselected : [] }; + var tmp = {}; + for(i = 0, j = last.length; i < j; i++) { + tmp[last[i]] = 1; + } + for(i = 0, j = data.selected.length; i < j; i++) { + if(!tmp[data.selected[i]]) { + data.changed.selected.push(data.selected[i]); + } + else { + tmp[data.selected[i]] = 2; + } + } + for(i = 0, j = last.length; i < j; i++) { + if(tmp[last[i]] === 1) { + data.changed.deselected.push(last[i]); + } + } + last = data.selected.slice(); + } + /** + * triggered when selection changes (the "changed" plugin enhances the original event with more data) + * @event + * @name changed.jstree + * @param {Object} node + * @param {Object} action the action that caused the selection to change + * @param {Array} selected the current selection + * @param {Object} changed an object containing two properties `selected` and `deselected` - both arrays of node IDs, which were selected or deselected since the last changed event + * @param {Object} event the event (if any) that triggered this changed event + * @plugin changed + */ + parent.trigger.call(this, ev, data); + }; + this.refresh = function (skip_loading, forget_state) { + last = []; + return parent.refresh.apply(this, arguments); + }; + }; +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.checkbox.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.checkbox.js new file mode 100644 index 0000000000..5dd9837d75 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.checkbox.js @@ -0,0 +1,871 @@ +/** + * ### Checkbox plugin + * + * This plugin renders checkbox icons in front of each node, making multiple selection much easier. + * It also supports tri-state behavior, meaning that if a node has a few of its children checked it will be rendered as undetermined, and state will be propagated up. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.checkbox', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.checkbox) { return; } + + var _i = document.createElement('I'); + _i.className = 'jstree-icon jstree-checkbox'; + _i.setAttribute('role', 'presentation'); + /** + * stores all defaults for the checkbox plugin + * @name $.jstree.defaults.checkbox + * @plugin checkbox + */ + $.jstree.defaults.checkbox = { + /** + * a boolean indicating if checkboxes should be visible (can be changed at a later time using `show_checkboxes()` and `hide_checkboxes`). Defaults to `true`. + * @name $.jstree.defaults.checkbox.visible + * @plugin checkbox + */ + visible : true, + /** + * a boolean indicating if checkboxes should cascade down and have an undetermined state. Defaults to `true`. + * @name $.jstree.defaults.checkbox.three_state + * @plugin checkbox + */ + three_state : true, + /** + * a boolean indicating if clicking anywhere on the node should act as clicking on the checkbox. Defaults to `true`. + * @name $.jstree.defaults.checkbox.whole_node + * @plugin checkbox + */ + whole_node : true, + /** + * a boolean indicating if the selected style of a node should be kept, or removed. Defaults to `true`. + * @name $.jstree.defaults.checkbox.keep_selected_style + * @plugin checkbox + */ + keep_selected_style : true, + /** + * This setting controls how cascading and undetermined nodes are applied. + * If 'up' is in the string - cascading up is enabled, if 'down' is in the string - cascading down is enabled, if 'undetermined' is in the string - undetermined nodes will be used. + * If `three_state` is set to `true` this setting is automatically set to 'up+down+undetermined'. Defaults to ''. + * @name $.jstree.defaults.checkbox.cascade + * @plugin checkbox + */ + cascade : '', + /** + * This setting controls if checkbox are bound to the general tree selection or to an internal array maintained by the checkbox plugin. Defaults to `true`, only set to `false` if you know exactly what you are doing. + * @name $.jstree.defaults.checkbox.tie_selection + * @plugin checkbox + */ + tie_selection : true + }; + $.jstree.plugins.checkbox = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this._data.checkbox.uto = false; + this._data.checkbox.selected = []; + if(this.settings.checkbox.three_state) { + this.settings.checkbox.cascade = 'up+down+undetermined'; + } + this.element + .on("init.jstree", $.proxy(function () { + this._data.checkbox.visible = this.settings.checkbox.visible; + if(!this.settings.checkbox.keep_selected_style) { + this.element.addClass('jstree-checkbox-no-clicked'); + } + if(this.settings.checkbox.tie_selection) { + this.element.addClass('jstree-checkbox-selection'); + } + }, this)) + .on("loading.jstree", $.proxy(function () { + this[ this._data.checkbox.visible ? 'show_checkboxes' : 'hide_checkboxes' ](); + }, this)); + if(this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { + this.element + .on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree', $.proxy(function () { + // only if undetermined is in setting + if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } + this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); + }, this)); + } + if(!this.settings.checkbox.tie_selection) { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + p = m[data.parent], + dpc = data.nodes, + i, j; + for(i = 0, j = dpc.length; i < j; i++) { + m[dpc[i]].state.checked = m[dpc[i]].state.checked || (m[dpc[i]].original && m[dpc[i]].original.state && m[dpc[i]].original.state.checked); + if(m[dpc[i]].state.checked) { + this._data.checkbox.selected.push(dpc[i]); + } + } + }, this)); + } + if(this.settings.checkbox.cascade.indexOf('up') !== -1 || this.settings.checkbox.cascade.indexOf('down') !== -1) { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + p = m[data.parent], + dpc = data.nodes, + chd = [], + c, i, j, k, l, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection; + + if(s.indexOf('down') !== -1) { + // apply down + if(p.state[ t ? 'selected' : 'checked' ]) { + for(i = 0, j = dpc.length; i < j; i++) { + m[dpc[i]].state[ t ? 'selected' : 'checked' ] = true; + } + this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(dpc); + } + else { + for(i = 0, j = dpc.length; i < j; i++) { + if(m[dpc[i]].state[ t ? 'selected' : 'checked' ]) { + for(k = 0, l = m[dpc[i]].children_d.length; k < l; k++) { + m[m[dpc[i]].children_d[k]].state[ t ? 'selected' : 'checked' ] = true; + } + this._data[ t ? 'core' : 'checkbox' ].selected = this._data[ t ? 'core' : 'checkbox' ].selected.concat(m[dpc[i]].children_d); + } + } + } + } + + if(s.indexOf('up') !== -1) { + // apply up + for(i = 0, j = p.children_d.length; i < j; i++) { + if(!m[p.children_d[i]].children.length) { + chd.push(m[p.children_d[i]].parent); + } + } + chd = $.vakata.array_unique(chd); + for(k = 0, l = chd.length; k < l; k++) { + p = m[chd[k]]; + while(p && p.id !== $.jstree.root) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass( t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + } + } + + this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected); + }, this)) + .on(this.settings.checkbox.tie_selection ? 'select_node.jstree' : 'check_node.jstree', $.proxy(function (e, data) { + var obj = data.node, + m = this._model.data, + par = this.get_node(obj.parent), + dom = this.get_node(obj, true), + i, j, c, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, + sel = {}, cur = this._data[ t ? 'core' : 'checkbox' ].selected; + + for (i = 0, j = cur.length; i < j; i++) { + sel[cur[i]] = true; + } + // apply down + if(s.indexOf('down') !== -1) { + //this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_unique(this._data[ t ? 'core' : 'checkbox' ].selected.concat(obj.children_d)); + for(i = 0, j = obj.children_d.length; i < j; i++) { + sel[obj.children_d[i]] = true; + tmp = m[obj.children_d[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = true; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + } + + // apply up + if(s.indexOf('up') !== -1) { + while(par && par.id !== $.jstree.root) { + c = 0; + for(i = 0, j = par.children.length; i < j; i++) { + c += m[par.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + par.state[ t ? 'selected' : 'checked' ] = true; + sel[par.id] = true; + //this._data[ t ? 'core' : 'checkbox' ].selected.push(par.id); + tmp = this.get_node(par, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + par = this.get_node(par.parent); + } + } + + cur = []; + for (i in sel) { + if (sel.hasOwnProperty(i)) { + cur.push(i); + } + } + this._data[ t ? 'core' : 'checkbox' ].selected = cur; + + // apply down (process .children separately?) + if(s.indexOf('down') !== -1 && dom.length) { + dom.find('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', true); + } + }, this)) + .on(this.settings.checkbox.tie_selection ? 'deselect_all.jstree' : 'uncheck_all.jstree', $.proxy(function (e, data) { + var obj = this.get_node($.jstree.root), + m = this._model.data, + i, j, tmp; + for(i = 0, j = obj.children_d.length; i < j; i++) { + tmp = m[obj.children_d[i]]; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + }, this)) + .on(this.settings.checkbox.tie_selection ? 'deselect_node.jstree' : 'uncheck_node.jstree', $.proxy(function (e, data) { + var obj = data.node, + dom = this.get_node(obj, true), + i, j, tmp, s = this.settings.checkbox.cascade, t = this.settings.checkbox.tie_selection, + cur = this._data[ t ? 'core' : 'checkbox' ].selected, sel = {}; + if(obj && obj.original && obj.original.state && obj.original.state.undetermined) { + obj.original.state.undetermined = false; + } + + // apply down + if(s.indexOf('down') !== -1) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + tmp = this._model.data[obj.children_d[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = false; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + } + } + + // apply up + if(s.indexOf('up') !== -1) { + for(i = 0, j = obj.parents.length; i < j; i++) { + tmp = this._model.data[obj.parents[i]]; + tmp.state[ t ? 'selected' : 'checked' ] = false; + if(tmp && tmp.original && tmp.original.state && tmp.original.state.undetermined) { + tmp.original.state.undetermined = false; + } + tmp = this.get_node(obj.parents[i], true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + } + sel = {}; + for(i = 0, j = cur.length; i < j; i++) { + // apply down + apply up + if( + (s.indexOf('down') === -1 || $.inArray(cur[i], obj.children_d) === -1) && + (s.indexOf('up') === -1 || $.inArray(cur[i], obj.parents) === -1) + ) { + sel[cur[i]] = true; + } + } + cur = []; + for (i in sel) { + if (sel.hasOwnProperty(i)) { + cur.push(i); + } + } + this._data[ t ? 'core' : 'checkbox' ].selected = cur; + + // apply down (process .children separately?) + if(s.indexOf('down') !== -1 && dom.length) { + dom.find('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked').parent().attr('aria-selected', false); + } + }, this)); + } + if(this.settings.checkbox.cascade.indexOf('up') !== -1) { + this.element + .on('delete_node.jstree', $.proxy(function (e, data) { + // apply up (whole handler) + var p = this.get_node(data.parent), + m = this._model.data, + i, j, c, tmp, t = this.settings.checkbox.tie_selection; + while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(j > 0 && c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + }, this)) + .on('move_node.jstree', $.proxy(function (e, data) { + // apply up (whole handler) + var is_multi = data.is_multi, + old_par = data.old_parent, + new_par = this.get_node(data.parent), + m = this._model.data, + p, c, i, j, tmp, t = this.settings.checkbox.tie_selection; + if(!is_multi) { + p = this.get_node(old_par); + while(p && p.id !== $.jstree.root && !p.state[ t ? 'selected' : 'checked' ]) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(j > 0 && c === j) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + p = this.get_node(p.parent); + } + } + p = new_par; + while(p && p.id !== $.jstree.root) { + c = 0; + for(i = 0, j = p.children.length; i < j; i++) { + c += m[p.children[i]].state[ t ? 'selected' : 'checked' ]; + } + if(c === j) { + if(!p.state[ t ? 'selected' : 'checked' ]) { + p.state[ t ? 'selected' : 'checked' ] = true; + this._data[ t ? 'core' : 'checkbox' ].selected.push(p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', true).children('.jstree-anchor').addClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + } + else { + if(p.state[ t ? 'selected' : 'checked' ]) { + p.state[ t ? 'selected' : 'checked' ] = false; + this._data[ t ? 'core' : 'checkbox' ].selected = $.vakata.array_remove_item(this._data[ t ? 'core' : 'checkbox' ].selected, p.id); + tmp = this.get_node(p, true); + if(tmp && tmp.length) { + tmp.attr('aria-selected', false).children('.jstree-anchor').removeClass(t ? 'jstree-clicked' : 'jstree-checked'); + } + } + else { + break; + } + } + p = this.get_node(p.parent); + } + }, this)); + } + }; + /** + * set the undetermined state where and if necessary. Used internally. + * @private + * @name _undetermined() + * @plugin checkbox + */ + this._undetermined = function () { + if(this.element === null) { return; } + var i, j, k, l, o = {}, m = this._model.data, t = this.settings.checkbox.tie_selection, s = this._data[ t ? 'core' : 'checkbox' ].selected, p = [], tt = this; + for(i = 0, j = s.length; i < j; i++) { + if(m[s[i]] && m[s[i]].parents) { + for(k = 0, l = m[s[i]].parents.length; k < l; k++) { + if(o[m[s[i]].parents[k]] !== undefined) { + break; + } + if(m[s[i]].parents[k] !== $.jstree.root) { + o[m[s[i]].parents[k]] = true; + p.push(m[s[i]].parents[k]); + } + } + } + } + // attempt for server side undetermined state + this.element.find('.jstree-closed').not(':has(.jstree-children)') + .each(function () { + var tmp = tt.get_node(this), tmp2; + if(!tmp.state.loaded) { + if(tmp.original && tmp.original.state && tmp.original.state.undetermined && tmp.original.state.undetermined === true) { + if(o[tmp.id] === undefined && tmp.id !== $.jstree.root) { + o[tmp.id] = true; + p.push(tmp.id); + } + for(k = 0, l = tmp.parents.length; k < l; k++) { + if(o[tmp.parents[k]] === undefined && tmp.parents[k] !== $.jstree.root) { + o[tmp.parents[k]] = true; + p.push(tmp.parents[k]); + } + } + } + } + else { + for(i = 0, j = tmp.children_d.length; i < j; i++) { + tmp2 = m[tmp.children_d[i]]; + if(!tmp2.state.loaded && tmp2.original && tmp2.original.state && tmp2.original.state.undetermined && tmp2.original.state.undetermined === true) { + if(o[tmp2.id] === undefined && tmp2.id !== $.jstree.root) { + o[tmp2.id] = true; + p.push(tmp2.id); + } + for(k = 0, l = tmp2.parents.length; k < l; k++) { + if(o[tmp2.parents[k]] === undefined && tmp2.parents[k] !== $.jstree.root) { + o[tmp2.parents[k]] = true; + p.push(tmp2.parents[k]); + } + } + } + } + } + }); + + this.element.find('.jstree-undetermined').removeClass('jstree-undetermined'); + for(i = 0, j = p.length; i < j; i++) { + if(!m[p[i]].state[ t ? 'selected' : 'checked' ]) { + s = this.get_node(p[i], true); + if(s && s.length) { + s.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-undetermined'); + } + } + } + }; + this.redraw_node = function(obj, deep, is_callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var i, j, tmp = null, icon = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + if(!this.settings.checkbox.tie_selection && this._model.data[obj.id].state.checked) { tmp.className += ' jstree-checked'; } + icon = _i.cloneNode(false); + if(this._model.data[obj.id].state.checkbox_disabled) { icon.className += ' jstree-checkbox-disabled'; } + tmp.insertBefore(icon, tmp.childNodes[0]); + } + } + if(!is_callback && this.settings.checkbox.cascade.indexOf('undetermined') !== -1) { + if(this._data.checkbox.uto) { clearTimeout(this._data.checkbox.uto); } + this._data.checkbox.uto = setTimeout($.proxy(this._undetermined, this), 50); + } + return obj; + }; + /** + * show the node checkbox icons + * @name show_checkboxes() + * @plugin checkbox + */ + this.show_checkboxes = function () { this._data.core.themes.checkboxes = true; this.get_container_ul().removeClass("jstree-no-checkboxes"); }; + /** + * hide the node checkbox icons + * @name hide_checkboxes() + * @plugin checkbox + */ + this.hide_checkboxes = function () { this._data.core.themes.checkboxes = false; this.get_container_ul().addClass("jstree-no-checkboxes"); }; + /** + * toggle the node icons + * @name toggle_checkboxes() + * @plugin checkbox + */ + this.toggle_checkboxes = function () { if(this._data.core.themes.checkboxes) { this.hide_checkboxes(); } else { this.show_checkboxes(); } }; + /** + * checks if a node is in an undetermined state + * @name is_undetermined(obj) + * @param {mixed} obj + * @return {Boolean} + */ + this.is_undetermined = function (obj) { + obj = this.get_node(obj); + var s = this.settings.checkbox.cascade, i, j, t = this.settings.checkbox.tie_selection, d = this._data[ t ? 'core' : 'checkbox' ].selected, m = this._model.data; + if(!obj || obj.state[ t ? 'selected' : 'checked' ] === true || s.indexOf('undetermined') === -1 || (s.indexOf('down') === -1 && s.indexOf('up') === -1)) { + return false; + } + if(!obj.state.loaded && obj.original.state.undetermined === true) { + return true; + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + if($.inArray(obj.children_d[i], d) !== -1 || (!m[obj.children_d[i]].state.loaded && m[obj.children_d[i]].original.state.undetermined)) { + return true; + } + } + return false; + }; + /** + * disable a node's checkbox + * @name disable_checkbox(obj) + * @param {mixed} obj an array can be used too + * @trigger disable_checkbox.jstree + * @plugin checkbox + */ + this.disable_checkbox = function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.disable_checkbox(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.checkbox_disabled) { + obj.state.checkbox_disabled = true; + if(dom && dom.length) { + dom.children('.jstree-anchor').children('.jstree-checkbox').addClass('jstree-checkbox-disabled'); + } + /** + * triggered when an node's checkbox is disabled + * @event + * @name disable_checkbox.jstree + * @param {Object} node + * @plugin checkbox + */ + this.trigger('disable_checkbox', { 'node' : obj }); + } + }; + /** + * enable a node's checkbox + * @name disable_checkbox(obj) + * @param {mixed} obj an array can be used too + * @trigger enable_checkbox.jstree + * @plugin checkbox + */ + this.enable_checkbox = function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.enable_checkbox(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.checkbox_disabled) { + obj.state.checkbox_disabled = false; + if(dom && dom.length) { + dom.children('.jstree-anchor').children('.jstree-checkbox').removeClass('jstree-checkbox-disabled'); + } + /** + * triggered when an node's checkbox is enabled + * @event + * @name enable_checkbox.jstree + * @param {Object} node + * @plugin checkbox + */ + this.trigger('enable_checkbox', { 'node' : obj }); + } + }; + + this.activate_node = function (obj, e) { + if($(e.target).hasClass('jstree-checkbox-disabled')) { + return false; + } + if(this.settings.checkbox.tie_selection && (this.settings.checkbox.whole_node || $(e.target).hasClass('jstree-checkbox'))) { + e.ctrlKey = true; + } + if(this.settings.checkbox.tie_selection || (!this.settings.checkbox.whole_node && !$(e.target).hasClass('jstree-checkbox'))) { + return parent.activate_node.call(this, obj, e); + } + if(this.is_disabled(obj)) { + return false; + } + if(this.is_checked(obj)) { + this.uncheck_node(obj, e); + } + else { + this.check_node(obj, e); + } + this.trigger('activate_node', { 'node' : this.get_node(obj) }); + }; + + /** + * check a node (only if tie_selection in checkbox settings is false, otherwise select_node will be called internally) + * @name check_node(obj) + * @param {mixed} obj an array can be used to check multiple nodes + * @trigger check_node.jstree + * @plugin checkbox + */ + this.check_node = function (obj, e) { + if(this.settings.checkbox.tie_selection) { return this.select_node(obj, false, true, e); } + var dom, t1, t2, th; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.check_node(obj[t1], e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.checked) { + obj.state.checked = true; + this._data.checkbox.selected.push(obj.id); + if(dom && dom.length) { + dom.children('.jstree-anchor').addClass('jstree-checked'); + } + /** + * triggered when an node is checked (only if tie_selection in checkbox settings is false) + * @event + * @name check_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this check_node + * @plugin checkbox + */ + this.trigger('check_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); + } + }; + /** + * uncheck a node (only if tie_selection in checkbox settings is false, otherwise deselect_node will be called internally) + * @name uncheck_node(obj) + * @param {mixed} obj an array can be used to uncheck multiple nodes + * @trigger uncheck_node.jstree + * @plugin checkbox + */ + this.uncheck_node = function (obj, e) { + if(this.settings.checkbox.tie_selection) { return this.deselect_node(obj, false, e); } + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.uncheck_node(obj[t1], e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.checked) { + obj.state.checked = false; + this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, obj.id); + if(dom.length) { + dom.children('.jstree-anchor').removeClass('jstree-checked'); + } + /** + * triggered when an node is unchecked (only if tie_selection in checkbox settings is false) + * @event + * @name uncheck_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this uncheck_node + * @plugin checkbox + */ + this.trigger('uncheck_node', { 'node' : obj, 'selected' : this._data.checkbox.selected, 'event' : e }); + } + }; + /** + * checks all nodes in the tree (only if tie_selection in checkbox settings is false, otherwise select_all will be called internally) + * @name check_all() + * @trigger check_all.jstree, changed.jstree + * @plugin checkbox + */ + this.check_all = function () { + if(this.settings.checkbox.tie_selection) { return this.select_all(); } + var tmp = this._data.checkbox.selected.concat([]), i, j; + this._data.checkbox.selected = this._model.data[$.jstree.root].children_d.concat(); + for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { + if(this._model.data[this._data.checkbox.selected[i]]) { + this._model.data[this._data.checkbox.selected[i]].state.checked = true; + } + } + this.redraw(true); + /** + * triggered when all nodes are checked (only if tie_selection in checkbox settings is false) + * @event + * @name check_all.jstree + * @param {Array} selected the current selection + * @plugin checkbox + */ + this.trigger('check_all', { 'selected' : this._data.checkbox.selected }); + }; + /** + * uncheck all checked nodes (only if tie_selection in checkbox settings is false, otherwise deselect_all will be called internally) + * @name uncheck_all() + * @trigger uncheck_all.jstree + * @plugin checkbox + */ + this.uncheck_all = function () { + if(this.settings.checkbox.tie_selection) { return this.deselect_all(); } + var tmp = this._data.checkbox.selected.concat([]), i, j; + for(i = 0, j = this._data.checkbox.selected.length; i < j; i++) { + if(this._model.data[this._data.checkbox.selected[i]]) { + this._model.data[this._data.checkbox.selected[i]].state.checked = false; + } + } + this._data.checkbox.selected = []; + this.element.find('.jstree-checked').removeClass('jstree-checked'); + /** + * triggered when all nodes are unchecked (only if tie_selection in checkbox settings is false) + * @event + * @name uncheck_all.jstree + * @param {Object} node the previous selection + * @param {Array} selected the current selection + * @plugin checkbox + */ + this.trigger('uncheck_all', { 'selected' : this._data.checkbox.selected, 'node' : tmp }); + }; + /** + * checks if a node is checked (if tie_selection is on in the settings this function will return the same as is_selected) + * @name is_checked(obj) + * @param {mixed} obj + * @return {Boolean} + * @plugin checkbox + */ + this.is_checked = function (obj) { + if(this.settings.checkbox.tie_selection) { return this.is_selected(obj); } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + return obj.state.checked; + }; + /** + * get an array of all checked nodes (if tie_selection is on in the settings this function will return the same as get_selected) + * @name get_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_selected(full); } + return full ? $.map(this._data.checkbox.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.checkbox.selected; + }; + /** + * get an array of all top level checked nodes (ignoring children of checked nodes) (if tie_selection is on in the settings this function will return the same as get_top_selected) + * @name get_top_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_top_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_top_selected(full); } + var tmp = this.get_checked(true), + obj = {}, i, j, k, l; + for(i = 0, j = tmp.length; i < j; i++) { + obj[tmp[i].id] = tmp[i]; + } + for(i = 0, j = tmp.length; i < j; i++) { + for(k = 0, l = tmp[i].children_d.length; k < l; k++) { + if(obj[tmp[i].children_d[k]]) { + delete obj[tmp[i].children_d[k]]; + } + } + } + tmp = []; + for(i in obj) { + if(obj.hasOwnProperty(i)) { + tmp.push(i); + } + } + return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; + }; + /** + * get an array of all bottom level checked nodes (ignoring selected parents) (if tie_selection is on in the settings this function will return the same as get_bottom_selected) + * @name get_bottom_checked([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + * @plugin checkbox + */ + this.get_bottom_checked = function (full) { + if(this.settings.checkbox.tie_selection) { return this.get_bottom_selected(full); } + var tmp = this.get_checked(true), + obj = [], i, j; + for(i = 0, j = tmp.length; i < j; i++) { + if(!tmp[i].children.length) { + obj.push(tmp[i].id); + } + } + return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; + }; + this.load_node = function (obj, callback) { + var k, l, i, j, c, tmp; + if(!$.isArray(obj) && !this.settings.checkbox.tie_selection) { + tmp = this.get_node(obj); + if(tmp && tmp.state.loaded) { + for(k = 0, l = tmp.children_d.length; k < l; k++) { + if(this._model.data[tmp.children_d[k]].state.checked) { + c = true; + this._data.checkbox.selected = $.vakata.array_remove_item(this._data.checkbox.selected, tmp.children_d[k]); + } + } + } + } + return parent.load_node.apply(this, arguments); + }; + this.get_state = function () { + var state = parent.get_state.apply(this, arguments); + if(this.settings.checkbox.tie_selection) { return state; } + state.checkbox = this._data.checkbox.selected.slice(); + return state; + }; + this.set_state = function (state, callback) { + var res = parent.set_state.apply(this, arguments); + if(res && state.checkbox) { + if(!this.settings.checkbox.tie_selection) { + this.uncheck_all(); + var _this = this; + $.each(state.checkbox, function (i, v) { + _this.check_node(v); + }); + } + delete state.checkbox; + this.set_state(state, callback); + return false; + } + return res; + }; + this.refresh = function (skip_loading, forget_state) { + if(!this.settings.checkbox.tie_selection) { + this._data.checkbox.selected = []; + } + return parent.refresh.apply(this, arguments); + }; + }; + + // include the checkbox plugin by default + // $.jstree.defaults.plugins.push("checkbox"); +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.conditionalselect.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.conditionalselect.js new file mode 100644 index 0000000000..012562ec10 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.conditionalselect.js @@ -0,0 +1,38 @@ +/** + * ### Conditionalselect plugin + * + * This plugin allows defining a callback to allow or deny node selection by user input (activate node method). + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.conditionalselect', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.conditionalselect) { return; } + + /** + * a callback (function) which is invoked in the instance's scope and receives two arguments - the node and the event that triggered the `activate_node` call. Returning false prevents working with the node, returning true allows invoking activate_node. Defaults to returning `true`. + * @name $.jstree.defaults.checkbox.visible + * @plugin checkbox + */ + $.jstree.defaults.conditionalselect = function () { return true; }; + $.jstree.plugins.conditionalselect = function (options, parent) { + // own function + this.activate_node = function (obj, e) { + if(this.settings.conditionalselect.call(this, this.get_node(obj), e)) { + parent.activate_node.call(this, obj, e); + } + }; + }; + +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.contextmenu.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.contextmenu.js new file mode 100644 index 0000000000..00f4517510 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.contextmenu.js @@ -0,0 +1,653 @@ +/** + * ### Contextmenu plugin + * + * Shows a context menu when a node is right-clicked. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.contextmenu', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.contextmenu) { return; } + + /** + * stores all defaults for the contextmenu plugin + * @name $.jstree.defaults.contextmenu + * @plugin contextmenu + */ + $.jstree.defaults.contextmenu = { + /** + * a boolean indicating if the node should be selected when the context menu is invoked on it. Defaults to `true`. + * @name $.jstree.defaults.contextmenu.select_node + * @plugin contextmenu + */ + select_node : true, + /** + * a boolean indicating if the menu should be shown aligned with the node. Defaults to `true`, otherwise the mouse coordinates are used. + * @name $.jstree.defaults.contextmenu.show_at_node + * @plugin contextmenu + */ + show_at_node : true, + /** + * an object of actions, or a function that accepts a node and a callback function and calls the callback function with an object of actions available for that node (you can also return the items too). + * + * Each action consists of a key (a unique name) and a value which is an object with the following properties (only label and action are required). Once a menu item is activated the `action` function will be invoked with an object containing the following keys: item - the contextmenu item definition as seen below, reference - the DOM node that was used (the tree node), element - the contextmenu DOM element, position - an object with x/y properties indicating the position of the menu. + * + * * `separator_before` - a boolean indicating if there should be a separator before this item + * * `separator_after` - a boolean indicating if there should be a separator after this item + * * `_disabled` - a boolean indicating if this action should be disabled + * * `label` - a string - the name of the action (could be a function returning a string) + * * `title` - a string - an optional tooltip for the item + * * `action` - a function to be executed if this item is chosen, the function will receive + * * `icon` - a string, can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class + * * `shortcut` - keyCode which will trigger the action if the menu is open (for example `113` for rename, which equals F2) + * * `shortcut_label` - shortcut label (like for example `F2` for rename) + * * `submenu` - an object with the same structure as $.jstree.defaults.contextmenu.items which can be used to create a submenu - each key will be rendered as a separate option in a submenu that will appear once the current item is hovered + * + * @name $.jstree.defaults.contextmenu.items + * @plugin contextmenu + */ + items : function (o, cb) { // Could be an object directly + return { + "create" : { + "separator_before" : false, + "separator_after" : true, + "_disabled" : false, //(this.check("create_node", data.reference, {}, "last")), + "label" : "Create", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.create_node(obj, {}, "last", function (new_node) { + setTimeout(function () { inst.edit(new_node); },0); + }); + } + }, + "rename" : { + "separator_before" : false, + "separator_after" : false, + "_disabled" : false, //(this.check("rename_node", data.reference, this.get_parent(data.reference), "")), + "label" : "Rename", + /*! + "shortcut" : 113, + "shortcut_label" : 'F2', + "icon" : "glyphicon glyphicon-leaf", + */ + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.edit(obj); + } + }, + "remove" : { + "separator_before" : false, + "icon" : false, + "separator_after" : false, + "_disabled" : false, //(this.check("delete_node", data.reference, this.get_parent(data.reference), "")), + "label" : "Delete", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.delete_node(inst.get_selected()); + } + else { + inst.delete_node(obj); + } + } + }, + "ccp" : { + "separator_before" : true, + "icon" : false, + "separator_after" : false, + "label" : "Edit", + "action" : false, + "submenu" : { + "cut" : { + "separator_before" : false, + "separator_after" : false, + "label" : "Cut", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.cut(inst.get_top_selected()); + } + else { + inst.cut(obj); + } + } + }, + "copy" : { + "separator_before" : false, + "icon" : false, + "separator_after" : false, + "label" : "Copy", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + if(inst.is_selected(obj)) { + inst.copy(inst.get_top_selected()); + } + else { + inst.copy(obj); + } + } + }, + "paste" : { + "separator_before" : false, + "icon" : false, + "_disabled" : function (data) { + return !$.jstree.reference(data.reference).can_paste(); + }, + "separator_after" : false, + "label" : "Paste", + "action" : function (data) { + var inst = $.jstree.reference(data.reference), + obj = inst.get_node(data.reference); + inst.paste(obj); + } + } + } + } + }; + } + }; + + $.jstree.plugins.contextmenu = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + var last_ts = 0, cto = null, ex, ey; + this.element + .on("contextmenu.jstree", ".jstree-anchor", $.proxy(function (e, data) { + if (e.target.tagName.toLowerCase() === 'input') { + return; + } + e.preventDefault(); + last_ts = e.ctrlKey ? +new Date() : 0; + if(data || cto) { + last_ts = (+new Date()) + 10000; + } + if(cto) { + clearTimeout(cto); + } + if(!this.is_loading(e.currentTarget)) { + this.show_contextmenu(e.currentTarget, e.pageX, e.pageY, e); + } + }, this)) + .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { + if(this._data.contextmenu.visible && (!last_ts || (+new Date()) - last_ts > 250)) { // work around safari & macOS ctrl+click + $.vakata.context.hide(); + } + last_ts = 0; + }, this)) + .on("touchstart.jstree", ".jstree-anchor", function (e) { + if(!e.originalEvent || !e.originalEvent.changedTouches || !e.originalEvent.changedTouches[0]) { + return; + } + ex = e.originalEvent.changedTouches[0].clientX; + ey = e.originalEvent.changedTouches[0].clientY; + cto = setTimeout(function () { + $(e.currentTarget).trigger('contextmenu', true); + }, 750); + }) + .on('touchmove.vakata.jstree', function (e) { + if(cto && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0] && (Math.abs(ex - e.originalEvent.changedTouches[0].clientX) > 50 || Math.abs(ey - e.originalEvent.changedTouches[0].clientY) > 50)) { + clearTimeout(cto); + } + }) + .on('touchend.vakata.jstree', function (e) { + if(cto) { + clearTimeout(cto); + } + }); + + /*! + if(!('oncontextmenu' in document.body) && ('ontouchstart' in document.body)) { + var el = null, tm = null; + this.element + .on("touchstart", ".jstree-anchor", function (e) { + el = e.currentTarget; + tm = +new Date(); + $(document).one("touchend", function (e) { + e.target = document.elementFromPoint(e.originalEvent.targetTouches[0].pageX - window.pageXOffset, e.originalEvent.targetTouches[0].pageY - window.pageYOffset); + e.currentTarget = e.target; + tm = ((+(new Date())) - tm); + if(e.target === el && tm > 600 && tm < 1000) { + e.preventDefault(); + $(el).trigger('contextmenu', e); + } + el = null; + tm = null; + }); + }); + } + */ + $(document).on("context_hide.vakata.jstree", $.proxy(function (e, data) { + this._data.contextmenu.visible = false; + $(data.reference).removeClass('jstree-context'); + }, this)); + }; + this.teardown = function () { + if(this._data.contextmenu.visible) { + $.vakata.context.hide(); + } + parent.teardown.call(this); + }; + + /** + * prepare and show the context menu for a node + * @name show_contextmenu(obj [, x, y]) + * @param {mixed} obj the node + * @param {Number} x the x-coordinate relative to the document to show the menu at + * @param {Number} y the y-coordinate relative to the document to show the menu at + * @param {Object} e the event if available that triggered the contextmenu + * @plugin contextmenu + * @trigger show_contextmenu.jstree + */ + this.show_contextmenu = function (obj, x, y, e) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var s = this.settings.contextmenu, + d = this.get_node(obj, true), + a = d.children(".jstree-anchor"), + o = false, + i = false; + if(s.show_at_node || x === undefined || y === undefined) { + o = a.offset(); + x = o.left; + y = o.top + this._data.core.li_height; + } + if(this.settings.contextmenu.select_node && !this.is_selected(obj)) { + this.activate_node(obj, e); + } + + i = s.items; + if($.isFunction(i)) { + i = i.call(this, obj, $.proxy(function (i) { + this._show_contextmenu(obj, x, y, i); + }, this)); + } + if($.isPlainObject(i)) { + this._show_contextmenu(obj, x, y, i); + } + }; + /** + * show the prepared context menu for a node + * @name _show_contextmenu(obj, x, y, i) + * @param {mixed} obj the node + * @param {Number} x the x-coordinate relative to the document to show the menu at + * @param {Number} y the y-coordinate relative to the document to show the menu at + * @param {Number} i the object of items to show + * @plugin contextmenu + * @trigger show_contextmenu.jstree + * @private + */ + this._show_contextmenu = function (obj, x, y, i) { + var d = this.get_node(obj, true), + a = d.children(".jstree-anchor"); + $(document).one("context_show.vakata.jstree", $.proxy(function (e, data) { + var cls = 'jstree-contextmenu jstree-' + this.get_theme() + '-contextmenu'; + $(data.element).addClass(cls); + a.addClass('jstree-context'); + }, this)); + this._data.contextmenu.visible = true; + $.vakata.context.show(a, { 'x' : x, 'y' : y }, i); + /** + * triggered when the contextmenu is shown for a node + * @event + * @name show_contextmenu.jstree + * @param {Object} node the node + * @param {Number} x the x-coordinate of the menu relative to the document + * @param {Number} y the y-coordinate of the menu relative to the document + * @plugin contextmenu + */ + this.trigger('show_contextmenu', { "node" : obj, "x" : x, "y" : y }); + }; + }; + + // contextmenu helper + (function ($) { + var right_to_left = false, + vakata_context = { + element : false, + reference : false, + position_x : 0, + position_y : 0, + items : [], + html : "", + is_visible : false + }; + + $.vakata.context = { + settings : { + hide_onmouseleave : 0, + icons : true + }, + _trigger : function (event_name) { + $(document).triggerHandler("context_" + event_name + ".vakata", { + "reference" : vakata_context.reference, + "element" : vakata_context.element, + "position" : { + "x" : vakata_context.position_x, + "y" : vakata_context.position_y + } + }); + }, + _execute : function (i) { + i = vakata_context.items[i]; + return i && (!i._disabled || ($.isFunction(i._disabled) && !i._disabled({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }))) && i.action ? i.action.call(null, { + "item" : i, + "reference" : vakata_context.reference, + "element" : vakata_context.element, + "position" : { + "x" : vakata_context.position_x, + "y" : vakata_context.position_y + } + }) : false; + }, + _parse : function (o, is_callback) { + if(!o) { return false; } + if(!is_callback) { + vakata_context.html = ""; + vakata_context.items = []; + } + var str = "", + sep = false, + tmp; + + if(is_callback) { str += "<"+"ul>"; } + $.each(o, function (i, val) { + if(!val) { return true; } + vakata_context.items.push(val); + if(!sep && val.separator_before) { + str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; + } + sep = false; + str += "<"+"li class='" + (val._class || "") + (val._disabled === true || ($.isFunction(val._disabled) && val._disabled({ "item" : val, "reference" : vakata_context.reference, "element" : vakata_context.element })) ? " vakata-contextmenu-disabled " : "") + "' "+(val.shortcut?" data-shortcut='"+val.shortcut+"' ":'')+">"; + str += "<"+"a href='#' rel='" + (vakata_context.items.length - 1) + "' " + (val.title ? "title='" + val.title + "'" : "") + ">"; + if($.vakata.context.settings.icons) { + str += "<"+"i "; + if(val.icon) { + if(val.icon.indexOf("/") !== -1 || val.icon.indexOf(".") !== -1) { str += " style='background:url(\"" + val.icon + "\") center center no-repeat' "; } + else { str += " class='" + val.icon + "' "; } + } + str += "><"+"/i><"+"span class='vakata-contextmenu-sep'> <"+"/span>"; + } + str += ($.isFunction(val.label) ? val.label({ "item" : i, "reference" : vakata_context.reference, "element" : vakata_context.element }) : val.label) + (val.shortcut?' '+ (val.shortcut_label || '') +'':'') + "<"+"/a>"; + if(val.submenu) { + tmp = $.vakata.context._parse(val.submenu, true); + if(tmp) { str += tmp; } + } + str += "<"+"/li>"; + if(val.separator_after) { + str += "<"+"li class='vakata-context-separator'><"+"a href='#' " + ($.vakata.context.settings.icons ? '' : 'style="margin-left:0px;"') + "> <"+"/a><"+"/li>"; + sep = true; + } + }); + str = str.replace(/
      • <\/li\>$/,""); + if(is_callback) { str += ""; } + /** + * triggered on the document when the contextmenu is parsed (HTML is built) + * @event + * @plugin contextmenu + * @name context_parse.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + if(!is_callback) { vakata_context.html = str; $.vakata.context._trigger("parse"); } + return str.length > 10 ? str : false; + }, + _show_submenu : function (o) { + o = $(o); + if(!o.length || !o.children("ul").length) { return; } + var e = o.children("ul"), + xl = o.offset().left, + x = xl + o.outerWidth(), + y = o.offset().top, + w = e.width(), + h = e.height(), + dw = $(window).width() + $(window).scrollLeft(), + dh = $(window).height() + $(window).scrollTop(); + // може да се спести е една проверка - дали няма някой от класовете вече нагоре + if(right_to_left) { + o[x - (w + 10 + o.outerWidth()) < 0 ? "addClass" : "removeClass"]("vakata-context-left"); + } + else { + o[x + w > dw && xl > dw - x ? "addClass" : "removeClass"]("vakata-context-right"); + } + if(y + h + 10 > dh) { + e.css("bottom","-1px"); + } + + //if does not fit - stick it to the side + if (o.hasClass('vakata-context-right')) { + if (xl < w) { + e.css("margin-right", xl - w); + } + } else { + if (dw - x < w) { + e.css("margin-left", dw - x - w); + } + } + + e.show(); + }, + show : function (reference, position, data) { + var o, e, x, y, w, h, dw, dh, cond = true; + if(vakata_context.element && vakata_context.element.length) { + vakata_context.element.width(''); + } + switch(cond) { + case (!position && !reference): + return false; + case (!!position && !!reference): + vakata_context.reference = reference; + vakata_context.position_x = position.x; + vakata_context.position_y = position.y; + break; + case (!position && !!reference): + vakata_context.reference = reference; + o = reference.offset(); + vakata_context.position_x = o.left + reference.outerHeight(); + vakata_context.position_y = o.top; + break; + case (!!position && !reference): + vakata_context.position_x = position.x; + vakata_context.position_y = position.y; + break; + } + if(!!reference && !data && $(reference).data('vakata_contextmenu')) { + data = $(reference).data('vakata_contextmenu'); + } + if($.vakata.context._parse(data)) { + vakata_context.element.html(vakata_context.html); + } + if(vakata_context.items.length) { + vakata_context.element.appendTo("body"); + e = vakata_context.element; + x = vakata_context.position_x; + y = vakata_context.position_y; + w = e.width(); + h = e.height(); + dw = $(window).width() + $(window).scrollLeft(); + dh = $(window).height() + $(window).scrollTop(); + if(right_to_left) { + x -= (e.outerWidth() - $(reference).outerWidth()); + if(x < $(window).scrollLeft() + 20) { + x = $(window).scrollLeft() + 20; + } + } + if(x + w + 20 > dw) { + x = dw - (w + 20); + } + if(y + h + 20 > dh) { + y = dh - (h + 20); + } + + vakata_context.element + .css({ "left" : x, "top" : y }) + .show() + .find('a').first().focus().parent().addClass("vakata-context-hover"); + vakata_context.is_visible = true; + /** + * triggered on the document when the contextmenu is shown + * @event + * @plugin contextmenu + * @name context_show.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + $.vakata.context._trigger("show"); + } + }, + hide : function () { + if(vakata_context.is_visible) { + vakata_context.element.hide().find("ul").hide().end().find(':focus').blur().end().detach(); + vakata_context.is_visible = false; + /** + * triggered on the document when the contextmenu is hidden + * @event + * @plugin contextmenu + * @name context_hide.vakata + * @param {jQuery} reference the element that was right clicked + * @param {jQuery} element the DOM element of the menu itself + * @param {Object} position the x & y coordinates of the menu + */ + $.vakata.context._trigger("hide"); + } + } + }; + $(function () { + right_to_left = $("body").css("direction") === "rtl"; + var to = false; + + vakata_context.element = $("
          "); + vakata_context.element + .on("mouseenter", "li", function (e) { + e.stopImmediatePropagation(); + + if($.contains(this, e.relatedTarget)) { + // премахнато заради delegate mouseleave по-долу + // $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); + return; + } + + if(to) { clearTimeout(to); } + vakata_context.element.find(".vakata-context-hover").removeClass("vakata-context-hover").end(); + + $(this) + .siblings().find("ul").hide().end().end() + .parentsUntil(".vakata-context", "li").addBack().addClass("vakata-context-hover"); + $.vakata.context._show_submenu(this); + }) + // тестово - дали не натоварва? + .on("mouseleave", "li", function (e) { + if($.contains(this, e.relatedTarget)) { return; } + $(this).find(".vakata-context-hover").addBack().removeClass("vakata-context-hover"); + }) + .on("mouseleave", function (e) { + $(this).find(".vakata-context-hover").removeClass("vakata-context-hover"); + if($.vakata.context.settings.hide_onmouseleave) { + to = setTimeout( + (function (t) { + return function () { $.vakata.context.hide(); }; + }(this)), $.vakata.context.settings.hide_onmouseleave); + } + }) + .on("click", "a", function (e) { + e.preventDefault(); + //}) + //.on("mouseup", "a", function (e) { + if(!$(this).blur().parent().hasClass("vakata-context-disabled") && $.vakata.context._execute($(this).attr("rel")) !== false) { + $.vakata.context.hide(); + } + }) + .on('keydown', 'a', function (e) { + var o = null; + switch(e.which) { + case 13: + case 32: + e.type = "click"; + e.preventDefault(); + $(e.currentTarget).trigger(e); + break; + case 37: + if(vakata_context.is_visible) { + vakata_context.element.find(".vakata-context-hover").last().closest("li").first().find("ul").hide().find(".vakata-context-hover").removeClass("vakata-context-hover").end().end().children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 38: + if(vakata_context.is_visible) { + o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").prevAll("li:not(.vakata-context-separator)").first(); + if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").last(); } + o.addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 39: + if(vakata_context.is_visible) { + vakata_context.element.find(".vakata-context-hover").last().children("ul").show().children("li:not(.vakata-context-separator)").removeClass("vakata-context-hover").first().addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 40: + if(vakata_context.is_visible) { + o = vakata_context.element.find("ul:visible").addBack().last().children(".vakata-context-hover").removeClass("vakata-context-hover").nextAll("li:not(.vakata-context-separator)").first(); + if(!o.length) { o = vakata_context.element.find("ul:visible").addBack().last().children("li:not(.vakata-context-separator)").first(); } + o.addClass("vakata-context-hover").children('a').focus(); + e.stopImmediatePropagation(); + e.preventDefault(); + } + break; + case 27: + $.vakata.context.hide(); + e.preventDefault(); + break; + default: + //console.log(e.which); + break; + } + }) + .on('keydown', function (e) { + e.preventDefault(); + var a = vakata_context.element.find('.vakata-contextmenu-shortcut-' + e.which).parent(); + if(a.parent().not('.vakata-context-disabled')) { + a.click(); + } + }); + + $(document) + .on("mousedown.vakata.jstree", function (e) { + if(vakata_context.is_visible && !$.contains(vakata_context.element[0], e.target)) { + $.vakata.context.hide(); + } + }) + .on("context_show.vakata.jstree", function (e, data) { + vakata_context.element.find("li:has(ul)").children("a").addClass("vakata-context-parent"); + if(right_to_left) { + vakata_context.element.addClass("vakata-context-rtl").css("direction", "rtl"); + } + // also apply a RTL class? + vakata_context.element.find("ul").hide().end(); + }); + }); + }($)); + // $.jstree.defaults.plugins.push("contextmenu"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.dnd.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.dnd.js new file mode 100644 index 0000000000..a8a4cec2ec --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.dnd.js @@ -0,0 +1,653 @@ +/** + * ### Drag'n'drop plugin + * + * Enables dragging and dropping of nodes in the tree, resulting in a move or copy operations. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.dnd', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.dnd) { return; } + + /** + * stores all defaults for the drag'n'drop plugin + * @name $.jstree.defaults.dnd + * @plugin dnd + */ + $.jstree.defaults.dnd = { + /** + * a boolean indicating if a copy should be possible while dragging (by pressint the meta key or Ctrl). Defaults to `true`. + * @name $.jstree.defaults.dnd.copy + * @plugin dnd + */ + copy : true, + /** + * a number indicating how long a node should remain hovered while dragging to be opened. Defaults to `500`. + * @name $.jstree.defaults.dnd.open_timeout + * @plugin dnd + */ + open_timeout : 500, + /** + * a function invoked each time a node is about to be dragged, invoked in the tree's scope and receives the nodes about to be dragged as an argument (array) and the event that started the drag - return `false` to prevent dragging + * @name $.jstree.defaults.dnd.is_draggable + * @plugin dnd + */ + is_draggable : true, + /** + * a boolean indicating if checks should constantly be made while the user is dragging the node (as opposed to checking only on drop), default is `true` + * @name $.jstree.defaults.dnd.check_while_dragging + * @plugin dnd + */ + check_while_dragging : true, + /** + * a boolean indicating if nodes from this tree should only be copied with dnd (as opposed to moved), default is `false` + * @name $.jstree.defaults.dnd.always_copy + * @plugin dnd + */ + always_copy : false, + /** + * when dropping a node "inside", this setting indicates the position the node should go to - it can be an integer or a string: "first" (same as 0) or "last", default is `0` + * @name $.jstree.defaults.dnd.inside_pos + * @plugin dnd + */ + inside_pos : 0, + /** + * when starting the drag on a node that is selected this setting controls if all selected nodes are dragged or only the single node, default is `true`, which means all selected nodes are dragged when the drag is started on a selected node + * @name $.jstree.defaults.dnd.drag_selection + * @plugin dnd + */ + drag_selection : true, + /** + * controls whether dnd works on touch devices. If left as boolean true dnd will work the same as in desktop browsers, which in some cases may impair scrolling. If set to boolean false dnd will not work on touch devices. There is a special third option - string "selected" which means only selected nodes can be dragged on touch devices. + * @name $.jstree.defaults.dnd.touch + * @plugin dnd + */ + touch : true, + /** + * controls whether items can be dropped anywhere on the node, not just on the anchor, by default only the node anchor is a valid drop target. Works best with the wholerow plugin. If enabled on mobile depending on the interface it might be hard for the user to cancel the drop, since the whole tree container will be a valid drop target. + * @name $.jstree.defaults.dnd.large_drop_target + * @plugin dnd + */ + large_drop_target : false, + /** + * controls whether a drag can be initiated from any part of the node and not just the text/icon part, works best with the wholerow plugin. Keep in mind it can cause problems with tree scrolling on mobile depending on the interface - in that case set the touch option to "selected". + * @name $.jstree.defaults.dnd.large_drag_target + * @plugin dnd + */ + large_drag_target : false, + /** + * controls whether use HTML5 dnd api instead of classical. That will allow better integration of dnd events with other HTML5 controls. + * @reference http://caniuse.com/#feat=dragndrop + * @name $.jstree.defaults.dnd.use_html5 + * @plugin dnd + */ + use_html5: false + }; + var drg, elm; + // TODO: now check works by checking for each node individually, how about max_children, unique, etc? + $.jstree.plugins.dnd = function (options, parent) { + this.init = function (el, options) { + parent.init.call(this, el, options); + this.settings.dnd.use_html5 = this.settings.dnd.use_html5 && ('draggable' in document.createElement('span')); + }; + this.bind = function () { + parent.bind.call(this); + + this.element + .on(this.settings.dnd.use_html5 ? 'dragstart.jstree' : 'mousedown.jstree touchstart.jstree', this.settings.dnd.large_drag_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { + if(this.settings.dnd.large_drag_target && $(e.target).closest('.jstree-node')[0] !== e.currentTarget) { + return true; + } + if(e.type === "touchstart" && (!this.settings.dnd.touch || (this.settings.dnd.touch === 'selected' && !$(e.currentTarget).closest('.jstree-node').children('.jstree-anchor').hasClass('jstree-clicked')))) { + return true; + } + var obj = this.get_node(e.target), + mlt = this.is_selected(obj) && this.settings.dnd.drag_selection ? this.get_top_selected().length : 1, + txt = (mlt > 1 ? mlt + ' ' + this.get_string('nodes') : this.get_text(e.currentTarget)); + if(this.settings.core.force_text) { + txt = $.vakata.html.escape(txt); + } + if(obj && obj.id && obj.id !== $.jstree.root && (e.which === 1 || e.type === "touchstart" || e.type === "dragstart") && + (this.settings.dnd.is_draggable === true || ($.isFunction(this.settings.dnd.is_draggable) && this.settings.dnd.is_draggable.call(this, (mlt > 1 ? this.get_top_selected(true) : [obj]), e))) + ) { + drg = { 'jstree' : true, 'origin' : this, 'obj' : this.get_node(obj,true), 'nodes' : mlt > 1 ? this.get_top_selected() : [obj.id] }; + elm = e.currentTarget; + if (this.settings.dnd.use_html5) { + $.vakata.dnd._trigger('start', e, { 'helper': $(), 'element': elm, 'data': drg }); + } else { + this.element.trigger('mousedown.jstree'); + return $.vakata.dnd.start(e, drg, '
          ' + txt + '
          '); + } + } + }, this)); + if (this.settings.dnd.use_html5) { + this.element + .on('dragover.jstree', function (e) { + e.preventDefault(); + $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); + return false; + }) + //.on('dragenter.jstree', this.settings.dnd.large_drop_target ? '.jstree-node' : '.jstree-anchor', $.proxy(function (e) { + // e.preventDefault(); + // $.vakata.dnd._trigger('move', e, { 'helper': $(), 'element': elm, 'data': drg }); + // return false; + // }, this)) + .on('drop.jstree', $.proxy(function (e) { + e.preventDefault(); + $.vakata.dnd._trigger('stop', e, { 'helper': $(), 'element': elm, 'data': drg }); + return false; + }, this)); + } + }; + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if (obj && this.settings.dnd.use_html5) { + if (this.settings.dnd.large_drag_target) { + obj.setAttribute('draggable', true); + } else { + var i, j, tmp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + tmp.setAttribute('draggable', true); + } + } + } + return obj; + }; + }; + + $(function() { + // bind only once for all instances + var lastmv = false, + laster = false, + lastev = false, + opento = false, + marker = $('
           
          ').hide(); //.appendTo('body'); + + $(document) + .on('dnd_start.vakata.jstree', function (e, data) { + lastmv = false; + lastev = false; + if(!data || !data.data || !data.data.jstree) { return; } + marker.appendTo('body'); //.show(); + }) + .on('dnd_move.vakata.jstree', function (e, data) { + if(opento) { + if (!data.event || data.event.type !== 'dragover' || data.event.target !== lastev.target) { + clearTimeout(opento); + } + } + if(!data || !data.data || !data.data.jstree) { return; } + + // if we are hovering the marker image do nothing (can happen on "inside" drags) + if(data.event.target.id && data.event.target.id === 'jstree-marker') { + return; + } + lastev = data.event; + + var ins = $.jstree.reference(data.event.target), + ref = false, + off = false, + rel = false, + tmp, l, t, h, p, i, o, ok, t1, t2, op, ps, pr, ip, tm, is_copy, pn; + // if we are over an instance + if(ins && ins._data && ins._data.dnd) { + marker.attr('class', 'jstree-' + ins.get_theme() + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )); + is_copy = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))); + data.helper + .children().attr('class', 'jstree-' + ins.get_theme() + ' jstree-' + ins.get_theme() + '-' + ins.get_theme_variant() + ' ' + ( ins.settings.core.themes.responsive ? ' jstree-dnd-responsive' : '' )) + .find('.jstree-copy').first()[ is_copy ? 'show' : 'hide' ](); + + // if are hovering the container itself add a new root node + //console.log(data.event); + if( (data.event.target === ins.element[0] || data.event.target === ins.get_container_ul()[0]) && ins.get_container_ul().children().length === 0) { + ok = true; + for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { + ok = ok && ins.check( (data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey)) ) ? "copy_node" : "move_node"), (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), $.jstree.root, 'last', { 'dnd' : true, 'ref' : ins.get_node($.jstree.root), 'pos' : 'i', 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }); + if(!ok) { break; } + } + if(ok) { + lastmv = { 'ins' : ins, 'par' : $.jstree.root, 'pos' : 'last' }; + marker.hide(); + data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; + } + return; + } + } + else { + // if we are hovering a tree node + ref = ins.settings.dnd.large_drop_target ? $(data.event.target).closest('.jstree-node').children('.jstree-anchor') : $(data.event.target).closest('.jstree-anchor'); + if(ref && ref.length && ref.parent().is('.jstree-closed, .jstree-open, .jstree-leaf')) { + off = ref.offset(); + rel = (data.event.pageY !== undefined ? data.event.pageY : data.event.originalEvent.pageY) - off.top; + h = ref.outerHeight(); + if(rel < h / 3) { + o = ['b', 'i', 'a']; + } + else if(rel > h - h / 3) { + o = ['a', 'i', 'b']; + } + else { + o = rel > h / 2 ? ['i', 'a', 'b'] : ['i', 'b', 'a']; + } + $.each(o, function (j, v) { + switch(v) { + case 'b': + l = off.left - 6; + t = off.top; + p = ins.get_parent(ref); + i = ref.parent().index(); + break; + case 'i': + ip = ins.settings.dnd.inside_pos; + tm = ins.get_node(ref.parent()); + l = off.left - 2; + t = off.top + h / 2 + 1; + p = tm.id; + i = ip === 'first' ? 0 : (ip === 'last' ? tm.children.length : Math.min(ip, tm.children.length)); + break; + case 'a': + l = off.left - 6; + t = off.top + h; + p = ins.get_parent(ref); + i = ref.parent().index() + 1; + break; + } + ok = true; + for(t1 = 0, t2 = data.data.nodes.length; t1 < t2; t1++) { + op = data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? "copy_node" : "move_node"; + ps = i; + if(op === "move_node" && v === 'a' && (data.data.origin && data.data.origin === ins) && p === ins.get_parent(data.data.nodes[t1])) { + pr = ins.get_node(p); + if(ps > $.inArray(data.data.nodes[t1], pr.children)) { + ps -= 1; + } + } + ok = ok && ( (ins && ins.settings && ins.settings.dnd && ins.settings.dnd.check_while_dragging === false) || ins.check(op, (data.data.origin && data.data.origin !== ins ? data.data.origin.get_node(data.data.nodes[t1]) : data.data.nodes[t1]), p, ps, { 'dnd' : true, 'ref' : ins.get_node(ref.parent()), 'pos' : v, 'origin' : data.data.origin, 'is_multi' : (data.data.origin && data.data.origin !== ins), 'is_foreign' : (!data.data.origin) }) ); + if(!ok) { + if(ins && ins.last_error) { laster = ins.last_error(); } + break; + } + } + if(v === 'i' && ref.parent().is('.jstree-closed') && ins.settings.dnd.open_timeout) { + opento = setTimeout((function (x, z) { return function () { x.open_node(z); }; }(ins, ref)), ins.settings.dnd.open_timeout); + } + if(ok) { + pn = ins.get_node(p, true); + if (!pn.hasClass('.jstree-dnd-parent')) { + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + pn.addClass('jstree-dnd-parent'); + } + lastmv = { 'ins' : ins, 'par' : p, 'pos' : v === 'i' && ip === 'last' && i === 0 && !ins.is_loaded(tm) ? 'last' : i }; + marker.css({ 'left' : l + 'px', 'top' : t + 'px' }).show(); + data.helper.find('.jstree-icon').first().removeClass('jstree-er').addClass('jstree-ok'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = is_copy ? 'copy' : 'move'; + } + laster = {}; + o = true; + return false; + } + }); + if(o === true) { return; } + } + } + } + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + lastmv = false; + data.helper.find('.jstree-icon').removeClass('jstree-ok').addClass('jstree-er'); + if (data.event.originalEvent && data.event.originalEvent.dataTransfer) { + data.event.originalEvent.dataTransfer.dropEffect = 'none'; + } + marker.hide(); + }) + .on('dnd_scroll.vakata.jstree', function (e, data) { + if(!data || !data.data || !data.data.jstree) { return; } + marker.hide(); + lastmv = false; + lastev = false; + data.helper.find('.jstree-icon').first().removeClass('jstree-ok').addClass('jstree-er'); + }) + .on('dnd_stop.vakata.jstree', function (e, data) { + $('.jstree-dnd-parent').removeClass('jstree-dnd-parent'); + if(opento) { clearTimeout(opento); } + if(!data || !data.data || !data.data.jstree) { return; } + marker.hide().detach(); + var i, j, nodes = []; + if(lastmv) { + for(i = 0, j = data.data.nodes.length; i < j; i++) { + nodes[i] = data.data.origin ? data.data.origin.get_node(data.data.nodes[i]) : data.data.nodes[i]; + } + lastmv.ins[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (data.event.metaKey || data.event.ctrlKey))) ? 'copy_node' : 'move_node' ](nodes, lastmv.par, lastmv.pos, false, false, false, data.data.origin); + } + else { + i = $(data.event.target).closest('.jstree'); + if(i.length && laster && laster.error && laster.error === 'check') { + i = i.jstree(true); + if(i) { + i.settings.core.error.call(this, laster); + } + } + } + lastev = false; + lastmv = false; + }) + .on('keyup.jstree keydown.jstree', function (e, data) { + data = $.vakata.dnd._get(); + if(data && data.data && data.data.jstree) { + if (e.type === "keyup" && e.which === 27) { + if (opento) { clearTimeout(opento); } + lastmv = false; + laster = false; + lastev = false; + opento = false; + marker.hide().detach(); + $.vakata.dnd._clean(); + } else { + data.helper.find('.jstree-copy').first()[ data.data.origin && (data.data.origin.settings.dnd.always_copy || (data.data.origin.settings.dnd.copy && (e.metaKey || e.ctrlKey))) ? 'show' : 'hide' ](); + if(lastev) { + lastev.metaKey = e.metaKey; + lastev.ctrlKey = e.ctrlKey; + $.vakata.dnd._trigger('move', lastev); + } + } + } + }); + }); + + // helpers + (function ($) { + $.vakata.html = { + div : $('
          '), + escape : function (str) { + return $.vakata.html.div.text(str).html(); + }, + strip : function (str) { + return $.vakata.html.div.empty().append($.parseHTML(str)).text(); + } + }; + // private variable + var vakata_dnd = { + element : false, + target : false, + is_down : false, + is_drag : false, + helper : false, + helper_w: 0, + data : false, + init_x : 0, + init_y : 0, + scroll_l: 0, + scroll_t: 0, + scroll_e: false, + scroll_i: false, + is_touch: false + }; + $.vakata.dnd = { + settings : { + scroll_speed : 10, + scroll_proximity : 20, + helper_left : 5, + helper_top : 10, + threshold : 5, + threshold_touch : 50 + }, + _trigger : function (event_name, e, data) { + if (data === undefined) { + data = $.vakata.dnd._get(); + } + data.event = e; + $(document).triggerHandler("dnd_" + event_name + ".vakata", data); + }, + _get : function () { + return { + "data" : vakata_dnd.data, + "element" : vakata_dnd.element, + "helper" : vakata_dnd.helper + }; + }, + _clean : function () { + if(vakata_dnd.helper) { vakata_dnd.helper.remove(); } + if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } + vakata_dnd = { + element : false, + target : false, + is_down : false, + is_drag : false, + helper : false, + helper_w: 0, + data : false, + init_x : 0, + init_y : 0, + scroll_l: 0, + scroll_t: 0, + scroll_e: false, + scroll_i: false, + is_touch: false + }; + $(document).off("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); + $(document).off("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); + }, + _scroll : function (init_only) { + if(!vakata_dnd.scroll_e || (!vakata_dnd.scroll_l && !vakata_dnd.scroll_t)) { + if(vakata_dnd.scroll_i) { clearInterval(vakata_dnd.scroll_i); vakata_dnd.scroll_i = false; } + return false; + } + if(!vakata_dnd.scroll_i) { + vakata_dnd.scroll_i = setInterval($.vakata.dnd._scroll, 100); + return false; + } + if(init_only === true) { return false; } + + var i = vakata_dnd.scroll_e.scrollTop(), + j = vakata_dnd.scroll_e.scrollLeft(); + vakata_dnd.scroll_e.scrollTop(i + vakata_dnd.scroll_t * $.vakata.dnd.settings.scroll_speed); + vakata_dnd.scroll_e.scrollLeft(j + vakata_dnd.scroll_l * $.vakata.dnd.settings.scroll_speed); + if(i !== vakata_dnd.scroll_e.scrollTop() || j !== vakata_dnd.scroll_e.scrollLeft()) { + /** + * triggered on the document when a drag causes an element to scroll + * @event + * @plugin dnd + * @name dnd_scroll.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {jQuery} event the element that is scrolling + */ + $.vakata.dnd._trigger("scroll", vakata_dnd.scroll_e); + } + }, + start : function (e, data, html) { + if(e.type === "touchstart" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(vakata_dnd.is_drag) { $.vakata.dnd.stop({}); } + try { + e.currentTarget.unselectable = "on"; + e.currentTarget.onselectstart = function() { return false; }; + if(e.currentTarget.style) { + e.currentTarget.style.touchAction = "none"; + e.currentTarget.style.msTouchAction = "none"; + e.currentTarget.style.MozUserSelect = "none"; + } + } catch(ignore) { } + vakata_dnd.init_x = e.pageX; + vakata_dnd.init_y = e.pageY; + vakata_dnd.data = data; + vakata_dnd.is_down = true; + vakata_dnd.element = e.currentTarget; + vakata_dnd.target = e.target; + vakata_dnd.is_touch = e.type === "touchstart"; + if(html !== false) { + vakata_dnd.helper = $("
          ").html(html).css({ + "display" : "block", + "margin" : "0", + "padding" : "0", + "position" : "absolute", + "top" : "-2000px", + "lineHeight" : "16px", + "zIndex" : "10000" + }); + } + $(document).on("mousemove.vakata.jstree touchmove.vakata.jstree", $.vakata.dnd.drag); + $(document).on("mouseup.vakata.jstree touchend.vakata.jstree", $.vakata.dnd.stop); + return false; + }, + drag : function (e) { + if(e.type === "touchmove" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(!vakata_dnd.is_down) { return; } + if(!vakata_dnd.is_drag) { + if( + Math.abs(e.pageX - vakata_dnd.init_x) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) || + Math.abs(e.pageY - vakata_dnd.init_y) > (vakata_dnd.is_touch ? $.vakata.dnd.settings.threshold_touch : $.vakata.dnd.settings.threshold) + ) { + if(vakata_dnd.helper) { + vakata_dnd.helper.appendTo("body"); + vakata_dnd.helper_w = vakata_dnd.helper.outerWidth(); + } + vakata_dnd.is_drag = true; + $(vakata_dnd.target).one('click.vakata', false); + /** + * triggered on the document when a drag starts + * @event + * @plugin dnd + * @name dnd_start.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused the start (probably mousemove) + */ + $.vakata.dnd._trigger("start", e); + } + else { return; } + } + + var d = false, w = false, + dh = false, wh = false, + dw = false, ww = false, + dt = false, dl = false, + ht = false, hl = false; + + vakata_dnd.scroll_t = 0; + vakata_dnd.scroll_l = 0; + vakata_dnd.scroll_e = false; + $($(e.target).parentsUntil("body").addBack().get().reverse()) + .filter(function () { + return (/^auto|scroll$/).test($(this).css("overflow")) && + (this.scrollHeight > this.offsetHeight || this.scrollWidth > this.offsetWidth); + }) + .each(function () { + var t = $(this), o = t.offset(); + if(this.scrollHeight > this.offsetHeight) { + if(o.top + t.height() - e.pageY < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } + if(e.pageY - o.top < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } + } + if(this.scrollWidth > this.offsetWidth) { + if(o.left + t.width() - e.pageX < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } + if(e.pageX - o.left < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } + } + if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { + vakata_dnd.scroll_e = $(this); + return false; + } + }); + + if(!vakata_dnd.scroll_e) { + d = $(document); w = $(window); + dh = d.height(); wh = w.height(); + dw = d.width(); ww = w.width(); + dt = d.scrollTop(); dl = d.scrollLeft(); + if(dh > wh && e.pageY - dt < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = -1; } + if(dh > wh && wh - (e.pageY - dt) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_t = 1; } + if(dw > ww && e.pageX - dl < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = -1; } + if(dw > ww && ww - (e.pageX - dl) < $.vakata.dnd.settings.scroll_proximity) { vakata_dnd.scroll_l = 1; } + if(vakata_dnd.scroll_t || vakata_dnd.scroll_l) { + vakata_dnd.scroll_e = d; + } + } + if(vakata_dnd.scroll_e) { $.vakata.dnd._scroll(true); } + + if(vakata_dnd.helper) { + ht = parseInt(e.pageY + $.vakata.dnd.settings.helper_top, 10); + hl = parseInt(e.pageX + $.vakata.dnd.settings.helper_left, 10); + if(dh && ht + 25 > dh) { ht = dh - 50; } + if(dw && hl + vakata_dnd.helper_w > dw) { hl = dw - (vakata_dnd.helper_w + 2); } + vakata_dnd.helper.css({ + left : hl + "px", + top : ht + "px" + }); + } + /** + * triggered on the document when a drag is in progress + * @event + * @plugin dnd + * @name dnd_move.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused this to trigger (most likely mousemove) + */ + $.vakata.dnd._trigger("move", e); + return false; + }, + stop : function (e) { + if(e.type === "touchend" && e.originalEvent && e.originalEvent.changedTouches && e.originalEvent.changedTouches[0]) { + e.pageX = e.originalEvent.changedTouches[0].pageX; + e.pageY = e.originalEvent.changedTouches[0].pageY; + e.target = document.elementFromPoint(e.originalEvent.changedTouches[0].pageX - window.pageXOffset, e.originalEvent.changedTouches[0].pageY - window.pageYOffset); + } + if(vakata_dnd.is_drag) { + /** + * triggered on the document when a drag stops (the dragged element is dropped) + * @event + * @plugin dnd + * @name dnd_stop.vakata + * @param {Mixed} data any data supplied with the call to $.vakata.dnd.start + * @param {DOM} element the DOM element being dragged + * @param {jQuery} helper the helper shown next to the mouse + * @param {Object} event the event that caused the stop + */ + if (e.target !== vakata_dnd.target) { + $(vakata_dnd.target).off('click.vakata'); + } + $.vakata.dnd._trigger("stop", e); + } + else { + if(e.type === "touchend" && e.target === vakata_dnd.target) { + var to = setTimeout(function () { $(e.target).click(); }, 100); + $(e.target).one('click', function() { if(to) { clearTimeout(to); } }); + } + } + $.vakata.dnd._clean(); + return false; + } + }; + }($)); + + // include the dnd plugin by default + // $.jstree.defaults.plugins.push("dnd"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.js new file mode 100644 index 0000000000..a867704590 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.js @@ -0,0 +1,4810 @@ +/*! + * jsTree {{VERSION}} + * http://jstree.com/ + * + * Copyright (c) 2014 Ivan Bozhanov (http://vakata.com) + * + * Licensed same as jquery - under the terms of the MIT License + * http://www.opensource.org/licenses/mit-license.php + */ +/*! + * if using jslint please allow for the jQuery global and use following options: + * jslint: loopfunc: true, browser: true, ass: true, bitwise: true, continue: true, nomen: true, plusplus: true, regexp: true, unparam: true, todo: true, white: true + */ +/*jshint -W083 */ +/*globals jQuery, define, module, exports, require, window, document, postMessage */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define(['jquery'], factory); + } + else if(typeof module !== 'undefined' && module.exports) { + module.exports = factory(require('jquery')); + } + else { + factory(jQuery); + } +}(function ($, undefined) { + "use strict"; + + // prevent another load? maybe there is a better way? + if($.jstree) { + return; + } + + /** + * ### jsTree core functionality + */ + + // internal variables + var instance_counter = 0, + ccp_node = false, + ccp_mode = false, + ccp_inst = false, + themes_loaded = [], + src = $('script:last').attr('src'), + document = window.document; // local variable is always faster to access then a global + + /** + * holds all jstree related functions and variables, including the actual class and methods to create, access and manipulate instances. + * @name $.jstree + */ + $.jstree = { + /** + * specifies the jstree version in use + * @name $.jstree.version + */ + version : '{{VERSION}}', + /** + * holds all the default options used when creating new instances + * @name $.jstree.defaults + */ + defaults : { + /** + * configure which plugins will be active on an instance. Should be an array of strings, where each element is a plugin name. The default is `[]` + * @name $.jstree.defaults.plugins + */ + plugins : [] + }, + /** + * stores all loaded jstree plugins (used internally) + * @name $.jstree.plugins + */ + plugins : {}, + path : src && src.indexOf('/') !== -1 ? src.replace(/\/[^\/]+$/,'') : '', + idregex : /[\\:&!^|()\[\]<>@*'+~#";.,=\- \/${}%?`]/g, + root : '#' + }; + + /** + * creates a jstree instance + * @name $.jstree.create(el [, options]) + * @param {DOMElement|jQuery|String} el the element to create the instance on, can be jQuery extended or a selector + * @param {Object} options options for this instance (extends `$.jstree.defaults`) + * @return {jsTree} the new instance + */ + $.jstree.create = function (el, options) { + var tmp = new $.jstree.core(++instance_counter), + opt = options; + options = $.extend(true, {}, $.jstree.defaults, options); + if(opt && opt.plugins) { + options.plugins = opt.plugins; + } + $.each(options.plugins, function (i, k) { + if(i !== 'core') { + tmp = tmp.plugin(k, options[k]); + } + }); + $(el).data('jstree', tmp); + tmp.init(el, options); + return tmp; + }; + /** + * remove all traces of jstree from the DOM and destroy all instances + * @name $.jstree.destroy() + */ + $.jstree.destroy = function () { + $('.jstree:jstree').jstree('destroy'); + $(document).off('.jstree'); + }; + /** + * the jstree class constructor, used only internally + * @private + * @name $.jstree.core(id) + * @param {Number} id this instance's index + */ + $.jstree.core = function (id) { + this._id = id; + this._cnt = 0; + this._wrk = null; + this._data = { + core : { + themes : { + name : false, + dots : false, + icons : false, + ellipsis : false + }, + selected : [], + last_error : {}, + working : false, + worker_queue : [], + focused : null + } + }; + }; + /** + * get a reference to an existing instance + * + * __Examples__ + * + * // provided a container with an ID of "tree", and a nested node with an ID of "branch" + * // all of there will return the same instance + * $.jstree.reference('tree'); + * $.jstree.reference('#tree'); + * $.jstree.reference($('#tree')); + * $.jstree.reference(document.getElementByID('tree')); + * $.jstree.reference('branch'); + * $.jstree.reference('#branch'); + * $.jstree.reference($('#branch')); + * $.jstree.reference(document.getElementByID('branch')); + * + * @name $.jstree.reference(needle) + * @param {DOMElement|jQuery|String} needle + * @return {jsTree|null} the instance or `null` if not found + */ + $.jstree.reference = function (needle) { + var tmp = null, + obj = null; + if(needle && needle.id && (!needle.tagName || !needle.nodeType)) { needle = needle.id; } + + if(!obj || !obj.length) { + try { obj = $(needle); } catch (ignore) { } + } + if(!obj || !obj.length) { + try { obj = $('#' + needle.replace($.jstree.idregex,'\\$&')); } catch (ignore) { } + } + if(obj && obj.length && (obj = obj.closest('.jstree')).length && (obj = obj.data('jstree'))) { + tmp = obj; + } + else { + $('.jstree').each(function () { + var inst = $(this).data('jstree'); + if(inst && inst._model.data[needle]) { + tmp = inst; + return false; + } + }); + } + return tmp; + }; + /** + * Create an instance, get an instance or invoke a command on a instance. + * + * If there is no instance associated with the current node a new one is created and `arg` is used to extend `$.jstree.defaults` for this new instance. There would be no return value (chaining is not broken). + * + * If there is an existing instance and `arg` is a string the command specified by `arg` is executed on the instance, with any additional arguments passed to the function. If the function returns a value it will be returned (chaining could break depending on function). + * + * If there is an existing instance and `arg` is not a string the instance itself is returned (similar to `$.jstree.reference`). + * + * In any other case - nothing is returned and chaining is not broken. + * + * __Examples__ + * + * $('#tree1').jstree(); // creates an instance + * $('#tree2').jstree({ plugins : [] }); // create an instance with some options + * $('#tree1').jstree('open_node', '#branch_1'); // call a method on an existing instance, passing additional arguments + * $('#tree2').jstree(); // get an existing instance (or create an instance) + * $('#tree2').jstree(true); // get an existing instance (will not create new instance) + * $('#branch_1').jstree().select_node('#branch_1'); // get an instance (using a nested element and call a method) + * + * @name $().jstree([arg]) + * @param {String|Object} arg + * @return {Mixed} + */ + $.fn.jstree = function (arg) { + // check for string argument + var is_method = (typeof arg === 'string'), + args = Array.prototype.slice.call(arguments, 1), + result = null; + if(arg === true && !this.length) { return false; } + this.each(function () { + // get the instance (if there is one) and method (if it exists) + var instance = $.jstree.reference(this), + method = is_method && instance ? instance[arg] : null; + // if calling a method, and method is available - execute on the instance + result = is_method && method ? + method.apply(instance, args) : + null; + // if there is no instance and no method is being called - create one + if(!instance && !is_method && (arg === undefined || $.isPlainObject(arg))) { + $.jstree.create(this, arg); + } + // if there is an instance and no method is called - return the instance + if( (instance && !is_method) || arg === true ) { + result = instance || false; + } + // if there was a method call which returned a result - break and return the value + if(result !== null && result !== undefined) { + return false; + } + }); + // if there was a method call with a valid return value - return that, otherwise continue the chain + return result !== null && result !== undefined ? + result : this; + }; + /** + * used to find elements containing an instance + * + * __Examples__ + * + * $('div:jstree').each(function () { + * $(this).jstree('destroy'); + * }); + * + * @name $(':jstree') + * @return {jQuery} + */ + $.expr.pseudos.jstree = $.expr.createPseudo(function(search) { + return function(a) { + return $(a).hasClass('jstree') && + $(a).data('jstree') !== undefined; + }; + }); + + /** + * stores all defaults for the core + * @name $.jstree.defaults.core + */ + $.jstree.defaults.core = { + /** + * data configuration + * + * If left as `false` the HTML inside the jstree container element is used to populate the tree (that should be an unordered list with list items). + * + * You can also pass in a HTML string or a JSON array here. + * + * It is possible to pass in a standard jQuery-like AJAX config and jstree will automatically determine if the response is JSON or HTML and use that to populate the tree. + * In addition to the standard jQuery ajax options here you can suppy functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node is being loaded, the return value of those functions will be used. + * + * The last option is to specify a function, that function will receive the node being loaded as argument and a second param which is a function which should be called with the result. + * + * __Examples__ + * + * // AJAX + * $('#tree').jstree({ + * 'core' : { + * 'data' : { + * 'url' : '/get/children/', + * 'data' : function (node) { + * return { 'id' : node.id }; + * } + * } + * }); + * + * // direct data + * $('#tree').jstree({ + * 'core' : { + * 'data' : [ + * 'Simple root node', + * { + * 'id' : 'node_2', + * 'text' : 'Root node with options', + * 'state' : { 'opened' : true, 'selected' : true }, + * 'children' : [ { 'text' : 'Child 1' }, 'Child 2'] + * } + * ] + * } + * }); + * + * // function + * $('#tree').jstree({ + * 'core' : { + * 'data' : function (obj, callback) { + * callback.call(this, ['Root 1', 'Root 2']); + * } + * }); + * + * @name $.jstree.defaults.core.data + */ + data : false, + /** + * configure the various strings used throughout the tree + * + * You can use an object where the key is the string you need to replace and the value is your replacement. + * Another option is to specify a function which will be called with an argument of the needed string and should return the replacement. + * If left as `false` no replacement is made. + * + * __Examples__ + * + * $('#tree').jstree({ + * 'core' : { + * 'strings' : { + * 'Loading ...' : 'Please wait ...' + * } + * } + * }); + * + * @name $.jstree.defaults.core.strings + */ + strings : false, + /** + * determines what happens when a user tries to modify the structure of the tree + * If left as `false` all operations like create, rename, delete, move or copy are prevented. + * You can set this to `true` to allow all interactions or use a function to have better control. + * + * __Examples__ + * + * $('#tree').jstree({ + * 'core' : { + * 'check_callback' : function (operation, node, node_parent, node_position, more) { + * // operation can be 'create_node', 'rename_node', 'delete_node', 'move_node' or 'copy_node' + * // in case of 'rename_node' node_position is filled with the new node name + * return operation === 'rename_node' ? true : false; + * } + * } + * }); + * + * @name $.jstree.defaults.core.check_callback + */ + check_callback : false, + /** + * a callback called with a single object parameter in the instance's scope when something goes wrong (operation prevented, ajax failed, etc) + * @name $.jstree.defaults.core.error + */ + error : $.noop, + /** + * the open / close animation duration in milliseconds - set this to `false` to disable the animation (default is `200`) + * @name $.jstree.defaults.core.animation + */ + animation : 200, + /** + * a boolean indicating if multiple nodes can be selected + * @name $.jstree.defaults.core.multiple + */ + multiple : true, + /** + * theme configuration object + * @name $.jstree.defaults.core.themes + */ + themes : { + /** + * the name of the theme to use (if left as `false` the default theme is used) + * @name $.jstree.defaults.core.themes.name + */ + name : false, + /** + * the URL of the theme's CSS file, leave this as `false` if you have manually included the theme CSS (recommended). You can set this to `true` too which will try to autoload the theme. + * @name $.jstree.defaults.core.themes.url + */ + url : false, + /** + * the location of all jstree themes - only used if `url` is set to `true` + * @name $.jstree.defaults.core.themes.dir + */ + dir : false, + /** + * a boolean indicating if connecting dots are shown + * @name $.jstree.defaults.core.themes.dots + */ + dots : true, + /** + * a boolean indicating if node icons are shown + * @name $.jstree.defaults.core.themes.icons + */ + icons : true, + /** + * a boolean indicating if node ellipsis should be shown - this only works with a fixed with on the container + * @name $.jstree.defaults.core.themes.ellipsis + */ + ellipsis : false, + /** + * a boolean indicating if the tree background is striped + * @name $.jstree.defaults.core.themes.stripes + */ + stripes : false, + /** + * a string (or boolean `false`) specifying the theme variant to use (if the theme supports variants) + * @name $.jstree.defaults.core.themes.variant + */ + variant : false, + /** + * a boolean specifying if a reponsive version of the theme should kick in on smaller screens (if the theme supports it). Defaults to `false`. + * @name $.jstree.defaults.core.themes.responsive + */ + responsive : false + }, + /** + * if left as `true` all parents of all selected nodes will be opened once the tree loads (so that all selected nodes are visible to the user) + * @name $.jstree.defaults.core.expand_selected_onload + */ + expand_selected_onload : true, + /** + * if left as `true` web workers will be used to parse incoming JSON data where possible, so that the UI will not be blocked by large requests. Workers are however about 30% slower. Defaults to `true` + * @name $.jstree.defaults.core.worker + */ + worker : true, + /** + * Force node text to plain text (and escape HTML). Defaults to `false` + * @name $.jstree.defaults.core.force_text + */ + force_text : false, + /** + * Should the node should be toggled if the text is double clicked . Defaults to `true` + * @name $.jstree.defaults.core.dblclick_toggle + */ + dblclick_toggle : true + }; + $.jstree.core.prototype = { + /** + * used to decorate an instance with a plugin. Used internally. + * @private + * @name plugin(deco [, opts]) + * @param {String} deco the plugin to decorate with + * @param {Object} opts options for the plugin + * @return {jsTree} + */ + plugin : function (deco, opts) { + var Child = $.jstree.plugins[deco]; + if(Child) { + this._data[deco] = {}; + Child.prototype = this; + return new Child(opts, this); + } + return this; + }, + /** + * initialize the instance. Used internally. + * @private + * @name init(el, optons) + * @param {DOMElement|jQuery|String} el the element we are transforming + * @param {Object} options options for this instance + * @trigger init.jstree, loading.jstree, loaded.jstree, ready.jstree, changed.jstree + */ + init : function (el, options) { + this._model = { + data : {}, + changed : [], + force_full_redraw : false, + redraw_timeout : false, + default_state : { + loaded : true, + opened : false, + selected : false, + disabled : false + } + }; + this._model.data[$.jstree.root] = { + id : $.jstree.root, + parent : null, + parents : [], + children : [], + children_d : [], + state : { loaded : false } + }; + + this.element = $(el).addClass('jstree jstree-' + this._id); + this.settings = options; + + this._data.core.ready = false; + this._data.core.loaded = false; + this._data.core.rtl = (this.element.css("direction") === "rtl"); + this.element[this._data.core.rtl ? 'addClass' : 'removeClass']("jstree-rtl"); + this.element.attr('role','tree'); + if(this.settings.core.multiple) { + this.element.attr('aria-multiselectable', true); + } + if(!this.element.attr('tabindex')) { + this.element.attr('tabindex','0'); + } + + this.bind(); + /** + * triggered after all events are bound + * @event + * @name init.jstree + */ + this.trigger("init"); + + this._data.core.original_container_html = this.element.find(" > ul > li").clone(true); + this._data.core.original_container_html + .find("li").addBack() + .contents().filter(function() { + return this.nodeType === 3 && (!this.nodeValue || /^\s+$/.test(this.nodeValue)); + }) + .remove(); + this.element.html("<"+"ul class='jstree-container-ul jstree-children' role='group'><"+"li id='j"+this._id+"_loading' class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='tree-item'><"+"a class='jstree-anchor' href='#'>" + this.get_string("Loading ...") + "
        • "); + this.element.attr('aria-activedescendant','j' + this._id + '_loading'); + this._data.core.li_height = this.get_container_ul().children("li").first().height() || 24; + this._data.core.node = this._create_prototype_node(); + /** + * triggered after the loading text is shown and before loading starts + * @event + * @name loading.jstree + */ + this.trigger("loading"); + this.load_node($.jstree.root); + }, + /** + * destroy an instance + * @name destroy() + * @param {Boolean} keep_html if not set to `true` the container will be emptied, otherwise the current DOM elements will be kept intact + */ + destroy : function (keep_html) { + if(this._wrk) { + try { + window.URL.revokeObjectURL(this._wrk); + this._wrk = null; + } + catch (ignore) { } + } + if(!keep_html) { this.element.empty(); } + this.teardown(); + }, + /** + * Create prototype node + */ + _create_prototype_node : function () { + var _node = document.createElement('LI'), _temp1, _temp2; + _node.setAttribute('role', 'treeitem'); + _temp1 = document.createElement('I'); + _temp1.className = 'jstree-icon jstree-ocl'; + _temp1.setAttribute('role', 'presentation'); + _node.appendChild(_temp1); + _temp1 = document.createElement('A'); + _temp1.className = 'jstree-anchor'; + _temp1.setAttribute('href','#'); + _temp1.setAttribute('tabindex','-1'); + _temp2 = document.createElement('I'); + _temp2.className = 'jstree-icon jstree-themeicon'; + _temp2.setAttribute('role', 'presentation'); + _temp1.appendChild(_temp2); + _node.appendChild(_temp1); + _temp1 = _temp2 = null; + + return _node; + }, + /** + * part of the destroying of an instance. Used internally. + * @private + * @name teardown() + */ + teardown : function () { + this.unbind(); + this.element + .removeClass('jstree') + .removeData('jstree') + .find("[class^='jstree']") + .addBack() + .attr("class", function () { return this.className.replace(/jstree[^ ]*|$/ig,''); }); + this.element = null; + }, + /** + * bind all events. Used internally. + * @private + * @name bind() + */ + bind : function () { + var word = '', + tout = null, + was_click = 0; + this.element + .on("dblclick.jstree", function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(document.selection && document.selection.empty) { + document.selection.empty(); + } + else { + if(window.getSelection) { + var sel = window.getSelection(); + try { + sel.removeAllRanges(); + sel.collapse(); + } catch (ignore) { } + } + } + }) + .on("mousedown.jstree", $.proxy(function (e) { + if(e.target === this.element[0]) { + e.preventDefault(); // prevent losing focus when clicking scroll arrows (FF, Chrome) + was_click = +(new Date()); // ie does not allow to prevent losing focus + } + }, this)) + .on("mousedown.jstree", ".jstree-ocl", function (e) { + e.preventDefault(); // prevent any node inside from losing focus when clicking the open/close icon + }) + .on("click.jstree", ".jstree-ocl", $.proxy(function (e) { + this.toggle_node(e.target); + }, this)) + .on("dblclick.jstree", ".jstree-anchor", $.proxy(function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(this.settings.core.dblclick_toggle) { + this.toggle_node(e.target); + } + }, this)) + .on("click.jstree", ".jstree-anchor", $.proxy(function (e) { + e.preventDefault(); + if(e.currentTarget !== document.activeElement) { $(e.currentTarget).focus(); } + this.activate_node(e.currentTarget, e); + }, this)) + .on('keydown.jstree', '.jstree-anchor', $.proxy(function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(e.which !== 32 && e.which !== 13 && (e.shiftKey || e.ctrlKey || e.altKey || e.metaKey)) { return true; } + var o = null; + if(this._data.core.rtl) { + if(e.which === 37) { e.which = 39; } + else if(e.which === 39) { e.which = 37; } + } + switch(e.which) { + case 32: // aria defines space only with Ctrl + if(e.ctrlKey) { + e.type = "click"; + $(e.currentTarget).trigger(e); + } + break; + case 13: // enter + e.type = "click"; + $(e.currentTarget).trigger(e); + break; + case 37: // left + e.preventDefault(); + if(this.is_open(e.currentTarget)) { + this.close_node(e.currentTarget); + } + else { + o = this.get_parent(e.currentTarget); + if(o && o.id !== $.jstree.root) { this.get_node(o, true).children('.jstree-anchor').focus(); } + } + break; + case 38: // up + e.preventDefault(); + o = this.get_prev_dom(e.currentTarget); + if(o && o.length) { o.children('.jstree-anchor').focus(); } + break; + case 39: // right + e.preventDefault(); + if(this.is_closed(e.currentTarget)) { + this.open_node(e.currentTarget, function (o) { this.get_node(o, true).children('.jstree-anchor').focus(); }); + } + else if (this.is_open(e.currentTarget)) { + o = this.get_node(e.currentTarget, true).children('.jstree-children')[0]; + if(o) { $(this._firstChild(o)).children('.jstree-anchor').focus(); } + } + break; + case 40: // down + e.preventDefault(); + o = this.get_next_dom(e.currentTarget); + if(o && o.length) { o.children('.jstree-anchor').focus(); } + break; + case 106: // aria defines * on numpad as open_all - not very common + this.open_all(); + break; + case 36: // home + e.preventDefault(); + o = this._firstChild(this.get_container_ul()[0]); + if(o) { $(o).children('.jstree-anchor').filter(':visible').focus(); } + break; + case 35: // end + e.preventDefault(); + this.element.find('.jstree-anchor').filter(':visible').last().focus(); + break; + case 113: // f2 - safe to include - if check_callback is false it will fail + e.preventDefault(); + this.edit(e.currentTarget); + break; + default: + break; + /*! + // delete + case 46: + e.preventDefault(); + o = this.get_node(e.currentTarget); + if(o && o.id && o.id !== $.jstree.root) { + o = this.is_selected(o) ? this.get_selected() : o; + this.delete_node(o); + } + break; + + */ + } + }, this)) + .on("load_node.jstree", $.proxy(function (e, data) { + if(data.status) { + if(data.node.id === $.jstree.root && !this._data.core.loaded) { + this._data.core.loaded = true; + if(this._firstChild(this.get_container_ul()[0])) { + this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); + } + /** + * triggered after the root node is loaded for the first time + * @event + * @name loaded.jstree + */ + this.trigger("loaded"); + } + if(!this._data.core.ready) { + setTimeout($.proxy(function() { + if(this.element && !this.get_container_ul().find('.jstree-loading').length) { + this._data.core.ready = true; + if(this._data.core.selected.length) { + if(this.settings.core.expand_selected_onload) { + var tmp = [], i, j; + for(i = 0, j = this._data.core.selected.length; i < j; i++) { + tmp = tmp.concat(this._model.data[this._data.core.selected[i]].parents); + } + tmp = $.vakata.array_unique(tmp); + for(i = 0, j = tmp.length; i < j; i++) { + this.open_node(tmp[i], false, 0); + } + } + this.trigger('changed', { 'action' : 'ready', 'selected' : this._data.core.selected }); + } + /** + * triggered after all nodes are finished loading + * @event + * @name ready.jstree + */ + this.trigger("ready"); + } + }, this), 0); + } + } + }, this)) + // quick searching when the tree is focused + .on('keypress.jstree', $.proxy(function (e) { + if(e.target.tagName && e.target.tagName.toLowerCase() === "input") { return true; } + if(tout) { clearTimeout(tout); } + tout = setTimeout(function () { + word = ''; + }, 500); + + var chr = String.fromCharCode(e.which).toLowerCase(), + col = this.element.find('.jstree-anchor').filter(':visible'), + ind = col.index(document.activeElement) || 0, + end = false; + word += chr; + + // match for whole word from current node down (including the current node) + if(word.length > 1) { + col.slice(ind).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().indexOf(word) === 0) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + + // match for whole word from the beginning of the tree + col.slice(0, ind).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().indexOf(word) === 0) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + } + // list nodes that start with that letter (only if word consists of a single char) + if(new RegExp('^' + chr.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&') + '+$').test(word)) { + // search for the next node starting with that letter + col.slice(ind + 1).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().charAt(0) === chr) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + + // search from the beginning + col.slice(0, ind + 1).each($.proxy(function (i, v) { + if($(v).text().toLowerCase().charAt(0) === chr) { + $(v).focus(); + end = true; + return false; + } + }, this)); + if(end) { return; } + } + }, this)) + // THEME RELATED + .on("init.jstree", $.proxy(function () { + var s = this.settings.core.themes; + this._data.core.themes.dots = s.dots; + this._data.core.themes.stripes = s.stripes; + this._data.core.themes.icons = s.icons; + this._data.core.themes.ellipsis = s.ellipsis; + this.set_theme(s.name || "default", s.url); + this.set_theme_variant(s.variant); + }, this)) + .on("loading.jstree", $.proxy(function () { + this[ this._data.core.themes.dots ? "show_dots" : "hide_dots" ](); + this[ this._data.core.themes.icons ? "show_icons" : "hide_icons" ](); + this[ this._data.core.themes.stripes ? "show_stripes" : "hide_stripes" ](); + this[ this._data.core.themes.ellipsis ? "show_ellipsis" : "hide_ellipsis" ](); + }, this)) + .on('blur.jstree', '.jstree-anchor', $.proxy(function (e) { + this._data.core.focused = null; + $(e.currentTarget).filter('.jstree-hovered').mouseleave(); + this.element.attr('tabindex', '0'); + }, this)) + .on('focus.jstree', '.jstree-anchor', $.proxy(function (e) { + var tmp = this.get_node(e.currentTarget); + if(tmp && tmp.id) { + this._data.core.focused = tmp.id; + } + this.element.find('.jstree-hovered').not(e.currentTarget).mouseleave(); + $(e.currentTarget).mouseenter(); + this.element.attr('tabindex', '-1'); + }, this)) + .on('focus.jstree', $.proxy(function () { + if(+(new Date()) - was_click > 500 && !this._data.core.focused) { + was_click = 0; + var act = this.get_node(this.element.attr('aria-activedescendant'), true); + if(act) { + act.find('> .jstree-anchor').focus(); + } + } + }, this)) + .on('mouseenter.jstree', '.jstree-anchor', $.proxy(function (e) { + this.hover_node(e.currentTarget); + }, this)) + .on('mouseleave.jstree', '.jstree-anchor', $.proxy(function (e) { + this.dehover_node(e.currentTarget); + }, this)); + }, + /** + * part of the destroying of an instance. Used internally. + * @private + * @name unbind() + */ + unbind : function () { + this.element.off('.jstree'); + $(document).off('.jstree-' + this._id); + }, + /** + * trigger an event. Used internally. + * @private + * @name trigger(ev [, data]) + * @param {String} ev the name of the event to trigger + * @param {Object} data additional data to pass with the event + */ + trigger : function (ev, data) { + if(!data) { + data = {}; + } + data.instance = this; + this.element.triggerHandler(ev.replace('.jstree','') + '.jstree', data); + }, + /** + * returns the jQuery extended instance container + * @name get_container() + * @return {jQuery} + */ + get_container : function () { + return this.element; + }, + /** + * returns the jQuery extended main UL node inside the instance container. Used internally. + * @private + * @name get_container_ul() + * @return {jQuery} + */ + get_container_ul : function () { + return this.element.children(".jstree-children").first(); + }, + /** + * gets string replacements (localization). Used internally. + * @private + * @name get_string(key) + * @param {String} key + * @return {String} + */ + get_string : function (key) { + var a = this.settings.core.strings; + if($.isFunction(a)) { return a.call(this, key); } + if(a && a[key]) { return a[key]; } + return key; + }, + /** + * gets the first child of a DOM node. Used internally. + * @private + * @name _firstChild(dom) + * @param {DOMElement} dom + * @return {DOMElement} + */ + _firstChild : function (dom) { + dom = dom ? dom.firstChild : null; + while(dom !== null && dom.nodeType !== 1) { + dom = dom.nextSibling; + } + return dom; + }, + /** + * gets the next sibling of a DOM node. Used internally. + * @private + * @name _nextSibling(dom) + * @param {DOMElement} dom + * @return {DOMElement} + */ + _nextSibling : function (dom) { + dom = dom ? dom.nextSibling : null; + while(dom !== null && dom.nodeType !== 1) { + dom = dom.nextSibling; + } + return dom; + }, + /** + * gets the previous sibling of a DOM node. Used internally. + * @private + * @name _previousSibling(dom) + * @param {DOMElement} dom + * @return {DOMElement} + */ + _previousSibling : function (dom) { + dom = dom ? dom.previousSibling : null; + while(dom !== null && dom.nodeType !== 1) { + dom = dom.previousSibling; + } + return dom; + }, + /** + * get the JSON representation of a node (or the actual jQuery extended DOM node) by using any input (child DOM element, ID string, selector, etc) + * @name get_node(obj [, as_dom]) + * @param {mixed} obj + * @param {Boolean} as_dom + * @return {Object|jQuery} + */ + get_node : function (obj, as_dom) { + if(obj && obj.id) { + obj = obj.id; + } + var dom; + try { + if(this._model.data[obj]) { + obj = this._model.data[obj]; + } + else if(typeof obj === "string" && this._model.data[obj.replace(/^#/, '')]) { + obj = this._model.data[obj.replace(/^#/, '')]; + } + else if(typeof obj === "string" && (dom = $('#' + obj.replace($.jstree.idregex,'\\$&'), this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { + obj = this._model.data[dom.closest('.jstree-node').attr('id')]; + } + else if((dom = $(obj, this.element)).length && this._model.data[dom.closest('.jstree-node').attr('id')]) { + obj = this._model.data[dom.closest('.jstree-node').attr('id')]; + } + else if((dom = $(obj, this.element)).length && dom.hasClass('jstree')) { + obj = this._model.data[$.jstree.root]; + } + else { + return false; + } + + if(as_dom) { + obj = obj.id === $.jstree.root ? this.element : $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); + } + return obj; + } catch (ex) { return false; } + }, + /** + * get the path to a node, either consisting of node texts, or of node IDs, optionally glued together (otherwise an array) + * @name get_path(obj [, glue, ids]) + * @param {mixed} obj the node + * @param {String} glue if you want the path as a string - pass the glue here (for example '/'), if a falsy value is supplied here, an array is returned + * @param {Boolean} ids if set to true build the path using ID, otherwise node text is used + * @return {mixed} + */ + get_path : function (obj, glue, ids) { + obj = obj.parents ? obj : this.get_node(obj); + if(!obj || obj.id === $.jstree.root || !obj.parents) { + return false; + } + var i, j, p = []; + p.push(ids ? obj.id : obj.text); + for(i = 0, j = obj.parents.length; i < j; i++) { + p.push(ids ? obj.parents[i] : this.get_text(obj.parents[i])); + } + p = p.reverse().slice(1); + return glue ? p.join(glue) : p; + }, + /** + * get the next visible node that is below the `obj` node. If `strict` is set to `true` only sibling nodes are returned. + * @name get_next_dom(obj [, strict]) + * @param {mixed} obj + * @param {Boolean} strict + * @return {jQuery} + */ + get_next_dom : function (obj, strict) { + var tmp; + obj = this.get_node(obj, true); + if(obj[0] === this.element[0]) { + tmp = this._firstChild(this.get_container_ul()[0]); + while (tmp && tmp.offsetHeight === 0) { + tmp = this._nextSibling(tmp); + } + return tmp ? $(tmp) : false; + } + if(!obj || !obj.length) { + return false; + } + if(strict) { + tmp = obj[0]; + do { + tmp = this._nextSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + return tmp ? $(tmp) : false; + } + if(obj.hasClass("jstree-open")) { + tmp = this._firstChild(obj.children('.jstree-children')[0]); + while (tmp && tmp.offsetHeight === 0) { + tmp = this._nextSibling(tmp); + } + if(tmp !== null) { + return $(tmp); + } + } + tmp = obj[0]; + do { + tmp = this._nextSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + if(tmp !== null) { + return $(tmp); + } + return obj.parentsUntil(".jstree",".jstree-node").nextAll(".jstree-node:visible").first(); + }, + /** + * get the previous visible node that is above the `obj` node. If `strict` is set to `true` only sibling nodes are returned. + * @name get_prev_dom(obj [, strict]) + * @param {mixed} obj + * @param {Boolean} strict + * @return {jQuery} + */ + get_prev_dom : function (obj, strict) { + var tmp; + obj = this.get_node(obj, true); + if(obj[0] === this.element[0]) { + tmp = this.get_container_ul()[0].lastChild; + while (tmp && tmp.offsetHeight === 0) { + tmp = this._previousSibling(tmp); + } + return tmp ? $(tmp) : false; + } + if(!obj || !obj.length) { + return false; + } + if(strict) { + tmp = obj[0]; + do { + tmp = this._previousSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + return tmp ? $(tmp) : false; + } + tmp = obj[0]; + do { + tmp = this._previousSibling(tmp); + } while (tmp && tmp.offsetHeight === 0); + if(tmp !== null) { + obj = $(tmp); + while(obj.hasClass("jstree-open")) { + obj = obj.children(".jstree-children").first().children(".jstree-node:visible:last"); + } + return obj; + } + tmp = obj[0].parentNode.parentNode; + return tmp && tmp.className && tmp.className.indexOf('jstree-node') !== -1 ? $(tmp) : false; + }, + /** + * get the parent ID of a node + * @name get_parent(obj) + * @param {mixed} obj + * @return {String} + */ + get_parent : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + return obj.parent; + }, + /** + * get a jQuery collection of all the children of a node (node must be rendered) + * @name get_children_dom(obj) + * @param {mixed} obj + * @return {jQuery} + */ + get_children_dom : function (obj) { + obj = this.get_node(obj, true); + if(obj[0] === this.element[0]) { + return this.get_container_ul().children(".jstree-node"); + } + if(!obj || !obj.length) { + return false; + } + return obj.children(".jstree-children").children(".jstree-node"); + }, + /** + * checks if a node has children + * @name is_parent(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_parent : function (obj) { + obj = this.get_node(obj); + return obj && (obj.state.loaded === false || obj.children.length > 0); + }, + /** + * checks if a node is loaded (its children are available) + * @name is_loaded(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_loaded : function (obj) { + obj = this.get_node(obj); + return obj && obj.state.loaded; + }, + /** + * check if a node is currently loading (fetching children) + * @name is_loading(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_loading : function (obj) { + obj = this.get_node(obj); + return obj && obj.state && obj.state.loading; + }, + /** + * check if a node is opened + * @name is_open(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_open : function (obj) { + obj = this.get_node(obj); + return obj && obj.state.opened; + }, + /** + * check if a node is in a closed state + * @name is_closed(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_closed : function (obj) { + obj = this.get_node(obj); + return obj && this.is_parent(obj) && !obj.state.opened; + }, + /** + * check if a node has no children + * @name is_leaf(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_leaf : function (obj) { + return !this.is_parent(obj); + }, + /** + * loads a node (fetches its children using the `core.data` setting). Multiple nodes can be passed to by using an array. + * @name load_node(obj [, callback]) + * @param {mixed} obj + * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives two arguments - the node and a boolean status + * @return {Boolean} + * @trigger load_node.jstree + */ + load_node : function (obj, callback) { + var k, l, i, j, c; + if($.isArray(obj)) { + this._load_nodes(obj.slice(), callback); + return true; + } + obj = this.get_node(obj); + if(!obj) { + if(callback) { callback.call(this, obj, false); } + return false; + } + // if(obj.state.loading) { } // the node is already loading - just wait for it to load and invoke callback? but if called implicitly it should be loaded again? + if(obj.state.loaded) { + obj.state.loaded = false; + for(i = 0, j = obj.parents.length; i < j; i++) { + this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { + return $.inArray(v, obj.children_d) === -1; + }); + } + for(k = 0, l = obj.children_d.length; k < l; k++) { + if(this._model.data[obj.children_d[k]].state.selected) { + c = true; + } + delete this._model.data[obj.children_d[k]]; + } + if (c) { + this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { + return $.inArray(v, obj.children_d) === -1; + }); + } + obj.children = []; + obj.children_d = []; + if(c) { + this.trigger('changed', { 'action' : 'load_node', 'node' : obj, 'selected' : this._data.core.selected }); + } + } + obj.state.failed = false; + obj.state.loading = true; + this.get_node(obj, true).addClass("jstree-loading").attr('aria-busy',true); + this._load_node(obj, $.proxy(function (status) { + obj = this._model.data[obj.id]; + obj.state.loading = false; + obj.state.loaded = status; + obj.state.failed = !obj.state.loaded; + var dom = this.get_node(obj, true), i = 0, j = 0, m = this._model.data, has_children = false; + for(i = 0, j = obj.children.length; i < j; i++) { + if(m[obj.children[i]] && !m[obj.children[i]].state.hidden) { + has_children = true; + break; + } + } + if(obj.state.loaded && dom && dom.length) { + dom.removeClass('jstree-closed jstree-open jstree-leaf'); + if (!has_children) { + dom.addClass('jstree-leaf'); + } + else { + if (obj.id !== '#') { + dom.addClass(obj.state.opened ? 'jstree-open' : 'jstree-closed'); + } + } + } + dom.removeClass("jstree-loading").attr('aria-busy',false); + /** + * triggered after a node is loaded + * @event + * @name load_node.jstree + * @param {Object} node the node that was loading + * @param {Boolean} status was the node loaded successfully + */ + this.trigger('load_node', { "node" : obj, "status" : status }); + if(callback) { + callback.call(this, obj, status); + } + }, this)); + return true; + }, + /** + * load an array of nodes (will also load unavailable nodes as soon as the appear in the structure). Used internally. + * @private + * @name _load_nodes(nodes [, callback]) + * @param {array} nodes + * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - the array passed to _load_nodes + */ + _load_nodes : function (nodes, callback, is_callback, force_reload) { + var r = true, + c = function () { this._load_nodes(nodes, callback, true); }, + m = this._model.data, i, j, tmp = []; + for(i = 0, j = nodes.length; i < j; i++) { + if(m[nodes[i]] && ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || (!is_callback && force_reload) )) { + if(!this.is_loading(nodes[i])) { + this.load_node(nodes[i], c); + } + r = false; + } + } + if(r) { + for(i = 0, j = nodes.length; i < j; i++) { + if(m[nodes[i]] && m[nodes[i]].state.loaded) { + tmp.push(nodes[i]); + } + } + if(callback && !callback.done) { + callback.call(this, tmp); + callback.done = true; + } + } + }, + /** + * loads all unloaded nodes + * @name load_all([obj, callback]) + * @param {mixed} obj the node to load recursively, omit to load all nodes in the tree + * @param {function} callback a function to be executed once loading all the nodes is complete, + * @trigger load_all.jstree + */ + load_all : function (obj, callback) { + if(!obj) { obj = $.jstree.root; } + obj = this.get_node(obj); + if(!obj) { return false; } + var to_load = [], + m = this._model.data, + c = m[obj.id].children_d, + i, j; + if(obj.state && !obj.state.loaded) { + to_load.push(obj.id); + } + for(i = 0, j = c.length; i < j; i++) { + if(m[c[i]] && m[c[i]].state && !m[c[i]].state.loaded) { + to_load.push(c[i]); + } + } + if(to_load.length) { + this._load_nodes(to_load, function () { + this.load_all(obj, callback); + }); + } + else { + /** + * triggered after a load_all call completes + * @event + * @name load_all.jstree + * @param {Object} node the recursively loaded node + */ + if(callback) { callback.call(this, obj); } + this.trigger('load_all', { "node" : obj }); + } + }, + /** + * handles the actual loading of a node. Used only internally. + * @private + * @name _load_node(obj [, callback]) + * @param {mixed} obj + * @param {function} callback a function to be executed once loading is complete, the function is executed in the instance's scope and receives one argument - a boolean status + * @return {Boolean} + */ + _load_node : function (obj, callback) { + var s = this.settings.core.data, t; + var notTextOrCommentNode = function notTextOrCommentNode () { + return this.nodeType !== 3 && this.nodeType !== 8; + }; + // use original HTML + if(!s) { + if(obj.id === $.jstree.root) { + return this._append_html_data(obj, this._data.core.original_container_html.clone(true), function (status) { + callback.call(this, status); + }); + } + else { + return callback.call(this, false); + } + // return callback.call(this, obj.id === $.jstree.root ? this._append_html_data(obj, this._data.core.original_container_html.clone(true)) : false); + } + if($.isFunction(s)) { + return s.call(this, obj, $.proxy(function (d) { + if(d === false) { + callback.call(this, false); + } + else { + this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $($.parseHTML(d)).filter(notTextOrCommentNode) : d, function (status) { + callback.call(this, status); + }); + } + // return d === false ? callback.call(this, false) : callback.call(this, this[typeof d === 'string' ? '_append_html_data' : '_append_json_data'](obj, typeof d === 'string' ? $(d) : d)); + }, this)); + } + if(typeof s === 'object') { + if(s.url) { + s = $.extend(true, {}, s); + if($.isFunction(s.url)) { + s.url = s.url.call(this, obj); + } + if($.isFunction(s.data)) { + s.data = s.data.call(this, obj); + } + return $.ajax(s) + .done($.proxy(function (d,t,x) { + var type = x.getResponseHeader('Content-Type'); + if((type && type.indexOf('json') !== -1) || typeof d === "object") { + return this._append_json_data(obj, d, function (status) { callback.call(this, status); }); + //return callback.call(this, this._append_json_data(obj, d)); + } + if((type && type.indexOf('html') !== -1) || typeof d === "string") { + return this._append_html_data(obj, $($.parseHTML(d)).filter(notTextOrCommentNode), function (status) { callback.call(this, status); }); + // return callback.call(this, this._append_html_data(obj, $(d))); + } + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : x }) }; + this.settings.core.error.call(this, this._data.core.last_error); + return callback.call(this, false); + }, this)) + .fail($.proxy(function (f) { + callback.call(this, false); + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'core', 'id' : 'core_04', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id, 'xhr' : f }) }; + this.settings.core.error.call(this, this._data.core.last_error); + }, this)); + } + t = ($.isArray(s) || $.isPlainObject(s)) ? JSON.parse(JSON.stringify(s)) : s; + if(obj.id === $.jstree.root) { + return this._append_json_data(obj, t, function (status) { + callback.call(this, status); + }); + } + else { + this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_05', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; + this.settings.core.error.call(this, this._data.core.last_error); + return callback.call(this, false); + } + //return callback.call(this, (obj.id === $.jstree.root ? this._append_json_data(obj, t) : false) ); + } + if(typeof s === 'string') { + if(obj.id === $.jstree.root) { + return this._append_html_data(obj, $($.parseHTML(s)).filter(notTextOrCommentNode), function (status) { + callback.call(this, status); + }); + } + else { + this._data.core.last_error = { 'error' : 'nodata', 'plugin' : 'core', 'id' : 'core_06', 'reason' : 'Could not load node', 'data' : JSON.stringify({ 'id' : obj.id }) }; + this.settings.core.error.call(this, this._data.core.last_error); + return callback.call(this, false); + } + //return callback.call(this, (obj.id === $.jstree.root ? this._append_html_data(obj, $(s)) : false) ); + } + return callback.call(this, false); + }, + /** + * adds a node to the list of nodes to redraw. Used only internally. + * @private + * @name _node_changed(obj [, callback]) + * @param {mixed} obj + */ + _node_changed : function (obj) { + obj = this.get_node(obj); + if(obj) { + this._model.changed.push(obj.id); + } + }, + /** + * appends HTML content to the tree. Used internally. + * @private + * @name _append_html_data(obj, data) + * @param {mixed} obj the node to append to + * @param {String} data the HTML string to parse and append + * @trigger model.jstree, changed.jstree + */ + _append_html_data : function (dom, data, cb) { + dom = this.get_node(dom); + dom.children = []; + dom.children_d = []; + var dat = data.is('ul') ? data.children() : data, + par = dom.id, + chd = [], + dpc = [], + m = this._model.data, + p = m[par], + s = this._data.core.selected.length, + tmp, i, j; + dat.each($.proxy(function (i, v) { + tmp = this._parse_model_from_html($(v), par, p.parents.concat()); + if(tmp) { + chd.push(tmp); + dpc.push(tmp); + if(m[tmp].children_d.length) { + dpc = dpc.concat(m[tmp].children_d); + } + } + }, this)); + p.children = chd; + p.children_d = dpc; + for(i = 0, j = p.parents.length; i < j; i++) { + m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); + } + /** + * triggered when new data is inserted to the tree model + * @event + * @name model.jstree + * @param {Array} nodes an array of node IDs + * @param {String} parent the parent ID of the nodes + */ + this.trigger('model', { "nodes" : dpc, 'parent' : par }); + if(par !== $.jstree.root) { + this._node_changed(par); + this.redraw(); + } + else { + this.get_container_ul().children('.jstree-initial-node').remove(); + this.redraw(true); + } + if(this._data.core.selected.length !== s) { + this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); + } + cb.call(this, true); + }, + /** + * appends JSON content to the tree. Used internally. + * @private + * @name _append_json_data(obj, data) + * @param {mixed} obj the node to append to + * @param {String} data the JSON object to parse and append + * @param {Boolean} force_processing internal param - do not set + * @trigger model.jstree, changed.jstree + */ + _append_json_data : function (dom, data, cb, force_processing) { + if(this.element === null) { return; } + dom = this.get_node(dom); + dom.children = []; + dom.children_d = []; + // *%$@!!! + if(data.d) { + data = data.d; + if(typeof data === "string") { + data = JSON.parse(data); + } + } + if(!$.isArray(data)) { data = [data]; } + var w = null, + args = { + 'df' : this._model.default_state, + 'dat' : data, + 'par' : dom.id, + 'm' : this._model.data, + 't_id' : this._id, + 't_cnt' : this._cnt, + 'sel' : this._data.core.selected + }, + func = function (data, undefined) { + if(data.data) { data = data.data; } + var dat = data.dat, + par = data.par, + chd = [], + dpc = [], + add = [], + df = data.df, + t_id = data.t_id, + t_cnt = data.t_cnt, + m = data.m, + p = m[par], + sel = data.sel, + tmp, i, j, rslt, + parse_flat = function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = d.id.toString(), + i, j, c, e, + tmp = { + id : tid, + text : d.text || '', + icon : d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : d.children || [], + children_d : d.children_d || [], + data : d.data, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tid; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + m[tmp.id] = tmp; + for(i = 0, j = tmp.children.length; i < j; i++) { + c = parse_flat(m[tmp.children[i]], tmp.id, ps); + e = m[c]; + tmp.children_d.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + delete d.data; + delete d.children; + m[tmp.id].original = d; + if(tmp.state.selected) { + add.push(tmp.id); + } + return tmp.id; + }, + parse_nest = function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = false, i, j, c, e, tmp; + do { + tid = 'j' + t_id + '_' + (++t_cnt); + } while(m[tid]); + + tmp = { + id : false, + text : typeof d === 'string' ? d : '', + icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : [], + children_d : [], + data : null, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.id) { tmp.id = d.id.toString(); } + if(d && d.text) { tmp.text = d.text; } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(tmp.li_attr.id && !tmp.id) { + tmp.id = tmp.li_attr.id.toString(); + } + if(!tmp.id) { + tmp.id = tid; + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tmp.id; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children.length) { + for(i = 0, j = d.children.length; i < j; i++) { + c = parse_nest(d.children[i], tmp.id, ps); + e = m[c]; + tmp.children.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + tmp.children_d = tmp.children_d.concat(tmp.children); + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + delete d.data; + delete d.children; + tmp.original = d; + m[tmp.id] = tmp; + if(tmp.state.selected) { + add.push(tmp.id); + } + return tmp.id; + }; + + if(dat.length && dat[0].id !== undefined && dat[0].parent !== undefined) { + // Flat JSON support (for easy import from DB): + // 1) convert to object (foreach) + for(i = 0, j = dat.length; i < j; i++) { + if(!dat[i].children) { + dat[i].children = []; + } + m[dat[i].id.toString()] = dat[i]; + } + // 2) populate children (foreach) + for(i = 0, j = dat.length; i < j; i++) { + m[dat[i].parent.toString()].children.push(dat[i].id.toString()); + // populate parent.children_d + p.children_d.push(dat[i].id.toString()); + } + // 3) normalize && populate parents and children_d with recursion + for(i = 0, j = p.children.length; i < j; i++) { + tmp = parse_flat(m[p.children[i]], par, p.parents.concat()); + dpc.push(tmp); + if(m[tmp].children_d.length) { + dpc = dpc.concat(m[tmp].children_d); + } + } + for(i = 0, j = p.parents.length; i < j; i++) { + m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); + } + // ?) three_state selection - p.state.selected && t - (if three_state foreach(dat => ch) -> foreach(parents) if(parent.selected) child.selected = true; + rslt = { + 'cnt' : t_cnt, + 'mod' : m, + 'sel' : sel, + 'par' : par, + 'dpc' : dpc, + 'add' : add + }; + } + else { + for(i = 0, j = dat.length; i < j; i++) { + tmp = parse_nest(dat[i], par, p.parents.concat()); + if(tmp) { + chd.push(tmp); + dpc.push(tmp); + if(m[tmp].children_d.length) { + dpc = dpc.concat(m[tmp].children_d); + } + } + } + p.children = chd; + p.children_d = dpc; + for(i = 0, j = p.parents.length; i < j; i++) { + m[p.parents[i]].children_d = m[p.parents[i]].children_d.concat(dpc); + } + rslt = { + 'cnt' : t_cnt, + 'mod' : m, + 'sel' : sel, + 'par' : par, + 'dpc' : dpc, + 'add' : add + }; + } + if(typeof window === 'undefined' || typeof window.document === 'undefined') { + postMessage(rslt); + } + else { + return rslt; + } + }, + rslt = function (rslt, worker) { + if(this.element === null) { return; } + this._cnt = rslt.cnt; + var i, m = this._model.data; + for (i in m) { + if (m.hasOwnProperty(i) && m[i].state && m[i].state.loading && rslt.mod[i]) { + rslt.mod[i].state.loading = true; + } + } + this._model.data = rslt.mod; // breaks the reference in load_node - careful + + if(worker) { + var j, a = rslt.add, r = rslt.sel, s = this._data.core.selected.slice(); + m = this._model.data; + // if selection was changed while calculating in worker + if(r.length !== s.length || $.vakata.array_unique(r.concat(s)).length !== r.length) { + // deselect nodes that are no longer selected + for(i = 0, j = r.length; i < j; i++) { + if($.inArray(r[i], a) === -1 && $.inArray(r[i], s) === -1) { + m[r[i]].state.selected = false; + } + } + // select nodes that were selected in the mean time + for(i = 0, j = s.length; i < j; i++) { + if($.inArray(s[i], r) === -1) { + m[s[i]].state.selected = true; + } + } + } + } + if(rslt.add.length) { + this._data.core.selected = this._data.core.selected.concat(rslt.add); + } + + this.trigger('model', { "nodes" : rslt.dpc, 'parent' : rslt.par }); + + if(rslt.par !== $.jstree.root) { + this._node_changed(rslt.par); + this.redraw(); + } + else { + // this.get_container_ul().children('.jstree-initial-node').remove(); + this.redraw(true); + } + if(rslt.add.length) { + this.trigger('changed', { 'action' : 'model', 'selected' : this._data.core.selected }); + } + cb.call(this, true); + }; + if(this.settings.core.worker && window.Blob && window.URL && window.Worker) { + try { + if(this._wrk === null) { + this._wrk = window.URL.createObjectURL( + new window.Blob( + ['self.onmessage = ' + func.toString()], + {type:"text/javascript"} + ) + ); + } + if(!this._data.core.working || force_processing) { + this._data.core.working = true; + w = new window.Worker(this._wrk); + w.onmessage = $.proxy(function (e) { + rslt.call(this, e.data, true); + try { w.terminate(); w = null; } catch(ignore) { } + if(this._data.core.worker_queue.length) { + this._append_json_data.apply(this, this._data.core.worker_queue.shift()); + } + else { + this._data.core.working = false; + } + }, this); + if(!args.par) { + if(this._data.core.worker_queue.length) { + this._append_json_data.apply(this, this._data.core.worker_queue.shift()); + } + else { + this._data.core.working = false; + } + } + else { + w.postMessage(args); + } + } + else { + this._data.core.worker_queue.push([dom, data, cb, true]); + } + } + catch(e) { + rslt.call(this, func(args), false); + if(this._data.core.worker_queue.length) { + this._append_json_data.apply(this, this._data.core.worker_queue.shift()); + } + else { + this._data.core.working = false; + } + } + } + else { + rslt.call(this, func(args), false); + } + }, + /** + * parses a node from a jQuery object and appends them to the in memory tree model. Used internally. + * @private + * @name _parse_model_from_html(d [, p, ps]) + * @param {jQuery} d the jQuery object to parse + * @param {String} p the parent ID + * @param {Array} ps list of all parents + * @return {String} the ID of the object added to the model + */ + _parse_model_from_html : function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = [].concat(ps); } + if(p) { ps.unshift(p); } + var c, e, m = this._model.data, + data = { + id : false, + text : false, + icon : true, + parent : p, + parents : ps, + children : [], + children_d : [], + data : null, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }, i, tmp, tid; + for(i in this._model.default_state) { + if(this._model.default_state.hasOwnProperty(i)) { + data.state[i] = this._model.default_state[i]; + } + } + tmp = $.vakata.attributes(d, true); + $.each(tmp, function (i, v) { + v = $.trim(v); + if(!v.length) { return true; } + data.li_attr[i] = v; + if(i === 'id') { + data.id = v.toString(); + } + }); + tmp = d.children('a').first(); + if(tmp.length) { + tmp = $.vakata.attributes(tmp, true); + $.each(tmp, function (i, v) { + v = $.trim(v); + if(v.length) { + data.a_attr[i] = v; + } + }); + } + tmp = d.children("a").first().length ? d.children("a").first().clone() : d.clone(); + tmp.children("ins, i, ul").remove(); + tmp = tmp.html(); + tmp = $('
          ').html(tmp); + data.text = this.settings.core.force_text ? tmp.text() : tmp.html(); + tmp = d.data(); + data.data = tmp ? $.extend(true, {}, tmp) : null; + data.state.opened = d.hasClass('jstree-open'); + data.state.selected = d.children('a').hasClass('jstree-clicked'); + data.state.disabled = d.children('a').hasClass('jstree-disabled'); + if(data.data && data.data.jstree) { + for(i in data.data.jstree) { + if(data.data.jstree.hasOwnProperty(i)) { + data.state[i] = data.data.jstree[i]; + } + } + } + tmp = d.children("a").children(".jstree-themeicon"); + if(tmp.length) { + data.icon = tmp.hasClass('jstree-themeicon-hidden') ? false : tmp.attr('rel'); + } + if(data.state.icon !== undefined) { + data.icon = data.state.icon; + } + if(data.icon === undefined || data.icon === null || data.icon === "") { + data.icon = true; + } + tmp = d.children("ul").children("li"); + do { + tid = 'j' + this._id + '_' + (++this._cnt); + } while(m[tid]); + data.id = data.li_attr.id ? data.li_attr.id.toString() : tid; + if(tmp.length) { + tmp.each($.proxy(function (i, v) { + c = this._parse_model_from_html($(v), data.id, ps); + e = this._model.data[c]; + data.children.push(c); + if(e.children_d.length) { + data.children_d = data.children_d.concat(e.children_d); + } + }, this)); + data.children_d = data.children_d.concat(data.children); + } + else { + if(d.hasClass('jstree-closed')) { + data.state.loaded = false; + } + } + if(data.li_attr['class']) { + data.li_attr['class'] = data.li_attr['class'].replace('jstree-closed','').replace('jstree-open',''); + } + if(data.a_attr['class']) { + data.a_attr['class'] = data.a_attr['class'].replace('jstree-clicked','').replace('jstree-disabled',''); + } + m[data.id] = data; + if(data.state.selected) { + this._data.core.selected.push(data.id); + } + return data.id; + }, + /** + * parses a node from a JSON object (used when dealing with flat data, which has no nesting of children, but has id and parent properties) and appends it to the in memory tree model. Used internally. + * @private + * @name _parse_model_from_flat_json(d [, p, ps]) + * @param {Object} d the JSON object to parse + * @param {String} p the parent ID + * @param {Array} ps list of all parents + * @return {String} the ID of the object added to the model + */ + _parse_model_from_flat_json : function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = d.id.toString(), + m = this._model.data, + df = this._model.default_state, + i, j, c, e, + tmp = { + id : tid, + text : d.text || '', + icon : d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : d.children || [], + children_d : d.children_d || [], + data : d.data, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tid; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + m[tmp.id] = tmp; + for(i = 0, j = tmp.children.length; i < j; i++) { + c = this._parse_model_from_flat_json(m[tmp.children[i]], tmp.id, ps); + e = m[c]; + tmp.children_d.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + delete d.data; + delete d.children; + m[tmp.id].original = d; + if(tmp.state.selected) { + this._data.core.selected.push(tmp.id); + } + return tmp.id; + }, + /** + * parses a node from a JSON object and appends it to the in memory tree model. Used internally. + * @private + * @name _parse_model_from_json(d [, p, ps]) + * @param {Object} d the JSON object to parse + * @param {String} p the parent ID + * @param {Array} ps list of all parents + * @return {String} the ID of the object added to the model + */ + _parse_model_from_json : function (d, p, ps) { + if(!ps) { ps = []; } + else { ps = ps.concat(); } + if(p) { ps.unshift(p); } + var tid = false, i, j, c, e, m = this._model.data, df = this._model.default_state, tmp; + do { + tid = 'j' + this._id + '_' + (++this._cnt); + } while(m[tid]); + + tmp = { + id : false, + text : typeof d === 'string' ? d : '', + icon : typeof d === 'object' && d.icon !== undefined ? d.icon : true, + parent : p, + parents : ps, + children : [], + children_d : [], + data : null, + state : { }, + li_attr : { id : false }, + a_attr : { href : '#' }, + original : false + }; + for(i in df) { + if(df.hasOwnProperty(i)) { + tmp.state[i] = df[i]; + } + } + if(d && d.id) { tmp.id = d.id.toString(); } + if(d && d.text) { tmp.text = d.text; } + if(d && d.data && d.data.jstree && d.data.jstree.icon) { + tmp.icon = d.data.jstree.icon; + } + if(tmp.icon === undefined || tmp.icon === null || tmp.icon === "") { + tmp.icon = true; + } + if(d && d.data) { + tmp.data = d.data; + if(d.data.jstree) { + for(i in d.data.jstree) { + if(d.data.jstree.hasOwnProperty(i)) { + tmp.state[i] = d.data.jstree[i]; + } + } + } + } + if(d && typeof d.state === 'object') { + for (i in d.state) { + if(d.state.hasOwnProperty(i)) { + tmp.state[i] = d.state[i]; + } + } + } + if(d && typeof d.li_attr === 'object') { + for (i in d.li_attr) { + if(d.li_attr.hasOwnProperty(i)) { + tmp.li_attr[i] = d.li_attr[i]; + } + } + } + if(tmp.li_attr.id && !tmp.id) { + tmp.id = tmp.li_attr.id.toString(); + } + if(!tmp.id) { + tmp.id = tid; + } + if(!tmp.li_attr.id) { + tmp.li_attr.id = tmp.id; + } + if(d && typeof d.a_attr === 'object') { + for (i in d.a_attr) { + if(d.a_attr.hasOwnProperty(i)) { + tmp.a_attr[i] = d.a_attr[i]; + } + } + } + if(d && d.children && d.children.length) { + for(i = 0, j = d.children.length; i < j; i++) { + c = this._parse_model_from_json(d.children[i], tmp.id, ps); + e = m[c]; + tmp.children.push(c); + if(e.children_d.length) { + tmp.children_d = tmp.children_d.concat(e.children_d); + } + } + tmp.children_d = tmp.children_d.concat(tmp.children); + } + if(d && d.children && d.children === true) { + tmp.state.loaded = false; + tmp.children = []; + tmp.children_d = []; + } + delete d.data; + delete d.children; + tmp.original = d; + m[tmp.id] = tmp; + if(tmp.state.selected) { + this._data.core.selected.push(tmp.id); + } + return tmp.id; + }, + /** + * redraws all nodes that need to be redrawn. Used internally. + * @private + * @name _redraw() + * @trigger redraw.jstree + */ + _redraw : function () { + var nodes = this._model.force_full_redraw ? this._model.data[$.jstree.root].children.concat([]) : this._model.changed.concat([]), + f = document.createElement('UL'), tmp, i, j, fe = this._data.core.focused; + for(i = 0, j = nodes.length; i < j; i++) { + tmp = this.redraw_node(nodes[i], true, this._model.force_full_redraw); + if(tmp && this._model.force_full_redraw) { + f.appendChild(tmp); + } + } + if(this._model.force_full_redraw) { + f.className = this.get_container_ul()[0].className; + f.setAttribute('role','group'); + this.element.empty().append(f); + //this.get_container_ul()[0].appendChild(f); + } + if(fe !== null) { + tmp = this.get_node(fe, true); + if(tmp && tmp.length && tmp.children('.jstree-anchor')[0] !== document.activeElement) { + tmp.children('.jstree-anchor').focus(); + } + else { + this._data.core.focused = null; + } + } + this._model.force_full_redraw = false; + this._model.changed = []; + /** + * triggered after nodes are redrawn + * @event + * @name redraw.jstree + * @param {array} nodes the redrawn nodes + */ + this.trigger('redraw', { "nodes" : nodes }); + }, + /** + * redraws all nodes that need to be redrawn or optionally - the whole tree + * @name redraw([full]) + * @param {Boolean} full if set to `true` all nodes are redrawn. + */ + redraw : function (full) { + if(full) { + this._model.force_full_redraw = true; + } + //if(this._model.redraw_timeout) { + // clearTimeout(this._model.redraw_timeout); + //} + //this._model.redraw_timeout = setTimeout($.proxy(this._redraw, this),0); + this._redraw(); + }, + /** + * redraws a single node's children. Used internally. + * @private + * @name draw_children(node) + * @param {mixed} node the node whose children will be redrawn + */ + draw_children : function (node) { + var obj = this.get_node(node), + i = false, + j = false, + k = false, + d = document; + if(!obj) { return false; } + if(obj.id === $.jstree.root) { return this.redraw(true); } + node = this.get_node(node, true); + if(!node || !node.length) { return false; } // TODO: quick toggle + + node.children('.jstree-children').remove(); + node = node[0]; + if(obj.children.length && obj.state.loaded) { + k = d.createElement('UL'); + k.setAttribute('role', 'group'); + k.className = 'jstree-children'; + for(i = 0, j = obj.children.length; i < j; i++) { + k.appendChild(this.redraw_node(obj.children[i], true, true)); + } + node.appendChild(k); + } + }, + /** + * redraws a single node. Used internally. + * @private + * @name redraw_node(node, deep, is_callback, force_render) + * @param {mixed} node the node to redraw + * @param {Boolean} deep should child nodes be redrawn too + * @param {Boolean} is_callback is this a recursion call + * @param {Boolean} force_render should children of closed parents be drawn anyway + */ + redraw_node : function (node, deep, is_callback, force_render) { + var obj = this.get_node(node), + par = false, + ind = false, + old = false, + i = false, + j = false, + k = false, + c = '', + d = document, + m = this._model.data, + f = false, + s = false, + tmp = null, + t = 0, + l = 0, + has_children = false, + last_sibling = false; + if(!obj) { return false; } + if(obj.id === $.jstree.root) { return this.redraw(true); } + deep = deep || obj.children.length === 0; + node = !document.querySelector ? document.getElementById(obj.id) : this.element[0].querySelector('#' + ("0123456789".indexOf(obj.id[0]) !== -1 ? '\\3' + obj.id[0] + ' ' + obj.id.substr(1).replace($.jstree.idregex,'\\$&') : obj.id.replace($.jstree.idregex,'\\$&')) ); //, this.element); + if(!node) { + deep = true; + //node = d.createElement('LI'); + if(!is_callback) { + par = obj.parent !== $.jstree.root ? $('#' + obj.parent.replace($.jstree.idregex,'\\$&'), this.element)[0] : null; + if(par !== null && (!par || !m[obj.parent].state.opened)) { + return false; + } + ind = $.inArray(obj.id, par === null ? m[$.jstree.root].children : m[obj.parent].children); + } + } + else { + node = $(node); + if(!is_callback) { + par = node.parent().parent()[0]; + if(par === this.element[0]) { + par = null; + } + ind = node.index(); + } + // m[obj.id].data = node.data(); // use only node's data, no need to touch jquery storage + if(!deep && obj.children.length && !node.children('.jstree-children').length) { + deep = true; + } + if(!deep) { + old = node.children('.jstree-children')[0]; + } + f = node.children('.jstree-anchor')[0] === document.activeElement; + node.remove(); + //node = d.createElement('LI'); + //node = node[0]; + } + node = this._data.core.node.cloneNode(true); + // node is DOM, deep is boolean + + c = 'jstree-node '; + for(i in obj.li_attr) { + if(obj.li_attr.hasOwnProperty(i)) { + if(i === 'id') { continue; } + if(i !== 'class') { + node.setAttribute(i, obj.li_attr[i]); + } + else { + c += obj.li_attr[i]; + } + } + } + if(!obj.a_attr.id) { + obj.a_attr.id = obj.id + '_anchor'; + } + node.setAttribute('aria-selected', !!obj.state.selected); + node.setAttribute('aria-level', obj.parents.length); + node.setAttribute('aria-labelledby', obj.a_attr.id); + if(obj.state.disabled) { + node.setAttribute('aria-disabled', true); + } + + for(i = 0, j = obj.children.length; i < j; i++) { + if(!m[obj.children[i]].state.hidden) { + has_children = true; + break; + } + } + if(obj.parent !== null && m[obj.parent] && !obj.state.hidden) { + i = $.inArray(obj.id, m[obj.parent].children); + last_sibling = obj.id; + if(i !== -1) { + i++; + for(j = m[obj.parent].children.length; i < j; i++) { + if(!m[m[obj.parent].children[i]].state.hidden) { + last_sibling = m[obj.parent].children[i]; + } + if(last_sibling !== obj.id) { + break; + } + } + } + } + + if(obj.state.hidden) { + c += ' jstree-hidden'; + } + if(obj.state.loaded && !has_children) { + c += ' jstree-leaf'; + } + else { + c += obj.state.opened && obj.state.loaded ? ' jstree-open' : ' jstree-closed'; + node.setAttribute('aria-expanded', (obj.state.opened && obj.state.loaded) ); + } + if(last_sibling === obj.id) { + c += ' jstree-last'; + } + node.id = obj.id; + node.className = c; + c = ( obj.state.selected ? ' jstree-clicked' : '') + ( obj.state.disabled ? ' jstree-disabled' : ''); + for(j in obj.a_attr) { + if(obj.a_attr.hasOwnProperty(j)) { + if(j === 'href' && obj.a_attr[j] === '#') { continue; } + if(j !== 'class') { + node.childNodes[1].setAttribute(j, obj.a_attr[j]); + } + else { + c += ' ' + obj.a_attr[j]; + } + } + } + if(c.length) { + node.childNodes[1].className = 'jstree-anchor ' + c; + } + if((obj.icon && obj.icon !== true) || obj.icon === false) { + if(obj.icon === false) { + node.childNodes[1].childNodes[0].className += ' jstree-themeicon-hidden'; + } + else if(obj.icon.indexOf('/') === -1 && obj.icon.indexOf('.') === -1) { + node.childNodes[1].childNodes[0].className += ' ' + obj.icon + ' jstree-themeicon-custom'; + } + else { + node.childNodes[1].childNodes[0].style.backgroundImage = 'url("'+obj.icon+'")'; + node.childNodes[1].childNodes[0].style.backgroundPosition = 'center center'; + node.childNodes[1].childNodes[0].style.backgroundSize = 'auto'; + node.childNodes[1].childNodes[0].className += ' jstree-themeicon-custom'; + } + } + + if(this.settings.core.force_text) { + node.childNodes[1].appendChild(d.createTextNode(obj.text)); + } + else { + node.childNodes[1].innerHTML += obj.text; + } + + + if(deep && obj.children.length && (obj.state.opened || force_render) && obj.state.loaded) { + k = d.createElement('UL'); + k.setAttribute('role', 'group'); + k.className = 'jstree-children'; + for(i = 0, j = obj.children.length; i < j; i++) { + k.appendChild(this.redraw_node(obj.children[i], deep, true)); + } + node.appendChild(k); + } + if(old) { + node.appendChild(old); + } + if(!is_callback) { + // append back using par / ind + if(!par) { + par = this.element[0]; + } + for(i = 0, j = par.childNodes.length; i < j; i++) { + if(par.childNodes[i] && par.childNodes[i].className && par.childNodes[i].className.indexOf('jstree-children') !== -1) { + tmp = par.childNodes[i]; + break; + } + } + if(!tmp) { + tmp = d.createElement('UL'); + tmp.setAttribute('role', 'group'); + tmp.className = 'jstree-children'; + par.appendChild(tmp); + } + par = tmp; + + if(ind < par.childNodes.length) { + par.insertBefore(node, par.childNodes[ind]); + } + else { + par.appendChild(node); + } + if(f) { + t = this.element[0].scrollTop; + l = this.element[0].scrollLeft; + node.childNodes[1].focus(); + this.element[0].scrollTop = t; + this.element[0].scrollLeft = l; + } + } + if(obj.state.opened && !obj.state.loaded) { + obj.state.opened = false; + setTimeout($.proxy(function () { + this.open_node(obj.id, false, 0); + }, this), 0); + } + return node; + }, + /** + * opens a node, revaling its children. If the node is not loaded it will be loaded and opened once ready. + * @name open_node(obj [, callback, animation]) + * @param {mixed} obj the node to open + * @param {Function} callback a function to execute once the node is opened + * @param {Number} animation the animation duration in milliseconds when opening the node (overrides the `core.animation` setting). Use `false` for no animation. + * @trigger open_node.jstree, after_open.jstree, before_open.jstree + */ + open_node : function (obj, callback, animation) { + var t1, t2, d, t; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.open_node(obj[t1], callback, animation); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + animation = animation === undefined ? this.settings.core.animation : animation; + if(!this.is_closed(obj)) { + if(callback) { + callback.call(this, obj, false); + } + return false; + } + if(!this.is_loaded(obj)) { + if(this.is_loading(obj)) { + return setTimeout($.proxy(function () { + this.open_node(obj, callback, animation); + }, this), 500); + } + this.load_node(obj, function (o, ok) { + return ok ? this.open_node(o, callback, animation) : (callback ? callback.call(this, o, false) : false); + }); + } + else { + d = this.get_node(obj, true); + t = this; + if(d.length) { + if(animation && d.children(".jstree-children").length) { + d.children(".jstree-children").stop(true, true); + } + if(obj.children.length && !this._firstChild(d.children('.jstree-children')[0])) { + this.draw_children(obj); + //d = this.get_node(obj, true); + } + if(!animation) { + this.trigger('before_open', { "node" : obj }); + d[0].className = d[0].className.replace('jstree-closed', 'jstree-open'); + d[0].setAttribute("aria-expanded", true); + } + else { + this.trigger('before_open', { "node" : obj }); + d + .children(".jstree-children").css("display","none").end() + .removeClass("jstree-closed").addClass("jstree-open").attr("aria-expanded", true) + .children(".jstree-children").stop(true, true) + .slideDown(animation, function () { + this.style.display = ""; + if (t.element) { + t.trigger("after_open", { "node" : obj }); + } + }); + } + } + obj.state.opened = true; + if(callback) { + callback.call(this, obj, true); + } + if(!d.length) { + /** + * triggered when a node is about to be opened (if the node is supposed to be in the DOM, it will be, but it won't be visible yet) + * @event + * @name before_open.jstree + * @param {Object} node the opened node + */ + this.trigger('before_open', { "node" : obj }); + } + /** + * triggered when a node is opened (if there is an animation it will not be completed yet) + * @event + * @name open_node.jstree + * @param {Object} node the opened node + */ + this.trigger('open_node', { "node" : obj }); + if(!animation || !d.length) { + /** + * triggered when a node is opened and the animation is complete + * @event + * @name after_open.jstree + * @param {Object} node the opened node + */ + this.trigger("after_open", { "node" : obj }); + } + return true; + } + }, + /** + * opens every parent of a node (node should be loaded) + * @name _open_to(obj) + * @param {mixed} obj the node to reveal + * @private + */ + _open_to : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + var i, j, p = obj.parents; + for(i = 0, j = p.length; i < j; i+=1) { + if(i !== $.jstree.root) { + this.open_node(p[i], false, 0); + } + } + return $('#' + obj.id.replace($.jstree.idregex,'\\$&'), this.element); + }, + /** + * closes a node, hiding its children + * @name close_node(obj [, animation]) + * @param {mixed} obj the node to close + * @param {Number} animation the animation duration in milliseconds when closing the node (overrides the `core.animation` setting). Use `false` for no animation. + * @trigger close_node.jstree, after_close.jstree + */ + close_node : function (obj, animation) { + var t1, t2, t, d; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.close_node(obj[t1], animation); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(this.is_closed(obj)) { + return false; + } + animation = animation === undefined ? this.settings.core.animation : animation; + t = this; + d = this.get_node(obj, true); + + obj.state.opened = false; + /** + * triggered when a node is closed (if there is an animation it will not be complete yet) + * @event + * @name close_node.jstree + * @param {Object} node the closed node + */ + this.trigger('close_node',{ "node" : obj }); + if(!d.length) { + /** + * triggered when a node is closed and the animation is complete + * @event + * @name after_close.jstree + * @param {Object} node the closed node + */ + this.trigger("after_close", { "node" : obj }); + } + else { + if(!animation) { + d[0].className = d[0].className.replace('jstree-open', 'jstree-closed'); + d.attr("aria-expanded", false).children('.jstree-children').remove(); + this.trigger("after_close", { "node" : obj }); + } + else { + d + .children(".jstree-children").attr("style","display:block !important").end() + .removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded", false) + .children(".jstree-children").stop(true, true).slideUp(animation, function () { + this.style.display = ""; + d.children('.jstree-children').remove(); + if (t.element) { + t.trigger("after_close", { "node" : obj }); + } + }); + } + } + }, + /** + * toggles a node - closing it if it is open, opening it if it is closed + * @name toggle_node(obj) + * @param {mixed} obj the node to toggle + */ + toggle_node : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.toggle_node(obj[t1]); + } + return true; + } + if(this.is_closed(obj)) { + return this.open_node(obj); + } + if(this.is_open(obj)) { + return this.close_node(obj); + } + }, + /** + * opens all nodes within a node (or the tree), revaling their children. If the node is not loaded it will be loaded and opened once ready. + * @name open_all([obj, animation, original_obj]) + * @param {mixed} obj the node to open recursively, omit to open all nodes in the tree + * @param {Number} animation the animation duration in milliseconds when opening the nodes, the default is no animation + * @param {jQuery} reference to the node that started the process (internal use) + * @trigger open_all.jstree + */ + open_all : function (obj, animation, original_obj) { + if(!obj) { obj = $.jstree.root; } + obj = this.get_node(obj); + if(!obj) { return false; } + var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), i, j, _this; + if(!dom.length) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + if(this.is_closed(this._model.data[obj.children_d[i]])) { + this._model.data[obj.children_d[i]].state.opened = true; + } + } + return this.trigger('open_all', { "node" : obj }); + } + original_obj = original_obj || dom; + _this = this; + dom = this.is_closed(obj) ? dom.find('.jstree-closed').addBack() : dom.find('.jstree-closed'); + dom.each(function () { + _this.open_node( + this, + function(node, status) { if(status && this.is_parent(node)) { this.open_all(node, animation, original_obj); } }, + animation || 0 + ); + }); + if(original_obj.find('.jstree-closed').length === 0) { + /** + * triggered when an `open_all` call completes + * @event + * @name open_all.jstree + * @param {Object} node the opened node + */ + this.trigger('open_all', { "node" : this.get_node(original_obj) }); + } + }, + /** + * closes all nodes within a node (or the tree), revaling their children + * @name close_all([obj, animation]) + * @param {mixed} obj the node to close recursively, omit to close all nodes in the tree + * @param {Number} animation the animation duration in milliseconds when closing the nodes, the default is no animation + * @trigger close_all.jstree + */ + close_all : function (obj, animation) { + if(!obj) { obj = $.jstree.root; } + obj = this.get_node(obj); + if(!obj) { return false; } + var dom = obj.id === $.jstree.root ? this.get_container_ul() : this.get_node(obj, true), + _this = this, i, j; + if(dom.length) { + dom = this.is_open(obj) ? dom.find('.jstree-open').addBack() : dom.find('.jstree-open'); + $(dom.get().reverse()).each(function () { _this.close_node(this, animation || 0); }); + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + this._model.data[obj.children_d[i]].state.opened = false; + } + /** + * triggered when an `close_all` call completes + * @event + * @name close_all.jstree + * @param {Object} node the closed node + */ + this.trigger('close_all', { "node" : obj }); + }, + /** + * checks if a node is disabled (not selectable) + * @name is_disabled(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_disabled : function (obj) { + obj = this.get_node(obj); + return obj && obj.state && obj.state.disabled; + }, + /** + * enables a node - so that it can be selected + * @name enable_node(obj) + * @param {mixed} obj the node to enable + * @trigger enable_node.jstree + */ + enable_node : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.enable_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + obj.state.disabled = false; + this.get_node(obj,true).children('.jstree-anchor').removeClass('jstree-disabled').attr('aria-disabled', false); + /** + * triggered when an node is enabled + * @event + * @name enable_node.jstree + * @param {Object} node the enabled node + */ + this.trigger('enable_node', { 'node' : obj }); + }, + /** + * disables a node - so that it can not be selected + * @name disable_node(obj) + * @param {mixed} obj the node to disable + * @trigger disable_node.jstree + */ + disable_node : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.disable_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + obj.state.disabled = true; + this.get_node(obj,true).children('.jstree-anchor').addClass('jstree-disabled').attr('aria-disabled', true); + /** + * triggered when an node is disabled + * @event + * @name disable_node.jstree + * @param {Object} node the disabled node + */ + this.trigger('disable_node', { 'node' : obj }); + }, + /** + * determines if a node is hidden + * @name is_hidden(obj) + * @param {mixed} obj the node + */ + is_hidden : function (obj) { + obj = this.get_node(obj); + return obj.state.hidden === true; + }, + /** + * hides a node - it is still in the structure but will not be visible + * @name hide_node(obj) + * @param {mixed} obj the node to hide + * @param {Boolean} skip_redraw internal parameter controlling if redraw is called + * @trigger hide_node.jstree + */ + hide_node : function (obj, skip_redraw) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.hide_node(obj[t1], true); + } + if (!skip_redraw) { + this.redraw(); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(!obj.state.hidden) { + obj.state.hidden = true; + this._node_changed(obj.parent); + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when an node is hidden + * @event + * @name hide_node.jstree + * @param {Object} node the hidden node + */ + this.trigger('hide_node', { 'node' : obj }); + } + }, + /** + * shows a node + * @name show_node(obj) + * @param {mixed} obj the node to show + * @param {Boolean} skip_redraw internal parameter controlling if redraw is called + * @trigger show_node.jstree + */ + show_node : function (obj, skip_redraw) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.show_node(obj[t1], true); + } + if (!skip_redraw) { + this.redraw(); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(obj.state.hidden) { + obj.state.hidden = false; + this._node_changed(obj.parent); + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when an node is shown + * @event + * @name show_node.jstree + * @param {Object} node the shown node + */ + this.trigger('show_node', { 'node' : obj }); + } + }, + /** + * hides all nodes + * @name hide_all() + * @trigger hide_all.jstree + */ + hide_all : function (skip_redraw) { + var i, m = this._model.data, ids = []; + for(i in m) { + if(m.hasOwnProperty(i) && i !== $.jstree.root && !m[i].state.hidden) { + m[i].state.hidden = true; + ids.push(i); + } + } + this._model.force_full_redraw = true; + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when all nodes are hidden + * @event + * @name hide_all.jstree + * @param {Array} nodes the IDs of all hidden nodes + */ + this.trigger('hide_all', { 'nodes' : ids }); + return ids; + }, + /** + * shows all nodes + * @name show_all() + * @trigger show_all.jstree + */ + show_all : function (skip_redraw) { + var i, m = this._model.data, ids = []; + for(i in m) { + if(m.hasOwnProperty(i) && i !== $.jstree.root && m[i].state.hidden) { + m[i].state.hidden = false; + ids.push(i); + } + } + this._model.force_full_redraw = true; + if(!skip_redraw) { + this.redraw(); + } + /** + * triggered when all nodes are shown + * @event + * @name show_all.jstree + * @param {Array} nodes the IDs of all shown nodes + */ + this.trigger('show_all', { 'nodes' : ids }); + return ids; + }, + /** + * called when a node is selected by the user. Used internally. + * @private + * @name activate_node(obj, e) + * @param {mixed} obj the node + * @param {Object} e the related event + * @trigger activate_node.jstree, changed.jstree + */ + activate_node : function (obj, e) { + if(this.is_disabled(obj)) { + return false; + } + if(!e || typeof e !== 'object') { + e = {}; + } + + // ensure last_clicked is still in the DOM, make it fresh (maybe it was moved?) and make sure it is still selected, if not - make last_clicked the last selected node + this._data.core.last_clicked = this._data.core.last_clicked && this._data.core.last_clicked.id !== undefined ? this.get_node(this._data.core.last_clicked.id) : null; + if(this._data.core.last_clicked && !this._data.core.last_clicked.state.selected) { this._data.core.last_clicked = null; } + if(!this._data.core.last_clicked && this._data.core.selected.length) { this._data.core.last_clicked = this.get_node(this._data.core.selected[this._data.core.selected.length - 1]); } + + if(!this.settings.core.multiple || (!e.metaKey && !e.ctrlKey && !e.shiftKey) || (e.shiftKey && (!this._data.core.last_clicked || !this.get_parent(obj) || this.get_parent(obj) !== this._data.core.last_clicked.parent ) )) { + if(!this.settings.core.multiple && (e.metaKey || e.ctrlKey || e.shiftKey) && this.is_selected(obj)) { + this.deselect_node(obj, false, e); + } + else { + this.deselect_all(true); + this.select_node(obj, false, false, e); + this._data.core.last_clicked = this.get_node(obj); + } + } + else { + if(e.shiftKey) { + var o = this.get_node(obj).id, + l = this._data.core.last_clicked.id, + p = this.get_node(this._data.core.last_clicked.parent).children, + c = false, + i, j; + for(i = 0, j = p.length; i < j; i += 1) { + // separate IFs work whem o and l are the same + if(p[i] === o) { + c = !c; + } + if(p[i] === l) { + c = !c; + } + if(!this.is_disabled(p[i]) && (c || p[i] === o || p[i] === l)) { + if (!this.is_hidden(p[i])) { + this.select_node(p[i], true, false, e); + } + } + else { + this.deselect_node(p[i], true, e); + } + } + this.trigger('changed', { 'action' : 'select_node', 'node' : this.get_node(obj), 'selected' : this._data.core.selected, 'event' : e }); + } + else { + if(!this.is_selected(obj)) { + this.select_node(obj, false, false, e); + } + else { + this.deselect_node(obj, false, e); + } + } + } + /** + * triggered when an node is clicked or intercated with by the user + * @event + * @name activate_node.jstree + * @param {Object} node + * @param {Object} event the ooriginal event (if any) which triggered the call (may be an empty object) + */ + this.trigger('activate_node', { 'node' : this.get_node(obj), 'event' : e }); + }, + /** + * applies the hover state on a node, called when a node is hovered by the user. Used internally. + * @private + * @name hover_node(obj) + * @param {mixed} obj + * @trigger hover_node.jstree + */ + hover_node : function (obj) { + obj = this.get_node(obj, true); + if(!obj || !obj.length || obj.children('.jstree-hovered').length) { + return false; + } + var o = this.element.find('.jstree-hovered'), t = this.element; + if(o && o.length) { this.dehover_node(o); } + + obj.children('.jstree-anchor').addClass('jstree-hovered'); + /** + * triggered when an node is hovered + * @event + * @name hover_node.jstree + * @param {Object} node + */ + this.trigger('hover_node', { 'node' : this.get_node(obj) }); + setTimeout(function () { t.attr('aria-activedescendant', obj[0].id); }, 0); + }, + /** + * removes the hover state from a nodecalled when a node is no longer hovered by the user. Used internally. + * @private + * @name dehover_node(obj) + * @param {mixed} obj + * @trigger dehover_node.jstree + */ + dehover_node : function (obj) { + obj = this.get_node(obj, true); + if(!obj || !obj.length || !obj.children('.jstree-hovered').length) { + return false; + } + obj.children('.jstree-anchor').removeClass('jstree-hovered'); + /** + * triggered when an node is no longer hovered + * @event + * @name dehover_node.jstree + * @param {Object} node + */ + this.trigger('dehover_node', { 'node' : this.get_node(obj) }); + }, + /** + * select a node + * @name select_node(obj [, supress_event, prevent_open]) + * @param {mixed} obj an array can be used to select multiple nodes + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @param {Boolean} prevent_open if set to `true` parents of the selected node won't be opened + * @trigger select_node.jstree, changed.jstree + */ + select_node : function (obj, supress_event, prevent_open, e) { + var dom, t1, t2, th; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.select_node(obj[t1], supress_event, prevent_open, e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(!obj.state.selected) { + obj.state.selected = true; + this._data.core.selected.push(obj.id); + if(!prevent_open) { + dom = this._open_to(obj); + } + if(dom && dom.length) { + dom.attr('aria-selected', true).children('.jstree-anchor').addClass('jstree-clicked'); + } + /** + * triggered when an node is selected + * @event + * @name select_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this select_node + */ + this.trigger('select_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + if(!supress_event) { + /** + * triggered when selection changes + * @event + * @name changed.jstree + * @param {Object} node + * @param {Object} action the action that caused the selection to change + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this changed event + */ + this.trigger('changed', { 'action' : 'select_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + } + } + }, + /** + * deselect a node + * @name deselect_node(obj [, supress_event]) + * @param {mixed} obj an array can be used to deselect multiple nodes + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @trigger deselect_node.jstree, changed.jstree + */ + deselect_node : function (obj, supress_event, e) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.deselect_node(obj[t1], supress_event, e); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + dom = this.get_node(obj, true); + if(obj.state.selected) { + obj.state.selected = false; + this._data.core.selected = $.vakata.array_remove_item(this._data.core.selected, obj.id); + if(dom.length) { + dom.attr('aria-selected', false).children('.jstree-anchor').removeClass('jstree-clicked'); + } + /** + * triggered when an node is deselected + * @event + * @name deselect_node.jstree + * @param {Object} node + * @param {Array} selected the current selection + * @param {Object} event the event (if any) that triggered this deselect_node + */ + this.trigger('deselect_node', { 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + if(!supress_event) { + this.trigger('changed', { 'action' : 'deselect_node', 'node' : obj, 'selected' : this._data.core.selected, 'event' : e }); + } + } + }, + /** + * select all nodes in the tree + * @name select_all([supress_event]) + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @trigger select_all.jstree, changed.jstree + */ + select_all : function (supress_event) { + var tmp = this._data.core.selected.concat([]), i, j; + this._data.core.selected = this._model.data[$.jstree.root].children_d.concat(); + for(i = 0, j = this._data.core.selected.length; i < j; i++) { + if(this._model.data[this._data.core.selected[i]]) { + this._model.data[this._data.core.selected[i]].state.selected = true; + } + } + this.redraw(true); + /** + * triggered when all nodes are selected + * @event + * @name select_all.jstree + * @param {Array} selected the current selection + */ + this.trigger('select_all', { 'selected' : this._data.core.selected }); + if(!supress_event) { + this.trigger('changed', { 'action' : 'select_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); + } + }, + /** + * deselect all selected nodes + * @name deselect_all([supress_event]) + * @param {Boolean} supress_event if set to `true` the `changed.jstree` event won't be triggered + * @trigger deselect_all.jstree, changed.jstree + */ + deselect_all : function (supress_event) { + var tmp = this._data.core.selected.concat([]), i, j; + for(i = 0, j = this._data.core.selected.length; i < j; i++) { + if(this._model.data[this._data.core.selected[i]]) { + this._model.data[this._data.core.selected[i]].state.selected = false; + } + } + this._data.core.selected = []; + this.element.find('.jstree-clicked').removeClass('jstree-clicked').parent().attr('aria-selected', false); + /** + * triggered when all nodes are deselected + * @event + * @name deselect_all.jstree + * @param {Object} node the previous selection + * @param {Array} selected the current selection + */ + this.trigger('deselect_all', { 'selected' : this._data.core.selected, 'node' : tmp }); + if(!supress_event) { + this.trigger('changed', { 'action' : 'deselect_all', 'selected' : this._data.core.selected, 'old_selection' : tmp }); + } + }, + /** + * checks if a node is selected + * @name is_selected(obj) + * @param {mixed} obj + * @return {Boolean} + */ + is_selected : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + return obj.state.selected; + }, + /** + * get an array of all selected nodes + * @name get_selected([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + */ + get_selected : function (full) { + return full ? $.map(this._data.core.selected, $.proxy(function (i) { return this.get_node(i); }, this)) : this._data.core.selected.slice(); + }, + /** + * get an array of all top level selected nodes (ignoring children of selected nodes) + * @name get_top_selected([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + */ + get_top_selected : function (full) { + var tmp = this.get_selected(true), + obj = {}, i, j, k, l; + for(i = 0, j = tmp.length; i < j; i++) { + obj[tmp[i].id] = tmp[i]; + } + for(i = 0, j = tmp.length; i < j; i++) { + for(k = 0, l = tmp[i].children_d.length; k < l; k++) { + if(obj[tmp[i].children_d[k]]) { + delete obj[tmp[i].children_d[k]]; + } + } + } + tmp = []; + for(i in obj) { + if(obj.hasOwnProperty(i)) { + tmp.push(i); + } + } + return full ? $.map(tmp, $.proxy(function (i) { return this.get_node(i); }, this)) : tmp; + }, + /** + * get an array of all bottom level selected nodes (ignoring selected parents) + * @name get_bottom_selected([full]) + * @param {mixed} full if set to `true` the returned array will consist of the full node objects, otherwise - only IDs will be returned + * @return {Array} + */ + get_bottom_selected : function (full) { + var tmp = this.get_selected(true), + obj = [], i, j; + for(i = 0, j = tmp.length; i < j; i++) { + if(!tmp[i].children.length) { + obj.push(tmp[i].id); + } + } + return full ? $.map(obj, $.proxy(function (i) { return this.get_node(i); }, this)) : obj; + }, + /** + * gets the current state of the tree so that it can be restored later with `set_state(state)`. Used internally. + * @name get_state() + * @private + * @return {Object} + */ + get_state : function () { + var state = { + 'core' : { + 'open' : [], + 'scroll' : { + 'left' : this.element.scrollLeft(), + 'top' : this.element.scrollTop() + }, + /*! + 'themes' : { + 'name' : this.get_theme(), + 'icons' : this._data.core.themes.icons, + 'dots' : this._data.core.themes.dots + }, + */ + 'selected' : [] + } + }, i; + for(i in this._model.data) { + if(this._model.data.hasOwnProperty(i)) { + if(i !== $.jstree.root) { + if(this._model.data[i].state.opened) { + state.core.open.push(i); + } + if(this._model.data[i].state.selected) { + state.core.selected.push(i); + } + } + } + } + return state; + }, + /** + * sets the state of the tree. Used internally. + * @name set_state(state [, callback]) + * @private + * @param {Object} state the state to restore. Keep in mind this object is passed by reference and jstree will modify it. + * @param {Function} callback an optional function to execute once the state is restored. + * @trigger set_state.jstree + */ + set_state : function (state, callback) { + if(state) { + if(state.core) { + var res, n, t, _this, i; + if(state.core.open) { + if(!$.isArray(state.core.open) || !state.core.open.length) { + delete state.core.open; + this.set_state(state, callback); + } + else { + this._load_nodes(state.core.open, function (nodes) { + this.open_node(nodes, false, 0); + delete state.core.open; + this.set_state(state, callback); + }); + } + return false; + } + if(state.core.scroll) { + if(state.core.scroll && state.core.scroll.left !== undefined) { + this.element.scrollLeft(state.core.scroll.left); + } + if(state.core.scroll && state.core.scroll.top !== undefined) { + this.element.scrollTop(state.core.scroll.top); + } + delete state.core.scroll; + this.set_state(state, callback); + return false; + } + if(state.core.selected) { + _this = this; + this.deselect_all(); + $.each(state.core.selected, function (i, v) { + _this.select_node(v, false, true); + }); + delete state.core.selected; + this.set_state(state, callback); + return false; + } + for(i in state) { + if(state.hasOwnProperty(i) && i !== "core" && $.inArray(i, this.settings.plugins) === -1) { + delete state[i]; + } + } + if($.isEmptyObject(state.core)) { + delete state.core; + this.set_state(state, callback); + return false; + } + } + if($.isEmptyObject(state)) { + state = null; + if(callback) { callback.call(this); } + /** + * triggered when a `set_state` call completes + * @event + * @name set_state.jstree + */ + this.trigger('set_state'); + return false; + } + return true; + } + return false; + }, + /** + * refreshes the tree - all nodes are reloaded with calls to `load_node`. + * @name refresh() + * @param {Boolean} skip_loading an option to skip showing the loading indicator + * @param {Mixed} forget_state if set to `true` state will not be reapplied, if set to a function (receiving the current state as argument) the result of that function will be used as state + * @trigger refresh.jstree + */ + refresh : function (skip_loading, forget_state) { + this._data.core.state = forget_state === true ? {} : this.get_state(); + if(forget_state && $.isFunction(forget_state)) { this._data.core.state = forget_state.call(this, this._data.core.state); } + this._cnt = 0; + this._model.data = {}; + this._model.data[$.jstree.root] = { + id : $.jstree.root, + parent : null, + parents : [], + children : [], + children_d : [], + state : { loaded : false } + }; + this._data.core.selected = []; + this._data.core.last_clicked = null; + this._data.core.focused = null; + + var c = this.get_container_ul()[0].className; + if(!skip_loading) { + this.element.html("<"+"ul class='"+c+"' role='group'><"+"li class='jstree-initial-node jstree-loading jstree-leaf jstree-last' role='treeitem' id='j"+this._id+"_loading'><"+"a class='jstree-anchor' href='#'>" + this.get_string("Loading ...") + ""); + this.element.attr('aria-activedescendant','j'+this._id+'_loading'); + } + this.load_node($.jstree.root, function (o, s) { + if(s) { + this.get_container_ul()[0].className = c; + if(this._firstChild(this.get_container_ul()[0])) { + this.element.attr('aria-activedescendant',this._firstChild(this.get_container_ul()[0]).id); + } + this.set_state($.extend(true, {}, this._data.core.state), function () { + /** + * triggered when a `refresh` call completes + * @event + * @name refresh.jstree + */ + this.trigger('refresh'); + }); + } + this._data.core.state = null; + }); + }, + /** + * refreshes a node in the tree (reload its children) all opened nodes inside that node are reloaded with calls to `load_node`. + * @name refresh_node(obj) + * @param {mixed} obj the node + * @trigger refresh_node.jstree + */ + refresh_node : function (obj) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var opened = [], to_load = [], s = this._data.core.selected.concat([]); + to_load.push(obj.id); + if(obj.state.opened === true) { opened.push(obj.id); } + this.get_node(obj, true).find('.jstree-open').each(function() { to_load.push(this.id); opened.push(this.id); }); + this._load_nodes(to_load, $.proxy(function (nodes) { + this.open_node(opened, false, 0); + this.select_node(s); + /** + * triggered when a node is refreshed + * @event + * @name refresh_node.jstree + * @param {Object} node - the refreshed node + * @param {Array} nodes - an array of the IDs of the nodes that were reloaded + */ + this.trigger('refresh_node', { 'node' : obj, 'nodes' : nodes }); + }, this), false, true); + }, + /** + * set (change) the ID of a node + * @name set_id(obj, id) + * @param {mixed} obj the node + * @param {String} id the new ID + * @return {Boolean} + * @trigger set_id.jstree + */ + set_id : function (obj, id) { + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + var i, j, m = this._model.data, old = obj.id; + id = id.toString(); + // update parents (replace current ID with new one in children and children_d) + m[obj.parent].children[$.inArray(obj.id, m[obj.parent].children)] = id; + for(i = 0, j = obj.parents.length; i < j; i++) { + m[obj.parents[i]].children_d[$.inArray(obj.id, m[obj.parents[i]].children_d)] = id; + } + // update children (replace current ID with new one in parent and parents) + for(i = 0, j = obj.children.length; i < j; i++) { + m[obj.children[i]].parent = id; + } + for(i = 0, j = obj.children_d.length; i < j; i++) { + m[obj.children_d[i]].parents[$.inArray(obj.id, m[obj.children_d[i]].parents)] = id; + } + i = $.inArray(obj.id, this._data.core.selected); + if(i !== -1) { this._data.core.selected[i] = id; } + // update model and obj itself (obj.id, this._model.data[KEY]) + i = this.get_node(obj.id, true); + if(i) { + i.attr('id', id); //.children('.jstree-anchor').attr('id', id + '_anchor').end().attr('aria-labelledby', id + '_anchor'); + if(this.element.attr('aria-activedescendant') === obj.id) { + this.element.attr('aria-activedescendant', id); + } + } + delete m[obj.id]; + obj.id = id; + obj.li_attr.id = id; + m[id] = obj; + /** + * triggered when a node id value is changed + * @event + * @name set_id.jstree + * @param {Object} node + * @param {String} old the old id + */ + this.trigger('set_id',{ "node" : obj, "new" : obj.id, "old" : old }); + return true; + }, + /** + * get the text value of a node + * @name get_text(obj) + * @param {mixed} obj the node + * @return {String} + */ + get_text : function (obj) { + obj = this.get_node(obj); + return (!obj || obj.id === $.jstree.root) ? false : obj.text; + }, + /** + * set the text value of a node. Used internally, please use `rename_node(obj, val)`. + * @private + * @name set_text(obj, val) + * @param {mixed} obj the node, you can pass an array to set the text on multiple nodes + * @param {String} val the new text value + * @return {Boolean} + * @trigger set_text.jstree + */ + set_text : function (obj, val) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_text(obj[t1], val); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + obj.text = val; + if(this.get_node(obj, true).length) { + this.redraw_node(obj.id); + } + /** + * triggered when a node text value is changed + * @event + * @name set_text.jstree + * @param {Object} obj + * @param {String} text the new value + */ + this.trigger('set_text',{ "obj" : obj, "text" : val }); + return true; + }, + /** + * gets a JSON representation of a node (or the whole tree) + * @name get_json([obj, options]) + * @param {mixed} obj + * @param {Object} options + * @param {Boolean} options.no_state do not return state information + * @param {Boolean} options.no_id do not return ID + * @param {Boolean} options.no_children do not include children + * @param {Boolean} options.no_data do not include node data + * @param {Boolean} options.no_li_attr do not include LI attributes + * @param {Boolean} options.no_a_attr do not include A attributes + * @param {Boolean} options.flat return flat JSON instead of nested + * @return {Object} + */ + get_json : function (obj, options, flat) { + obj = this.get_node(obj || $.jstree.root); + if(!obj) { return false; } + if(options && options.flat && !flat) { flat = []; } + var tmp = { + 'id' : obj.id, + 'text' : obj.text, + 'icon' : this.get_icon(obj), + 'li_attr' : $.extend(true, {}, obj.li_attr), + 'a_attr' : $.extend(true, {}, obj.a_attr), + 'state' : {}, + 'data' : options && options.no_data ? false : $.extend(true, {}, obj.data) + //( this.get_node(obj, true).length ? this.get_node(obj, true).data() : obj.data ), + }, i, j; + if(options && options.flat) { + tmp.parent = obj.parent; + } + else { + tmp.children = []; + } + if(!options || !options.no_state) { + for(i in obj.state) { + if(obj.state.hasOwnProperty(i)) { + tmp.state[i] = obj.state[i]; + } + } + } else { + delete tmp.state; + } + if(options && options.no_li_attr) { + delete tmp.li_attr; + } + if(options && options.no_a_attr) { + delete tmp.a_attr; + } + if(options && options.no_id) { + delete tmp.id; + if(tmp.li_attr && tmp.li_attr.id) { + delete tmp.li_attr.id; + } + if(tmp.a_attr && tmp.a_attr.id) { + delete tmp.a_attr.id; + } + } + if(options && options.flat && obj.id !== $.jstree.root) { + flat.push(tmp); + } + if(!options || !options.no_children) { + for(i = 0, j = obj.children.length; i < j; i++) { + if(options && options.flat) { + this.get_json(obj.children[i], options, flat); + } + else { + tmp.children.push(this.get_json(obj.children[i], options)); + } + } + } + return options && options.flat ? flat : (obj.id === $.jstree.root ? tmp.children : tmp); + }, + /** + * create a new node (do not confuse with load_node) + * @name create_node([par, node, pos, callback, is_loaded]) + * @param {mixed} par the parent node (to create a root node use either "#" (string) or `null`) + * @param {mixed} node the data for the new node (a valid JSON object, or a simple string with the name) + * @param {mixed} pos the index at which to insert the node, "first" and "last" are also supported, default is "last" + * @param {Function} callback a function to be called once the node is created + * @param {Boolean} is_loaded internal argument indicating if the parent node was succesfully loaded + * @return {String} the ID of the newly create node + * @trigger model.jstree, create_node.jstree + */ + create_node : function (par, node, pos, callback, is_loaded) { + if(par === null) { par = $.jstree.root; } + par = this.get_node(par); + if(!par) { return false; } + pos = pos === undefined ? "last" : pos; + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.create_node(par, node, pos, callback, true); }); + } + if(!node) { node = { "text" : this.get_string('New node') }; } + if(typeof node === "string") { node = { "text" : node }; } + if(node.text === undefined) { node.text = this.get_string('New node'); } + var tmp, dpc, i, j; + + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + tmp = this.get_node(par.parent); + pos = $.inArray(par.id, tmp.children); + par = tmp; + break; + case "after" : + tmp = this.get_node(par.parent); + pos = $.inArray(par.id, tmp.children) + 1; + par = tmp; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > par.children.length) { pos = par.children.length; } + if(!node.id) { node.id = true; } + if(!this.check("create_node", node, par, pos)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(node.id === true) { delete node.id; } + node = this._parse_model_from_json(node, par.id, par.parents.concat()); + if(!node) { return false; } + tmp = this.get_node(node); + dpc = []; + dpc.push(node); + dpc = dpc.concat(tmp.children_d); + this.trigger('model', { "nodes" : dpc, "parent" : par.id }); + + par.children_d = par.children_d.concat(dpc); + for(i = 0, j = par.parents.length; i < j; i++) { + this._model.data[par.parents[i]].children_d = this._model.data[par.parents[i]].children_d.concat(dpc); + } + node = tmp; + tmp = []; + for(i = 0, j = par.children.length; i < j; i++) { + tmp[i >= pos ? i+1 : i] = par.children[i]; + } + tmp[pos] = node.id; + par.children = tmp; + + this.redraw_node(par, true); + if(callback) { callback.call(this, this.get_node(node)); } + /** + * triggered when a node is created + * @event + * @name create_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + * @param {Number} position the position of the new node among the parent's children + */ + this.trigger('create_node', { "node" : this.get_node(node), "parent" : par.id, "position" : pos }); + return node.id; + }, + /** + * set the text value of a node + * @name rename_node(obj, val) + * @param {mixed} obj the node, you can pass an array to rename multiple nodes to the same name + * @param {String} val the new text value + * @return {Boolean} + * @trigger rename_node.jstree + */ + rename_node : function (obj, val) { + var t1, t2, old; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.rename_node(obj[t1], val); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + old = obj.text; + if(!this.check("rename_node", obj, this.get_parent(obj), val)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + this.set_text(obj, val); // .apply(this, Array.prototype.slice.call(arguments)) + /** + * triggered when a node is renamed + * @event + * @name rename_node.jstree + * @param {Object} node + * @param {String} text the new value + * @param {String} old the old value + */ + this.trigger('rename_node', { "node" : obj, "text" : val, "old" : old }); + return true; + }, + /** + * remove a node + * @name delete_node(obj) + * @param {mixed} obj the node, you can pass an array to delete multiple nodes + * @return {Boolean} + * @trigger delete_node.jstree, changed.jstree + */ + delete_node : function (obj) { + var t1, t2, par, pos, tmp, i, j, k, l, c, top, lft; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.delete_node(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + par = this.get_node(obj.parent); + pos = $.inArray(obj.id, par.children); + c = false; + if(!this.check("delete_node", obj, par, pos)) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(pos !== -1) { + par.children = $.vakata.array_remove(par.children, pos); + } + tmp = obj.children_d.concat([]); + tmp.push(obj.id); + for(i = 0, j = obj.parents.length; i < j; i++) { + this._model.data[obj.parents[i]].children_d = $.vakata.array_filter(this._model.data[obj.parents[i]].children_d, function (v) { + return $.inArray(v, tmp) === -1; + }); + } + for(k = 0, l = tmp.length; k < l; k++) { + if(this._model.data[tmp[k]].state.selected) { + c = true; + break; + } + } + if (c) { + this._data.core.selected = $.vakata.array_filter(this._data.core.selected, function (v) { + return $.inArray(v, tmp) === -1; + }); + } + /** + * triggered when a node is deleted + * @event + * @name delete_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + */ + this.trigger('delete_node', { "node" : obj, "parent" : par.id }); + if(c) { + this.trigger('changed', { 'action' : 'delete_node', 'node' : obj, 'selected' : this._data.core.selected, 'parent' : par.id }); + } + for(k = 0, l = tmp.length; k < l; k++) { + delete this._model.data[tmp[k]]; + } + if($.inArray(this._data.core.focused, tmp) !== -1) { + this._data.core.focused = null; + top = this.element[0].scrollTop; + lft = this.element[0].scrollLeft; + if(par.id === $.jstree.root) { + if (this._model.data[$.jstree.root].children[0]) { + this.get_node(this._model.data[$.jstree.root].children[0], true).children('.jstree-anchor').focus(); + } + } + else { + this.get_node(par, true).children('.jstree-anchor').focus(); + } + this.element[0].scrollTop = top; + this.element[0].scrollLeft = lft; + } + this.redraw_node(par, true); + return true; + }, + /** + * check if an operation is premitted on the tree. Used internally. + * @private + * @name check(chk, obj, par, pos) + * @param {String} chk the operation to check, can be "create_node", "rename_node", "delete_node", "copy_node" or "move_node" + * @param {mixed} obj the node + * @param {mixed} par the parent + * @param {mixed} pos the position to insert at, or if "rename_node" - the new name + * @param {mixed} more some various additional information, for example if a "move_node" operations is triggered by DND this will be the hovered node + * @return {Boolean} + */ + check : function (chk, obj, par, pos, more) { + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + var tmp = chk.match(/^move_node|copy_node|create_node$/i) ? par : obj, + chc = this.settings.core.check_callback; + if(chk === "move_node" || chk === "copy_node") { + if((!more || !more.is_multi) && (obj.id === par.id || (chk === "move_node" && $.inArray(obj.id, par.children) === pos) || $.inArray(par.id, obj.children_d) !== -1)) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_01', 'reason' : 'Moving parent inside child', 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + } + if(tmp && tmp.data) { tmp = tmp.data; } + if(tmp && tmp.functions && (tmp.functions[chk] === false || tmp.functions[chk] === true)) { + if(tmp.functions[chk] === false) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_02', 'reason' : 'Node data prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return tmp.functions[chk]; + } + if(chc === false || ($.isFunction(chc) && chc.call(this, chk, obj, par, pos, more) === false) || (chc && chc[chk] === false)) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_03', 'reason' : 'User config for core.check_callback prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + return true; + }, + /** + * get the last error + * @name last_error() + * @return {Object} + */ + last_error : function () { + return this._data.core.last_error; + }, + /** + * move a node to a new parent + * @name move_node(obj, par [, pos, callback, is_loaded]) + * @param {mixed} obj the node to move, pass an array to move multiple nodes + * @param {mixed} par the new parent + * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` + * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded + * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn + * @param {Boolean} instance internal parameter indicating if the node comes from another instance + * @trigger move_node.jstree + */ + move_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { + var t1, t2, old_par, old_pos, new_par, old_ins, is_multi, dpc, tmp, i, j, k, l, p; + + par = this.get_node(par); + pos = pos === undefined ? 0 : pos; + if(!par) { return false; } + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.move_node(obj, par, pos, callback, true, false, origin); }); + } + + if($.isArray(obj)) { + if(obj.length === 1) { + obj = obj[0]; + } + else { + //obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + if((tmp = this.move_node(obj[t1], par, pos, callback, is_loaded, false, origin))) { + par = tmp; + pos = "after"; + } + } + this.redraw(); + return true; + } + } + obj = obj && obj.id ? obj : this.get_node(obj); + + if(!obj || obj.id === $.jstree.root) { return false; } + + old_par = (obj.parent || $.jstree.root).toString(); + new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); + old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); + is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); + old_pos = old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1; + if(old_ins && old_ins._id) { + obj = old_ins._model.data[obj.id]; + } + + if(is_multi) { + if((tmp = this.copy_node(obj, par, pos, callback, is_loaded, false, origin))) { + if(old_ins) { old_ins.delete_node(obj); } + return tmp; + } + return false; + } + //var m = this._model.data; + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + pos = $.inArray(par.id, new_par.children); + break; + case "after" : + pos = $.inArray(par.id, new_par.children) + 1; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = new_par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > new_par.children.length) { pos = new_par.children.length; } + if(!this.check("move_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + if(obj.parent === new_par.id) { + dpc = new_par.children.concat(); + tmp = $.inArray(obj.id, dpc); + if(tmp !== -1) { + dpc = $.vakata.array_remove(dpc, tmp); + if(pos > tmp) { pos--; } + } + tmp = []; + for(i = 0, j = dpc.length; i < j; i++) { + tmp[i >= pos ? i+1 : i] = dpc[i]; + } + tmp[pos] = obj.id; + new_par.children = tmp; + this._node_changed(new_par.id); + this.redraw(new_par.id === $.jstree.root); + } + else { + // clean old parent and up + tmp = obj.children_d.concat(); + tmp.push(obj.id); + for(i = 0, j = obj.parents.length; i < j; i++) { + dpc = []; + p = old_ins._model.data[obj.parents[i]].children_d; + for(k = 0, l = p.length; k < l; k++) { + if($.inArray(p[k], tmp) === -1) { + dpc.push(p[k]); + } + } + old_ins._model.data[obj.parents[i]].children_d = dpc; + } + old_ins._model.data[old_par].children = $.vakata.array_remove_item(old_ins._model.data[old_par].children, obj.id); + + // insert into new parent and up + for(i = 0, j = new_par.parents.length; i < j; i++) { + this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(tmp); + } + dpc = []; + for(i = 0, j = new_par.children.length; i < j; i++) { + dpc[i >= pos ? i+1 : i] = new_par.children[i]; + } + dpc[pos] = obj.id; + new_par.children = dpc; + new_par.children_d.push(obj.id); + new_par.children_d = new_par.children_d.concat(obj.children_d); + + // update object + obj.parent = new_par.id; + tmp = new_par.parents.concat(); + tmp.unshift(new_par.id); + p = obj.parents.length; + obj.parents = tmp; + + // update object children + tmp = tmp.concat(); + for(i = 0, j = obj.children_d.length; i < j; i++) { + this._model.data[obj.children_d[i]].parents = this._model.data[obj.children_d[i]].parents.slice(0,p*-1); + Array.prototype.push.apply(this._model.data[obj.children_d[i]].parents, tmp); + } + + if(old_par === $.jstree.root || new_par.id === $.jstree.root) { + this._model.force_full_redraw = true; + } + if(!this._model.force_full_redraw) { + this._node_changed(old_par); + this._node_changed(new_par.id); + } + if(!skip_redraw) { + this.redraw(); + } + } + if(callback) { callback.call(this, obj, new_par, pos); } + /** + * triggered when a node is moved + * @event + * @name move_node.jstree + * @param {Object} node + * @param {String} parent the parent's ID + * @param {Number} position the position of the node among the parent's children + * @param {String} old_parent the old parent of the node + * @param {Number} old_position the old position of the node + * @param {Boolean} is_multi do the node and new parent belong to different instances + * @param {jsTree} old_instance the instance the node came from + * @param {jsTree} new_instance the instance of the new parent + */ + this.trigger('move_node', { "node" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_pos, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); + return obj.id; + }, + /** + * copy a node to a new parent + * @name copy_node(obj, par [, pos, callback, is_loaded]) + * @param {mixed} obj the node to copy, pass an array to copy multiple nodes + * @param {mixed} par the new parent + * @param {mixed} pos the position to insert at (besides integer values, "first" and "last" are supported, as well as "before" and "after"), defaults to integer `0` + * @param {function} callback a function to call once the move is completed, receives 3 arguments - the node, the new parent and the position + * @param {Boolean} is_loaded internal parameter indicating if the parent node has been loaded + * @param {Boolean} skip_redraw internal parameter indicating if the tree should be redrawn + * @param {Boolean} instance internal parameter indicating if the node comes from another instance + * @trigger model.jstree copy_node.jstree + */ + copy_node : function (obj, par, pos, callback, is_loaded, skip_redraw, origin) { + var t1, t2, dpc, tmp, i, j, node, old_par, new_par, old_ins, is_multi; + + par = this.get_node(par); + pos = pos === undefined ? 0 : pos; + if(!par) { return false; } + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return this.load_node(par, function () { this.copy_node(obj, par, pos, callback, true, false, origin); }); + } + + if($.isArray(obj)) { + if(obj.length === 1) { + obj = obj[0]; + } + else { + //obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + if((tmp = this.copy_node(obj[t1], par, pos, callback, is_loaded, true, origin))) { + par = tmp; + pos = "after"; + } + } + this.redraw(); + return true; + } + } + obj = obj && obj.id ? obj : this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + + old_par = (obj.parent || $.jstree.root).toString(); + new_par = (!pos.toString().match(/^(before|after)$/) || par.id === $.jstree.root) ? par : this.get_node(par.parent); + old_ins = origin ? origin : (this._model.data[obj.id] ? this : $.jstree.reference(obj.id)); + is_multi = !old_ins || !old_ins._id || (this._id !== old_ins._id); + + if(old_ins && old_ins._id) { + obj = old_ins._model.data[obj.id]; + } + + if(par.id === $.jstree.root) { + if(pos === "before") { pos = "first"; } + if(pos === "after") { pos = "last"; } + } + switch(pos) { + case "before": + pos = $.inArray(par.id, new_par.children); + break; + case "after" : + pos = $.inArray(par.id, new_par.children) + 1; + break; + case "inside": + case "first": + pos = 0; + break; + case "last": + pos = new_par.children.length; + break; + default: + if(!pos) { pos = 0; } + break; + } + if(pos > new_par.children.length) { pos = new_par.children.length; } + if(!this.check("copy_node", obj, new_par, pos, { 'core' : true, 'origin' : origin, 'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id) })) { + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + node = old_ins ? old_ins.get_json(obj, { no_id : true, no_data : true, no_state : true }) : obj; + if(!node) { return false; } + if(node.id === true) { delete node.id; } + node = this._parse_model_from_json(node, new_par.id, new_par.parents.concat()); + if(!node) { return false; } + tmp = this.get_node(node); + if(obj && obj.state && obj.state.loaded === false) { tmp.state.loaded = false; } + dpc = []; + dpc.push(node); + dpc = dpc.concat(tmp.children_d); + this.trigger('model', { "nodes" : dpc, "parent" : new_par.id }); + + // insert into new parent and up + for(i = 0, j = new_par.parents.length; i < j; i++) { + this._model.data[new_par.parents[i]].children_d = this._model.data[new_par.parents[i]].children_d.concat(dpc); + } + dpc = []; + for(i = 0, j = new_par.children.length; i < j; i++) { + dpc[i >= pos ? i+1 : i] = new_par.children[i]; + } + dpc[pos] = tmp.id; + new_par.children = dpc; + new_par.children_d.push(tmp.id); + new_par.children_d = new_par.children_d.concat(tmp.children_d); + + if(new_par.id === $.jstree.root) { + this._model.force_full_redraw = true; + } + if(!this._model.force_full_redraw) { + this._node_changed(new_par.id); + } + if(!skip_redraw) { + this.redraw(new_par.id === $.jstree.root); + } + if(callback) { callback.call(this, tmp, new_par, pos); } + /** + * triggered when a node is copied + * @event + * @name copy_node.jstree + * @param {Object} node the copied node + * @param {Object} original the original node + * @param {String} parent the parent's ID + * @param {Number} position the position of the node among the parent's children + * @param {String} old_parent the old parent of the node + * @param {Number} old_position the position of the original node + * @param {Boolean} is_multi do the node and new parent belong to different instances + * @param {jsTree} old_instance the instance the node came from + * @param {jsTree} new_instance the instance of the new parent + */ + this.trigger('copy_node', { "node" : tmp, "original" : obj, "parent" : new_par.id, "position" : pos, "old_parent" : old_par, "old_position" : old_ins && old_ins._id && old_par && old_ins._model.data[old_par] && old_ins._model.data[old_par].children ? $.inArray(obj.id, old_ins._model.data[old_par].children) : -1,'is_multi' : (old_ins && old_ins._id && old_ins._id !== this._id), 'is_foreign' : (!old_ins || !old_ins._id), 'old_instance' : old_ins, 'new_instance' : this }); + return tmp.id; + }, + /** + * cut a node (a later call to `paste(obj)` would move the node) + * @name cut(obj) + * @param {mixed} obj multiple objects can be passed using an array + * @trigger cut.jstree + */ + cut : function (obj) { + if(!obj) { obj = this._data.core.selected.concat(); } + if(!$.isArray(obj)) { obj = [obj]; } + if(!obj.length) { return false; } + var tmp = [], o, t1, t2; + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + o = this.get_node(obj[t1]); + if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } + } + if(!tmp.length) { return false; } + ccp_node = tmp; + ccp_inst = this; + ccp_mode = 'move_node'; + /** + * triggered when nodes are added to the buffer for moving + * @event + * @name cut.jstree + * @param {Array} node + */ + this.trigger('cut', { "node" : obj }); + }, + /** + * copy a node (a later call to `paste(obj)` would copy the node) + * @name copy(obj) + * @param {mixed} obj multiple objects can be passed using an array + * @trigger copy.jstree + */ + copy : function (obj) { + if(!obj) { obj = this._data.core.selected.concat(); } + if(!$.isArray(obj)) { obj = [obj]; } + if(!obj.length) { return false; } + var tmp = [], o, t1, t2; + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + o = this.get_node(obj[t1]); + if(o && o.id && o.id !== $.jstree.root) { tmp.push(o); } + } + if(!tmp.length) { return false; } + ccp_node = tmp; + ccp_inst = this; + ccp_mode = 'copy_node'; + /** + * triggered when nodes are added to the buffer for copying + * @event + * @name copy.jstree + * @param {Array} node + */ + this.trigger('copy', { "node" : obj }); + }, + /** + * get the current buffer (any nodes that are waiting for a paste operation) + * @name get_buffer() + * @return {Object} an object consisting of `mode` ("copy_node" or "move_node"), `node` (an array of objects) and `inst` (the instance) + */ + get_buffer : function () { + return { 'mode' : ccp_mode, 'node' : ccp_node, 'inst' : ccp_inst }; + }, + /** + * check if there is something in the buffer to paste + * @name can_paste() + * @return {Boolean} + */ + can_paste : function () { + return ccp_mode !== false && ccp_node !== false; // && ccp_inst._model.data[ccp_node]; + }, + /** + * copy or move the previously cut or copied nodes to a new parent + * @name paste(obj [, pos]) + * @param {mixed} obj the new parent + * @param {mixed} pos the position to insert at (besides integer, "first" and "last" are supported), defaults to integer `0` + * @trigger paste.jstree + */ + paste : function (obj, pos) { + obj = this.get_node(obj); + if(!obj || !ccp_mode || !ccp_mode.match(/^(copy_node|move_node)$/) || !ccp_node) { return false; } + if(this[ccp_mode](ccp_node, obj, pos, false, false, false, ccp_inst)) { + /** + * triggered when paste is invoked + * @event + * @name paste.jstree + * @param {String} parent the ID of the receiving node + * @param {Array} node the nodes in the buffer + * @param {String} mode the performed operation - "copy_node" or "move_node" + */ + this.trigger('paste', { "parent" : obj.id, "node" : ccp_node, "mode" : ccp_mode }); + } + ccp_node = false; + ccp_mode = false; + ccp_inst = false; + }, + /** + * clear the buffer of previously copied or cut nodes + * @name clear_buffer() + * @trigger clear_buffer.jstree + */ + clear_buffer : function () { + ccp_node = false; + ccp_mode = false; + ccp_inst = false; + /** + * triggered when the copy / cut buffer is cleared + * @event + * @name clear_buffer.jstree + */ + this.trigger('clear_buffer'); + }, + /** + * put a node in edit mode (input field to rename the node) + * @name edit(obj [, default_text, callback]) + * @param {mixed} obj + * @param {String} default_text the text to populate the input with (if omitted or set to a non-string value the node's text value is used) + * @param {Function} callback a function to be called once the text box is blurred, it is called in the instance's scope and receives the node, a status parameter (true if the rename is successful, false otherwise) and a boolean indicating if the user cancelled the edit. You can access the node's title using .text + */ + edit : function (obj, default_text, callback) { + var rtl, w, a, s, t, h1, h2, fn, tmp, cancel = false; + obj = this.get_node(obj); + if(!obj) { return false; } + if(this.settings.core.check_callback === false) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'core', 'id' : 'core_07', 'reason' : 'Could not edit node because of check_callback' }; + this.settings.core.error.call(this, this._data.core.last_error); + return false; + } + tmp = obj; + default_text = typeof default_text === 'string' ? default_text : obj.text; + this.set_text(obj, ""); + obj = this._open_to(obj); + tmp.text = default_text; + + rtl = this._data.core.rtl; + w = this.element.width(); + this._data.core.focused = tmp.id; + a = obj.children('.jstree-anchor').focus(); + s = $(''); + /*! + oi = obj.children("i:visible"), + ai = a.children("i:visible"), + w1 = oi.width() * oi.length, + w2 = ai.width() * ai.length, + */ + t = default_text; + h1 = $("<"+"div />", { css : { "position" : "absolute", "top" : "-200px", "left" : (rtl ? "0px" : "-1000px"), "visibility" : "hidden" } }).appendTo("body"); + h2 = $("<"+"input />", { + "value" : t, + "class" : "jstree-rename-input", + // "size" : t.length, + "css" : { + "padding" : "0", + "border" : "1px solid silver", + "box-sizing" : "border-box", + "display" : "inline-block", + "height" : (this._data.core.li_height) + "px", + "lineHeight" : (this._data.core.li_height) + "px", + "width" : "150px" // will be set a bit further down + }, + "blur" : $.proxy(function (e) { + e.stopImmediatePropagation(); + e.preventDefault(); + var i = s.children(".jstree-rename-input"), + v = i.val(), + f = this.settings.core.force_text, + nv; + if(v === "") { v = t; } + h1.remove(); + s.replaceWith(a); + s.remove(); + t = f ? t : $('
          ').append($.parseHTML(t)).html(); + this.set_text(obj, t); + nv = !!this.rename_node(obj, f ? $('
          ').text(v).text() : $('
          ').append($.parseHTML(v)).html()); + if(!nv) { + this.set_text(obj, t); // move this up? and fix #483 + } + this._data.core.focused = tmp.id; + setTimeout($.proxy(function () { + var node = this.get_node(tmp.id, true); + if(node.length) { + this._data.core.focused = tmp.id; + node.children('.jstree-anchor').focus(); + } + }, this), 0); + if(callback) { + callback.call(this, tmp, nv, cancel); + } + h2 = null; + }, this), + "keydown" : function (e) { + var key = e.which; + if(key === 27) { + cancel = true; + this.value = t; + } + if(key === 27 || key === 13 || key === 37 || key === 38 || key === 39 || key === 40 || key === 32) { + e.stopImmediatePropagation(); + } + if(key === 27 || key === 13) { + e.preventDefault(); + this.blur(); + } + }, + "click" : function (e) { e.stopImmediatePropagation(); }, + "mousedown" : function (e) { e.stopImmediatePropagation(); }, + "keyup" : function (e) { + h2.width(Math.min(h1.text("pW" + this.value).width(),w)); + }, + "keypress" : function(e) { + if(e.which === 13) { return false; } + } + }); + fn = { + fontFamily : a.css('fontFamily') || '', + fontSize : a.css('fontSize') || '', + fontWeight : a.css('fontWeight') || '', + fontStyle : a.css('fontStyle') || '', + fontStretch : a.css('fontStretch') || '', + fontVariant : a.css('fontVariant') || '', + letterSpacing : a.css('letterSpacing') || '', + wordSpacing : a.css('wordSpacing') || '' + }; + s.attr('class', a.attr('class')).append(a.contents().clone()).append(h2); + a.replaceWith(s); + h1.css(fn); + h2.css(fn).width(Math.min(h1.text("pW" + h2[0].value).width(),w))[0].select(); + $(document).one('mousedown.jstree touchstart.jstree dnd_start.vakata', function (e) { + if (h2 && e.target !== h2) { + $(h2).blur(); + } + }); + }, + + + /** + * changes the theme + * @name set_theme(theme_name [, theme_url]) + * @param {String} theme_name the name of the new theme to apply + * @param {mixed} theme_url the location of the CSS file for this theme. Omit or set to `false` if you manually included the file. Set to `true` to autoload from the `core.themes.dir` directory. + * @trigger set_theme.jstree + */ + set_theme : function (theme_name, theme_url) { + if(!theme_name) { return false; } + if(theme_url === true) { + var dir = this.settings.core.themes.dir; + if(!dir) { dir = $.jstree.path + '/themes'; } + theme_url = dir + '/' + theme_name + '/style.css'; + } + if(theme_url && $.inArray(theme_url, themes_loaded) === -1) { + $('head').append('<'+'link rel="stylesheet" href="' + theme_url + '" type="text/css" />'); + themes_loaded.push(theme_url); + } + if(this._data.core.themes.name) { + this.element.removeClass('jstree-' + this._data.core.themes.name); + } + this._data.core.themes.name = theme_name; + this.element.addClass('jstree-' + theme_name); + this.element[this.settings.core.themes.responsive ? 'addClass' : 'removeClass' ]('jstree-' + theme_name + '-responsive'); + /** + * triggered when a theme is set + * @event + * @name set_theme.jstree + * @param {String} theme the new theme + */ + this.trigger('set_theme', { 'theme' : theme_name }); + }, + /** + * gets the name of the currently applied theme name + * @name get_theme() + * @return {String} + */ + get_theme : function () { return this._data.core.themes.name; }, + /** + * changes the theme variant (if the theme has variants) + * @name set_theme_variant(variant_name) + * @param {String|Boolean} variant_name the variant to apply (if `false` is used the current variant is removed) + */ + set_theme_variant : function (variant_name) { + if(this._data.core.themes.variant) { + this.element.removeClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); + } + this._data.core.themes.variant = variant_name; + if(variant_name) { + this.element.addClass('jstree-' + this._data.core.themes.name + '-' + this._data.core.themes.variant); + } + }, + /** + * gets the name of the currently applied theme variant + * @name get_theme() + * @return {String} + */ + get_theme_variant : function () { return this._data.core.themes.variant; }, + /** + * shows a striped background on the container (if the theme supports it) + * @name show_stripes() + */ + show_stripes : function () { + this._data.core.themes.stripes = true; + this.get_container_ul().addClass("jstree-striped"); + /** + * triggered when stripes are shown + * @event + * @name show_stripes.jstree + */ + this.trigger('show_stripes'); + }, + /** + * hides the striped background on the container + * @name hide_stripes() + */ + hide_stripes : function () { + this._data.core.themes.stripes = false; + this.get_container_ul().removeClass("jstree-striped"); + /** + * triggered when stripes are hidden + * @event + * @name hide_stripes.jstree + */ + this.trigger('hide_stripes'); + }, + /** + * toggles the striped background on the container + * @name toggle_stripes() + */ + toggle_stripes : function () { if(this._data.core.themes.stripes) { this.hide_stripes(); } else { this.show_stripes(); } }, + /** + * shows the connecting dots (if the theme supports it) + * @name show_dots() + */ + show_dots : function () { + this._data.core.themes.dots = true; + this.get_container_ul().removeClass("jstree-no-dots"); + /** + * triggered when dots are shown + * @event + * @name show_dots.jstree + */ + this.trigger('show_dots'); + }, + /** + * hides the connecting dots + * @name hide_dots() + */ + hide_dots : function () { + this._data.core.themes.dots = false; + this.get_container_ul().addClass("jstree-no-dots"); + /** + * triggered when dots are hidden + * @event + * @name hide_dots.jstree + */ + this.trigger('hide_dots'); + }, + /** + * toggles the connecting dots + * @name toggle_dots() + */ + toggle_dots : function () { if(this._data.core.themes.dots) { this.hide_dots(); } else { this.show_dots(); } }, + /** + * show the node icons + * @name show_icons() + */ + show_icons : function () { + this._data.core.themes.icons = true; + this.get_container_ul().removeClass("jstree-no-icons"); + /** + * triggered when icons are shown + * @event + * @name show_icons.jstree + */ + this.trigger('show_icons'); + }, + /** + * hide the node icons + * @name hide_icons() + */ + hide_icons : function () { + this._data.core.themes.icons = false; + this.get_container_ul().addClass("jstree-no-icons"); + /** + * triggered when icons are hidden + * @event + * @name hide_icons.jstree + */ + this.trigger('hide_icons'); + }, + /** + * toggle the node icons + * @name toggle_icons() + */ + toggle_icons : function () { if(this._data.core.themes.icons) { this.hide_icons(); } else { this.show_icons(); } }, + /** + * show the node ellipsis + * @name show_icons() + */ + show_ellipsis : function () { + this._data.core.themes.ellipsis = true; + this.get_container_ul().addClass("jstree-ellipsis"); + /** + * triggered when ellisis is shown + * @event + * @name show_ellipsis.jstree + */ + this.trigger('show_ellipsis'); + }, + /** + * hide the node ellipsis + * @name hide_ellipsis() + */ + hide_ellipsis : function () { + this._data.core.themes.ellipsis = false; + this.get_container_ul().removeClass("jstree-ellipsis"); + /** + * triggered when ellisis is hidden + * @event + * @name hide_ellipsis.jstree + */ + this.trigger('hide_ellipsis'); + }, + /** + * toggle the node ellipsis + * @name toggle_icons() + */ + toggle_ellipsis : function () { if(this._data.core.themes.ellipsis) { this.hide_ellipsis(); } else { this.show_ellipsis(); } }, + /** + * set the node icon for a node + * @name set_icon(obj, icon) + * @param {mixed} obj + * @param {String} icon the new icon - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class + */ + set_icon : function (obj, icon) { + var t1, t2, dom, old; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_icon(obj[t1], icon); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { return false; } + old = obj.icon; + obj.icon = icon === true || icon === null || icon === undefined || icon === '' ? true : icon; + dom = this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon"); + if(icon === false) { + this.hide_icon(obj); + } + else if(icon === true || icon === null || icon === undefined || icon === '') { + dom.removeClass('jstree-themeicon-custom ' + old).css("background","").removeAttr("rel"); + if(old === false) { this.show_icon(obj); } + } + else if(icon.indexOf("/") === -1 && icon.indexOf(".") === -1) { + dom.removeClass(old).css("background",""); + dom.addClass(icon + ' jstree-themeicon-custom').attr("rel",icon); + if(old === false) { this.show_icon(obj); } + } + else { + dom.removeClass(old).css("background",""); + dom.addClass('jstree-themeicon-custom').css("background", "url('" + icon + "') center center no-repeat").attr("rel",icon); + if(old === false) { this.show_icon(obj); } + } + return true; + }, + /** + * get the node icon for a node + * @name get_icon(obj) + * @param {mixed} obj + * @return {String} + */ + get_icon : function (obj) { + obj = this.get_node(obj); + return (!obj || obj.id === $.jstree.root) ? false : obj.icon; + }, + /** + * hide the icon on an individual node + * @name hide_icon(obj) + * @param {mixed} obj + */ + hide_icon : function (obj) { + var t1, t2; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.hide_icon(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj === $.jstree.root) { return false; } + obj.icon = false; + this.get_node(obj, true).children(".jstree-anchor").children(".jstree-themeicon").addClass('jstree-themeicon-hidden'); + return true; + }, + /** + * show the icon on an individual node + * @name show_icon(obj) + * @param {mixed} obj + */ + show_icon : function (obj) { + var t1, t2, dom; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.show_icon(obj[t1]); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj === $.jstree.root) { return false; } + dom = this.get_node(obj, true); + obj.icon = dom.length ? dom.children(".jstree-anchor").children(".jstree-themeicon").attr('rel') : true; + if(!obj.icon) { obj.icon = true; } + dom.children(".jstree-anchor").children(".jstree-themeicon").removeClass('jstree-themeicon-hidden'); + return true; + } + }; + + // helpers + $.vakata = {}; + // collect attributes + $.vakata.attributes = function(node, with_values) { + node = $(node)[0]; + var attr = with_values ? {} : []; + if(node && node.attributes) { + $.each(node.attributes, function (i, v) { + if($.inArray(v.name.toLowerCase(),['style','contenteditable','hasfocus','tabindex']) !== -1) { return; } + if(v.value !== null && $.trim(v.value) !== '') { + if(with_values) { attr[v.name] = v.value; } + else { attr.push(v.name); } + } + }); + } + return attr; + }; + $.vakata.array_unique = function(array) { + var a = [], i, j, l, o = {}; + for(i = 0, l = array.length; i < l; i++) { + if(o[array[i]] === undefined) { + a.push(array[i]); + o[array[i]] = true; + } + } + return a; + }; + // remove item from array + $.vakata.array_remove = function(array, from) { + array.splice(from, 1); + return array; + //var rest = array.slice((to || from) + 1 || array.length); + //array.length = from < 0 ? array.length + from : from; + //array.push.apply(array, rest); + //return array; + }; + // remove item from array + $.vakata.array_remove_item = function(array, item) { + var tmp = $.inArray(item, array); + return tmp !== -1 ? $.vakata.array_remove(array, tmp) : array; + }; + $.vakata.array_filter = function(c,a,b,d,e) { + if (c.filter) { + return c.filter(a, b); + } + d=[]; + for (e in c) { + if (~~e+''===e+'' && e>=0 && a.call(b,c[e],+e,c)) { + d.push(c[e]); + } + } + return d; + }; +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.massload.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.massload.js new file mode 100644 index 0000000000..d202a3eca5 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.massload.js @@ -0,0 +1,137 @@ +/** + * ### Massload plugin + * + * Adds massload functionality to jsTree, so that multiple nodes can be loaded in a single request (only useful with lazy loading). + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.massload', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.massload) { return; } + + /** + * massload configuration + * + * It is possible to set this to a standard jQuery-like AJAX config. + * In addition to the standard jQuery ajax options here you can supply functions for `data` and `url`, the functions will be run in the current instance's scope and a param will be passed indicating which node IDs need to be loaded, the return value of those functions will be used. + * + * You can also set this to a function, that function will receive the node IDs being loaded as argument and a second param which is a function (callback) which should be called with the result. + * + * Both the AJAX and the function approach rely on the same return value - an object where the keys are the node IDs, and the value is the children of that node as an array. + * + * { + * "id1" : [{ "text" : "Child of ID1", "id" : "c1" }, { "text" : "Another child of ID1", "id" : "c2" }], + * "id2" : [{ "text" : "Child of ID2", "id" : "c3" }] + * } + * + * @name $.jstree.defaults.massload + * @plugin massload + */ + $.jstree.defaults.massload = null; + $.jstree.plugins.massload = function (options, parent) { + this.init = function (el, options) { + this._data.massload = {}; + parent.init.call(this, el, options); + }; + this._load_nodes = function (nodes, callback, is_callback, force_reload) { + var s = this.settings.massload, + nodesString = JSON.stringify(nodes), + toLoad = [], + m = this._model.data, + i, j, dom; + if (!is_callback) { + for(i = 0, j = nodes.length; i < j; i++) { + if(!m[nodes[i]] || ( (!m[nodes[i]].state.loaded && !m[nodes[i]].state.failed) || force_reload) ) { + toLoad.push(nodes[i]); + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.addClass("jstree-loading").attr('aria-busy',true); + } + } + } + this._data.massload = {}; + if (toLoad.length) { + if($.isFunction(s)) { + return s.call(this, toLoad, $.proxy(function (data) { + var i, j; + if(data) { + for(i in data) { + if(data.hasOwnProperty(i)) { + this._data.massload[i] = data[i]; + } + } + } + for(i = 0, j = nodes.length; i < j; i++) { + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + } + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)); + } + if(typeof s === 'object' && s && s.url) { + s = $.extend(true, {}, s); + if($.isFunction(s.url)) { + s.url = s.url.call(this, toLoad); + } + if($.isFunction(s.data)) { + s.data = s.data.call(this, toLoad); + } + return $.ajax(s) + .done($.proxy(function (data,t,x) { + var i, j; + if(data) { + for(i in data) { + if(data.hasOwnProperty(i)) { + this._data.massload[i] = data[i]; + } + } + } + for(i = 0, j = nodes.length; i < j; i++) { + dom = this.get_node(nodes[i], true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + } + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)) + .fail($.proxy(function (f) { + parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }, this)); + } + } + } + return parent._load_nodes.call(this, nodes, callback, is_callback, force_reload); + }; + this._load_node = function (obj, callback) { + var data = this._data.massload[obj.id], + rslt = null, dom; + if(data) { + rslt = this[typeof data === 'string' ? '_append_html_data' : '_append_json_data']( + obj, + typeof data === 'string' ? $($.parseHTML(data)).filter(function () { return this.nodeType !== 3; }) : data, + function (status) { callback.call(this, status); } + ); + dom = this.get_node(obj.id, true); + if (dom && dom.length) { + dom.removeClass("jstree-loading").attr('aria-busy',false); + } + delete this._data.massload[obj.id]; + return rslt; + } + return parent._load_node.call(this, obj, callback); + }; + }; +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.search.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.search.js new file mode 100644 index 0000000000..21c3e7923a --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.search.js @@ -0,0 +1,421 @@ +/** + * ### Search plugin + * + * Adds search functionality to jsTree. + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.search', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.search) { return; } + + /** + * stores all defaults for the search plugin + * @name $.jstree.defaults.search + * @plugin search + */ + $.jstree.defaults.search = { + /** + * a jQuery-like AJAX config, which jstree uses if a server should be queried for results. + * + * A `str` (which is the search string) parameter will be added with the request, an optional `inside` parameter will be added if the search is limited to a node id. The expected result is a JSON array with nodes that need to be opened so that matching nodes will be revealed. + * Leave this setting as `false` to not query the server. You can also set this to a function, which will be invoked in the instance's scope and receive 3 parameters - the search string, the callback to call with the array of nodes to load, and the optional node ID to limit the search to + * @name $.jstree.defaults.search.ajax + * @plugin search + */ + ajax : false, + /** + * Indicates if the search should be fuzzy or not (should `chnd3` match `child node 3`). Default is `false`. + * @name $.jstree.defaults.search.fuzzy + * @plugin search + */ + fuzzy : false, + /** + * Indicates if the search should be case sensitive. Default is `false`. + * @name $.jstree.defaults.search.case_sensitive + * @plugin search + */ + case_sensitive : false, + /** + * Indicates if the tree should be filtered (by default) to show only matching nodes (keep in mind this can be a heavy on large trees in old browsers). + * This setting can be changed at runtime when calling the search method. Default is `false`. + * @name $.jstree.defaults.search.show_only_matches + * @plugin search + */ + show_only_matches : false, + /** + * Indicates if the children of matched element are shown (when show_only_matches is true) + * This setting can be changed at runtime when calling the search method. Default is `false`. + * @name $.jstree.defaults.search.show_only_matches_children + * @plugin search + */ + show_only_matches_children : false, + /** + * Indicates if all nodes opened to reveal the search result, should be closed when the search is cleared or a new search is performed. Default is `true`. + * @name $.jstree.defaults.search.close_opened_onclear + * @plugin search + */ + close_opened_onclear : true, + /** + * Indicates if only leaf nodes should be included in search results. Default is `false`. + * @name $.jstree.defaults.search.search_leaves_only + * @plugin search + */ + search_leaves_only : false, + /** + * If set to a function it wil be called in the instance's scope with two arguments - search string and node (where node will be every node in the structure, so use with caution). + * If the function returns a truthy value the node will be considered a match (it might not be displayed if search_only_leaves is set to true and the node is not a leaf). Default is `false`. + * @name $.jstree.defaults.search.search_callback + * @plugin search + */ + search_callback : false + }; + + $.jstree.plugins.search = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + this._data.search.str = ""; + this._data.search.dom = $(); + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.som = false; + this._data.search.smc = false; + this._data.search.hdn = []; + + this.element + .on("search.jstree", $.proxy(function (e, data) { + if(this._data.search.som && data.res.length) { + var m = this._model.data, i, j, p = [], k, l; + for(i = 0, j = data.res.length; i < j; i++) { + if(m[data.res[i]] && !m[data.res[i]].state.hidden) { + p.push(data.res[i]); + p = p.concat(m[data.res[i]].parents); + if(this._data.search.smc) { + for (k = 0, l = m[data.res[i]].children_d.length; k < l; k++) { + if (m[m[data.res[i]].children_d[k]] && !m[m[data.res[i]].children_d[k]].state.hidden) { + p.push(m[data.res[i]].children_d[k]); + } + } + } + } + } + p = $.vakata.array_remove_item($.vakata.array_unique(p), $.jstree.root); + this._data.search.hdn = this.hide_all(true); + this.show_node(p, true); + this.redraw(true); + } + }, this)) + .on("clear_search.jstree", $.proxy(function (e, data) { + if(this._data.search.som && data.res.length) { + this.show_node(this._data.search.hdn, true); + this.redraw(true); + } + }, this)); + }; + /** + * used to search the tree nodes for a given string + * @name search(str [, skip_async]) + * @param {String} str the search string + * @param {Boolean} skip_async if set to true server will not be queried even if configured + * @param {Boolean} show_only_matches if set to true only matching nodes will be shown (keep in mind this can be very slow on large trees or old browsers) + * @param {mixed} inside an optional node to whose children to limit the search + * @param {Boolean} append if set to true the results of this search are appended to the previous search + * @plugin search + * @trigger search.jstree + */ + this.search = function (str, skip_async, show_only_matches, inside, append, show_only_matches_children) { + if(str === false || $.trim(str.toString()) === "") { + return this.clear_search(); + } + inside = this.get_node(inside); + inside = inside && inside.id ? inside.id : null; + str = str.toString(); + var s = this.settings.search, + a = s.ajax ? s.ajax : false, + m = this._model.data, + f = null, + r = [], + p = [], i, j; + if(this._data.search.res.length && !append) { + this.clear_search(); + } + if(show_only_matches === undefined) { + show_only_matches = s.show_only_matches; + } + if(show_only_matches_children === undefined) { + show_only_matches_children = s.show_only_matches_children; + } + if(!skip_async && a !== false) { + if($.isFunction(a)) { + return a.call(this, str, $.proxy(function (d) { + if(d && d.d) { d = d.d; } + this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { + this.search(str, true, show_only_matches, inside, append, show_only_matches_children); + }); + }, this), inside); + } + else { + a = $.extend({}, a); + if(!a.data) { a.data = {}; } + a.data.str = str; + if(inside) { + a.data.inside = inside; + } + if (this._data.search.lastRequest) { + this._data.search.lastRequest.abort(); + } + this._data.search.lastRequest = $.ajax(a) + .fail($.proxy(function () { + this._data.core.last_error = { 'error' : 'ajax', 'plugin' : 'search', 'id' : 'search_01', 'reason' : 'Could not load search parents', 'data' : JSON.stringify(a) }; + this.settings.core.error.call(this, this._data.core.last_error); + }, this)) + .done($.proxy(function (d) { + if(d && d.d) { d = d.d; } + this._load_nodes(!$.isArray(d) ? [] : $.vakata.array_unique(d), function () { + this.search(str, true, show_only_matches, inside, append, show_only_matches_children); + }); + }, this)); + return this._data.search.lastRequest; + } + } + if(!append) { + this._data.search.str = str; + this._data.search.dom = $(); + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.som = show_only_matches; + this._data.search.smc = show_only_matches_children; + } + + f = new $.vakata.search(str, true, { caseSensitive : s.case_sensitive, fuzzy : s.fuzzy }); + $.each(m[inside ? inside : $.jstree.root].children_d, function (ii, i) { + var v = m[i]; + if(v.text && !v.state.hidden && (!s.search_leaves_only || (v.state.loaded && v.children.length === 0)) && ( (s.search_callback && s.search_callback.call(this, str, v)) || (!s.search_callback && f.search(v.text).isMatch) ) ) { + r.push(i); + p = p.concat(v.parents); + } + }); + if(r.length) { + p = $.vakata.array_unique(p); + for(i = 0, j = p.length; i < j; i++) { + if(p[i] !== $.jstree.root && m[p[i]] && this.open_node(p[i], null, 0) === true) { + this._data.search.opn.push(p[i]); + } + } + if(!append) { + this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #'))); + this._data.search.res = r; + } + else { + this._data.search.dom = this._data.search.dom.add($(this.element[0].querySelectorAll('#' + $.map(r, function (v) { return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); }).join(', #')))); + this._data.search.res = $.vakata.array_unique(this._data.search.res.concat(r)); + } + this._data.search.dom.children(".jstree-anchor").addClass('jstree-search'); + } + /** + * triggered after search is complete + * @event + * @name search.jstree + * @param {jQuery} nodes a jQuery collection of matching nodes + * @param {String} str the search string + * @param {Array} res a collection of objects represeing the matching nodes + * @plugin search + */ + this.trigger('search', { nodes : this._data.search.dom, str : str, res : this._data.search.res, show_only_matches : show_only_matches }); + }; + /** + * used to clear the last search (removes classes and shows all nodes if filtering is on) + * @name clear_search() + * @plugin search + * @trigger clear_search.jstree + */ + this.clear_search = function () { + if(this.settings.search.close_opened_onclear) { + this.close_node(this._data.search.opn, 0); + } + /** + * triggered after search is complete + * @event + * @name clear_search.jstree + * @param {jQuery} nodes a jQuery collection of matching nodes (the result from the last search) + * @param {String} str the search string (the last search string) + * @param {Array} res a collection of objects represeing the matching nodes (the result from the last search) + * @plugin search + */ + this.trigger('clear_search', { 'nodes' : this._data.search.dom, str : this._data.search.str, res : this._data.search.res }); + if(this._data.search.res.length) { + this._data.search.dom = $(this.element[0].querySelectorAll('#' + $.map(this._data.search.res, function (v) { + return "0123456789".indexOf(v[0]) !== -1 ? '\\3' + v[0] + ' ' + v.substr(1).replace($.jstree.idregex,'\\$&') : v.replace($.jstree.idregex,'\\$&'); + }).join(', #'))); + this._data.search.dom.children(".jstree-anchor").removeClass("jstree-search"); + } + this._data.search.str = ""; + this._data.search.res = []; + this._data.search.opn = []; + this._data.search.dom = $(); + }; + + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + if($.inArray(obj.id, this._data.search.res) !== -1) { + var i, j, tmp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + tmp.className += ' jstree-search'; + } + } + } + return obj; + }; + }; + + // helpers + (function ($) { + // from http://kiro.me/projects/fuse.html + $.vakata.search = function(pattern, txt, options) { + options = options || {}; + options = $.extend({}, $.vakata.search.defaults, options); + if(options.fuzzy !== false) { + options.fuzzy = true; + } + pattern = options.caseSensitive ? pattern : pattern.toLowerCase(); + var MATCH_LOCATION = options.location, + MATCH_DISTANCE = options.distance, + MATCH_THRESHOLD = options.threshold, + patternLen = pattern.length, + matchmask, pattern_alphabet, match_bitapScore, search; + if(patternLen > 32) { + options.fuzzy = false; + } + if(options.fuzzy) { + matchmask = 1 << (patternLen - 1); + pattern_alphabet = (function () { + var mask = {}, + i = 0; + for (i = 0; i < patternLen; i++) { + mask[pattern.charAt(i)] = 0; + } + for (i = 0; i < patternLen; i++) { + mask[pattern.charAt(i)] |= 1 << (patternLen - i - 1); + } + return mask; + }()); + match_bitapScore = function (e, x) { + var accuracy = e / patternLen, + proximity = Math.abs(MATCH_LOCATION - x); + if(!MATCH_DISTANCE) { + return proximity ? 1.0 : accuracy; + } + return accuracy + (proximity / MATCH_DISTANCE); + }; + } + search = function (text) { + text = options.caseSensitive ? text : text.toLowerCase(); + if(pattern === text || text.indexOf(pattern) !== -1) { + return { + isMatch: true, + score: 0 + }; + } + if(!options.fuzzy) { + return { + isMatch: false, + score: 1 + }; + } + var i, j, + textLen = text.length, + scoreThreshold = MATCH_THRESHOLD, + bestLoc = text.indexOf(pattern, MATCH_LOCATION), + binMin, binMid, + binMax = patternLen + textLen, + lastRd, start, finish, rd, charMatch, + score = 1, + locations = []; + if (bestLoc !== -1) { + scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); + bestLoc = text.lastIndexOf(pattern, MATCH_LOCATION + patternLen); + if (bestLoc !== -1) { + scoreThreshold = Math.min(match_bitapScore(0, bestLoc), scoreThreshold); + } + } + bestLoc = -1; + for (i = 0; i < patternLen; i++) { + binMin = 0; + binMid = binMax; + while (binMin < binMid) { + if (match_bitapScore(i, MATCH_LOCATION + binMid) <= scoreThreshold) { + binMin = binMid; + } else { + binMax = binMid; + } + binMid = Math.floor((binMax - binMin) / 2 + binMin); + } + binMax = binMid; + start = Math.max(1, MATCH_LOCATION - binMid + 1); + finish = Math.min(MATCH_LOCATION + binMid, textLen) + patternLen; + rd = new Array(finish + 2); + rd[finish + 1] = (1 << i) - 1; + for (j = finish; j >= start; j--) { + charMatch = pattern_alphabet[text.charAt(j - 1)]; + if (i === 0) { + rd[j] = ((rd[j + 1] << 1) | 1) & charMatch; + } else { + rd[j] = ((rd[j + 1] << 1) | 1) & charMatch | (((lastRd[j + 1] | lastRd[j]) << 1) | 1) | lastRd[j + 1]; + } + if (rd[j] & matchmask) { + score = match_bitapScore(i, j - 1); + if (score <= scoreThreshold) { + scoreThreshold = score; + bestLoc = j - 1; + locations.push(bestLoc); + if (bestLoc > MATCH_LOCATION) { + start = Math.max(1, 2 * MATCH_LOCATION - bestLoc); + } else { + break; + } + } + } + } + if (match_bitapScore(i + 1, MATCH_LOCATION) > scoreThreshold) { + break; + } + lastRd = rd; + } + return { + isMatch: bestLoc >= 0, + score: score + }; + }; + return txt === true ? { 'search' : search } : search(txt); + }; + $.vakata.search.defaults = { + location : 0, + distance : 100, + threshold : 0.6, + fuzzy : false, + caseSensitive : false + }; + }($)); + + // include the search plugin by default + // $.jstree.defaults.plugins.push("search"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.sort.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.sort.js new file mode 100644 index 0000000000..94f8b39014 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.sort.js @@ -0,0 +1,74 @@ +/** + * ### Sort plugin + * + * Automatically sorts all siblings in the tree according to a sorting function. + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.sort', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.sort) { return; } + + /** + * the settings function used to sort the nodes. + * It is executed in the tree's context, accepts two nodes as arguments and should return `1` or `-1`. + * @name $.jstree.defaults.sort + * @plugin sort + */ + $.jstree.defaults.sort = function (a, b) { + //return this.get_type(a) === this.get_type(b) ? (this.get_text(a) > this.get_text(b) ? 1 : -1) : this.get_type(a) >= this.get_type(b); + return this.get_text(a) > this.get_text(b) ? 1 : -1; + }; + $.jstree.plugins.sort = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this.element + .on("model.jstree", $.proxy(function (e, data) { + this.sort(data.parent, true); + }, this)) + .on("rename_node.jstree create_node.jstree", $.proxy(function (e, data) { + this.sort(data.parent || data.node.parent, false); + this.redraw_node(data.parent || data.node.parent, true); + }, this)) + .on("move_node.jstree copy_node.jstree", $.proxy(function (e, data) { + this.sort(data.parent, false); + this.redraw_node(data.parent, true); + }, this)); + }; + /** + * used to sort a node's children + * @private + * @name sort(obj [, deep]) + * @param {mixed} obj the node + * @param {Boolean} deep if set to `true` nodes are sorted recursively. + * @plugin sort + * @trigger search.jstree + */ + this.sort = function (obj, deep) { + var i, j; + obj = this.get_node(obj); + if(obj && obj.children && obj.children.length) { + obj.children.sort($.proxy(this.settings.sort, this)); + if(deep) { + for(i = 0, j = obj.children_d.length; i < j; i++) { + this.sort(obj.children_d[i], false); + } + } + } + }; + }; + + // include the sort plugin by default + // $.jstree.defaults.plugins.push("sort"); +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.state.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.state.js new file mode 100644 index 0000000000..f87cf4fb64 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.state.js @@ -0,0 +1,125 @@ +/** + * ### State plugin + * + * Saves the state of the tree (selected nodes, opened nodes) on the user's computer using available options (localStorage, cookies, etc) + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.state', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.state) { return; } + + var to = false; + /** + * stores all defaults for the state plugin + * @name $.jstree.defaults.state + * @plugin state + */ + $.jstree.defaults.state = { + /** + * A string for the key to use when saving the current tree (change if using multiple trees in your project). Defaults to `jstree`. + * @name $.jstree.defaults.state.key + * @plugin state + */ + key : 'jstree', + /** + * A space separated list of events that trigger a state save. Defaults to `changed.jstree open_node.jstree close_node.jstree`. + * @name $.jstree.defaults.state.events + * @plugin state + */ + events : 'changed.jstree open_node.jstree close_node.jstree check_node.jstree uncheck_node.jstree', + /** + * Time in milliseconds after which the state will expire. Defaults to 'false' meaning - no expire. + * @name $.jstree.defaults.state.ttl + * @plugin state + */ + ttl : false, + /** + * A function that will be executed prior to restoring state with one argument - the state object. Can be used to clear unwanted parts of the state. + * @name $.jstree.defaults.state.filter + * @plugin state + */ + filter : false + }; + $.jstree.plugins.state = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + var bind = $.proxy(function () { + this.element.on(this.settings.state.events, $.proxy(function () { + if(to) { clearTimeout(to); } + to = setTimeout($.proxy(function () { this.save_state(); }, this), 100); + }, this)); + /** + * triggered when the state plugin is finished restoring the state (and immediately after ready if there is no state to restore). + * @event + * @name state_ready.jstree + * @plugin state + */ + this.trigger('state_ready'); + }, this); + this.element + .on("ready.jstree", $.proxy(function (e, data) { + this.element.one("restore_state.jstree", bind); + if(!this.restore_state()) { bind(); } + }, this)); + }; + /** + * save the state + * @name save_state() + * @plugin state + */ + this.save_state = function () { + var st = { 'state' : this.get_state(), 'ttl' : this.settings.state.ttl, 'sec' : +(new Date()) }; + $.vakata.storage.set(this.settings.state.key, JSON.stringify(st)); + }; + /** + * restore the state from the user's computer + * @name restore_state() + * @plugin state + */ + this.restore_state = function () { + var k = $.vakata.storage.get(this.settings.state.key); + if(!!k) { try { k = JSON.parse(k); } catch(ex) { return false; } } + if(!!k && k.ttl && k.sec && +(new Date()) - k.sec > k.ttl) { return false; } + if(!!k && k.state) { k = k.state; } + if(!!k && $.isFunction(this.settings.state.filter)) { k = this.settings.state.filter.call(this, k); } + if(!!k) { + this.element.one("set_state.jstree", function (e, data) { data.instance.trigger('restore_state', { 'state' : $.extend(true, {}, k) }); }); + this.set_state(k); + return true; + } + return false; + }; + /** + * clear the state on the user's computer + * @name clear_state() + * @plugin state + */ + this.clear_state = function () { + return $.vakata.storage.del(this.settings.state.key); + }; + }; + + (function ($, undefined) { + $.vakata.storage = { + // simply specifying the functions in FF throws an error + set : function (key, val) { return window.localStorage.setItem(key, val); }, + get : function (key) { return window.localStorage.getItem(key); }, + del : function (key) { return window.localStorage.removeItem(key); } + }; + }($)); + + // include the state plugin by default + // $.jstree.defaults.plugins.push("state"); +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.types.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.types.js new file mode 100644 index 0000000000..706829a9d0 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.types.js @@ -0,0 +1,372 @@ +/** + * ### Types plugin + * + * Makes it possible to add predefined types for groups of nodes, which make it possible to easily control nesting rules and icon for each group. + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.types', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.types) { return; } + + /** + * An object storing all types as key value pairs, where the key is the type name and the value is an object that could contain following keys (all optional). + * + * * `max_children` the maximum number of immediate children this node type can have. Do not specify or set to `-1` for unlimited. + * * `max_depth` the maximum number of nesting this node type can have. A value of `1` would mean that the node can have children, but no grandchildren. Do not specify or set to `-1` for unlimited. + * * `valid_children` an array of node type strings, that nodes of this type can have as children. Do not specify or set to `-1` for no limits. + * * `icon` a string - can be a path to an icon or a className, if using an image that is in the current directory use a `./` prefix, otherwise it will be detected as a class. Omit to use the default icon from your theme. + * * `li_attr` an object of values which will be used to add HTML attributes on the resulting LI DOM node (merged with the node's own data) + * * `a_attr` an object of values which will be used to add HTML attributes on the resulting A DOM node (merged with the node's own data) + * + * There are two predefined types: + * + * * `#` represents the root of the tree, for example `max_children` would control the maximum number of root nodes. + * * `default` represents the default node - any settings here will be applied to all nodes that do not have a type specified. + * + * @name $.jstree.defaults.types + * @plugin types + */ + $.jstree.defaults.types = { + 'default' : {} + }; + $.jstree.defaults.types[$.jstree.root] = {}; + + $.jstree.plugins.types = function (options, parent) { + this.init = function (el, options) { + var i, j; + if(options && options.types && options.types['default']) { + for(i in options.types) { + if(i !== "default" && i !== $.jstree.root && options.types.hasOwnProperty(i)) { + for(j in options.types['default']) { + if(options.types['default'].hasOwnProperty(j) && options.types[i][j] === undefined) { + options.types[i][j] = options.types['default'][j]; + } + } + } + } + } + parent.init.call(this, el, options); + this._model.data[$.jstree.root].type = $.jstree.root; + }; + this.refresh = function (skip_loading, forget_state) { + parent.refresh.call(this, skip_loading, forget_state); + this._model.data[$.jstree.root].type = $.jstree.root; + }; + this.bind = function () { + this.element + .on('model.jstree', $.proxy(function (e, data) { + var m = this._model.data, + dpc = data.nodes, + t = this.settings.types, + i, j, c = 'default', k; + for(i = 0, j = dpc.length; i < j; i++) { + c = 'default'; + if(m[dpc[i]].original && m[dpc[i]].original.type && t[m[dpc[i]].original.type]) { + c = m[dpc[i]].original.type; + } + if(m[dpc[i]].data && m[dpc[i]].data.jstree && m[dpc[i]].data.jstree.type && t[m[dpc[i]].data.jstree.type]) { + c = m[dpc[i]].data.jstree.type; + } + m[dpc[i]].type = c; + if(m[dpc[i]].icon === true && t[c].icon !== undefined) { + m[dpc[i]].icon = t[c].icon; + } + if(t[c].li_attr !== undefined && typeof t[c].li_attr === 'object') { + for (k in t[c].li_attr) { + if (t[c].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[dpc[i]].li_attr[k] === undefined) { + m[dpc[i]].li_attr[k] = t[c].li_attr[k]; + } + else if (k === 'class') { + m[dpc[i]].li_attr['class'] = t[c].li_attr['class'] + ' ' + m[dpc[i]].li_attr['class']; + } + } + } + } + if(t[c].a_attr !== undefined && typeof t[c].a_attr === 'object') { + for (k in t[c].a_attr) { + if (t[c].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[dpc[i]].a_attr[k] === undefined) { + m[dpc[i]].a_attr[k] = t[c].a_attr[k]; + } + else if (k === 'href' && m[dpc[i]].a_attr[k] === '#') { + m[dpc[i]].a_attr['href'] = t[c].a_attr['href']; + } + else if (k === 'class') { + m[dpc[i]].a_attr['class'] = t[c].a_attr['class'] + ' ' + m[dpc[i]].a_attr['class']; + } + } + } + } + } + m[$.jstree.root].type = $.jstree.root; + }, this)); + parent.bind.call(this); + }; + this.get_json = function (obj, options, flat) { + var i, j, + m = this._model.data, + opt = options ? $.extend(true, {}, options, {no_id:false}) : {}, + tmp = parent.get_json.call(this, obj, opt, flat); + if(tmp === false) { return false; } + if($.isArray(tmp)) { + for(i = 0, j = tmp.length; i < j; i++) { + tmp[i].type = tmp[i].id && m[tmp[i].id] && m[tmp[i].id].type ? m[tmp[i].id].type : "default"; + if(options && options.no_id) { + delete tmp[i].id; + if(tmp[i].li_attr && tmp[i].li_attr.id) { + delete tmp[i].li_attr.id; + } + if(tmp[i].a_attr && tmp[i].a_attr.id) { + delete tmp[i].a_attr.id; + } + } + } + } + else { + tmp.type = tmp.id && m[tmp.id] && m[tmp.id].type ? m[tmp.id].type : "default"; + if(options && options.no_id) { + tmp = this._delete_ids(tmp); + } + } + return tmp; + }; + this._delete_ids = function (tmp) { + if($.isArray(tmp)) { + for(var i = 0, j = tmp.length; i < j; i++) { + tmp[i] = this._delete_ids(tmp[i]); + } + return tmp; + } + delete tmp.id; + if(tmp.li_attr && tmp.li_attr.id) { + delete tmp.li_attr.id; + } + if(tmp.a_attr && tmp.a_attr.id) { + delete tmp.a_attr.id; + } + if(tmp.children && $.isArray(tmp.children)) { + tmp.children = this._delete_ids(tmp.children); + } + return tmp; + }; + this.check = function (chk, obj, par, pos, more) { + if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + var m = obj && obj.id ? (more && more.origin ? more.origin : $.jstree.reference(obj.id)) : null, tmp, d, i, j; + m = m && m._model && m._model.data ? m._model.data : null; + switch(chk) { + case "create_node": + case "move_node": + case "copy_node": + if(chk !== 'move_node' || $.inArray(obj.id, par.children) === -1) { + tmp = this.get_rules(par); + if(tmp.max_children !== undefined && tmp.max_children !== -1 && tmp.max_children === par.children.length) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_01', 'reason' : 'max_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + if(tmp.valid_children !== undefined && tmp.valid_children !== -1 && $.inArray((obj.type || 'default'), tmp.valid_children) === -1) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_02', 'reason' : 'valid_children prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + if(m && obj.children_d && obj.parents) { + d = 0; + for(i = 0, j = obj.children_d.length; i < j; i++) { + d = Math.max(d, m[obj.children_d[i]].parents.length); + } + d = d - obj.parents.length + 1; + } + if(d <= 0 || d === undefined) { d = 1; } + do { + if(tmp.max_depth !== undefined && tmp.max_depth !== -1 && tmp.max_depth < d) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'types', 'id' : 'types_03', 'reason' : 'max_depth prevents function: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + return false; + } + par = this.get_node(par.parent); + tmp = this.get_rules(par); + d++; + } while(par); + } + break; + } + return true; + }; + /** + * used to retrieve the type settings object for a node + * @name get_rules(obj) + * @param {mixed} obj the node to find the rules for + * @return {Object} + * @plugin types + */ + this.get_rules = function (obj) { + obj = this.get_node(obj); + if(!obj) { return false; } + var tmp = this.get_type(obj, true); + if(tmp.max_depth === undefined) { tmp.max_depth = -1; } + if(tmp.max_children === undefined) { tmp.max_children = -1; } + if(tmp.valid_children === undefined) { tmp.valid_children = -1; } + return tmp; + }; + /** + * used to retrieve the type string or settings object for a node + * @name get_type(obj [, rules]) + * @param {mixed} obj the node to find the rules for + * @param {Boolean} rules if set to `true` instead of a string the settings object will be returned + * @return {String|Object} + * @plugin types + */ + this.get_type = function (obj, rules) { + obj = this.get_node(obj); + return (!obj) ? false : ( rules ? $.extend({ 'type' : obj.type }, this.settings.types[obj.type]) : obj.type); + }; + /** + * used to change a node's type + * @name set_type(obj, type) + * @param {mixed} obj the node to change + * @param {String} type the new type + * @plugin types + */ + this.set_type = function (obj, type) { + var m = this._model.data, t, t1, t2, old_type, old_icon, k, d, a; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.set_type(obj[t1], type); + } + return true; + } + t = this.settings.types; + obj = this.get_node(obj); + if(!t[type] || !obj) { return false; } + d = this.get_node(obj, true); + if (d && d.length) { + a = d.children('.jstree-anchor'); + } + old_type = obj.type; + old_icon = this.get_icon(obj); + obj.type = type; + if(old_icon === true || !t[old_type] || (t[old_type].icon !== undefined && old_icon === t[old_type].icon)) { + this.set_icon(obj, t[type].icon !== undefined ? t[type].icon : true); + } + + // remove old type props + if(t[old_type] && t[old_type].li_attr !== undefined && typeof t[old_type].li_attr === 'object') { + for (k in t[old_type].li_attr) { + if (t[old_type].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (k === 'class') { + m[obj.id].li_attr['class'] = (m[obj.id].li_attr['class'] || '').replace(t[old_type].li_attr[k], ''); + if (d) { d.removeClass(t[old_type].li_attr[k]); } + } + else if (m[obj.id].li_attr[k] === t[old_type].li_attr[k]) { + m[obj.id].li_attr[k] = null; + if (d) { d.removeAttr(k); } + } + } + } + } + if(t[old_type] && t[old_type].a_attr !== undefined && typeof t[old_type].a_attr === 'object') { + for (k in t[old_type].a_attr) { + if (t[old_type].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (k === 'class') { + m[obj.id].a_attr['class'] = (m[obj.id].a_attr['class'] || '').replace(t[old_type].a_attr[k], ''); + if (a) { a.removeClass(t[old_type].a_attr[k]); } + } + else if (m[obj.id].a_attr[k] === t[old_type].a_attr[k]) { + if (k === 'href') { + m[obj.id].a_attr[k] = '#'; + if (a) { a.attr('href', '#'); } + } + else { + delete m[obj.id].a_attr[k]; + if (a) { a.removeAttr(k); } + } + } + } + } + } + + // add new props + if(t[type].li_attr !== undefined && typeof t[type].li_attr === 'object') { + for (k in t[type].li_attr) { + if (t[type].li_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[obj.id].li_attr[k] === undefined) { + m[obj.id].li_attr[k] = t[type].li_attr[k]; + if (d) { + if (k === 'class') { + d.addClass(t[type].li_attr[k]); + } + else { + d.attr(k, t[type].li_attr[k]); + } + } + } + else if (k === 'class') { + m[obj.id].li_attr['class'] = t[type].li_attr[k] + ' ' + m[obj.id].li_attr['class']; + if (d) { d.addClass(t[type].li_attr[k]); } + } + } + } + } + if(t[type].a_attr !== undefined && typeof t[type].a_attr === 'object') { + for (k in t[type].a_attr) { + if (t[type].a_attr.hasOwnProperty(k)) { + if (k === 'id') { + continue; + } + else if (m[obj.id].a_attr[k] === undefined) { + m[obj.id].a_attr[k] = t[type].a_attr[k]; + if (a) { + if (k === 'class') { + a.addClass(t[type].a_attr[k]); + } + else { + a.attr(k, t[type].a_attr[k]); + } + } + } + else if (k === 'href' && m[obj.id].a_attr[k] === '#') { + m[obj.id].a_attr['href'] = t[type].a_attr['href']; + if (a) { a.attr('href', t[type].a_attr['href']); } + } + else if (k === 'class') { + m[obj.id].a_attr['class'] = t[type].a_attr['class'] + ' ' + m[obj.id].a_attr['class']; + if (a) { a.addClass(t[type].a_attr[k]); } + } + } + } + } + + return true; + }; + }; + // include the types plugin by default + // $.jstree.defaults.plugins.push("types"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.unique.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.unique.js new file mode 100644 index 0000000000..bfe2f1b8f8 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.unique.js @@ -0,0 +1,121 @@ +/** + * ### Unique plugin + * + * Enforces that no nodes with the same name can coexist as siblings. + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.unique', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.unique) { return; } + + /** + * stores all defaults for the unique plugin + * @name $.jstree.defaults.unique + * @plugin unique + */ + $.jstree.defaults.unique = { + /** + * Indicates if the comparison should be case sensitive. Default is `false`. + * @name $.jstree.defaults.unique.case_sensitive + * @plugin unique + */ + case_sensitive : false, + /** + * A callback executed in the instance's scope when a new node is created and the name is already taken, the two arguments are the conflicting name and the counter. The default will produce results like `New node (2)`. + * @name $.jstree.defaults.unique.duplicate + * @plugin unique + */ + duplicate : function (name, counter) { + return name + ' (' + counter + ')'; + } + }; + + $.jstree.plugins.unique = function (options, parent) { + this.check = function (chk, obj, par, pos, more) { + if(parent.check.call(this, chk, obj, par, pos, more) === false) { return false; } + obj = obj && obj.id ? obj : this.get_node(obj); + par = par && par.id ? par : this.get_node(par); + if(!par || !par.children) { return true; } + var n = chk === "rename_node" ? pos : obj.text, + c = [], + s = this.settings.unique.case_sensitive, + m = this._model.data, i, j; + for(i = 0, j = par.children.length; i < j; i++) { + c.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); + } + if(!s) { n = n.toLowerCase(); } + switch(chk) { + case "delete_node": + return true; + case "rename_node": + i = ($.inArray(n, c) === -1 || (obj.text && obj.text[ s ? 'toString' : 'toLowerCase']() === n)); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_01', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "create_node": + i = ($.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_04', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "copy_node": + i = ($.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_02', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + case "move_node": + i = ( (obj.parent === par.id && (!more || !more.is_multi)) || $.inArray(n, c) === -1); + if(!i) { + this._data.core.last_error = { 'error' : 'check', 'plugin' : 'unique', 'id' : 'unique_03', 'reason' : 'Child with name ' + n + ' already exists. Preventing: ' + chk, 'data' : JSON.stringify({ 'chk' : chk, 'pos' : pos, 'obj' : obj && obj.id ? obj.id : false, 'par' : par && par.id ? par.id : false }) }; + } + return i; + } + return true; + }; + this.create_node = function (par, node, pos, callback, is_loaded) { + if(!node || node.text === undefined) { + if(par === null) { + par = $.jstree.root; + } + par = this.get_node(par); + if(!par) { + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + } + pos = pos === undefined ? "last" : pos; + if(!pos.toString().match(/^(before|after)$/) && !is_loaded && !this.is_loaded(par)) { + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + } + if(!node) { node = {}; } + var tmp, n, dpc, i, j, m = this._model.data, s = this.settings.unique.case_sensitive, cb = this.settings.unique.duplicate; + n = tmp = this.get_string('New node'); + dpc = []; + for(i = 0, j = par.children.length; i < j; i++) { + dpc.push(s ? m[par.children[i]].text : m[par.children[i]].text.toLowerCase()); + } + i = 1; + while($.inArray(s ? n : n.toLowerCase(), dpc) !== -1) { + n = cb.call(this, tmp, (++i)).toString(); + } + node.text = n; + } + return parent.create_node.call(this, par, node, pos, callback, is_loaded); + }; + }; + + // include the unique plugin by default + // $.jstree.defaults.plugins.push("unique"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.wholerow.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.wholerow.js new file mode 100644 index 0000000000..e8fe3e6d54 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/jstree.wholerow.js @@ -0,0 +1,122 @@ +/** + * ### Wholerow plugin + * + * Makes each node appear block level. Making selection easier. May cause slow down for large trees in old browsers. + */ +/*globals jQuery, define, exports, require */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.wholerow', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.wholerow) { return; } + + var div = document.createElement('DIV'); + div.setAttribute('unselectable','on'); + div.setAttribute('role','presentation'); + div.className = 'jstree-wholerow'; + div.innerHTML = ' '; + $.jstree.plugins.wholerow = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + + this.element + .on('ready.jstree set_state.jstree', $.proxy(function () { + this.hide_dots(); + }, this)) + .on("init.jstree loading.jstree ready.jstree", $.proxy(function () { + //div.style.height = this._data.core.li_height + 'px'; + this.get_container_ul().addClass('jstree-wholerow-ul'); + }, this)) + .on("deselect_all.jstree", $.proxy(function (e, data) { + this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); + }, this)) + .on("changed.jstree", $.proxy(function (e, data) { + this.element.find('.jstree-wholerow-clicked').removeClass('jstree-wholerow-clicked'); + var tmp = false, i, j; + for(i = 0, j = data.selected.length; i < j; i++) { + tmp = this.get_node(data.selected[i], true); + if(tmp && tmp.length) { + tmp.children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); + } + } + }, this)) + .on("open_node.jstree", $.proxy(function (e, data) { + this.get_node(data.node, true).find('.jstree-clicked').parent().children('.jstree-wholerow').addClass('jstree-wholerow-clicked'); + }, this)) + .on("hover_node.jstree dehover_node.jstree", $.proxy(function (e, data) { + if(e.type === "hover_node" && this.is_disabled(data.node)) { return; } + this.get_node(data.node, true).children('.jstree-wholerow')[e.type === "hover_node"?"addClass":"removeClass"]('jstree-wholerow-hovered'); + }, this)) + .on("contextmenu.jstree", ".jstree-wholerow", $.proxy(function (e) { + if (this._data.contextmenu) { + e.preventDefault(); + var tmp = $.Event('contextmenu', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey, pageX : e.pageX, pageY : e.pageY }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp); + } + }, this)) + /*! + .on("mousedown.jstree touchstart.jstree", ".jstree-wholerow", function (e) { + if(e.target === e.currentTarget) { + var a = $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor"); + e.target = a[0]; + a.trigger(e); + } + }) + */ + .on("click.jstree", ".jstree-wholerow", function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }) + .on("dblclick.jstree", ".jstree-wholerow", function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('dblclick', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }) + .on("click.jstree", ".jstree-leaf > .jstree-ocl", $.proxy(function (e) { + e.stopImmediatePropagation(); + var tmp = $.Event('click', { metaKey : e.metaKey, ctrlKey : e.ctrlKey, altKey : e.altKey, shiftKey : e.shiftKey }); + $(e.currentTarget).closest(".jstree-node").children(".jstree-anchor").first().trigger(tmp).focus(); + }, this)) + .on("mouseover.jstree", ".jstree-wholerow, .jstree-icon", $.proxy(function (e) { + e.stopImmediatePropagation(); + if(!this.is_disabled(e.currentTarget)) { + this.hover_node(e.currentTarget); + } + return false; + }, this)) + .on("mouseleave.jstree", ".jstree-node", $.proxy(function (e) { + this.dehover_node(e.currentTarget); + }, this)); + }; + this.teardown = function () { + if(this.settings.wholerow) { + this.element.find(".jstree-wholerow").remove(); + } + parent.teardown.call(this); + }; + this.redraw_node = function(obj, deep, callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var tmp = div.cloneNode(true); + //tmp.style.height = this._data.core.li_height + 'px'; + if($.inArray(obj.id, this._data.core.selected) !== -1) { tmp.className += ' jstree-wholerow-clicked'; } + if(this._data.core.focused && this._data.core.focused === obj.id) { tmp.className += ' jstree-wholerow-hovered'; } + obj.insertBefore(tmp, obj.childNodes[0]); + } + return obj; + }; + }; + // include the wholerow plugin by default + // $.jstree.defaults.plugins.push("wholerow"); +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/misc.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/misc.js new file mode 100644 index 0000000000..d2d789b1f3 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/misc.js @@ -0,0 +1,601 @@ +/* global jQuery */ + +// disable all events +(function ($, undefined) { + "use strict"; + $.jstree.plugins.trigger = function (options, parent) { + this.init = function (el, options) { + // do not forget parent + parent.init.call(this, el, options); + this._data.trigger.disabled = false; + }; + this.trigger = function (ev, data) { + if(!this._data.trigger.disabled) { + parent.trigger.call(this, ev, data); + } + }; + this.disable_events = function () { this._data.trigger.disabled = true; }; + this.enable_events = function () { this._data.trigger.disabled = false; }; + }; +})(jQuery); + +// mapping +(function ($, undefined) { + "use strict"; + // use this if you need any options + $.jstree.defaults.mapper = { + option_key : "option_value" + }; + $.jstree.plugins.mapper = function () { + this._parse_model_from_json = function (d, p, ps) { + // d is the node from the server, it will be called recursively for children, + // so you do not need to process at once + /* // for example + for(var i in d) { + if(d.hasOwnProperty(i)) { + d[i.toLowerCase()] = d[i]; + } + } + */ + return parent._parse_model_from_json.call(this, d, p, ps); + }; + }; +})(jQuery); + +// no hover +(function ($, undefined) { + "use strict"; + $.jstree.plugins.nohover = function () { + this.hover_node = $.noop; + }; +})(jQuery); + +// force multiple select +(function ($, undefined) { + "use strict"; + $.jstree.defaults.multiselect = {}; + $.jstree.plugins.multiselect = function (options, parent) { + this.activate_node = function (obj, e) { + e.ctrlKey = true; + parent.activate_node.call(this, obj, e); + }; + }; +})(jQuery); + +// real checkboxes +(function ($, undefined) { + "use strict"; + + var inp = document.createElement("INPUT"); + inp.type = "checkbox"; + inp.className = "jstree-checkbox jstree-realcheckbox"; + + $.jstree.defaults.realcheckboxes = {}; + + $.jstree.plugins.realcheckboxes = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this._data.realcheckboxes.uto = false; + this.element + .on('changed.jstree uncheck_node.jstree check_node.jstree uncheck_all.jstree check_all.jstree move_node.jstree copy_node.jstree redraw.jstree open_node.jstree ready.jstree loaded.jstree', $.proxy(function () { + // only if undetermined is in setting + if(this._data.realcheckboxes.uto) { clearTimeout(this._data.realcheckboxes.uto); } + this._data.realcheckboxes.uto = setTimeout($.proxy(this._realcheckboxes, this), 50); + }, this)); + }; + this.redraw_node = function(obj, deep, callback, force_draw) { + obj = parent.redraw_node.call(this, obj, deep, callback, force_draw); + if(obj) { + var i, j, tmp = null, chk = inp.cloneNode(true); + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + for(i = 0, j = tmp.childNodes.length; i < j; i++) { + if(tmp.childNodes[i] && tmp.childNodes[i].className && tmp.childNodes[i].className.indexOf("jstree-checkbox") !== -1) { + tmp = tmp.childNodes[i]; + break; + } + } + } + if(tmp && tmp.tagName === "I") { + tmp.style.backgroundColor = "transparent"; + tmp.style.backgroundImage = "none"; + tmp.appendChild(chk); + } + } + return obj; + }; + this._realcheckboxes = function () { + var ts = this.settings.checkbox.tie_selection; + console.log(ts); + $('.jstree-realcheckbox').each(function () { + this.checked = (!ts && this.parentNode.parentNode.className.indexOf("jstree-checked") !== -1) || (ts && this.parentNode.parentNode.className.indexOf('jstree-clicked') !== -1); + this.indeterminate = this.parentNode.className.indexOf("jstree-undetermined") !== -1; + this.disabled = this.parentNode.parentNode.className.indexOf("disabled") !== -1; + }); + }; + }; +})(jQuery); + +// no state +(function ($, undefined) { + "use strict"; + $.jstree.plugins.nostate = function () { + this.set_state = function (state, callback) { + if(callback) { callback.call(this); } + this.trigger('set_state'); + }; + }; +})(jQuery); + +// no selected in state +(function ($, undefined) { + "use strict"; + $.jstree.plugins.noselectedstate = function (options, parent) { + this.get_state = function () { + var state = parent.get_state.call(this); + delete state.core.selected; + return state; + }; + }; +})(jQuery); + +// additional icon on node (outside of anchor) +(function ($, undefined) { + "use strict"; + var img = document.createElement('IMG'); + //img.src = "http://www.dpcd.vic.gov.au/__data/assets/image/0004/30667/help.gif"; + img.className = "jstree-questionmark"; + + $.jstree.defaults.questionmark = $.noop; + $.jstree.plugins.questionmark = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this.element + .on("click.jstree", ".jstree-questionmark", $.proxy(function (e) { + e.stopImmediatePropagation(); + this.settings.questionmark.call(this, this.get_node(e.target)); + }, this)); + }; + this.teardown = function () { + if(this.settings.questionmark) { + this.element.find(".jstree-questionmark").remove(); + } + parent.teardown.call(this); + }; + this.redraw_node = function(obj, deep, callback, force_draw) { + obj = parent.redraw_node.call(this, obj, deep, callback, force_draw); + if(obj) { + var tmp = img.cloneNode(true); + obj.insertBefore(tmp, obj.childNodes[2]); + } + return obj; + }; + }; +})(jQuery); + +// auto numbering +(function ($, undefined) { + "use strict"; + var span = document.createElement('SPAN'); + span.className = "jstree-numbering"; + + $.jstree.defaults.numbering = {}; + $.jstree.plugins.numbering = function (options, parent) { + this.teardown = function () { + if(this.settings.questionmark) { + this.element.find(".jstree-numbering").remove(); + } + parent.teardown.call(this); + }; + this.get_number = function (obj) { + obj = this.get_node(obj); + var ind = $.inArray(obj.id, this.get_node(obj.parent).children) + 1; + return obj.parent === '#' ? ind : this.get_number(obj.parent) + '.' + ind; + }; + this.redraw_node = function(obj, deep, callback, force_draw) { + var i, j, tmp = null, elm = null, org = this.get_number(obj); + obj = parent.redraw_node.call(this, obj, deep, callback, force_draw); + if(obj) { + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + elm = span.cloneNode(true); + elm.innerHTML = org + '. '; + tmp.insertBefore(elm, tmp.childNodes[tmp.childNodes.length - 1]); + } + } + return obj; + }; + }; +})(jQuery); + +// additional icon on node (inside anchor) +(function ($, undefined) { + "use strict"; + var _s = document.createElement('SPAN'); + _s.className = 'fa-stack jstree-stackedicon'; + var _i = document.createElement('I'); + _i.className = 'jstree-icon'; + _i.setAttribute('role', 'presentation'); + + $.jstree.plugins.stackedicon = function (options, parent) { + this.teardown = function () { + this.element.find(".jstree-stackedicon").remove(); + parent.teardown.call(this); + }; + this.redraw_node = function(obj, deep, is_callback, force_render) { + obj = parent.redraw_node.apply(this, arguments); + if(obj) { + var i, j, tmp = null, icon = null, temp = null; + for(i = 0, j = obj.childNodes.length; i < j; i++) { + if(obj.childNodes[i] && obj.childNodes[i].className && obj.childNodes[i].className.indexOf("jstree-anchor") !== -1) { + tmp = obj.childNodes[i]; + break; + } + } + if(tmp) { + if(this._model.data[obj.id].state.icons && this._model.data[obj.id].state.icons.length) { + icon = _s.cloneNode(false); + for(i = 0, j = this._model.data[obj.id].state.icons.length; i < j; i++) { + temp = _i.cloneNode(false); + temp.className += ' ' + this._model.data[obj.id].state.icons[i]; + icon.appendChild(temp); + } + tmp.insertBefore(icon, tmp.childNodes[0]); + } + } + } + return obj; + }; + }; +})(jQuery); + +// selecting a node opens it +(function ($, undefined) { + "use strict"; + $.jstree.plugins.selectopens = function (options, parent) { + this.bind = function () { + parent.bind.call(this); + this.element.on('select_node.jstree', function (e, data) { data.instance.open_node(data.node); }); + }; + }; +})(jQuery); + +// object as data +(function ($, undefined) { + "use strict"; + $.jstree.defaults.datamodel = {}; + $.jstree.plugins.datamodel = function (options, parent) { + this.init = function (el, options) { + this._data.datamodel = {}; + parent.init.call(this, el, options); + }; + this._datamodel = function (id, nodes, callback) { + var i = 0, j = nodes.length, tmp = [], obj = null; + for(; i < j; i++) { + this._data.datamodel[nodes[i].getID()] = nodes[i]; + obj = { + id : nodes[i].getID(), + text : nodes[i].getText(), + children : nodes[i].hasChildren() + }; + if(nodes[i].getExtra) { + obj = nodes[i].getExtra(obj); // icon, type + } + tmp.push(obj); + } + return this._append_json_data(id, tmp, $.proxy(function (status) { + callback.call(this, status); + }, this)); + }; + this._load_node = function (obj, callback) { + var id = obj.id; + var nd = obj.id === "#" ? this.settings.core.data : this._data.datamodel[obj.id].getChildren($.proxy(function (nodes) { + this._datamodel(id, nodes, callback); + }, this)); + if($.isArray(nd)) { + this._datamodel(id, nd, callback); + } + }; + }; +})(jQuery); +/* + demo of the above + function treeNode(val) { + var id = ++treeNode.counter; + this.getID = function () { + return id; + }; + this.getText = function () { + return val.toString(); + }; + this.getExtra = function (obj) { + obj.icon = false; + return obj; + }; + this.hasChildren = function () { + return true; + }; + this.getChildren = function () { + return [ + new treeNode(Math.pow(val, 2)), + new treeNode(Math.sqrt(val)), + ]; + }; + } + treeNode.counter = 0; + + $('#jstree').jstree({ + 'core': { + 'data': [ + new treeNode(2), + new treeNode(3), + new treeNode(4), + new treeNode(5) + ] + }, + plugins : ['datamodel'] + }); +*/ + +// untested sample plugin to keep all nodes in the DOM +(function ($, undefined) { + "use strict"; + $.jstree.plugins.dom = function (options, parent) { + this.redraw_node = function (node, deep, is_callback, force_render) { + return parent.redraw_node.call(this, node, deep, is_callback, true); + }; + this.close_node = function (obj, animation) { + var t1, t2, t, d; + if($.isArray(obj)) { + obj = obj.slice(); + for(t1 = 0, t2 = obj.length; t1 < t2; t1++) { + this.close_node(obj[t1], animation); + } + return true; + } + obj = this.get_node(obj); + if(!obj || obj.id === $.jstree.root) { + return false; + } + if(this.is_closed(obj)) { + return false; + } + animation = animation === undefined ? this.settings.core.animation : animation; + t = this; + d = this.get_node(obj, true); + if(d.length) { + if(!animation) { + d[0].className = d[0].className.replace('jstree-open', 'jstree-closed'); + d.attr("aria-expanded", false); + } + else { + d + .children(".jstree-children").attr("style","display:block !important").end() + .removeClass("jstree-open").addClass("jstree-closed").attr("aria-expanded", false) + .children(".jstree-children").stop(true, true).slideUp(animation, function () { + this.style.display = ""; + t.trigger("after_close", { "node" : obj }); + }); + } + } + obj.state.opened = false; + this.trigger('close_node',{ "node" : obj }); + if(!animation || !d.length) { + this.trigger("after_close", { "node" : obj }); + } + }; + }; +})(jQuery); + +// customize plugin by @Lusito +// https://github.com/Lusito/jstree/blob/node-customize/src/jstree-node-customize.js +/** + * ### Node Customize plugin + * + * Allows to customize nodes when they are drawn. + */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.node_customize', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.node_customize) { return; } + + /** + * the settings object. + * key is the attribute name to select the customizer function from switch. + * switch is a key => function(el, node) map. + * default: function(el, node) will be called if the type could not be mapped + * @name $.jstree.defaults.node_customize + * @plugin node_customize + */ + $.jstree.defaults.node_customize = { + "key": "type", + "switch": {}, + "default": null + }; + + $.jstree.plugins.node_customize = function (options, parent) { + this.redraw_node = function (obj, deep, callback, force_draw) { + var node_id = obj; + var el = parent.redraw_node.apply(this, arguments); + if (el) { + var node = this._model.data[node_id]; + var cfg = this.settings.node_customize; + var key = cfg.key; + var type = (node && node.original && node.original[key]); + var customizer = (type && cfg.switch[type]) || cfg.default; + if(customizer) + customizer(el, node); + } + return el; + }; + } +})); + + +// parentsload plugin by @ashl1 +/** + * ### Parentsload plugin + * + * Change load_node() functionality in jsTree, to possible load not yes downloaded node with all it parent in a single request (only useful with lazy loading). + * + * version 1.0.0 (Alexey Shildyakov - ashl1future@gmail.com) + * 2015: Compatible with jsTree-3.2.1 + */ +/*globals jQuery, define, exports, require, document */ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.parentsload', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery, jQuery.jstree); + } +}(function ($, jstree, undefined) { + "use strict"; + + if($.jstree.plugins.parentsload) { return; } + + /** + * parentsload configuration + * + * The configuration syntax is almost the same as for core.data option. You must set parenstload.data the following: + * + * parentsload: { + * data: function(){} // this function overwrites core data.data options + * } + * + * OR + * + * parentsload: { + * data: { + * url: function(node){} OR string, + * data: function(node){} OR associative array as json{data} jQuery parameter + * } + * } + * + * In last case at least on of 'url' or 'data' must be presented. + * + * At first, the plugin load_node() detects if the node already downloaded. If is - uses the core.data settings, if not - uses parentsload.data settings + * to fetch in one query the specified node and all its parent. The data must be in the first mentioned JSON format with set nested children[]. + * Each node level should consist of all nodes on the level to properly work with the tree in the future. Otherwise, you must manually call load_node + * on every parent node to fetch all children nodes on that level. + * + * @name $.jstree.defaults.parentsload + * @plugin parentsload + */ + $.jstree.defaults.parentsload = null; + $.jstree.plugins.parentsload = function (options, parent) { + this.init = function (el, options) { + parent.init.call(this, el, options); + this.patch_data() + }; + this.patch_data = function(){ + var parentsloadSettings = this.settings.parentsload; + var jsTreeDataSettings = this.settings.core.data; + var self = this; + + var callError = function(number, message) { + self._data.core.last_error = { 'error' : 'configuration', 'plugin' : 'parentsload', 'id' : 'parentsload_' + number, 'reason' : message, 'data' : JSON.stringify({config: parentsloadSettings}) }; + self.settings.core.error.call(self, self._data.core.last_error); + } + + if(!parentsloadSettings) { + callError('01', 'The configuration must be presented') + return + } + parentsloadSettings = parentsloadSettings.data; + + var patchSettingsProperty = function (propertyName) { + var property = parentsloadSettings[propertyName], + coreProperty = jsTreeDataSettings[propertyName]; + if (property) { + jsTreeDataSettings[propertyName] = function(node) { + if (this.get_node(node).parentsload_required) { + if ($.isFunction(property)) { + return property.call(this, node) + } else {// (typeof property === 'string') + return property + } + } else { + if ($.isFunction(coreProperty)) { + return coreProperty.call(this, node) + } else { // (typeof coreProperty === 'string') + return coreProperty + } + } + } + } /* else { + use jstree the same data[propertyName] settings + }*/ + } + + if($.isFunction(parentsloadSettings)) { + this.settings.data = parentsloadSettings + } else if (typeof parentsloadSettings === 'object') { + if (! (parentsloadSettings.url || parentsloadSettings.data)) { + callError('02', 'The "data.url" or "data.data" must be presented in configuration') + return + } + patchSettingsProperty('url') + patchSettingsProperty('data') + + } else { + callError('03', 'The appropriate "data.url" or "data.data" must be presented in configuration') + } + } + + this.load_node = function (obj, callback) { + if($.isArray(obj)) { + // FIXME: _load_nodes will not load nodes not presented in the tree + this._load_nodes(obj.slice(), callback); + return true; + } + var foundObj = this.get_node(obj); + if (foundObj) { + return parent.load_node.apply(this, arguments) + } else { + // node hasn't been loaded + var id = obj.id? obj.id: obj; + this._model.data[id] = { + id : id, + parent : '#', + parents : [], + children : [], + children_d : [], + state : { loaded : false }, + li_attr : {}, + a_attr : {}, + parentsload_required : true, + }; + return parent.load_node.call(this, obj, function(obj, status){ + obj.parentsload_required = !status + callback.call(this, obj, status) + }) + } + } + }; +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/outro.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/outro.js new file mode 100644 index 0000000000..57d3e4820a --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/outro.js @@ -0,0 +1 @@ +})); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/sample.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/sample.js new file mode 100644 index 0000000000..2811e75ca0 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/sample.js @@ -0,0 +1,93 @@ +/*global jQuery */ +// wrap in IIFE and pass jQuery as $ +(function ($, undefined) { + "use strict"; + + // some private plugin stuff if needed + var private_var = null; + + // extending the defaults + $.jstree.defaults.sample = { + sample_option : 'sample_val' + }; + + // the actual plugin code + $.jstree.plugins.sample = function (options, parent) { + // own function + this.sample_function = function (arg) { + // you can chain this method if needed and available + if(parent.sample_function) { parent.sample_function.call(this, arg); } + }; + + // *SPECIAL* FUNCTIONS + this.init = function (el, options) { + // do not forget parent + parent.init.call(this, el, options); + }; + // bind events if needed + this.bind = function () { + // call parent function first + parent.bind.call(this); + // do(stuff); + }; + // unbind events if needed (all in jquery namespace are taken care of by the core) + this.unbind = function () { + // do(stuff); + // call parent function last + parent.unbind.call(this); + }; + this.teardown = function () { + // do not forget parent + parent.teardown.call(this); + }; + // state management - get and restore + this.get_state = function () { + // always get state from parent first + var state = parent.get_state.call(this); + // add own stuff to state + state.sample = { 'var' : 'val' }; + return state; + }; + this.set_state = function (state, callback) { + // only process your part if parent returns true + // there will be multiple times with false + if(parent.set_state.call(this, state, callback)) { + // check the key you set above + if(state.sample) { + // do(stuff); // like calling this.sample_function(state.sample.var); + // remove your part of the state, call again and RETURN FALSE, the next cycle will be TRUE + delete state.sample; + this.set_state(state, callback); + return false; + } + // return true if your state is gone (cleared in the previous step) + return true; + } + // parent was false - return false too + return false; + }; + // node transportation + this.get_json = function (obj, options, flat) { + // get the node from the parent + var tmp = parent.get_json.call(this, obj, options, flat), i, j; + if($.isArray(tmp)) { + for(i = 0, j = tmp.length; i < j; i++) { + tmp[i].sample = 'value'; + } + } + else { + tmp.sample = 'value'; + } + // return the original / modified node + return tmp; + }; + }; + + // attach to document ready if needed + $(function () { + // do(stuff); + }); + + // you can include the sample plugin in all instances by default + $.jstree.defaults.plugins.push("sample"); +})(jQuery); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/base.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/base.less new file mode 100644 index 0000000000..097e9997a8 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/base.less @@ -0,0 +1,88 @@ +// base jstree +.jstree-node, .jstree-children, .jstree-container-ul { display:block; margin:0; padding:0; list-style-type:none; list-style-image:none; } +.jstree-node { white-space:nowrap; } +.jstree-anchor { display:inline-block; color:black; white-space:nowrap; padding:0 4px 0 1px; margin:0; vertical-align:top; } +.jstree-anchor:focus { outline:0; } +.jstree-anchor, .jstree-anchor:link, .jstree-anchor:visited, .jstree-anchor:hover, .jstree-anchor:active { text-decoration:none; color:inherit; } +.jstree-icon { display:inline-block; text-decoration:none; margin:0; padding:0; vertical-align:top; text-align:center; } +.jstree-icon:empty { display:inline-block; text-decoration:none; margin:0; padding:0; vertical-align:top; text-align:center; } +.jstree-ocl { cursor:pointer; } +.jstree-leaf > .jstree-ocl { cursor:default; } +.jstree .jstree-open > .jstree-children { display:block; } +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { display:none; } +.jstree-anchor > .jstree-themeicon { margin-right:2px; } +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { display:none; } +.jstree-hidden, .jstree-node.jstree-hidden { display:none; } + +// base jstree rtl +.jstree-rtl { + .jstree-anchor { padding:0 1px 0 4px; } + .jstree-anchor > .jstree-themeicon { margin-left:2px; margin-right:0; } + .jstree-node { margin-left:0; } + .jstree-container-ul > .jstree-node { margin-right:0; } +} + +// base jstree wholerow +.jstree-wholerow-ul { + position:relative; + display:inline-block; + min-width:100%; + .jstree-leaf > .jstree-ocl { cursor:pointer; } + .jstree-anchor, .jstree-icon { position:relative; } + .jstree-wholerow { width:100%; cursor:pointer; position:absolute; left:0; -webkit-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none; } +} + +// base contextmenu +.vakata-context { + display:none; + &, ul { margin:0; padding:2px; position:absolute; background:#f5f5f5; border:1px solid #979797; box-shadow:2px 2px 2px #999999; } + ul { list-style:none; left:100%; margin-top:-2.7em; margin-left:-4px; } + .vakata-context-right ul { left:auto; right:100%; margin-left:auto; margin-right:-4px; } + li { + list-style:none; + > a { + display:block; padding:0 2em 0 2em; text-decoration:none; width:auto; color:black; white-space:nowrap; line-height:2.4em; text-shadow:1px 1px 0 white; border-radius:1px; + &:hover { position:relative; background-color:#e8eff7; box-shadow:0 0 2px #0a6aa1; } + &.vakata-context-parent { background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); background-position:right center; background-repeat:no-repeat; } + } + > a:focus { outline:0; } + } + .vakata-context-hover > a { position:relative; background-color:#e8eff7; box-shadow:0 0 2px #0a6aa1; } + .vakata-context-separator { + > a, > a:hover { background:white; border:0; border-top:1px solid #e2e3e3; height:1px; min-height:1px; max-height:1px; padding:0; margin:0 0 0 2.4em; border-left:1px solid #e0e0e0; text-shadow:0 0 0 transparent; box-shadow:0 0 0 transparent; border-radius:0; } + } + .vakata-contextmenu-disabled { + a, a:hover { color:silver; background-color:transparent; border:0; box-shadow:0 0 0; } + } + li > a { + > i { text-decoration:none; display:inline-block; width:2.4em; height:2.4em; background:transparent; margin:0 0 0 -2em; vertical-align:top; text-align:center; line-height:2.4em; } + > i:empty { width:2.4em; line-height:2.4em; } + .vakata-contextmenu-sep { display:inline-block; width:1px; height:2.4em; background:white; margin:0 0.5em 0 0; border-left:1px solid #e2e3e3; } + } + .vakata-contextmenu-shortcut { font-size:0.8em; color:silver; opacity:0.5; display:none; } +} +.vakata-context-rtl { + ul { left:auto; right:100%; margin-left:auto; margin-right:-4px; } + li > a.vakata-context-parent { background-image:url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); background-position:left center; background-repeat:no-repeat; } + .vakata-context-separator > a { margin:0 2.4em 0 0; border-left:0; border-right:1px solid #e2e3e3;} + .vakata-context-left ul { right:auto; left:100%; margin-left:-4px; margin-right:auto; } + li > a { + > i { margin:0 -2em 0 0; } + .vakata-contextmenu-sep { margin:0 0 0 0.5em; border-left-color:white; background:#e2e3e3; } + } +} + +// base drag'n'drop +#jstree-marker { position: absolute; top:0; left:0; margin:-5px 0 0 0; padding:0; border-right:0; border-top:5px solid transparent; border-bottom:5px solid transparent; border-left:5px solid; width:0; height:0; font-size:0; line-height:0; } +#jstree-dnd { + line-height:16px; + margin:0; + padding:4px; + .jstree-icon, + .jstree-copy { display:inline-block; text-decoration:none; margin:0 2px 0 0; padding:0; width:16px; height:16px; } + .jstree-ok { background:green; } + .jstree-er { background:red; } + .jstree-copy { margin:0 2px 0 2px; } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/32px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/32px.png new file mode 100644 index 0000000000..60395729ef Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/32px.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/40px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/40px.png new file mode 100644 index 0000000000..002af360d0 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/40px.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.css new file mode 100644 index 0000000000..3af003f2d5 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.css @@ -0,0 +1,1146 @@ +/* jsTree default dark theme */ +.jstree-node, +.jstree-children, +.jstree-container-ul { + display: block; + margin: 0; + padding: 0; + list-style-type: none; + list-style-image: none; +} +.jstree-node { + white-space: nowrap; +} +.jstree-anchor { + display: inline-block; + color: black; + white-space: nowrap; + padding: 0 4px 0 1px; + margin: 0; + vertical-align: top; +} +.jstree-anchor:focus { + outline: 0; +} +.jstree-anchor, +.jstree-anchor:link, +.jstree-anchor:visited, +.jstree-anchor:hover, +.jstree-anchor:active { + text-decoration: none; + color: inherit; +} +.jstree-icon { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-icon:empty { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-ocl { + cursor: pointer; +} +.jstree-leaf > .jstree-ocl { + cursor: default; +} +.jstree .jstree-open > .jstree-children { + display: block; +} +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { + display: none; +} +.jstree-anchor > .jstree-themeicon { + margin-right: 2px; +} +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { + display: none; +} +.jstree-hidden, +.jstree-node.jstree-hidden { + display: none; +} +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; +} +.jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; +} +.jstree-rtl .jstree-node { + margin-left: 0; +} +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; +} +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; +} +.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; +} +.jstree-wholerow-ul .jstree-anchor, +.jstree-wholerow-ul .jstree-icon { + position: relative; +} +.jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.vakata-context { + display: none; +} +.vakata-context, +.vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + box-shadow: 2px 2px 2px #999999; +} +.vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; +} +.vakata-context .vakata-context-right ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context li { + list-style: none; +} +.vakata-context li > a { + display: block; + padding: 0 2em 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; +} +.vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); + background-position: right center; + background-repeat: no-repeat; +} +.vakata-context li > a:focus { + outline: 0; +} +.vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context .vakata-context-separator > a, +.vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; +} +.vakata-context .vakata-contextmenu-disabled a, +.vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + box-shadow: 0 0 0; +} +.vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; +} +.vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; +} +.vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; +} +.vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; +} +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); + background-position: left center; + background-repeat: no-repeat; +} +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; +} +.vakata-context-rtl .vakata-context-left ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; +} +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; +} +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; +} +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; +} +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; +} +#jstree-dnd .jstree-icon, +#jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; +} +#jstree-dnd .jstree-ok { + background: green; +} +#jstree-dnd .jstree-er { + background: red; +} +#jstree-dnd .jstree-copy { + margin: 0 2px 0 2px; +} +.jstree-default-dark .jstree-node, +.jstree-default-dark .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; +} +.jstree-default-dark .jstree-anchor, +.jstree-default-dark .jstree-animated, +.jstree-default-dark .jstree-wholerow { + transition: background-color 0.15s, box-shadow 0.15s; +} +.jstree-default-dark .jstree-hovered { + background: #555555; + border-radius: 2px; + box-shadow: inset 0 0 1px #555555; +} +.jstree-default-dark .jstree-context { + background: #555555; + border-radius: 2px; + box-shadow: inset 0 0 1px #555555; +} +.jstree-default-dark .jstree-clicked { + background: #5fa2db; + border-radius: 2px; + box-shadow: inset 0 0 1px #666666; +} +.jstree-default-dark .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; +} +.jstree-default-dark .jstree-disabled { + background: transparent; + color: #666666; +} +.jstree-default-dark .jstree-disabled.jstree-hovered { + background: transparent; + box-shadow: none; +} +.jstree-default-dark .jstree-disabled.jstree-clicked { + background: #333333; +} +.jstree-default-dark .jstree-disabled > .jstree-icon { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark .jstree-search { + font-style: italic; + color: #ffffff; + font-weight: bold; +} +.jstree-default-dark .jstree-no-checkboxes .jstree-checkbox { + display: none !important; +} +.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + box-shadow: none; +} +.jstree-default-dark.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #555555; +} +.jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; +} +.jstree-default-dark.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #555555; +} +.jstree-default-dark > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; +} +.jstree-default-dark > .jstree-wholerow-ul .jstree-hovered, +.jstree-default-dark > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.jstree-default-dark .jstree-wholerow { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.jstree-default-dark .jstree-wholerow-hovered { + background: #555555; +} +.jstree-default-dark .jstree-wholerow-clicked { + background: #5fa2db; + background: -webkit-linear-gradient(top, #5fa2db 0%, #5fa2db 100%); + background: linear-gradient(to bottom, #5fa2db 0%, #5fa2db 100%); +} +.jstree-default-dark .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; +} +.jstree-default-dark .jstree-anchor { + line-height: 24px; + height: 24px; +} +.jstree-default-dark .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default-dark .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default-dark.jstree-rtl .jstree-node { + margin-right: 24px; +} +.jstree-default-dark .jstree-wholerow { + height: 24px; +} +.jstree-default-dark .jstree-node, +.jstree-default-dark .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark .jstree-node { + background-position: -292px -4px; + background-repeat: repeat-y; +} +.jstree-default-dark .jstree-last { + background: transparent; +} +.jstree-default-dark .jstree-open > .jstree-ocl { + background-position: -132px -4px; +} +.jstree-default-dark .jstree-closed > .jstree-ocl { + background-position: -100px -4px; +} +.jstree-default-dark .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; +} +.jstree-default-dark .jstree-themeicon { + background-position: -260px -4px; +} +.jstree-default-dark > .jstree-no-dots .jstree-node, +.jstree-default-dark > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; +} +.jstree-default-dark > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; +} +.jstree-default-dark .jstree-disabled { + background: transparent; +} +.jstree-default-dark .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark .jstree-checkbox { + background-position: -164px -4px; +} +.jstree-default-dark .jstree-checkbox:hover { + background-position: -164px -36px; +} +.jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; +} +.jstree-default-dark.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; +} +.jstree-default-dark .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; +} +.jstree-default-dark .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; +} +.jstree-default-dark .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark > .jstree-striped { + background-size: auto 48px; +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; +} +.jstree-default-dark.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; +} +.jstree-default-dark.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; +} +.jstree-default-dark.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; +} +.jstree-default-dark .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark .jstree-file { + background: url("32px.png") -100px -68px no-repeat; +} +.jstree-default-dark .jstree-folder { + background: url("32px.png") -260px -4px no-repeat; +} +.jstree-default-dark > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark { + line-height: 24px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark .jstree-ok, +#jstree-dnd.jstree-default-dark .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; +} +#jstree-dnd.jstree-default-dark .jstree-ok { + background-position: -4px -68px; +} +#jstree-dnd.jstree-default-dark .jstree-er { + background-position: -36px -68px; +} +.jstree-default-dark .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark .jstree-ellipsis .jstree-anchor { + width: calc(100% - 29px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; +} +.jstree-default-dark-small .jstree-anchor { + line-height: 18px; + height: 18px; +} +.jstree-default-dark-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-dark-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + margin-right: 18px; +} +.jstree-default-dark-small .jstree-wholerow { + height: 18px; +} +.jstree-default-dark-small .jstree-node, +.jstree-default-dark-small .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark-small .jstree-node { + background-position: -295px -7px; + background-repeat: repeat-y; +} +.jstree-default-dark-small .jstree-last { + background: transparent; +} +.jstree-default-dark-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; +} +.jstree-default-dark-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; +} +.jstree-default-dark-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; +} +.jstree-default-dark-small .jstree-themeicon { + background-position: -263px -7px; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-node, +.jstree-default-dark-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; +} +.jstree-default-dark-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; +} +.jstree-default-dark-small .jstree-disabled { + background: transparent; +} +.jstree-default-dark-small .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark-small .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark-small .jstree-checkbox { + background-position: -167px -7px; +} +.jstree-default-dark-small .jstree-checkbox:hover { + background-position: -167px -39px; +} +.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; +} +.jstree-default-dark-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; +} +.jstree-default-dark-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; +} +.jstree-default-dark-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; +} +.jstree-default-dark-small .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark-small > .jstree-striped { + background-size: auto 36px; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; +} +.jstree-default-dark-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; +} +.jstree-default-dark-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; +} +.jstree-default-dark-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; +} +.jstree-default-dark-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark-small .jstree-file { + background: url("32px.png") -103px -71px no-repeat; +} +.jstree-default-dark-small .jstree-folder { + background: url("32px.png") -263px -7px no-repeat; +} +.jstree-default-dark-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark-small { + line-height: 18px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark-small .jstree-ok, +#jstree-dnd.jstree-default-dark-small .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; +} +#jstree-dnd.jstree-default-dark-small .jstree-ok { + background-position: -7px -71px; +} +#jstree-dnd.jstree-default-dark-small .jstree-er { + background-position: -39px -71px; +} +.jstree-default-dark-small .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark-small .jstree-ellipsis .jstree-anchor { + width: calc(100% - 23px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark-small .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; +} +.jstree-default-dark-large .jstree-anchor { + line-height: 32px; + height: 32px; +} +.jstree-default-dark-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-dark-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + margin-right: 32px; +} +.jstree-default-dark-large .jstree-wholerow { + height: 32px; +} +.jstree-default-dark-large .jstree-node, +.jstree-default-dark-large .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-dark-large .jstree-node { + background-position: -288px 0px; + background-repeat: repeat-y; +} +.jstree-default-dark-large .jstree-last { + background: transparent; +} +.jstree-default-dark-large .jstree-open > .jstree-ocl { + background-position: -128px 0px; +} +.jstree-default-dark-large .jstree-closed > .jstree-ocl { + background-position: -96px 0px; +} +.jstree-default-dark-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0px; +} +.jstree-default-dark-large .jstree-themeicon { + background-position: -256px 0px; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-node, +.jstree-default-dark-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0px; +} +.jstree-default-dark-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px 0px; +} +.jstree-default-dark-large .jstree-disabled { + background: transparent; +} +.jstree-default-dark-large .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-dark-large .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-dark-large .jstree-checkbox { + background-position: -160px 0px; +} +.jstree-default-dark-large .jstree-checkbox:hover { + background-position: -160px -32px; +} +.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-dark-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0px; +} +.jstree-default-dark-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-dark-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; +} +.jstree-default-dark-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0px; +} +.jstree-default-dark-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; +} +.jstree-default-dark-large .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-dark-large > .jstree-striped { + background-size: auto 64px; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; +} +.jstree-default-dark-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; +} +.jstree-default-dark-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px -32px; +} +.jstree-default-dark-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-dark-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-dark-large .jstree-file { + background: url("32px.png") -96px -64px no-repeat; +} +.jstree-default-dark-large .jstree-folder { + background: url("32px.png") -256px 0px no-repeat; +} +.jstree-default-dark-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-dark-large { + line-height: 32px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-dark-large .jstree-ok, +#jstree-dnd.jstree-default-dark-large .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-dark-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; +} +#jstree-dnd.jstree-default-dark-large .jstree-ok { + background-position: 0px -64px; +} +#jstree-dnd.jstree-default-dark-large .jstree-er { + background-position: -32px -64px; +} +.jstree-default-dark-large .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-dark-large .jstree-ellipsis .jstree-anchor { + width: calc(100% - 37px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-dark-large .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url("40px.png"); + background-position: 0 -200px; + background-size: 120px 240px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url("40px.png"); + background-position: -40px -200px; + background-size: 120px 240px; + } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; + } +} +@media (max-width: 768px) { + .jstree-default-dark-responsive { + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + } + .jstree-default-dark-responsive .jstree-icon { + background-image: url("40px.png"); + } + .jstree-default-dark-responsive .jstree-node, + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-dark-responsive .jstree-node { + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + } + .jstree-default-dark-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + } + .jstree-default-dark-responsive .jstree-icon, + .jstree-default-dark-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; + } + .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; + background: transparent; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; + } + .jstree-default-dark-responsive .jstree-ocl, + .jstree-default-dark-responsive .jstree-themeicon, + .jstree-default-dark-responsive .jstree-checkbox { + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl, + .jstree-default-dark-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-dark-responsive .jstree-open > .jstree-ocl { + background-position: 0 0px !important; + } + .jstree-default-dark-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; + } + .jstree-default-dark-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0px !important; + } + .jstree-default-dark-responsive .jstree-themeicon { + background-position: -40px -40px; + } + .jstree-default-dark-responsive .jstree-checkbox, + .jstree-default-dark-responsive .jstree-checkbox:hover { + background-position: -40px -80px; + } + .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + .jstree-default-dark-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox, + .jstree-default-dark-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; + } + .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined, + .jstree-default-dark-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; + } + .jstree-default-dark-responsive .jstree-anchor { + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + .jstree-default-dark-responsive > .jstree-striped { + background: transparent; + } + .jstree-default-dark-responsive .jstree-wholerow { + border-top: 1px solid #666666; + border-bottom: 1px solid #000000; + background: #333333; + height: 40px; + } + .jstree-default-dark-responsive .jstree-wholerow-hovered { + background: #555555; + } + .jstree-default-dark-responsive .jstree-wholerow-clicked { + background: #5fa2db; + } + .jstree-default-dark-responsive .jstree-children .jstree-last > .jstree-wholerow { + box-shadow: inset 0 -6px 3px -5px #111111; + } + .jstree-default-dark-responsive .jstree-children .jstree-open > .jstree-wholerow { + box-shadow: inset 0 6px 3px -5px #111111; + border-top: 0; + } + .jstree-default-dark-responsive .jstree-children .jstree-open + .jstree-open { + box-shadow: none; + } + .jstree-default-dark-responsive .jstree-node, + .jstree-default-dark-responsive .jstree-icon, + .jstree-default-dark-responsive .jstree-node > .jstree-ocl, + .jstree-default-dark-responsive .jstree-themeicon, + .jstree-default-dark-responsive .jstree-checkbox { + background-image: url("40px.png"); + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-node { + background-position: -80px 0; + background-repeat: repeat-y; + } + .jstree-default-dark-responsive .jstree-last { + background: transparent; + } + .jstree-default-dark-responsive .jstree-leaf > .jstree-ocl { + background-position: -40px -120px; + } + .jstree-default-dark-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; + } + .jstree-default-dark-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; + } + .jstree-default-dark-responsive .jstree-file { + background: url("40px.png") 0 -160px no-repeat; + background-size: 120px 240px; + } + .jstree-default-dark-responsive .jstree-folder { + background: url("40px.png") -40px -40px no-repeat; + background-size: 120px 240px; + } + .jstree-default-dark-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; + } +} +.jstree-default-dark { + background: #333; +} +.jstree-default-dark .jstree-anchor { + color: #999; + text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5); +} +.jstree-default-dark .jstree-clicked, +.jstree-default-dark .jstree-checked { + color: white; +} +.jstree-default-dark .jstree-hovered { + color: white; +} +#jstree-marker.jstree-default-dark { + border-left-color: #999; + background: transparent; +} +.jstree-default-dark .jstree-anchor > .jstree-icon { + opacity: 0.75; +} +.jstree-default-dark .jstree-clicked > .jstree-icon, +.jstree-default-dark .jstree-hovered > .jstree-icon, +.jstree-default-dark .jstree-checked > .jstree-icon { + opacity: 1; +} +.jstree-default-dark.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default-dark.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-dark-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-dark-large.jstree-rtl .jstree-last { + background: transparent; +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.less new file mode 100644 index 0000000000..0f9a3963d1 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/style.less @@ -0,0 +1,50 @@ +/* jsTree default dark theme */ +@theme-name: default-dark; +@hovered-bg-color: #555; +@hovered-shadow-color: #555; +@disabled-color: #666666; +@disabled-bg-color: #333333; +@clicked-bg-color: #5fa2db; +@clicked-shadow-color: #666666; +@clicked-gradient-color-1: #5fa2db; +@clicked-gradient-color-2: #5fa2db; +@search-result-color: #ffffff; +@mobile-wholerow-bg-color: #333333; +@mobile-wholerow-shadow: #111111; +@mobile-wholerow-bordert: #666; +@mobile-wholerow-borderb: #000; +@responsive: true; +@image-path: ""; +@base-height: 40px; + +@import "../mixins.less"; +@import "../base.less"; +@import "../main.less"; + +.jstree-@{theme-name} { + background:#333; + .jstree-anchor { color:#999; text-shadow:1px 1px 0 rgba(0,0,0,0.5); } + .jstree-clicked, .jstree-checked { color:white; } + .jstree-hovered { color:white; } + #jstree-marker& { + border-left-color:#999; + background:transparent; + } + .jstree-anchor > .jstree-icon { opacity:0.75; } + .jstree-clicked > .jstree-icon, + .jstree-hovered > .jstree-icon, + .jstree-checked > .jstree-icon { opacity:1; } +} +// theme variants +.jstree-@{theme-name} { + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} +.jstree-@{theme-name}-small { + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} +.jstree-@{theme-name}-large { + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAACZmZl+9SADAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/throbber.gif b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/throbber.gif new file mode 100644 index 0000000000..2e310e8be2 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default-dark/throbber.gif differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/32px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/32px.png new file mode 100644 index 0000000000..ac74418d28 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/32px.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/40px.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/40px.png new file mode 100644 index 0000000000..2927326007 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/40px.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.css new file mode 100644 index 0000000000..616be241be --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.css @@ -0,0 +1,1102 @@ +/* jsTree default theme */ +.jstree-node, +.jstree-children, +.jstree-container-ul { + display: block; + margin: 0; + padding: 0; + list-style-type: none; + list-style-image: none; +} +.jstree-node { + white-space: nowrap; +} +.jstree-anchor { + display: inline-block; + color: black; + white-space: nowrap; + padding: 0 4px 0 1px; + margin: 0; + vertical-align: top; +} +.jstree-anchor:focus { + outline: 0; +} +.jstree-anchor, +.jstree-anchor:link, +.jstree-anchor:visited, +.jstree-anchor:hover, +.jstree-anchor:active { + text-decoration: none; + color: inherit; +} +.jstree-icon { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-icon:empty { + display: inline-block; + text-decoration: none; + margin: 0; + padding: 0; + vertical-align: top; + text-align: center; +} +.jstree-ocl { + cursor: pointer; +} +.jstree-leaf > .jstree-ocl { + cursor: default; +} +.jstree .jstree-open > .jstree-children { + display: block; +} +.jstree .jstree-closed > .jstree-children, +.jstree .jstree-leaf > .jstree-children { + display: none; +} +.jstree-anchor > .jstree-themeicon { + margin-right: 2px; +} +.jstree-no-icons .jstree-themeicon, +.jstree-anchor > .jstree-themeicon-hidden { + display: none; +} +.jstree-hidden, +.jstree-node.jstree-hidden { + display: none; +} +.jstree-rtl .jstree-anchor { + padding: 0 1px 0 4px; +} +.jstree-rtl .jstree-anchor > .jstree-themeicon { + margin-left: 2px; + margin-right: 0; +} +.jstree-rtl .jstree-node { + margin-left: 0; +} +.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; +} +.jstree-wholerow-ul { + position: relative; + display: inline-block; + min-width: 100%; +} +.jstree-wholerow-ul .jstree-leaf > .jstree-ocl { + cursor: pointer; +} +.jstree-wholerow-ul .jstree-anchor, +.jstree-wholerow-ul .jstree-icon { + position: relative; +} +.jstree-wholerow-ul .jstree-wholerow { + width: 100%; + cursor: pointer; + position: absolute; + left: 0; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.vakata-context { + display: none; +} +.vakata-context, +.vakata-context ul { + margin: 0; + padding: 2px; + position: absolute; + background: #f5f5f5; + border: 1px solid #979797; + box-shadow: 2px 2px 2px #999999; +} +.vakata-context ul { + list-style: none; + left: 100%; + margin-top: -2.7em; + margin-left: -4px; +} +.vakata-context .vakata-context-right ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context li { + list-style: none; +} +.vakata-context li > a { + display: block; + padding: 0 2em 0 2em; + text-decoration: none; + width: auto; + color: black; + white-space: nowrap; + line-height: 2.4em; + text-shadow: 1px 1px 0 white; + border-radius: 1px; +} +.vakata-context li > a:hover { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAIORI4JlrqN1oMSnmmZDQUAOw=="); + background-position: right center; + background-repeat: no-repeat; +} +.vakata-context li > a:focus { + outline: 0; +} +.vakata-context .vakata-context-hover > a { + position: relative; + background-color: #e8eff7; + box-shadow: 0 0 2px #0a6aa1; +} +.vakata-context .vakata-context-separator > a, +.vakata-context .vakata-context-separator > a:hover { + background: white; + border: 0; + border-top: 1px solid #e2e3e3; + height: 1px; + min-height: 1px; + max-height: 1px; + padding: 0; + margin: 0 0 0 2.4em; + border-left: 1px solid #e0e0e0; + text-shadow: 0 0 0 transparent; + box-shadow: 0 0 0 transparent; + border-radius: 0; +} +.vakata-context .vakata-contextmenu-disabled a, +.vakata-context .vakata-contextmenu-disabled a:hover { + color: silver; + background-color: transparent; + border: 0; + box-shadow: 0 0 0; +} +.vakata-context li > a > i { + text-decoration: none; + display: inline-block; + width: 2.4em; + height: 2.4em; + background: transparent; + margin: 0 0 0 -2em; + vertical-align: top; + text-align: center; + line-height: 2.4em; +} +.vakata-context li > a > i:empty { + width: 2.4em; + line-height: 2.4em; +} +.vakata-context li > a .vakata-contextmenu-sep { + display: inline-block; + width: 1px; + height: 2.4em; + background: white; + margin: 0 0.5em 0 0; + border-left: 1px solid #e2e3e3; +} +.vakata-context .vakata-contextmenu-shortcut { + font-size: 0.8em; + color: silver; + opacity: 0.5; + display: none; +} +.vakata-context-rtl ul { + left: auto; + right: 100%; + margin-left: auto; + margin-right: -4px; +} +.vakata-context-rtl li > a.vakata-context-parent { + background-image: url("data:image/gif;base64,R0lGODlhCwAHAIAAACgoKP///yH5BAEAAAEALAAAAAALAAcAAAINjI+AC7rWHIsPtmoxLAA7"); + background-position: left center; + background-repeat: no-repeat; +} +.vakata-context-rtl .vakata-context-separator > a { + margin: 0 2.4em 0 0; + border-left: 0; + border-right: 1px solid #e2e3e3; +} +.vakata-context-rtl .vakata-context-left ul { + right: auto; + left: 100%; + margin-left: -4px; + margin-right: auto; +} +.vakata-context-rtl li > a > i { + margin: 0 -2em 0 0; +} +.vakata-context-rtl li > a .vakata-contextmenu-sep { + margin: 0 0 0 0.5em; + border-left-color: white; + background: #e2e3e3; +} +#jstree-marker { + position: absolute; + top: 0; + left: 0; + margin: -5px 0 0 0; + padding: 0; + border-right: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid; + width: 0; + height: 0; + font-size: 0; + line-height: 0; +} +#jstree-dnd { + line-height: 16px; + margin: 0; + padding: 4px; +} +#jstree-dnd .jstree-icon, +#jstree-dnd .jstree-copy { + display: inline-block; + text-decoration: none; + margin: 0 2px 0 0; + padding: 0; + width: 16px; + height: 16px; +} +#jstree-dnd .jstree-ok { + background: green; +} +#jstree-dnd .jstree-er { + background: red; +} +#jstree-dnd .jstree-copy { + margin: 0 2px 0 2px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-repeat: no-repeat; + background-color: transparent; +} +.jstree-default .jstree-anchor, +.jstree-default .jstree-animated, +.jstree-default .jstree-wholerow { + transition: background-color 0.15s, box-shadow 0.15s; +} +.jstree-default .jstree-hovered { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-context { + background: #e7f4f9; + border-radius: 2px; + box-shadow: inset 0 0 1px #cccccc; +} +.jstree-default .jstree-clicked { + background: #beebff; + border-radius: 2px; + box-shadow: inset 0 0 1px #999999; +} +.jstree-default .jstree-no-icons .jstree-anchor > .jstree-themeicon { + display: none; +} +.jstree-default .jstree-disabled { + background: transparent; + color: #666666; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; + box-shadow: none; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-disabled > .jstree-icon { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default .jstree-search { + font-style: italic; + color: #8b0000; + font-weight: bold; +} +.jstree-default .jstree-no-checkboxes .jstree-checkbox { + display: none !important; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked { + background: transparent; + box-shadow: none; +} +.jstree-default.jstree-checkbox-no-clicked .jstree-clicked.jstree-hovered { + background: #e7f4f9; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked { + background: transparent; +} +.jstree-default.jstree-checkbox-no-clicked > .jstree-wholerow-ul .jstree-wholerow-clicked.jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default > .jstree-striped { + min-width: 100%; + display: inline-block; + background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; +} +.jstree-default > .jstree-wholerow-ul .jstree-hovered, +.jstree-default > .jstree-wholerow-ul .jstree-clicked { + background: transparent; + box-shadow: none; + border-radius: 0; +} +.jstree-default .jstree-wholerow { + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + box-sizing: border-box; +} +.jstree-default .jstree-wholerow-hovered { + background: #e7f4f9; +} +.jstree-default .jstree-wholerow-clicked { + background: #beebff; + background: -webkit-linear-gradient(top, #beebff 0%, #a8e4ff 100%); + background: linear-gradient(to bottom, #beebff 0%, #a8e4ff 100%); +} +.jstree-default .jstree-node { + min-height: 24px; + line-height: 24px; + margin-left: 24px; + min-width: 24px; +} +.jstree-default .jstree-anchor { + line-height: 24px; + height: 24px; +} +.jstree-default .jstree-icon { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default .jstree-icon:empty { + width: 24px; + height: 24px; + line-height: 24px; +} +.jstree-default.jstree-rtl .jstree-node { + margin-right: 24px; +} +.jstree-default .jstree-wholerow { + height: 24px; +} +.jstree-default .jstree-node, +.jstree-default .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default .jstree-node { + background-position: -292px -4px; + background-repeat: repeat-y; +} +.jstree-default .jstree-last { + background: transparent; +} +.jstree-default .jstree-open > .jstree-ocl { + background-position: -132px -4px; +} +.jstree-default .jstree-closed > .jstree-ocl { + background-position: -100px -4px; +} +.jstree-default .jstree-leaf > .jstree-ocl { + background-position: -68px -4px; +} +.jstree-default .jstree-themeicon { + background-position: -260px -4px; +} +.jstree-default > .jstree-no-dots .jstree-node, +.jstree-default > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -4px; +} +.jstree-default > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -4px; +} +.jstree-default .jstree-disabled { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default .jstree-checkbox { + background-position: -164px -4px; +} +.jstree-default .jstree-checkbox:hover { + background-position: -164px -36px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default .jstree-checked > .jstree-checkbox { + background-position: -228px -4px; +} +.jstree-default.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default .jstree-checked > .jstree-checkbox:hover { + background-position: -228px -36px; +} +.jstree-default .jstree-anchor > .jstree-undetermined { + background-position: -196px -4px; +} +.jstree-default .jstree-anchor > .jstree-undetermined:hover { + background-position: -196px -36px; +} +.jstree-default .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default > .jstree-striped { + background-size: auto 48px; +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -132px -36px; +} +.jstree-default.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -100px -36px; +} +.jstree-default.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -68px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -36px -36px; +} +.jstree-default.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -4px -36px; +} +.jstree-default .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default .jstree-file { + background: url("32px.png") -100px -68px no-repeat; +} +.jstree-default .jstree-folder { + background: url("32px.png") -260px -4px no-repeat; +} +.jstree-default > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default { + line-height: 24px; + padding: 0 4px; +} +#jstree-dnd.jstree-default .jstree-ok, +#jstree-dnd.jstree-default .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default i { + background: transparent; + width: 24px; + height: 24px; + line-height: 24px; +} +#jstree-dnd.jstree-default .jstree-ok { + background-position: -4px -68px; +} +#jstree-dnd.jstree-default .jstree-er { + background-position: -36px -68px; +} +.jstree-default .jstree-ellipsis { + overflow: hidden; +} +.jstree-default .jstree-ellipsis .jstree-anchor { + width: calc(100% - 29px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); +} +.jstree-default.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-node { + min-height: 18px; + line-height: 18px; + margin-left: 18px; + min-width: 18px; +} +.jstree-default-small .jstree-anchor { + line-height: 18px; + height: 18px; +} +.jstree-default-small .jstree-icon { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small .jstree-icon:empty { + width: 18px; + height: 18px; + line-height: 18px; +} +.jstree-default-small.jstree-rtl .jstree-node { + margin-right: 18px; +} +.jstree-default-small .jstree-wholerow { + height: 18px; +} +.jstree-default-small .jstree-node, +.jstree-default-small .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-small .jstree-node { + background-position: -295px -7px; + background-repeat: repeat-y; +} +.jstree-default-small .jstree-last { + background: transparent; +} +.jstree-default-small .jstree-open > .jstree-ocl { + background-position: -135px -7px; +} +.jstree-default-small .jstree-closed > .jstree-ocl { + background-position: -103px -7px; +} +.jstree-default-small .jstree-leaf > .jstree-ocl { + background-position: -71px -7px; +} +.jstree-default-small .jstree-themeicon { + background-position: -263px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-node, +.jstree-default-small > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -7px; +} +.jstree-default-small > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -7px; +} +.jstree-default-small .jstree-disabled { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-small .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-small .jstree-checkbox { + background-position: -167px -7px; +} +.jstree-default-small .jstree-checkbox:hover { + background-position: -167px -39px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-small .jstree-checked > .jstree-checkbox { + background-position: -231px -7px; +} +.jstree-default-small.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-small .jstree-checked > .jstree-checkbox:hover { + background-position: -231px -39px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined { + background-position: -199px -7px; +} +.jstree-default-small .jstree-anchor > .jstree-undetermined:hover { + background-position: -199px -39px; +} +.jstree-default-small .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-small > .jstree-striped { + background-size: auto 36px; +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-small.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -135px -39px; +} +.jstree-default-small.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -103px -39px; +} +.jstree-default-small.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -71px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -39px -39px; +} +.jstree-default-small.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: -7px -39px; +} +.jstree-default-small .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-small > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-small .jstree-file { + background: url("32px.png") -103px -71px no-repeat; +} +.jstree-default-small .jstree-folder { + background: url("32px.png") -263px -7px no-repeat; +} +.jstree-default-small > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-small { + line-height: 18px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-small .jstree-ok, +#jstree-dnd.jstree-default-small .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-small i { + background: transparent; + width: 18px; + height: 18px; + line-height: 18px; +} +#jstree-dnd.jstree-default-small .jstree-ok { + background-position: -7px -71px; +} +#jstree-dnd.jstree-default-small .jstree-er { + background-position: -39px -71px; +} +.jstree-default-small .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-small .jstree-ellipsis .jstree-anchor { + width: calc(100% - 23px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-small .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-small.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); +} +.jstree-default-small.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-node { + min-height: 32px; + line-height: 32px; + margin-left: 32px; + min-width: 32px; +} +.jstree-default-large .jstree-anchor { + line-height: 32px; + height: 32px; +} +.jstree-default-large .jstree-icon { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large .jstree-icon:empty { + width: 32px; + height: 32px; + line-height: 32px; +} +.jstree-default-large.jstree-rtl .jstree-node { + margin-right: 32px; +} +.jstree-default-large .jstree-wholerow { + height: 32px; +} +.jstree-default-large .jstree-node, +.jstree-default-large .jstree-icon { + background-image: url("32px.png"); +} +.jstree-default-large .jstree-node { + background-position: -288px 0px; + background-repeat: repeat-y; +} +.jstree-default-large .jstree-last { + background: transparent; +} +.jstree-default-large .jstree-open > .jstree-ocl { + background-position: -128px 0px; +} +.jstree-default-large .jstree-closed > .jstree-ocl { + background-position: -96px 0px; +} +.jstree-default-large .jstree-leaf > .jstree-ocl { + background-position: -64px 0px; +} +.jstree-default-large .jstree-themeicon { + background-position: -256px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-node, +.jstree-default-large > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px 0px; +} +.jstree-default-large > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px 0px; +} +.jstree-default-large .jstree-disabled { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-hovered { + background: transparent; +} +.jstree-default-large .jstree-disabled.jstree-clicked { + background: #efefef; +} +.jstree-default-large .jstree-checkbox { + background-position: -160px 0px; +} +.jstree-default-large .jstree-checkbox:hover { + background-position: -160px -32px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, +.jstree-default-large .jstree-checked > .jstree-checkbox { + background-position: -224px 0px; +} +.jstree-default-large.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, +.jstree-default-large .jstree-checked > .jstree-checkbox:hover { + background-position: -224px -32px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined { + background-position: -192px 0px; +} +.jstree-default-large .jstree-anchor > .jstree-undetermined:hover { + background-position: -192px -32px; +} +.jstree-default-large .jstree-checkbox-disabled { + opacity: 0.8; + filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); + /* Firefox 10+ */ + filter: gray; + /* IE6-9 */ + -webkit-filter: grayscale(100%); + /* Chrome 19+ & Safari 6+ */ +} +.jstree-default-large > .jstree-striped { + background-size: auto 64px; +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); + background-position: 100% 1px; + background-repeat: repeat-y; +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +.jstree-default-large.jstree-rtl .jstree-open > .jstree-ocl { + background-position: -128px -32px; +} +.jstree-default-large.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -96px -32px; +} +.jstree-default-large.jstree-rtl .jstree-leaf > .jstree-ocl { + background-position: -64px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-node, +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-leaf > .jstree-ocl { + background: transparent; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-open > .jstree-ocl { + background-position: -32px -32px; +} +.jstree-default-large.jstree-rtl > .jstree-no-dots .jstree-closed > .jstree-ocl { + background-position: 0px -32px; +} +.jstree-default-large .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; +} +.jstree-default-large > .jstree-container-ul .jstree-loading > .jstree-ocl { + background: url("throbber.gif") center center no-repeat; +} +.jstree-default-large .jstree-file { + background: url("32px.png") -96px -64px no-repeat; +} +.jstree-default-large .jstree-folder { + background: url("32px.png") -256px 0px no-repeat; +} +.jstree-default-large > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; +} +#jstree-dnd.jstree-default-large { + line-height: 32px; + padding: 0 4px; +} +#jstree-dnd.jstree-default-large .jstree-ok, +#jstree-dnd.jstree-default-large .jstree-er { + background-image: url("32px.png"); + background-repeat: no-repeat; + background-color: transparent; +} +#jstree-dnd.jstree-default-large i { + background: transparent; + width: 32px; + height: 32px; + line-height: 32px; +} +#jstree-dnd.jstree-default-large .jstree-ok { + background-position: 0px -64px; +} +#jstree-dnd.jstree-default-large .jstree-er { + background-position: -32px -64px; +} +.jstree-default-large .jstree-ellipsis { + overflow: hidden; +} +.jstree-default-large .jstree-ellipsis .jstree-anchor { + width: calc(100% - 37px); + text-overflow: ellipsis; + overflow: hidden; +} +.jstree-default-large .jstree-ellipsis.jstree-no-icons .jstree-anchor { + width: calc(100% - 5px); +} +.jstree-default-large.jstree-rtl .jstree-node { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); +} +.jstree-default-large.jstree-rtl .jstree-last { + background: transparent; +} +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive { + line-height: 40px; + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + #jstree-dnd.jstree-dnd-responsive > i { + background: transparent; + width: 40px; + height: 40px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-ok { + background-image: url("40px.png"); + background-position: 0 -200px; + background-size: 120px 240px; + } + #jstree-dnd.jstree-dnd-responsive > .jstree-er { + background-image: url("40px.png"); + background-position: -40px -200px; + background-size: 120px 240px; + } + #jstree-marker.jstree-dnd-responsive { + border-left-width: 10px; + border-top-width: 10px; + border-bottom-width: 10px; + margin-top: -10px; + } +} +@media (max-width: 768px) { + .jstree-default-responsive { + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + } + .jstree-default-responsive .jstree-icon { + background-image: url("40px.png"); + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-node { + min-height: 40px; + line-height: 40px; + margin-left: 40px; + min-width: 40px; + white-space: nowrap; + } + .jstree-default-responsive .jstree-anchor { + line-height: 40px; + height: 40px; + } + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-icon:empty { + width: 40px; + height: 40px; + line-height: 40px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + } + .jstree-default-responsive.jstree-rtl .jstree-node { + margin-left: 0; + margin-right: 40px; + background: transparent; + } + .jstree-default-responsive.jstree-rtl .jstree-container-ul > .jstree-node { + margin-right: 0; + } + .jstree-default-responsive .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl, + .jstree-default-responsive.jstree-rtl .jstree-leaf > .jstree-ocl { + background: transparent; + } + .jstree-default-responsive .jstree-open > .jstree-ocl { + background-position: 0 0px !important; + } + .jstree-default-responsive .jstree-closed > .jstree-ocl { + background-position: 0 -40px !important; + } + .jstree-default-responsive.jstree-rtl .jstree-closed > .jstree-ocl { + background-position: -40px 0px !important; + } + .jstree-default-responsive .jstree-themeicon { + background-position: -40px -40px; + } + .jstree-default-responsive .jstree-checkbox, + .jstree-default-responsive .jstree-checkbox:hover { + background-position: -40px -80px; + } + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + .jstree-default-responsive.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-default-responsive .jstree-checked > .jstree-checkbox, + .jstree-default-responsive .jstree-checked > .jstree-checkbox:hover { + background-position: 0 -80px; + } + .jstree-default-responsive .jstree-anchor > .jstree-undetermined, + .jstree-default-responsive .jstree-anchor > .jstree-undetermined:hover { + background-position: 0 -120px; + } + .jstree-default-responsive .jstree-anchor { + font-weight: bold; + font-size: 1.1em; + text-shadow: 1px 1px white; + } + .jstree-default-responsive > .jstree-striped { + background: transparent; + } + .jstree-default-responsive .jstree-wholerow { + border-top: 1px solid rgba(255, 255, 255, 0.7); + border-bottom: 1px solid rgba(64, 64, 64, 0.2); + background: #ebebeb; + height: 40px; + } + .jstree-default-responsive .jstree-wholerow-hovered { + background: #e7f4f9; + } + .jstree-default-responsive .jstree-wholerow-clicked { + background: #beebff; + } + .jstree-default-responsive .jstree-children .jstree-last > .jstree-wholerow { + box-shadow: inset 0 -6px 3px -5px #666666; + } + .jstree-default-responsive .jstree-children .jstree-open > .jstree-wholerow { + box-shadow: inset 0 6px 3px -5px #666666; + border-top: 0; + } + .jstree-default-responsive .jstree-children .jstree-open + .jstree-open { + box-shadow: none; + } + .jstree-default-responsive .jstree-node, + .jstree-default-responsive .jstree-icon, + .jstree-default-responsive .jstree-node > .jstree-ocl, + .jstree-default-responsive .jstree-themeicon, + .jstree-default-responsive .jstree-checkbox { + background-image: url("40px.png"); + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-node { + background-position: -80px 0; + background-repeat: repeat-y; + } + .jstree-default-responsive .jstree-last { + background: transparent; + } + .jstree-default-responsive .jstree-leaf > .jstree-ocl { + background-position: -40px -120px; + } + .jstree-default-responsive .jstree-last > .jstree-ocl { + background-position: -40px -160px; + } + .jstree-default-responsive .jstree-themeicon-custom { + background-color: transparent; + background-image: none; + background-position: 0 0; + } + .jstree-default-responsive .jstree-file { + background: url("40px.png") 0 -160px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive .jstree-folder { + background: url("40px.png") -40px -40px no-repeat; + background-size: 120px 240px; + } + .jstree-default-responsive > .jstree-container-ul > .jstree-node { + margin-left: 0; + margin-right: 0; + } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.less new file mode 100644 index 0000000000..53f786fa7e --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/style.less @@ -0,0 +1,22 @@ +/* jsTree default theme */ +@theme-name: default; +@hovered-bg-color: #e7f4f9; +@hovered-shadow-color: #cccccc; +@disabled-color: #666666; +@disabled-bg-color: #efefef; +@clicked-bg-color: #beebff; +@clicked-shadow-color: #999999; +@clicked-gradient-color-1: #beebff; +@clicked-gradient-color-2: #a8e4ff; +@search-result-color: #8b0000; +@mobile-wholerow-bg-color: #ebebeb; +@mobile-wholerow-shadow: #666666; +@mobile-wholerow-bordert: rgba(255,255,255,0.7); +@mobile-wholerow-borderb: rgba(64,64,64,0.2); +@responsive: true; +@image-path: ""; +@base-height: 40px; + +@import "../mixins.less"; +@import "../base.less"; +@import "../main.less"; \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/throbber.gif b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/throbber.gif new file mode 100644 index 0000000000..5b33f7e54f Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/default/throbber.gif differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/main.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/main.less new file mode 100644 index 0000000000..8616cc039f --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/main.less @@ -0,0 +1,77 @@ +.jstree-@{theme-name} { + .jstree-node, + .jstree-icon { background-repeat:no-repeat; background-color:transparent; } + .jstree-anchor, + .jstree-animated, + .jstree-wholerow { transition:background-color 0.15s, box-shadow 0.15s; } + .jstree-hovered { background:@hovered-bg-color; border-radius:2px; box-shadow:inset 0 0 1px @hovered-shadow-color; } + .jstree-context { background:@hovered-bg-color; border-radius:2px; box-shadow:inset 0 0 1px @hovered-shadow-color; } + .jstree-clicked { background:@clicked-bg-color; border-radius:2px; box-shadow:inset 0 0 1px @clicked-shadow-color; } + .jstree-no-icons .jstree-anchor > .jstree-themeicon { display:none; } + .jstree-disabled { + background:transparent; color:@disabled-color; + &.jstree-hovered { background:transparent; box-shadow:none; } + &.jstree-clicked { background:@disabled-bg-color; } + > .jstree-icon { opacity:0.8; filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); /* Firefox 10+ */ filter: gray; /* IE6-9 */ -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */ } + } + // search + .jstree-search { font-style:italic; color:@search-result-color; font-weight:bold; } + // checkboxes + .jstree-no-checkboxes .jstree-checkbox { display:none !important; } + &.jstree-checkbox-no-clicked { + .jstree-clicked { + background:transparent; + box-shadow:none; + &.jstree-hovered { background:@hovered-bg-color; } + } + > .jstree-wholerow-ul .jstree-wholerow-clicked { + background:transparent; + &.jstree-wholerow-hovered { background:@hovered-bg-color; } + } + } + // stripes + > .jstree-striped { min-width:100%; display:inline-block; background:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAkCAMAAAB/qqA+AAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMNAMM9s3UAAAAXSURBVHjajcEBAQAAAIKg/H/aCQZ70AUBjAATb6YPDgAAAABJRU5ErkJggg==") left top repeat; } + // wholerow + > .jstree-wholerow-ul .jstree-hovered, + > .jstree-wholerow-ul .jstree-clicked { background:transparent; box-shadow:none; border-radius:0; } + .jstree-wholerow { -moz-box-sizing:border-box; -webkit-box-sizing:border-box; box-sizing:border-box; } + .jstree-wholerow-hovered { background:@hovered-bg-color; } + .jstree-wholerow-clicked { .gradient(@clicked-gradient-color-1, @clicked-gradient-color-2); } +} + +// theme variants +.jstree-@{theme-name} { + .jstree-theme(24px, "@{image-path}32px.png", 32px); + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} +.jstree-@{theme-name}-small { + .jstree-theme(18px, "@{image-path}32px.png", 32px); + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAACAQMAAABv1h6PAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMHBgAAiABBI4gz9AAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} +.jstree-@{theme-name}-large { + .jstree-theme(32px, "@{image-path}32px.png", 32px); + &.jstree-rtl .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAACAQMAAAAD0EyKAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjgIIGBgABCgCBvVLXcAAAAABJRU5ErkJggg=="); } + &.jstree-rtl .jstree-last { background:transparent; } +} + +// mobile theme attempt +@media (max-width: 768px) { + #jstree-dnd.jstree-dnd-responsive when (@responsive = true) { + line-height:@base-height; font-weight:bold; font-size:1.1em; text-shadow:1px 1px white; + > i { background:transparent; width:@base-height; height:@base-height; } + > .jstree-ok { background-image:url("@{image-path}@{base-height}.png"); background-position:0 -(@base-height * 5); background-size:(@base-height * 3) (@base-height * 6); } + > .jstree-er { background-image:url("@{image-path}@{base-height}.png"); background-position:-(@base-height * 1) -(@base-height * 5); background-size:(@base-height * 3) (@base-height * 6); } + } + #jstree-marker.jstree-dnd-responsive when (@responsive = true) { + border-left-width:10px; + border-top-width:10px; + border-bottom-width:10px; + margin-top:-10px; + } +} + +.jstree-@{theme-name}-responsive when (@responsive = true) { + @import "responsive.less"; +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/mixins.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/mixins.less new file mode 100644 index 0000000000..3018623b26 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/mixins.less @@ -0,0 +1,105 @@ +.gradient (@color1; @color2) { + background:@color1; + background: -webkit-linear-gradient(top, @color1 0%,@color2 100%); + background: linear-gradient(to bottom, @color1 0%,@color2 100%); +} + +.jstree-theme (@base-height, @image, @image-height) { + @correction: (@image-height - @base-height) / 2; + + .jstree-node { min-height:@base-height; line-height:@base-height; margin-left:@base-height; min-width:@base-height; } + .jstree-anchor { line-height:@base-height; height:@base-height; } + .jstree-icon { width:@base-height; height:@base-height; line-height:@base-height; } + .jstree-icon:empty { width:@base-height; height:@base-height; line-height:@base-height; } + &.jstree-rtl .jstree-node { margin-right:@base-height; } + .jstree-wholerow { height:@base-height; } + + .jstree-node, + .jstree-icon { background-image:url("@{image}"); } + .jstree-node { background-position:-(@image-height * 9 + @correction) -@correction; background-repeat:repeat-y; } + .jstree-last { background:transparent; } + + .jstree-open > .jstree-ocl { background-position:-(@image-height * 4 + @correction) -@correction; } + .jstree-closed > .jstree-ocl { background-position:-(@image-height * 3 + @correction) -@correction; } + .jstree-leaf > .jstree-ocl { background-position:-(@image-height * 2 + @correction) -@correction; } + + .jstree-themeicon { background-position:-(@image-height * 8 + @correction) -@correction; } + + > .jstree-no-dots { + .jstree-node, + .jstree-leaf > .jstree-ocl { background:transparent; } + .jstree-open > .jstree-ocl { background-position:-(@image-height * 1 + @correction) -@correction; } + .jstree-closed > .jstree-ocl { background-position:-@correction -@correction; } + } + + .jstree-disabled { + background:transparent; + &.jstree-hovered { + background:transparent; + } + &.jstree-clicked { + background:#efefef; + } + } + + .jstree-checkbox { + background-position:-(@image-height * 5 + @correction) -@correction; + &:hover { background-position:-(@image-height * 5 + @correction) -(@image-height * 1 + @correction); } + } + + &.jstree-checkbox-selection .jstree-clicked, .jstree-checked { + > .jstree-checkbox { + background-position:-(@image-height * 7 + @correction) -@correction; + &:hover { background-position:-(@image-height * 7 + @correction) -(@image-height * 1 + @correction); } + } + } + .jstree-anchor { + > .jstree-undetermined { + background-position:-(@image-height * 6 + @correction) -@correction; + &:hover { + background-position:-(@image-height * 6 + @correction) -(@image-height * 1 + @correction); + } + } + } + .jstree-checkbox-disabled { opacity:0.8; filter: url("data:image/svg+xml;utf8,#jstree-grayscale"); /* Firefox 10+ */ filter: gray; /* IE6-9 */ -webkit-filter: grayscale(100%); /* Chrome 19+ & Safari 6+ */ } + + > .jstree-striped { background-size:auto (@base-height * 2); } + + &.jstree-rtl { + .jstree-node { background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAACAQMAAAB49I5GAAAABlBMVEUAAAAdHRvEkCwcAAAAAXRSTlMAQObYZgAAAAxJREFUCNdjAAMOBgAAGAAJMwQHdQAAAABJRU5ErkJggg=="); background-position: 100% 1px; background-repeat:repeat-y; } + .jstree-last { background:transparent; } + .jstree-open > .jstree-ocl { background-position:-(@image-height * 4 + @correction) -(@image-height * 1 + @correction); } + .jstree-closed > .jstree-ocl { background-position:-(@image-height * 3 + @correction) -(@image-height * 1 + @correction); } + .jstree-leaf > .jstree-ocl { background-position:-(@image-height * 2 + @correction) -(@image-height * 1 + @correction); } + > .jstree-no-dots { + .jstree-node, + .jstree-leaf > .jstree-ocl { background:transparent; } + .jstree-open > .jstree-ocl { background-position:-(@image-height * 1 + @correction) -(@image-height * 1 + @correction); } + .jstree-closed > .jstree-ocl { background-position:-@correction -(@image-height * 1 + @correction); } + } + } + .jstree-themeicon-custom { background-color:transparent; background-image:none; background-position:0 0; } + + > .jstree-container-ul .jstree-loading > .jstree-ocl { background:url("@{image-path}throbber.gif") center center no-repeat; } + + .jstree-file { background:url("@{image}") -(@image-height * 3 + @correction) -(@image-height * 2 + @correction) no-repeat; } + .jstree-folder { background:url("@{image}") -(@image-height * 8 + @correction) -(@correction) no-repeat; } + + > .jstree-container-ul > .jstree-node { margin-left:0; margin-right:0; } + + // drag'n'drop + #jstree-dnd& { + line-height:@base-height; padding:0 4px; + .jstree-ok, + .jstree-er { background-image:url("@{image-path}32px.png"); background-repeat:no-repeat; background-color:transparent; } + i { background:transparent; width:@base-height; height:@base-height; line-height:@base-height; } + .jstree-ok { background-position: -(@correction) -(@image-height * 2 + @correction); } + .jstree-er { background-position: -(@image-height * 1 + @correction) -(@image-height * 2 + @correction); } + } + + // ellipsis + .jstree-ellipsis { overflow: hidden; } + // base height + PADDINGS! + .jstree-ellipsis .jstree-anchor { width: calc(100% ~"-" (@base-height + 5px)); text-overflow: ellipsis; overflow: hidden; } + .jstree-ellipsis.jstree-no-icons .jstree-anchor { width: calc(100% ~"-" 5px); } +} diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/responsive.less b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/responsive.less new file mode 100644 index 0000000000..364e007518 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/themes/responsive.less @@ -0,0 +1,67 @@ +@media (max-width: 768px) { + // background image + .jstree-icon { background-image:url("@{image-path}@{base-height}.png"); } + + .jstree-node, + .jstree-leaf > .jstree-ocl { background:transparent; } + + .jstree-node { min-height:@base-height; line-height:@base-height; margin-left:@base-height; min-width:@base-height; white-space:nowrap; } + .jstree-anchor { line-height:@base-height; height:@base-height; } + .jstree-icon, .jstree-icon:empty { width:@base-height; height:@base-height; line-height:@base-height; } + + > .jstree-container-ul > .jstree-node { margin-left:0; } + &.jstree-rtl .jstree-node { margin-left:0; margin-right:@base-height; background:transparent; } + &.jstree-rtl .jstree-container-ul > .jstree-node { margin-right:0; } + + .jstree-ocl, + .jstree-themeicon, + .jstree-checkbox { background-size:(@base-height * 3) (@base-height * 6); } + .jstree-leaf > .jstree-ocl, + &.jstree-rtl .jstree-leaf > .jstree-ocl { background:transparent; } + .jstree-open > .jstree-ocl { background-position:0 0px !important; } + .jstree-closed > .jstree-ocl { background-position:0 -(@base-height * 1) !important; } + &.jstree-rtl .jstree-closed > .jstree-ocl { background-position:-(@base-height * 1) 0px !important; } + + .jstree-themeicon { background-position:-(@base-height * 1) -(@base-height * 1); } + + .jstree-checkbox, .jstree-checkbox:hover { background-position:-(@base-height * 1) -(@base-height * 2); } + &.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox, + &.jstree-checkbox-selection .jstree-clicked > .jstree-checkbox:hover, + .jstree-checked > .jstree-checkbox, + .jstree-checked > .jstree-checkbox:hover { background-position:0 -(@base-height * 2); } + .jstree-anchor > .jstree-undetermined, .jstree-anchor > .jstree-undetermined:hover { background-position:0 -(@base-height * 3); } + + .jstree-anchor { font-weight:bold; font-size:1.1em; text-shadow:1px 1px white; } + + > .jstree-striped { background:transparent; } + .jstree-wholerow { border-top:1px solid @mobile-wholerow-bordert; border-bottom:1px solid @mobile-wholerow-borderb; background:@mobile-wholerow-bg-color; height:@base-height; } + .jstree-wholerow-hovered { background:@hovered-bg-color; } + .jstree-wholerow-clicked { background:@clicked-bg-color; } + + // thanks to PHOTONUI + .jstree-children .jstree-last > .jstree-wholerow { box-shadow: inset 0 -6px 3px -5px @mobile-wholerow-shadow; } + .jstree-children .jstree-open > .jstree-wholerow { box-shadow: inset 0 6px 3px -5px @mobile-wholerow-shadow; border-top:0; } + .jstree-children .jstree-open + .jstree-open { box-shadow:none; } + + // experiment + .jstree-node, + .jstree-icon, + .jstree-node > .jstree-ocl, + .jstree-themeicon, + .jstree-checkbox { background-image:url("@{image-path}@{base-height}.png"); background-size:(@base-height * 3) (@base-height * 6); } + + .jstree-node { background-position:-(@base-height * 2) 0; background-repeat:repeat-y; } + .jstree-last { background:transparent; } + .jstree-leaf > .jstree-ocl { background-position:-(@base-height * 1) -(@base-height * 3); } + .jstree-last > .jstree-ocl { background-position:-(@base-height * 1) -(@base-height * 4); } + /* + .jstree-open > .jstree-ocl, + .jstree-closed > .jstree-ocl { border-radius:20px; background-color:white; } + */ + + .jstree-themeicon-custom { background-color:transparent; background-image:none; background-position:0 0; } + .jstree-file { background:url("@{image-path}@{base-height}.png") 0 -(@base-height * 4) no-repeat; background-size:(@base-height * 3) (@base-height * 6); } + .jstree-folder { background:url("@{image-path}@{base-height}.png") -(@base-height * 1) -(@base-height * 1) no-repeat; background-size:(@base-height * 3) (@base-height * 6); } + + > .jstree-container-ul > .jstree-node { margin-left:0; margin-right:0; } +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/src/vakata-jstree.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/vakata-jstree.js new file mode 100644 index 0000000000..9838885177 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/src/vakata-jstree.js @@ -0,0 +1,38 @@ +(function (factory) { + "use strict"; + if (typeof define === 'function' && define.amd) { + define('jstree.checkbox', ['jquery','jstree'], factory); + } + else if(typeof exports === 'object') { + factory(require('jquery'), require('jstree')); + } + else { + factory(jQuery); + } +}(function ($, undefined) { + "use strict"; + if(document.registerElement && Object && Object.create) { + var proto = Object.create(HTMLElement.prototype); + proto.createdCallback = function () { + var c = { core : {}, plugins : [] }, i; + for(i in $.jstree.plugins) { + if($.jstree.plugins.hasOwnProperty(i) && this.attributes[i]) { + c.plugins.push(i); + if(this.getAttribute(i) && JSON.parse(this.getAttribute(i))) { + c[i] = JSON.parse(this.getAttribute(i)); + } + } + } + for(i in $.jstree.defaults.core) { + if($.jstree.defaults.core.hasOwnProperty(i) && this.attributes[i]) { + c.core[i] = JSON.parse(this.getAttribute(i)) || this.getAttribute(i); + } + } + $(this).jstree(c); + }; + // proto.attributeChangedCallback = function (name, previous, value) { }; + try { + document.registerElement("vakata-jstree", { prototype: proto }); + } catch(ignore) { } + } +})); diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/index.html b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/index.html new file mode 100644 index 0000000000..0d64e77d67 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/index.html @@ -0,0 +1,16 @@ + + + + + Basic Test Suite + + + + + +
          +
          this had better work.
          + + + + \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.css b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.css new file mode 100644 index 0000000000..2a6a02bf50 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.css @@ -0,0 +1,244 @@ +/** + * QUnit v1.12.0 - A JavaScript Unit Testing Framework + * + * http://qunitjs.com + * + * Copyright 2012 jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ + +/** Font Family and Sizes */ + +#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult { + font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif; +} + +#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; } +#qunit-tests { font-size: smaller; } + + +/** Resets */ + +#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter { + margin: 0; + padding: 0; +} + + +/** Header */ + +#qunit-header { + padding: 0.5em 0 0.5em 1em; + + color: #8699a4; + background-color: #0d3349; + + font-size: 1.5em; + line-height: 1em; + font-weight: normal; + + border-radius: 5px 5px 0 0; + -moz-border-radius: 5px 5px 0 0; + -webkit-border-top-right-radius: 5px; + -webkit-border-top-left-radius: 5px; +} + +#qunit-header a { + text-decoration: none; + color: #c2ccd1; +} + +#qunit-header a:hover, +#qunit-header a:focus { + color: #fff; +} + +#qunit-testrunner-toolbar label { + display: inline-block; + padding: 0 .5em 0 .1em; +} + +#qunit-banner { + height: 5px; +} + +#qunit-testrunner-toolbar { + padding: 0.5em 0 0.5em 2em; + color: #5E740B; + background-color: #eee; + overflow: hidden; +} + +#qunit-userAgent { + padding: 0.5em 0 0.5em 2.5em; + background-color: #2b81af; + color: #fff; + text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px; +} + +#qunit-modulefilter-container { + float: right; +} + +/** Tests: Pass/Fail */ + +#qunit-tests { + list-style-position: inside; +} + +#qunit-tests li { + padding: 0.4em 0.5em 0.4em 2.5em; + border-bottom: 1px solid #fff; + list-style-position: inside; +} + +#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running { + display: none; +} + +#qunit-tests li strong { + cursor: pointer; +} + +#qunit-tests li a { + padding: 0.5em; + color: #c2ccd1; + text-decoration: none; +} +#qunit-tests li a:hover, +#qunit-tests li a:focus { + color: #000; +} + +#qunit-tests li .runtime { + float: right; + font-size: smaller; +} + +.qunit-assert-list { + margin-top: 0.5em; + padding: 0.5em; + + background-color: #fff; + + border-radius: 5px; + -moz-border-radius: 5px; + -webkit-border-radius: 5px; +} + +.qunit-collapsed { + display: none; +} + +#qunit-tests table { + border-collapse: collapse; + margin-top: .2em; +} + +#qunit-tests th { + text-align: right; + vertical-align: top; + padding: 0 .5em 0 0; +} + +#qunit-tests td { + vertical-align: top; +} + +#qunit-tests pre { + margin: 0; + white-space: pre-wrap; + word-wrap: break-word; +} + +#qunit-tests del { + background-color: #e0f2be; + color: #374e0c; + text-decoration: none; +} + +#qunit-tests ins { + background-color: #ffcaca; + color: #500; + text-decoration: none; +} + +/*** Test Counts */ + +#qunit-tests b.counts { color: black; } +#qunit-tests b.passed { color: #5E740B; } +#qunit-tests b.failed { color: #710909; } + +#qunit-tests li li { + padding: 5px; + background-color: #fff; + border-bottom: none; + list-style-position: inside; +} + +/*** Passing Styles */ + +#qunit-tests li li.pass { + color: #3c510c; + background-color: #fff; + border-left: 10px solid #C6E746; +} + +#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; } +#qunit-tests .pass .test-name { color: #366097; } + +#qunit-tests .pass .test-actual, +#qunit-tests .pass .test-expected { color: #999999; } + +#qunit-banner.qunit-pass { background-color: #C6E746; } + +/*** Failing Styles */ + +#qunit-tests li li.fail { + color: #710909; + background-color: #fff; + border-left: 10px solid #EE5757; + white-space: pre; +} + +#qunit-tests > li:last-child { + border-radius: 0 0 5px 5px; + -moz-border-radius: 0 0 5px 5px; + -webkit-border-bottom-right-radius: 5px; + -webkit-border-bottom-left-radius: 5px; +} + +#qunit-tests .fail { color: #000000; background-color: #EE5757; } +#qunit-tests .fail .test-name, +#qunit-tests .fail .module-name { color: #000000; } + +#qunit-tests .fail .test-actual { color: #EE5757; } +#qunit-tests .fail .test-expected { color: green; } + +#qunit-banner.qunit-fail { background-color: #EE5757; } + + +/** Result */ + +#qunit-testresult { + padding: 0.5em 0.5em 0.5em 2.5em; + + color: #2b81af; + background-color: #D2E0E6; + + border-bottom: 1px solid white; +} +#qunit-testresult .module-name { + font-weight: bold; +} + +/** Fixture */ + +#qunit-fixture { + position: absolute; + top: -10000px; + left: -10000px; + width: 1000px; + height: 1000px; +} \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.js new file mode 100644 index 0000000000..7567d5fc51 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/libs/qunit.js @@ -0,0 +1,2212 @@ +/** + * QUnit v1.12.0 - A JavaScript Unit Testing Framework + * + * http://qunitjs.com + * + * Copyright 2013 jQuery Foundation and other contributors + * Released under the MIT license. + * https://jquery.org/license/ + */ + +(function( window ) { + +var QUnit, + assert, + config, + onErrorFnPrev, + testId = 0, + fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""), + toString = Object.prototype.toString, + hasOwn = Object.prototype.hasOwnProperty, + // Keep a local reference to Date (GH-283) + Date = window.Date, + setTimeout = window.setTimeout, + defined = { + setTimeout: typeof window.setTimeout !== "undefined", + sessionStorage: (function() { + var x = "qunit-test-string"; + try { + sessionStorage.setItem( x, x ); + sessionStorage.removeItem( x ); + return true; + } catch( e ) { + return false; + } + }()) + }, + /** + * Provides a normalized error string, correcting an issue + * with IE 7 (and prior) where Error.prototype.toString is + * not properly implemented + * + * Based on http://es5.github.com/#x15.11.4.4 + * + * @param {String|Error} error + * @return {String} error message + */ + errorString = function( error ) { + var name, message, + errorString = error.toString(); + if ( errorString.substring( 0, 7 ) === "[object" ) { + name = error.name ? error.name.toString() : "Error"; + message = error.message ? error.message.toString() : ""; + if ( name && message ) { + return name + ": " + message; + } else if ( name ) { + return name; + } else if ( message ) { + return message; + } else { + return "Error"; + } + } else { + return errorString; + } + }, + /** + * Makes a clone of an object using only Array or Object as base, + * and copies over the own enumerable properties. + * + * @param {Object} obj + * @return {Object} New object with only the own properties (recursively). + */ + objectValues = function( obj ) { + // Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392. + /*jshint newcap: false */ + var key, val, + vals = QUnit.is( "array", obj ) ? [] : {}; + for ( key in obj ) { + if ( hasOwn.call( obj, key ) ) { + val = obj[key]; + vals[key] = val === Object(val) ? objectValues(val) : val; + } + } + return vals; + }; + +function Test( settings ) { + extend( this, settings ); + this.assertions = []; + this.testNumber = ++Test.count; +} + +Test.count = 0; + +Test.prototype = { + init: function() { + var a, b, li, + tests = id( "qunit-tests" ); + + if ( tests ) { + b = document.createElement( "strong" ); + b.innerHTML = this.nameHtml; + + // `a` initialized at top of scope + a = document.createElement( "a" ); + a.innerHTML = "Rerun"; + a.href = QUnit.url({ testNumber: this.testNumber }); + + li = document.createElement( "li" ); + li.appendChild( b ); + li.appendChild( a ); + li.className = "running"; + li.id = this.id = "qunit-test-output" + testId++; + + tests.appendChild( li ); + } + }, + setup: function() { + if ( + // Emit moduleStart when we're switching from one module to another + this.module !== config.previousModule || + // They could be equal (both undefined) but if the previousModule property doesn't + // yet exist it means this is the first test in a suite that isn't wrapped in a + // module, in which case we'll just emit a moduleStart event for 'undefined'. + // Without this, reporters can get testStart before moduleStart which is a problem. + !hasOwn.call( config, "previousModule" ) + ) { + if ( hasOwn.call( config, "previousModule" ) ) { + runLoggingCallbacks( "moduleDone", QUnit, { + name: config.previousModule, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all + }); + } + config.previousModule = this.module; + config.moduleStats = { all: 0, bad: 0 }; + runLoggingCallbacks( "moduleStart", QUnit, { + name: this.module + }); + } + + config.current = this; + + this.testEnvironment = extend({ + setup: function() {}, + teardown: function() {} + }, this.moduleTestEnvironment ); + + this.started = +new Date(); + runLoggingCallbacks( "testStart", QUnit, { + name: this.testName, + module: this.module + }); + + /*jshint camelcase:false */ + + + /** + * Expose the current test environment. + * + * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead. + */ + QUnit.current_testEnvironment = this.testEnvironment; + + /*jshint camelcase:true */ + + if ( !config.pollution ) { + saveGlobal(); + } + if ( config.notrycatch ) { + this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); + return; + } + try { + this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert ); + } catch( e ) { + QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); + } + }, + run: function() { + config.current = this; + + var running = id( "qunit-testresult" ); + + if ( running ) { + running.innerHTML = "Running:
          " + this.nameHtml; + } + + if ( this.async ) { + QUnit.stop(); + } + + this.callbackStarted = +new Date(); + + if ( config.notrycatch ) { + this.callback.call( this.testEnvironment, QUnit.assert ); + this.callbackRuntime = +new Date() - this.callbackStarted; + return; + } + + try { + this.callback.call( this.testEnvironment, QUnit.assert ); + this.callbackRuntime = +new Date() - this.callbackStarted; + } catch( e ) { + this.callbackRuntime = +new Date() - this.callbackStarted; + + QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) ); + // else next test will carry the responsibility + saveGlobal(); + + // Restart the tests if they're blocking + if ( config.blocking ) { + QUnit.start(); + } + } + }, + teardown: function() { + config.current = this; + if ( config.notrycatch ) { + if ( typeof this.callbackRuntime === "undefined" ) { + this.callbackRuntime = +new Date() - this.callbackStarted; + } + this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); + return; + } else { + try { + this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert ); + } catch( e ) { + QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) ); + } + } + checkPollution(); + }, + finish: function() { + config.current = this; + if ( config.requireExpects && this.expected === null ) { + QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack ); + } else if ( this.expected !== null && this.expected !== this.assertions.length ) { + QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack ); + } else if ( this.expected === null && !this.assertions.length ) { + QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack ); + } + + var i, assertion, a, b, time, li, ol, + test = this, + good = 0, + bad = 0, + tests = id( "qunit-tests" ); + + this.runtime = +new Date() - this.started; + config.stats.all += this.assertions.length; + config.moduleStats.all += this.assertions.length; + + if ( tests ) { + ol = document.createElement( "ol" ); + ol.className = "qunit-assert-list"; + + for ( i = 0; i < this.assertions.length; i++ ) { + assertion = this.assertions[i]; + + li = document.createElement( "li" ); + li.className = assertion.result ? "pass" : "fail"; + li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" ); + ol.appendChild( li ); + + if ( assertion.result ) { + good++; + } else { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + + // store result when possible + if ( QUnit.config.reorder && defined.sessionStorage ) { + if ( bad ) { + sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad ); + } else { + sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName ); + } + } + + if ( bad === 0 ) { + addClass( ol, "qunit-collapsed" ); + } + + // `b` initialized at top of scope + b = document.createElement( "strong" ); + b.innerHTML = this.nameHtml + " (" + bad + ", " + good + ", " + this.assertions.length + ")"; + + addEvent(b, "click", function() { + var next = b.parentNode.lastChild, + collapsed = hasClass( next, "qunit-collapsed" ); + ( collapsed ? removeClass : addClass )( next, "qunit-collapsed" ); + }); + + addEvent(b, "dblclick", function( e ) { + var target = e && e.target ? e.target : window.event.srcElement; + if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) { + target = target.parentNode; + } + if ( window.location && target.nodeName.toLowerCase() === "strong" ) { + window.location = QUnit.url({ testNumber: test.testNumber }); + } + }); + + // `time` initialized at top of scope + time = document.createElement( "span" ); + time.className = "runtime"; + time.innerHTML = this.runtime + " ms"; + + // `li` initialized at top of scope + li = id( this.id ); + li.className = bad ? "fail" : "pass"; + li.removeChild( li.firstChild ); + a = li.firstChild; + li.appendChild( b ); + li.appendChild( a ); + li.appendChild( time ); + li.appendChild( ol ); + + } else { + for ( i = 0; i < this.assertions.length; i++ ) { + if ( !this.assertions[i].result ) { + bad++; + config.stats.bad++; + config.moduleStats.bad++; + } + } + } + + runLoggingCallbacks( "testDone", QUnit, { + name: this.testName, + module: this.module, + failed: bad, + passed: this.assertions.length - bad, + total: this.assertions.length, + duration: this.runtime + }); + + QUnit.reset(); + + config.current = undefined; + }, + + queue: function() { + var bad, + test = this; + + synchronize(function() { + test.init(); + }); + function run() { + // each of these can by async + synchronize(function() { + test.setup(); + }); + synchronize(function() { + test.run(); + }); + synchronize(function() { + test.teardown(); + }); + synchronize(function() { + test.finish(); + }); + } + + // `bad` initialized at top of scope + // defer when previous test run passed, if storage is available + bad = QUnit.config.reorder && defined.sessionStorage && + +sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName ); + + if ( bad ) { + run(); + } else { + synchronize( run, true ); + } + } +}; + +// Root QUnit object. +// `QUnit` initialized at top of scope +QUnit = { + + // call on start of module test to prepend name to all tests + module: function( name, testEnvironment ) { + config.currentModule = name; + config.currentModuleTestEnvironment = testEnvironment; + config.modules[name] = true; + }, + + asyncTest: function( testName, expected, callback ) { + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + + QUnit.test( testName, expected, callback, true ); + }, + + test: function( testName, expected, callback, async ) { + var test, + nameHtml = "" + escapeText( testName ) + ""; + + if ( arguments.length === 2 ) { + callback = expected; + expected = null; + } + + if ( config.currentModule ) { + nameHtml = "" + escapeText( config.currentModule ) + ": " + nameHtml; + } + + test = new Test({ + nameHtml: nameHtml, + testName: testName, + expected: expected, + async: async, + callback: callback, + module: config.currentModule, + moduleTestEnvironment: config.currentModuleTestEnvironment, + stack: sourceFromStacktrace( 2 ) + }); + + if ( !validTest( test ) ) { + return; + } + + test.queue(); + }, + + // Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through. + expect: function( asserts ) { + if (arguments.length === 1) { + config.current.expected = asserts; + } else { + return config.current.expected; + } + }, + + start: function( count ) { + // QUnit hasn't been initialized yet. + // Note: RequireJS (et al) may delay onLoad + if ( config.semaphore === undefined ) { + QUnit.begin(function() { + // This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first + setTimeout(function() { + QUnit.start( count ); + }); + }); + return; + } + + config.semaphore -= count || 1; + // don't start until equal number of stop-calls + if ( config.semaphore > 0 ) { + return; + } + // ignore if start is called more often then stop + if ( config.semaphore < 0 ) { + config.semaphore = 0; + QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) ); + return; + } + // A slight delay, to avoid any current callbacks + if ( defined.setTimeout ) { + setTimeout(function() { + if ( config.semaphore > 0 ) { + return; + } + if ( config.timeout ) { + clearTimeout( config.timeout ); + } + + config.blocking = false; + process( true ); + }, 13); + } else { + config.blocking = false; + process( true ); + } + }, + + stop: function( count ) { + config.semaphore += count || 1; + config.blocking = true; + + if ( config.testTimeout && defined.setTimeout ) { + clearTimeout( config.timeout ); + config.timeout = setTimeout(function() { + QUnit.ok( false, "Test timed out" ); + config.semaphore = 1; + QUnit.start(); + }, config.testTimeout ); + } + } +}; + +// `assert` initialized at top of scope +// Assert helpers +// All of these must either call QUnit.push() or manually do: +// - runLoggingCallbacks( "log", .. ); +// - config.current.assertions.push({ .. }); +// We attach it to the QUnit object *after* we expose the public API, +// otherwise `assert` will become a global variable in browsers (#341). +assert = { + /** + * Asserts rough true-ish result. + * @name ok + * @function + * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" ); + */ + ok: function( result, msg ) { + if ( !config.current ) { + throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) ); + } + result = !!result; + msg = msg || (result ? "okay" : "failed" ); + + var source, + details = { + module: config.current.module, + name: config.current.testName, + result: result, + message: msg + }; + + msg = "" + escapeText( msg ) + ""; + + if ( !result ) { + source = sourceFromStacktrace( 2 ); + if ( source ) { + details.source = source; + msg += "
          Source:
          " + escapeText( source ) + "
          "; + } + } + runLoggingCallbacks( "log", QUnit, details ); + config.current.assertions.push({ + result: result, + message: msg + }); + }, + + /** + * Assert that the first two arguments are equal, with an optional message. + * Prints out both actual and expected values. + * @name equal + * @function + * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" ); + */ + equal: function( actual, expected, message ) { + /*jshint eqeqeq:false */ + QUnit.push( expected == actual, actual, expected, message ); + }, + + /** + * @name notEqual + * @function + */ + notEqual: function( actual, expected, message ) { + /*jshint eqeqeq:false */ + QUnit.push( expected != actual, actual, expected, message ); + }, + + /** + * @name propEqual + * @function + */ + propEqual: function( actual, expected, message ) { + actual = objectValues(actual); + expected = objectValues(expected); + QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name notPropEqual + * @function + */ + notPropEqual: function( actual, expected, message ) { + actual = objectValues(actual); + expected = objectValues(expected); + QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name deepEqual + * @function + */ + deepEqual: function( actual, expected, message ) { + QUnit.push( QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name notDeepEqual + * @function + */ + notDeepEqual: function( actual, expected, message ) { + QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message ); + }, + + /** + * @name strictEqual + * @function + */ + strictEqual: function( actual, expected, message ) { + QUnit.push( expected === actual, actual, expected, message ); + }, + + /** + * @name notStrictEqual + * @function + */ + notStrictEqual: function( actual, expected, message ) { + QUnit.push( expected !== actual, actual, expected, message ); + }, + + "throws": function( block, expected, message ) { + var actual, + expectedOutput = expected, + ok = false; + + // 'expected' is optional + if ( typeof expected === "string" ) { + message = expected; + expected = null; + } + + config.current.ignoreGlobalErrors = true; + try { + block.call( config.current.testEnvironment ); + } catch (e) { + actual = e; + } + config.current.ignoreGlobalErrors = false; + + if ( actual ) { + // we don't want to validate thrown error + if ( !expected ) { + ok = true; + expectedOutput = null; + // expected is a regexp + } else if ( QUnit.objectType( expected ) === "regexp" ) { + ok = expected.test( errorString( actual ) ); + // expected is a constructor + } else if ( actual instanceof expected ) { + ok = true; + // expected is a validation function which returns true is validation passed + } else if ( expected.call( {}, actual ) === true ) { + expectedOutput = null; + ok = true; + } + + QUnit.push( ok, actual, expectedOutput, message ); + } else { + QUnit.pushFailure( message, null, "No exception was thrown." ); + } + } +}; + +/** + * @deprecated since 1.8.0 + * Kept assertion helpers in root for backwards compatibility. + */ +extend( QUnit, assert ); + +/** + * @deprecated since 1.9.0 + * Kept root "raises()" for backwards compatibility. + * (Note that we don't introduce assert.raises). + */ +QUnit.raises = assert[ "throws" ]; + +/** + * @deprecated since 1.0.0, replaced with error pushes since 1.3.0 + * Kept to avoid TypeErrors for undefined methods. + */ +QUnit.equals = function() { + QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" ); +}; +QUnit.same = function() { + QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" ); +}; + +// We want access to the constructor's prototype +(function() { + function F() {} + F.prototype = QUnit; + QUnit = new F(); + // Make F QUnit's constructor so that we can add to the prototype later + QUnit.constructor = F; +}()); + +/** + * Config object: Maintain internal state + * Later exposed as QUnit.config + * `config` initialized at top of scope + */ +config = { + // The queue of tests to run + queue: [], + + // block until document ready + blocking: true, + + // when enabled, show only failing tests + // gets persisted through sessionStorage and can be changed in UI via checkbox + hidepassed: false, + + // by default, run previously failed tests first + // very useful in combination with "Hide passed tests" checked + reorder: true, + + // by default, modify document.title when suite is done + altertitle: true, + + // when enabled, all tests must call expect() + requireExpects: false, + + // add checkboxes that are persisted in the query-string + // when enabled, the id is set to `true` as a `QUnit.config` property + urlConfig: [ + { + id: "noglobals", + label: "Check for Globals", + tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings." + }, + { + id: "notrycatch", + label: "No try-catch", + tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings." + } + ], + + // Set of all modules. + modules: {}, + + // logging callback queues + begin: [], + done: [], + log: [], + testStart: [], + testDone: [], + moduleStart: [], + moduleDone: [] +}; + +// Export global variables, unless an 'exports' object exists, +// in that case we assume we're in CommonJS (dealt with on the bottom of the script) +if ( typeof exports === "undefined" ) { + extend( window, QUnit.constructor.prototype ); + + // Expose QUnit object + window.QUnit = QUnit; +} + +// Initialize more QUnit.config and QUnit.urlParams +(function() { + var i, + location = window.location || { search: "", protocol: "file:" }, + params = location.search.slice( 1 ).split( "&" ), + length = params.length, + urlParams = {}, + current; + + if ( params[ 0 ] ) { + for ( i = 0; i < length; i++ ) { + current = params[ i ].split( "=" ); + current[ 0 ] = decodeURIComponent( current[ 0 ] ); + // allow just a key to turn on a flag, e.g., test.html?noglobals + current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true; + urlParams[ current[ 0 ] ] = current[ 1 ]; + } + } + + QUnit.urlParams = urlParams; + + // String search anywhere in moduleName+testName + config.filter = urlParams.filter; + + // Exact match of the module name + config.module = urlParams.module; + + config.testNumber = parseInt( urlParams.testNumber, 10 ) || null; + + // Figure out if we're running the tests from a server or not + QUnit.isLocal = location.protocol === "file:"; +}()); + +// Extend QUnit object, +// these after set here because they should not be exposed as global functions +extend( QUnit, { + assert: assert, + + config: config, + + // Initialize the configuration options + init: function() { + extend( config, { + stats: { all: 0, bad: 0 }, + moduleStats: { all: 0, bad: 0 }, + started: +new Date(), + updateRate: 1000, + blocking: false, + autostart: true, + autorun: false, + filter: "", + queue: [], + semaphore: 1 + }); + + var tests, banner, result, + qunit = id( "qunit" ); + + if ( qunit ) { + qunit.innerHTML = + "

          " + escapeText( document.title ) + "

          " + + "

          " + + "
          " + + "

          " + + "
            "; + } + + tests = id( "qunit-tests" ); + banner = id( "qunit-banner" ); + result = id( "qunit-testresult" ); + + if ( tests ) { + tests.innerHTML = ""; + } + + if ( banner ) { + banner.className = ""; + } + + if ( result ) { + result.parentNode.removeChild( result ); + } + + if ( tests ) { + result = document.createElement( "p" ); + result.id = "qunit-testresult"; + result.className = "result"; + tests.parentNode.insertBefore( result, tests ); + result.innerHTML = "Running...
             "; + } + }, + + // Resets the test setup. Useful for tests that modify the DOM. + /* + DEPRECATED: Use multiple tests instead of resetting inside a test. + Use testStart or testDone for custom cleanup. + This method will throw an error in 2.0, and will be removed in 2.1 + */ + reset: function() { + var fixture = id( "qunit-fixture" ); + if ( fixture ) { + fixture.innerHTML = config.fixture; + } + }, + + // Trigger an event on an element. + // @example triggerEvent( document.body, "click" ); + triggerEvent: function( elem, type, event ) { + if ( document.createEvent ) { + event = document.createEvent( "MouseEvents" ); + event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView, + 0, 0, 0, 0, 0, false, false, false, false, 0, null); + + elem.dispatchEvent( event ); + } else if ( elem.fireEvent ) { + elem.fireEvent( "on" + type ); + } + }, + + // Safe object type checking + is: function( type, obj ) { + return QUnit.objectType( obj ) === type; + }, + + objectType: function( obj ) { + if ( typeof obj === "undefined" ) { + return "undefined"; + // consider: typeof null === object + } + if ( obj === null ) { + return "null"; + } + + var match = toString.call( obj ).match(/^\[object\s(.*)\]$/), + type = match && match[1] || ""; + + switch ( type ) { + case "Number": + if ( isNaN(obj) ) { + return "nan"; + } + return "number"; + case "String": + case "Boolean": + case "Array": + case "Date": + case "RegExp": + case "Function": + return type.toLowerCase(); + } + if ( typeof obj === "object" ) { + return "object"; + } + return undefined; + }, + + push: function( result, actual, expected, message ) { + if ( !config.current ) { + throw new Error( "assertion outside test context, was " + sourceFromStacktrace() ); + } + + var output, source, + details = { + module: config.current.module, + name: config.current.testName, + result: result, + message: message, + actual: actual, + expected: expected + }; + + message = escapeText( message ) || ( result ? "okay" : "failed" ); + message = "" + message + ""; + output = message; + + if ( !result ) { + expected = escapeText( QUnit.jsDump.parse(expected) ); + actual = escapeText( QUnit.jsDump.parse(actual) ); + output += ""; + + if ( actual !== expected ) { + output += ""; + output += ""; + } + + source = sourceFromStacktrace(); + + if ( source ) { + details.source = source; + output += ""; + } + + output += "
            Expected:
            " + expected + "
            Result:
            " + actual + "
            Diff:
            " + QUnit.diff( expected, actual ) + "
            Source:
            " + escapeText( source ) + "
            "; + } + + runLoggingCallbacks( "log", QUnit, details ); + + config.current.assertions.push({ + result: !!result, + message: output + }); + }, + + pushFailure: function( message, source, actual ) { + if ( !config.current ) { + throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) ); + } + + var output, + details = { + module: config.current.module, + name: config.current.testName, + result: false, + message: message + }; + + message = escapeText( message ) || "error"; + message = "" + message + ""; + output = message; + + output += ""; + + if ( actual ) { + output += ""; + } + + if ( source ) { + details.source = source; + output += ""; + } + + output += "
            Result:
            " + escapeText( actual ) + "
            Source:
            " + escapeText( source ) + "
            "; + + runLoggingCallbacks( "log", QUnit, details ); + + config.current.assertions.push({ + result: false, + message: output + }); + }, + + url: function( params ) { + params = extend( extend( {}, QUnit.urlParams ), params ); + var key, + querystring = "?"; + + for ( key in params ) { + if ( hasOwn.call( params, key ) ) { + querystring += encodeURIComponent( key ) + "=" + + encodeURIComponent( params[ key ] ) + "&"; + } + } + return window.location.protocol + "//" + window.location.host + + window.location.pathname + querystring.slice( 0, -1 ); + }, + + extend: extend, + id: id, + addEvent: addEvent, + addClass: addClass, + hasClass: hasClass, + removeClass: removeClass + // load, equiv, jsDump, diff: Attached later +}); + +/** + * @deprecated: Created for backwards compatibility with test runner that set the hook function + * into QUnit.{hook}, instead of invoking it and passing the hook function. + * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here. + * Doing this allows us to tell if the following methods have been overwritten on the actual + * QUnit object. + */ +extend( QUnit.constructor.prototype, { + + // Logging callbacks; all receive a single argument with the listed properties + // run test/logs.html for any related changes + begin: registerLoggingCallback( "begin" ), + + // done: { failed, passed, total, runtime } + done: registerLoggingCallback( "done" ), + + // log: { result, actual, expected, message } + log: registerLoggingCallback( "log" ), + + // testStart: { name } + testStart: registerLoggingCallback( "testStart" ), + + // testDone: { name, failed, passed, total, duration } + testDone: registerLoggingCallback( "testDone" ), + + // moduleStart: { name } + moduleStart: registerLoggingCallback( "moduleStart" ), + + // moduleDone: { name, failed, passed, total } + moduleDone: registerLoggingCallback( "moduleDone" ) +}); + +if ( typeof document === "undefined" || document.readyState === "complete" ) { + config.autorun = true; +} + +QUnit.load = function() { + runLoggingCallbacks( "begin", QUnit, {} ); + + // Initialize the config, saving the execution queue + var banner, filter, i, label, len, main, ol, toolbar, userAgent, val, + urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter, + numModules = 0, + moduleNames = [], + moduleFilterHtml = "", + urlConfigHtml = "", + oldconfig = extend( {}, config ); + + QUnit.init(); + extend(config, oldconfig); + + config.blocking = false; + + len = config.urlConfig.length; + + for ( i = 0; i < len; i++ ) { + val = config.urlConfig[i]; + if ( typeof val === "string" ) { + val = { + id: val, + label: val, + tooltip: "[no tooltip available]" + }; + } + config[ val.id ] = QUnit.urlParams[ val.id ]; + urlConfigHtml += ""; + } + for ( i in config.modules ) { + if ( config.modules.hasOwnProperty( i ) ) { + moduleNames.push(i); + } + } + numModules = moduleNames.length; + moduleNames.sort( function( a, b ) { + return a.localeCompare( b ); + }); + moduleFilterHtml += ""; + + // `userAgent` initialized at top of scope + userAgent = id( "qunit-userAgent" ); + if ( userAgent ) { + userAgent.innerHTML = navigator.userAgent; + } + + // `banner` initialized at top of scope + banner = id( "qunit-header" ); + if ( banner ) { + banner.innerHTML = "" + banner.innerHTML + " "; + } + + // `toolbar` initialized at top of scope + toolbar = id( "qunit-testrunner-toolbar" ); + if ( toolbar ) { + // `filter` initialized at top of scope + filter = document.createElement( "input" ); + filter.type = "checkbox"; + filter.id = "qunit-filter-pass"; + + addEvent( filter, "click", function() { + var tmp, + ol = document.getElementById( "qunit-tests" ); + + if ( filter.checked ) { + ol.className = ol.className + " hidepass"; + } else { + tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " "; + ol.className = tmp.replace( / hidepass /, " " ); + } + if ( defined.sessionStorage ) { + if (filter.checked) { + sessionStorage.setItem( "qunit-filter-passed-tests", "true" ); + } else { + sessionStorage.removeItem( "qunit-filter-passed-tests" ); + } + } + }); + + if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) { + filter.checked = true; + // `ol` initialized at top of scope + ol = document.getElementById( "qunit-tests" ); + ol.className = ol.className + " hidepass"; + } + toolbar.appendChild( filter ); + + // `label` initialized at top of scope + label = document.createElement( "label" ); + label.setAttribute( "for", "qunit-filter-pass" ); + label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." ); + label.innerHTML = "Hide passed tests"; + toolbar.appendChild( label ); + + urlConfigCheckboxesContainer = document.createElement("span"); + urlConfigCheckboxesContainer.innerHTML = urlConfigHtml; + urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input"); + // For oldIE support: + // * Add handlers to the individual elements instead of the container + // * Use "click" instead of "change" + // * Fallback from event.target to event.srcElement + addEvents( urlConfigCheckboxes, "click", function( event ) { + var params = {}, + target = event.target || event.srcElement; + params[ target.name ] = target.checked ? true : undefined; + window.location = QUnit.url( params ); + }); + toolbar.appendChild( urlConfigCheckboxesContainer ); + + if (numModules > 1) { + moduleFilter = document.createElement( "span" ); + moduleFilter.setAttribute( "id", "qunit-modulefilter-container" ); + moduleFilter.innerHTML = moduleFilterHtml; + addEvent( moduleFilter.lastChild, "change", function() { + var selectBox = moduleFilter.getElementsByTagName("select")[0], + selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value); + + window.location = QUnit.url({ + module: ( selectedModule === "" ) ? undefined : selectedModule, + // Remove any existing filters + filter: undefined, + testNumber: undefined + }); + }); + toolbar.appendChild(moduleFilter); + } + } + + // `main` initialized at top of scope + main = id( "qunit-fixture" ); + if ( main ) { + config.fixture = main.innerHTML; + } + + if ( config.autostart ) { + QUnit.start(); + } +}; + +addEvent( window, "load", QUnit.load ); + +// `onErrorFnPrev` initialized at top of scope +// Preserve other handlers +onErrorFnPrev = window.onerror; + +// Cover uncaught exceptions +// Returning true will suppress the default browser handler, +// returning false will let it run. +window.onerror = function ( error, filePath, linerNr ) { + var ret = false; + if ( onErrorFnPrev ) { + ret = onErrorFnPrev( error, filePath, linerNr ); + } + + // Treat return value as window.onerror itself does, + // Only do our handling if not suppressed. + if ( ret !== true ) { + if ( QUnit.config.current ) { + if ( QUnit.config.current.ignoreGlobalErrors ) { + return true; + } + QUnit.pushFailure( error, filePath + ":" + linerNr ); + } else { + QUnit.test( "global failure", extend( function() { + QUnit.pushFailure( error, filePath + ":" + linerNr ); + }, { validTest: validTest } ) ); + } + return false; + } + + return ret; +}; + +function done() { + config.autorun = true; + + // Log the last module results + if ( config.currentModule ) { + runLoggingCallbacks( "moduleDone", QUnit, { + name: config.currentModule, + failed: config.moduleStats.bad, + passed: config.moduleStats.all - config.moduleStats.bad, + total: config.moduleStats.all + }); + } + delete config.previousModule; + + var i, key, + banner = id( "qunit-banner" ), + tests = id( "qunit-tests" ), + runtime = +new Date() - config.started, + passed = config.stats.all - config.stats.bad, + html = [ + "Tests completed in ", + runtime, + " milliseconds.
            ", + "", + passed, + " assertions of ", + config.stats.all, + " passed, ", + config.stats.bad, + " failed." + ].join( "" ); + + if ( banner ) { + banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" ); + } + + if ( tests ) { + id( "qunit-testresult" ).innerHTML = html; + } + + if ( config.altertitle && typeof document !== "undefined" && document.title ) { + // show ✖ for good, ✔ for bad suite result in title + // use escape sequences in case file gets loaded with non-utf-8-charset + document.title = [ + ( config.stats.bad ? "\u2716" : "\u2714" ), + document.title.replace( /^[\u2714\u2716] /i, "" ) + ].join( " " ); + } + + // clear own sessionStorage items if all tests passed + if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) { + // `key` & `i` initialized at top of scope + for ( i = 0; i < sessionStorage.length; i++ ) { + key = sessionStorage.key( i++ ); + if ( key.indexOf( "qunit-test-" ) === 0 ) { + sessionStorage.removeItem( key ); + } + } + } + + // scroll back to top to show results + if ( window.scrollTo ) { + window.scrollTo(0, 0); + } + + runLoggingCallbacks( "done", QUnit, { + failed: config.stats.bad, + passed: passed, + total: config.stats.all, + runtime: runtime + }); +} + +/** @return Boolean: true if this test should be ran */ +function validTest( test ) { + var include, + filter = config.filter && config.filter.toLowerCase(), + module = config.module && config.module.toLowerCase(), + fullName = (test.module + ": " + test.testName).toLowerCase(); + + // Internally-generated tests are always valid + if ( test.callback && test.callback.validTest === validTest ) { + delete test.callback.validTest; + return true; + } + + if ( config.testNumber ) { + return test.testNumber === config.testNumber; + } + + if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) { + return false; + } + + if ( !filter ) { + return true; + } + + include = filter.charAt( 0 ) !== "!"; + if ( !include ) { + filter = filter.slice( 1 ); + } + + // If the filter matches, we need to honour include + if ( fullName.indexOf( filter ) !== -1 ) { + return include; + } + + // Otherwise, do the opposite + return !include; +} + +// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions) +// Later Safari and IE10 are supposed to support error.stack as well +// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack +function extractStacktrace( e, offset ) { + offset = offset === undefined ? 3 : offset; + + var stack, include, i; + + if ( e.stacktrace ) { + // Opera + return e.stacktrace.split( "\n" )[ offset + 3 ]; + } else if ( e.stack ) { + // Firefox, Chrome + stack = e.stack.split( "\n" ); + if (/^error$/i.test( stack[0] ) ) { + stack.shift(); + } + if ( fileName ) { + include = []; + for ( i = offset; i < stack.length; i++ ) { + if ( stack[ i ].indexOf( fileName ) !== -1 ) { + break; + } + include.push( stack[ i ] ); + } + if ( include.length ) { + return include.join( "\n" ); + } + } + return stack[ offset ]; + } else if ( e.sourceURL ) { + // Safari, PhantomJS + // hopefully one day Safari provides actual stacktraces + // exclude useless self-reference for generated Error objects + if ( /qunit.js$/.test( e.sourceURL ) ) { + return; + } + // for actual exceptions, this is useful + return e.sourceURL + ":" + e.line; + } +} +function sourceFromStacktrace( offset ) { + try { + throw new Error(); + } catch ( e ) { + return extractStacktrace( e, offset ); + } +} + +/** + * Escape text for attribute or text content. + */ +function escapeText( s ) { + if ( !s ) { + return ""; + } + s = s + ""; + // Both single quotes and double quotes (for attributes) + return s.replace( /['"<>&]/g, function( s ) { + switch( s ) { + case "'": + return "'"; + case "\"": + return """; + case "<": + return "<"; + case ">": + return ">"; + case "&": + return "&"; + } + }); +} + +function synchronize( callback, last ) { + config.queue.push( callback ); + + if ( config.autorun && !config.blocking ) { + process( last ); + } +} + +function process( last ) { + function next() { + process( last ); + } + var start = new Date().getTime(); + config.depth = config.depth ? config.depth + 1 : 1; + + while ( config.queue.length && !config.blocking ) { + if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) { + config.queue.shift()(); + } else { + setTimeout( next, 13 ); + break; + } + } + config.depth--; + if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) { + done(); + } +} + +function saveGlobal() { + config.pollution = []; + + if ( config.noglobals ) { + for ( var key in window ) { + if ( hasOwn.call( window, key ) ) { + // in Opera sometimes DOM element ids show up here, ignore them + if ( /^qunit-test-output/.test( key ) ) { + continue; + } + config.pollution.push( key ); + } + } + } +} + +function checkPollution() { + var newGlobals, + deletedGlobals, + old = config.pollution; + + saveGlobal(); + + newGlobals = diff( config.pollution, old ); + if ( newGlobals.length > 0 ) { + QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") ); + } + + deletedGlobals = diff( old, config.pollution ); + if ( deletedGlobals.length > 0 ) { + QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") ); + } +} + +// returns a new Array with the elements that are in a but not in b +function diff( a, b ) { + var i, j, + result = a.slice(); + + for ( i = 0; i < result.length; i++ ) { + for ( j = 0; j < b.length; j++ ) { + if ( result[i] === b[j] ) { + result.splice( i, 1 ); + i--; + break; + } + } + } + return result; +} + +function extend( a, b ) { + for ( var prop in b ) { + if ( hasOwn.call( b, prop ) ) { + // Avoid "Member not found" error in IE8 caused by messing with window.constructor + if ( !( prop === "constructor" && a === window ) ) { + if ( b[ prop ] === undefined ) { + delete a[ prop ]; + } else { + a[ prop ] = b[ prop ]; + } + } + } + } + + return a; +} + +/** + * @param {HTMLElement} elem + * @param {string} type + * @param {Function} fn + */ +function addEvent( elem, type, fn ) { + // Standards-based browsers + if ( elem.addEventListener ) { + elem.addEventListener( type, fn, false ); + // IE + } else { + elem.attachEvent( "on" + type, fn ); + } +} + +/** + * @param {Array|NodeList} elems + * @param {string} type + * @param {Function} fn + */ +function addEvents( elems, type, fn ) { + var i = elems.length; + while ( i-- ) { + addEvent( elems[i], type, fn ); + } +} + +function hasClass( elem, name ) { + return (" " + elem.className + " ").indexOf(" " + name + " ") > -1; +} + +function addClass( elem, name ) { + if ( !hasClass( elem, name ) ) { + elem.className += (elem.className ? " " : "") + name; + } +} + +function removeClass( elem, name ) { + var set = " " + elem.className + " "; + // Class name may appear multiple times + while ( set.indexOf(" " + name + " ") > -1 ) { + set = set.replace(" " + name + " " , " "); + } + // If possible, trim it for prettiness, but not necessarily + elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, ""); +} + +function id( name ) { + return !!( typeof document !== "undefined" && document && document.getElementById ) && + document.getElementById( name ); +} + +function registerLoggingCallback( key ) { + return function( callback ) { + config[key].push( callback ); + }; +} + +// Supports deprecated method of completely overwriting logging callbacks +function runLoggingCallbacks( key, scope, args ) { + var i, callbacks; + if ( QUnit.hasOwnProperty( key ) ) { + QUnit[ key ].call(scope, args ); + } else { + callbacks = config[ key ]; + for ( i = 0; i < callbacks.length; i++ ) { + callbacks[ i ].call( scope, args ); + } + } +} + +// Test for equality any JavaScript type. +// Author: Philippe Rathé +QUnit.equiv = (function() { + + // Call the o related callback with the given arguments. + function bindCallbacks( o, callbacks, args ) { + var prop = QUnit.objectType( o ); + if ( prop ) { + if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) { + return callbacks[ prop ].apply( callbacks, args ); + } else { + return callbacks[ prop ]; // or undefined + } + } + } + + // the real equiv function + var innerEquiv, + // stack to decide between skip/abort functions + callers = [], + // stack to avoiding loops from circular referencing + parents = [], + parentsB = [], + + getProto = Object.getPrototypeOf || function ( obj ) { + /*jshint camelcase:false */ + return obj.__proto__; + }, + callbacks = (function () { + + // for string, boolean, number and null + function useStrictEquality( b, a ) { + /*jshint eqeqeq:false */ + if ( b instanceof a.constructor || a instanceof b.constructor ) { + // to catch short annotation VS 'new' annotation of a + // declaration + // e.g. var i = 1; + // var j = new Number(1); + return a == b; + } else { + return a === b; + } + } + + return { + "string": useStrictEquality, + "boolean": useStrictEquality, + "number": useStrictEquality, + "null": useStrictEquality, + "undefined": useStrictEquality, + + "nan": function( b ) { + return isNaN( b ); + }, + + "date": function( b, a ) { + return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf(); + }, + + "regexp": function( b, a ) { + return QUnit.objectType( b ) === "regexp" && + // the regex itself + a.source === b.source && + // and its modifiers + a.global === b.global && + // (gmi) ... + a.ignoreCase === b.ignoreCase && + a.multiline === b.multiline && + a.sticky === b.sticky; + }, + + // - skip when the property is a method of an instance (OOP) + // - abort otherwise, + // initial === would have catch identical references anyway + "function": function() { + var caller = callers[callers.length - 1]; + return caller !== Object && typeof caller !== "undefined"; + }, + + "array": function( b, a ) { + var i, j, len, loop, aCircular, bCircular; + + // b could be an object literal here + if ( QUnit.objectType( b ) !== "array" ) { + return false; + } + + len = a.length; + if ( len !== b.length ) { + // safe and faster + return false; + } + + // track reference to avoid circular references + parents.push( a ); + parentsB.push( b ); + for ( i = 0; i < len; i++ ) { + loop = false; + for ( j = 0; j < parents.length; j++ ) { + aCircular = parents[j] === a[i]; + bCircular = parentsB[j] === b[i]; + if ( aCircular || bCircular ) { + if ( a[i] === b[i] || aCircular && bCircular ) { + loop = true; + } else { + parents.pop(); + parentsB.pop(); + return false; + } + } + } + if ( !loop && !innerEquiv(a[i], b[i]) ) { + parents.pop(); + parentsB.pop(); + return false; + } + } + parents.pop(); + parentsB.pop(); + return true; + }, + + "object": function( b, a ) { + /*jshint forin:false */ + var i, j, loop, aCircular, bCircular, + // Default to true + eq = true, + aProperties = [], + bProperties = []; + + // comparing constructors is more strict than using + // instanceof + if ( a.constructor !== b.constructor ) { + // Allow objects with no prototype to be equivalent to + // objects with Object as their constructor. + if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) || + ( getProto(b) === null && getProto(a) === Object.prototype ) ) ) { + return false; + } + } + + // stack constructor before traversing properties + callers.push( a.constructor ); + + // track reference to avoid circular references + parents.push( a ); + parentsB.push( b ); + + // be strict: don't ensure hasOwnProperty and go deep + for ( i in a ) { + loop = false; + for ( j = 0; j < parents.length; j++ ) { + aCircular = parents[j] === a[i]; + bCircular = parentsB[j] === b[i]; + if ( aCircular || bCircular ) { + if ( a[i] === b[i] || aCircular && bCircular ) { + loop = true; + } else { + eq = false; + break; + } + } + } + aProperties.push(i); + if ( !loop && !innerEquiv(a[i], b[i]) ) { + eq = false; + break; + } + } + + parents.pop(); + parentsB.pop(); + callers.pop(); // unstack, we are done + + for ( i in b ) { + bProperties.push( i ); // collect b's properties + } + + // Ensures identical properties name + return eq && innerEquiv( aProperties.sort(), bProperties.sort() ); + } + }; + }()); + + innerEquiv = function() { // can take multiple arguments + var args = [].slice.apply( arguments ); + if ( args.length < 2 ) { + return true; // end transition + } + + return (function( a, b ) { + if ( a === b ) { + return true; // catch the most you can + } else if ( a === null || b === null || typeof a === "undefined" || + typeof b === "undefined" || + QUnit.objectType(a) !== QUnit.objectType(b) ) { + return false; // don't lose time with error prone cases + } else { + return bindCallbacks(a, callbacks, [ b, a ]); + } + + // apply transition with (1..n) arguments + }( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) ); + }; + + return innerEquiv; +}()); + +/** + * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | + * http://flesler.blogspot.com Licensed under BSD + * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008 + * + * @projectDescription Advanced and extensible data dumping for Javascript. + * @version 1.0.0 + * @author Ariel Flesler + * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html} + */ +QUnit.jsDump = (function() { + function quote( str ) { + return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\""; + } + function literal( o ) { + return o + ""; + } + function join( pre, arr, post ) { + var s = jsDump.separator(), + base = jsDump.indent(), + inner = jsDump.indent(1); + if ( arr.join ) { + arr = arr.join( "," + s + inner ); + } + if ( !arr ) { + return pre + post; + } + return [ pre, inner + arr, base + post ].join(s); + } + function array( arr, stack ) { + var i = arr.length, ret = new Array(i); + this.up(); + while ( i-- ) { + ret[i] = this.parse( arr[i] , undefined , stack); + } + this.down(); + return join( "[", ret, "]" ); + } + + var reName = /^function (\w+)/, + jsDump = { + // type is used mostly internally, you can fix a (custom)type in advance + parse: function( obj, type, stack ) { + stack = stack || [ ]; + var inStack, res, + parser = this.parsers[ type || this.typeOf(obj) ]; + + type = typeof parser; + inStack = inArray( obj, stack ); + + if ( inStack !== -1 ) { + return "recursion(" + (inStack - stack.length) + ")"; + } + if ( type === "function" ) { + stack.push( obj ); + res = parser.call( this, obj, stack ); + stack.pop(); + return res; + } + return ( type === "string" ) ? parser : this.parsers.error; + }, + typeOf: function( obj ) { + var type; + if ( obj === null ) { + type = "null"; + } else if ( typeof obj === "undefined" ) { + type = "undefined"; + } else if ( QUnit.is( "regexp", obj) ) { + type = "regexp"; + } else if ( QUnit.is( "date", obj) ) { + type = "date"; + } else if ( QUnit.is( "function", obj) ) { + type = "function"; + } else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) { + type = "window"; + } else if ( obj.nodeType === 9 ) { + type = "document"; + } else if ( obj.nodeType ) { + type = "node"; + } else if ( + // native arrays + toString.call( obj ) === "[object Array]" || + // NodeList objects + ( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) ) + ) { + type = "array"; + } else if ( obj.constructor === Error.prototype.constructor ) { + type = "error"; + } else { + type = typeof obj; + } + return type; + }, + separator: function() { + return this.multiline ? this.HTML ? "
            " : "\n" : this.HTML ? " " : " "; + }, + // extra can be a number, shortcut for increasing-calling-decreasing + indent: function( extra ) { + if ( !this.multiline ) { + return ""; + } + var chr = this.indentChar; + if ( this.HTML ) { + chr = chr.replace( /\t/g, " " ).replace( / /g, " " ); + } + return new Array( this.depth + ( extra || 0 ) ).join(chr); + }, + up: function( a ) { + this.depth += a || 1; + }, + down: function( a ) { + this.depth -= a || 1; + }, + setParser: function( name, parser ) { + this.parsers[name] = parser; + }, + // The next 3 are exposed so you can use them + quote: quote, + literal: literal, + join: join, + // + depth: 1, + // This is the list of parsers, to modify them, use jsDump.setParser + parsers: { + window: "[Window]", + document: "[Document]", + error: function(error) { + return "Error(\"" + error.message + "\")"; + }, + unknown: "[Unknown]", + "null": "null", + "undefined": "undefined", + "function": function( fn ) { + var ret = "function", + // functions never have name in IE + name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1]; + + if ( name ) { + ret += " " + name; + } + ret += "( "; + + ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" ); + return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" ); + }, + array: array, + nodelist: array, + "arguments": array, + object: function( map, stack ) { + /*jshint forin:false */ + var ret = [ ], keys, key, val, i; + QUnit.jsDump.up(); + keys = []; + for ( key in map ) { + keys.push( key ); + } + keys.sort(); + for ( i = 0; i < keys.length; i++ ) { + key = keys[ i ]; + val = map[ key ]; + ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) ); + } + QUnit.jsDump.down(); + return join( "{", ret, "}" ); + }, + node: function( node ) { + var len, i, val, + open = QUnit.jsDump.HTML ? "<" : "<", + close = QUnit.jsDump.HTML ? ">" : ">", + tag = node.nodeName.toLowerCase(), + ret = open + tag, + attrs = node.attributes; + + if ( attrs ) { + for ( i = 0, len = attrs.length; i < len; i++ ) { + val = attrs[i].nodeValue; + // IE6 includes all attributes in .attributes, even ones not explicitly set. + // Those have values like undefined, null, 0, false, "" or "inherit". + if ( val && val !== "inherit" ) { + ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" ); + } + } + } + ret += close; + + // Show content of TextNode or CDATASection + if ( node.nodeType === 3 || node.nodeType === 4 ) { + ret += node.nodeValue; + } + + return ret + open + "/" + tag + close; + }, + // function calls it internally, it's the arguments part of the function + functionArgs: function( fn ) { + var args, + l = fn.length; + + if ( !l ) { + return ""; + } + + args = new Array(l); + while ( l-- ) { + // 97 is 'a' + args[l] = String.fromCharCode(97+l); + } + return " " + args.join( ", " ) + " "; + }, + // object calls it internally, the key part of an item in a map + key: quote, + // function calls it internally, it's the content of the function + functionCode: "[code]", + // node calls it internally, it's an html attribute value + attribute: quote, + string: quote, + date: quote, + regexp: literal, + number: literal, + "boolean": literal + }, + // if true, entities are escaped ( <, >, \t, space and \n ) + HTML: false, + // indentation unit + indentChar: " ", + // if true, items in a collection, are separated by a \n, else just a space. + multiline: true + }; + + return jsDump; +}()); + +// from jquery.js +function inArray( elem, array ) { + if ( array.indexOf ) { + return array.indexOf( elem ); + } + + for ( var i = 0, length = array.length; i < length; i++ ) { + if ( array[ i ] === elem ) { + return i; + } + } + + return -1; +} + +/* + * Javascript Diff Algorithm + * By John Resig (http://ejohn.org/) + * Modified by Chu Alan "sprite" + * + * Released under the MIT license. + * + * More Info: + * http://ejohn.org/projects/javascript-diff-algorithm/ + * + * Usage: QUnit.diff(expected, actual) + * + * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the quick brown fox jumped jumps over" + */ +QUnit.diff = (function() { + /*jshint eqeqeq:false, eqnull:true */ + function diff( o, n ) { + var i, + ns = {}, + os = {}; + + for ( i = 0; i < n.length; i++ ) { + if ( !hasOwn.call( ns, n[i] ) ) { + ns[ n[i] ] = { + rows: [], + o: null + }; + } + ns[ n[i] ].rows.push( i ); + } + + for ( i = 0; i < o.length; i++ ) { + if ( !hasOwn.call( os, o[i] ) ) { + os[ o[i] ] = { + rows: [], + n: null + }; + } + os[ o[i] ].rows.push( i ); + } + + for ( i in ns ) { + if ( hasOwn.call( ns, i ) ) { + if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) { + n[ ns[i].rows[0] ] = { + text: n[ ns[i].rows[0] ], + row: os[i].rows[0] + }; + o[ os[i].rows[0] ] = { + text: o[ os[i].rows[0] ], + row: ns[i].rows[0] + }; + } + } + } + + for ( i = 0; i < n.length - 1; i++ ) { + if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null && + n[ i + 1 ] == o[ n[i].row + 1 ] ) { + + n[ i + 1 ] = { + text: n[ i + 1 ], + row: n[i].row + 1 + }; + o[ n[i].row + 1 ] = { + text: o[ n[i].row + 1 ], + row: i + 1 + }; + } + } + + for ( i = n.length - 1; i > 0; i-- ) { + if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null && + n[ i - 1 ] == o[ n[i].row - 1 ]) { + + n[ i - 1 ] = { + text: n[ i - 1 ], + row: n[i].row - 1 + }; + o[ n[i].row - 1 ] = { + text: o[ n[i].row - 1 ], + row: i - 1 + }; + } + } + + return { + o: o, + n: n + }; + } + + return function( o, n ) { + o = o.replace( /\s+$/, "" ); + n = n.replace( /\s+$/, "" ); + + var i, pre, + str = "", + out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ), + oSpace = o.match(/\s+/g), + nSpace = n.match(/\s+/g); + + if ( oSpace == null ) { + oSpace = [ " " ]; + } + else { + oSpace.push( " " ); + } + + if ( nSpace == null ) { + nSpace = [ " " ]; + } + else { + nSpace.push( " " ); + } + + if ( out.n.length === 0 ) { + for ( i = 0; i < out.o.length; i++ ) { + str += "" + out.o[i] + oSpace[i] + ""; + } + } + else { + if ( out.n[0].text == null ) { + for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) { + str += "" + out.o[n] + oSpace[n] + ""; + } + } + + for ( i = 0; i < out.n.length; i++ ) { + if (out.n[i].text == null) { + str += "" + out.n[i] + nSpace[i] + ""; + } + else { + // `pre` initialized at top of scope + pre = ""; + + for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) { + pre += "" + out.o[n] + oSpace[n] + ""; + } + str += " " + out.n[i].text + nSpace[i] + pre; + } + } + } + + return str; + }; +}()); + +// for CommonJS environments, export everything +if ( typeof exports !== "undefined" ) { + extend( exports, QUnit.constructor.prototype ); +} + +// get at whatever the global object is, like window in browsers +}( (function() {return this;}.call()) )); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/test.js b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/test.js new file mode 100644 index 0000000000..331e9c67d1 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/unit/test.js @@ -0,0 +1,11 @@ +test('basic test', function() { + expect(1); + ok(true, 'this had better work.'); +}); + + +test('can access the DOM', function() { + expect(1); + var fixture = document.getElementById('qunit-fixture'); + equal(fixture.innerText || fixture.textContent, 'this had better work.', 'should be able to access the DOM.'); +}); \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/desktop/index.html b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/desktop/index.html new file mode 100644 index 0000000000..1c3cf0a8aa --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/desktop/index.html @@ -0,0 +1,44 @@ + + + + + Light theme visual tests + + + + + +
            +
            • asdf
            +
            +
              +
            • Node 01 +
                +
              • Node
              • +
              • Node
              • +
              +
            • +
            • Node 02
            • +
            • Node 03 +
                +
              • Node
              • +
              • Node
              • +
              +
            • +
            • Node 04
            • +
            • Node 05
            • +
            +
            +
            • full
            • asdf
            +
            • full
            • asdf
            + + + + + + \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/mobile/index.html b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/mobile/index.html new file mode 100644 index 0000000000..12ba4b85d0 --- /dev/null +++ b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/mobile/index.html @@ -0,0 +1,42 @@ + + + + + Mobile theme visual tests + + + + + +
            +
              +
            • Node 01 +
                +
              • Node
              • +
              • Node
              • +
              +
            • +
            • Node 02
            • +
            • Node 03 +
                +
              • Node
              • +
              • Node
              • +
              +
            • +
            • Node 04
            • +
            • Node 05
            • +
            +
            +
            • full
            • asdf
            +
            • full
            • asdf
            + + + + + + \ No newline at end of file diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/.png new file mode 100644 index 0000000000..55ccf189b5 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/desktop.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/desktop.png new file mode 100644 index 0000000000..d6ececdbd9 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/desktop.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/home.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/home.png new file mode 100644 index 0000000000..55ccf189b5 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/desktop/home.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/.png new file mode 100644 index 0000000000..c8cd05ad1d Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/home.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/home.png new file mode 100644 index 0000000000..c8cd05ad1d Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/home.png differ diff --git a/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/mobile.png b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/mobile.png new file mode 100644 index 0000000000..dcc76a0064 Binary files /dev/null and b/mayan/apps/cabinets/static/cabinets/packages/jstree/test/visual/screenshots/mobile/mobile.png differ diff --git a/mayan/apps/cabinets/templates/cabinets/cabinet_details.html b/mayan/apps/cabinets/templates/cabinets/cabinet_details.html new file mode 100644 index 0000000000..65098d5b34 --- /dev/null +++ b/mayan/apps/cabinets/templates/cabinets/cabinet_details.html @@ -0,0 +1,57 @@ +{% extends 'appearance/base.html' %} + +{% load i18n %} +{% load static %} + +{% load navigation_tags %} + +{% block title %}{% include 'appearance/calculate_form_title.html' %}{% endblock %} + +{% block stylesheets %} + +{% endblock %} + +{% block content %} + {% if title %} +

            {{ title }}

            +
            + {% endif %} +
            +
            +

            {% trans 'Navigation:' %}

            +
            +
            + +
            + {% with document_list as object_list %} + {% include 'appearance/generic_list_subtemplate.html' %} + {% endwith %} +
            +
            +{% endblock %} + +{% block javascript %} + + +{% endblock %} diff --git a/mayan/apps/cabinets/tests/__init__.py b/mayan/apps/cabinets/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/mayan/apps/cabinets/tests/literals.py b/mayan/apps/cabinets/tests/literals.py new file mode 100644 index 0000000000..cc8bab69ab --- /dev/null +++ b/mayan/apps/cabinets/tests/literals.py @@ -0,0 +1,4 @@ +from __future__ import absolute_import, unicode_literals + +TEST_CABINET_LABEL = 'test cabinet label' +TEST_CABINET_EDITED_LABEL = 'test cabinet edited label' diff --git a/mayan/apps/cabinets/tests/test_api.py b/mayan/apps/cabinets/tests/test_api.py new file mode 100644 index 0000000000..206ff92c18 --- /dev/null +++ b/mayan/apps/cabinets/tests/test_api.py @@ -0,0 +1,241 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings +from django.utils.encoding import force_text + +from rest_framework.test import APITestCase + +from documents.models import DocumentType +from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import Cabinet + +from .literals import TEST_CABINET_EDITED_LABEL, TEST_CABINET_LABEL + + +@override_settings(OCR_AUTO_OCR=False) +class CabinetAPITestCase(APITestCase): + """ + Test the cabinet API endpoints + """ + + def setUp(self): + super(CabinetAPITestCase, self).setUp() + + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object, + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document_2 = self.document_type.new_document( + file_object=file_object, + ) + + def tearDown(self): + self.document_type.delete() + super(CabinetAPITestCase, self).tearDown() + + def test_cabinet_create(self): + response = self.client.post( + reverse('rest_api:cabinet-list'), {'label': TEST_CABINET_LABEL} + ) + + cabinet = Cabinet.objects.first() + + self.assertEqual(response.data['id'], cabinet.pk) + self.assertEqual(response.data['label'], TEST_CABINET_LABEL) + + self.assertEqual(Cabinet.objects.count(), 1) + self.assertEqual(cabinet.label, TEST_CABINET_LABEL) + + def test_cabinet_create_with_single_document(self): + response = self.client.post( + reverse('rest_api:cabinet-list'), { + 'label': TEST_CABINET_LABEL, 'documents_pk_list': '{}'.format( + self.document.pk + ) + } + ) + + cabinet = Cabinet.objects.first() + + self.assertEqual(response.data['id'], cabinet.pk) + self.assertEqual(response.data['label'], TEST_CABINET_LABEL) + + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + self.assertEqual(cabinet.label, TEST_CABINET_LABEL) + + def test_cabinet_create_with_multiple_documents(self): + response = self.client.post( + reverse('rest_api:cabinet-list'), { + 'label': TEST_CABINET_LABEL, + 'documents_pk_list': '{},{}'.format( + self.document.pk, self.document_2.pk + ) + } + ) + + cabinet = Cabinet.objects.first() + + self.assertEqual(response.data['id'], cabinet.pk) + self.assertEqual(response.data['label'], TEST_CABINET_LABEL) + + self.assertEqual(Cabinet.objects.count(), 1) + + self.assertEqual(cabinet.label, TEST_CABINET_LABEL) + + self.assertQuerysetEqual( + cabinet.documents.all(), map( + repr, (self.document, self.document_2) + ) + ) + + def test_cabinet_document_delete(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + self.client.delete( + reverse( + 'rest_api:cabinet-document', + args=(cabinet.pk, self.document.pk) + ) + ) + + self.assertEqual(cabinet.documents.count(), 0) + + def test_cabinet_document_detail(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + response = self.client.get( + reverse( + 'rest_api:cabinet-document', + args=(cabinet.pk, self.document.pk) + ) + ) + + self.assertEqual(response.data['uuid'], force_text(self.document.uuid)) + + def test_cabinet_document_list(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + response = self.client.get( + reverse('rest_api:cabinet-document-list', args=(cabinet.pk,)) + ) + + self.assertEqual( + response.data['results'][0]['uuid'], force_text(self.document.uuid) + ) + + def test_cabinet_delete(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.delete( + reverse('rest_api:cabinet-detail', args=(cabinet.pk,)) + ) + + self.assertEqual(Cabinet.objects.count(), 0) + + def test_cabinet_edit_via_patch(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.patch( + reverse('rest_api:cabinet-detail', args=(cabinet.pk,)), + {'label': TEST_CABINET_EDITED_LABEL} + ) + + cabinet.refresh_from_db() + + self.assertEqual(cabinet.label, TEST_CABINET_EDITED_LABEL) + + def test_cabinet_edit_via_put(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.put( + reverse('rest_api:cabinet-detail', args=(cabinet.pk,)), + {'label': TEST_CABINET_EDITED_LABEL} + ) + + cabinet.refresh_from_db() + + self.assertEqual(cabinet.label, TEST_CABINET_EDITED_LABEL) + + def test_cabinet_add_document(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.post( + reverse('rest_api:cabinet-document-list', args=(cabinet.pk,)), { + 'documents_pk_list': '{}'.format(self.document.pk) + } + ) + + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + def test_cabinet_add_multiple_documents(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.client.post( + reverse('rest_api:cabinet-document-list', args=(cabinet.pk,)), { + 'documents_pk_list': '{},{}'.format( + self.document.pk, self.document_2.pk + ) + } + ) + + self.assertQuerysetEqual( + cabinet.documents.all(), map( + repr, (self.document, self.document_2) + ) + ) + + def test_cabinet_list_view(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + Cabinet.objects.create( + label=TEST_CABINET_LABEL, parent=cabinet + ) + + response = self.client.get( + reverse('rest_api:cabinet-list') + ) + + self.assertEqual(response.status_code, 200) + self.assertEqual(response.data['results'][0]['label'], cabinet.label) + + def test_cabinet_remove_document(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + cabinet.documents.add(self.document) + + self.client.delete( + reverse( + 'rest_api:cabinet-document', args=( + cabinet.pk, self.document.pk + ) + ), + ) + + self.assertEqual(cabinet.documents.count(), 0) diff --git a/mayan/apps/cabinets/tests/test_models.py b/mayan/apps/cabinets/tests/test_models.py new file mode 100644 index 0000000000..4c69ac5c6e --- /dev/null +++ b/mayan/apps/cabinets/tests/test_models.py @@ -0,0 +1,82 @@ +from __future__ import unicode_literals + +from django.core.exceptions import ValidationError +from django.test import override_settings + +from common.tests import BaseTestCase +from documents.models import DocumentType +from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH + +from ..models import Cabinet + +from .literals import TEST_CABINET_LABEL + + +@override_settings(OCR_AUTO_OCR=False) +class CabinetTestCase(BaseTestCase): + def setUp(self): + super(CabinetTestCase, self).setUp() + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def tearDown(self): + self.document_type.delete() + super(CabinetTestCase, self).tearDown() + + def test_cabinet_creation(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.assertEqual(Cabinet.objects.all().count(), 1) + self.assertQuerysetEqual(Cabinet.objects.all(), (repr(cabinet),)) + + def test_cabinet_duplicate_creation(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + with self.assertRaises(ValidationError): + cabinet_2 = Cabinet(label=TEST_CABINET_LABEL) + cabinet_2.validate_unique() + cabinet_2.save() + + self.assertEqual(Cabinet.objects.all().count(), 1) + self.assertQuerysetEqual(Cabinet.objects.all(), (repr(cabinet),)) + + def test_inner_cabinet_creation(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + inner_cabinet = Cabinet.objects.create( + parent=cabinet, label=TEST_CABINET_LABEL + ) + + self.assertEqual(Cabinet.objects.all().count(), 2) + self.assertQuerysetEqual( + Cabinet.objects.all(), map(repr, (cabinet, inner_cabinet)) + ) + + def test_addition_of_documents(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + self.assertEqual(cabinet.documents.count(), 1) + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + def test_addition_and_deletion_of_documents(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + cabinet.documents.add(self.document) + + self.assertEqual(cabinet.documents.count(), 1) + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + cabinet.documents.remove(self.document) + + self.assertEqual(cabinet.documents.count(), 0) + self.assertQuerysetEqual(cabinet.documents.all(), ()) diff --git a/mayan/apps/cabinets/tests/test_views.py b/mayan/apps/cabinets/tests/test_views.py new file mode 100644 index 0000000000..afc396908e --- /dev/null +++ b/mayan/apps/cabinets/tests/test_views.py @@ -0,0 +1,207 @@ +from __future__ import absolute_import, unicode_literals + +from documents.permissions import permission_document_view +from documents.tests.test_views import GenericDocumentViewTestCase + +from ..models import Cabinet +from ..permissions import ( + permission_cabinet_add_document, permission_cabinet_create, + permission_cabinet_delete, permission_cabinet_edit, + permission_cabinet_remove_document, permission_cabinet_view +) +from .literals import TEST_CABINET_LABEL, TEST_CABINET_EDITED_LABEL + + +class CabinetViewTestCase(GenericDocumentViewTestCase): + def setUp(self): + super(CabinetViewTestCase, self).setUp() + self.login_user() + + def _create_cabinet(self, label): + return self.post( + 'cabinets:cabinet_create', data={ + 'label': TEST_CABINET_LABEL + } + ) + + def test_cabinet_create_view_no_permission(self): + response = self._create_cabinet(label=TEST_CABINET_LABEL) + + self.assertEquals(response.status_code, 403) + self.assertEqual(Cabinet.objects.count(), 0) + + def test_cabinet_create_view_with_permission(self): + self.grant(permission=permission_cabinet_create) + + response = self._create_cabinet(label=TEST_CABINET_LABEL) + + self.assertEqual(response.status_code, 302) + self.assertEqual(Cabinet.objects.count(), 1) + self.assertEqual(Cabinet.objects.first().label, TEST_CABINET_LABEL) + + def test_cabinet_create_duplicate_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + self.grant(permission=permission_cabinet_create) + response = self._create_cabinet(label=TEST_CABINET_LABEL) + + # HTTP 200 with error message + self.assertEqual(response.status_code, 200) + self.assertEqual(Cabinet.objects.count(), 1) + self.assertEqual(Cabinet.objects.first().pk, cabinet.pk) + + def _delete_cabinet(self, cabinet): + return self.post('cabinets:cabinet_delete', args=(cabinet.pk,)) + + def test_cabinet_delete_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + response = self._delete_cabinet(cabinet=cabinet) + self.assertEqual(response.status_code, 403) + self.assertEqual(Cabinet.objects.count(), 1) + + def test_cabinet_delete_view_with_permission(self): + self.grant(permission=permission_cabinet_delete) + + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + response = self._delete_cabinet(cabinet=cabinet) + + self.assertEqual(response.status_code, 302) + self.assertEqual(Cabinet.objects.count(), 0) + + def _edit_cabinet(self, cabinet, label): + return self.post( + 'cabinets:cabinet_edit', args=(cabinet.pk,), data={ + 'label': label + } + ) + + def test_cabinet_edit_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + response = self._edit_cabinet( + cabinet=cabinet, label=TEST_CABINET_EDITED_LABEL + ) + self.assertEqual(response.status_code, 403) + cabinet.refresh_from_db() + self.assertEqual(cabinet.label, TEST_CABINET_LABEL) + + def test_cabinet_edit_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_edit) + + response = self._edit_cabinet( + cabinet=cabinet, label=TEST_CABINET_EDITED_LABEL + ) + + self.assertEqual(response.status_code, 302) + cabinet.refresh_from_db() + self.assertEqual(cabinet.label, TEST_CABINET_EDITED_LABEL) + + def _add_document_to_cabinet(self, cabinet): + return self.post( + 'cabinets:cabinet_add_document', args=(self.document.pk,), data={ + 'cabinets': cabinet.pk + } + ) + + def test_cabinet_add_document_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_view) + + response = self._add_document_to_cabinet(cabinet=cabinet) + + self.assertContains( + response, text='Select a valid choice.', status_code=200 + ) + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 0) + + def test_cabinet_add_document_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_view) + self.grant(permission=permission_cabinet_add_document) + self.grant(permission=permission_document_view) + + response = self._add_document_to_cabinet(cabinet=cabinet) + + cabinet.refresh_from_db() + + self.assertEqual(response.status_code, 302) + self.assertEqual(cabinet.documents.count(), 1) + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + def _add_multiple_documents_to_cabinet(self, cabinet): + return self.post( + 'cabinets:cabinet_add_multiple_documents', data={ + 'id_list': (self.document.pk,), 'cabinets': cabinet.pk + } + ) + + def test_cabinet_add_multiple_documents_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_view) + + response = self._add_multiple_documents_to_cabinet(cabinet=cabinet) + + self.assertContains( + response, text='Select a valid choice', status_code=200 + ) + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 0) + + def test_cabinet_add_multiple_documents_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + self.grant(permission=permission_cabinet_view) + self.grant(permission=permission_cabinet_add_document) + + response = self._add_multiple_documents_to_cabinet(cabinet=cabinet) + + self.assertEqual(response.status_code, 302) + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 1) + self.assertQuerysetEqual( + cabinet.documents.all(), (repr(self.document),) + ) + + def _remove_document_from_cabinet(self, cabinet): + return self.post( + 'cabinets:document_cabinet_remove', args=(self.document.pk,), + data={ + 'cabinets': (cabinet.pk,), + } + ) + + def test_cabinet_remove_document_view_no_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + cabinet.documents.add(self.document) + + response = self._remove_document_from_cabinet(cabinet=cabinet) + + self.assertContains( + response, text='Select a valid choice', status_code=200 + ) + + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 1) + + def test_cabinet_remove_document_view_with_permission(self): + cabinet = Cabinet.objects.create(label=TEST_CABINET_LABEL) + + cabinet.documents.add(self.document) + + self.grant(permission=permission_cabinet_remove_document) + + response = self._remove_document_from_cabinet(cabinet=cabinet) + + self.assertEqual(response.status_code, 302) + cabinet.refresh_from_db() + self.assertEqual(cabinet.documents.count(), 0) diff --git a/mayan/apps/cabinets/urls.py b/mayan/apps/cabinets/urls.py new file mode 100644 index 0000000000..14142d67b1 --- /dev/null +++ b/mayan/apps/cabinets/urls.py @@ -0,0 +1,73 @@ +from __future__ import unicode_literals + +from django.conf.urls import url + +from .api_views import ( + APIDocumentCabinetListView, APICabinetDocumentListView, + APICabinetDocumentView, APICabinetListView, APICabinetView +) +from .views import ( + DocumentAddToCabinetView, DocumentCabinetListView, + DocumentRemoveFromCabinetView, CabinetChildAddView, CabinetCreateView, + CabinetDeleteView, CabinetDetailView, CabinetEditView, CabinetListView, +) + +urlpatterns = [ + url(r'^list/$', CabinetListView.as_view(), name='cabinet_list'), + url( + r'^(?P\d+)/child/add/$', CabinetChildAddView.as_view(), + name='cabinet_child_add' + ), + url(r'^create/$', CabinetCreateView.as_view(), name='cabinet_create'), + url( + r'^(?P\d+)/edit/$', CabinetEditView.as_view(), name='cabinet_edit' + ), + url( + r'^(?P\d+)/delete/$', CabinetDeleteView.as_view(), + name='cabinet_delete' + ), + url(r'^(?P\d+)/$', CabinetDetailView.as_view(), name='cabinet_view'), + + url( + r'^document/(?P\d+)/cabinet/add/$', + DocumentAddToCabinetView.as_view(), name='cabinet_add_document' + ), + url( + r'^document/multiple/cabinet/add/$', + DocumentAddToCabinetView.as_view(), + name='cabinet_add_multiple_documents' + ), + url( + r'^document/(?P\d+)/cabinet/remove/$', + DocumentRemoveFromCabinetView.as_view(), name='document_cabinet_remove' + ), + url( + r'^document/multiple/cabinet/remove/$', + DocumentRemoveFromCabinetView.as_view(), + name='multiple_document_cabinet_remove' + ), + url( + r'^document/(?P\d+)/cabinet/list/$', + DocumentCabinetListView.as_view(), name='document_cabinet_list' + ), +] + +api_urls = [ + url( + r'^cabinets/(?P[0-9]+)/documents/(?P[0-9]+)/$', + APICabinetDocumentView.as_view(), name='cabinet-document' + ), + url( + r'^cabinets/(?P[0-9]+)/documents/$', + APICabinetDocumentListView.as_view(), name='cabinet-document-list' + ), + url( + r'^cabinets/(?P[0-9]+)/$', APICabinetView.as_view(), + name='cabinet-detail' + ), + url(r'^cabinets/$', APICabinetListView.as_view(), name='cabinet-list'), + url( + r'^documents/(?P[0-9]+)/cabinets/$', + APIDocumentCabinetListView.as_view(), name='document-cabinet-list' + ), +] diff --git a/mayan/apps/cabinets/views.py b/mayan/apps/cabinets/views.py new file mode 100644 index 0000000000..012b28c3a4 --- /dev/null +++ b/mayan/apps/cabinets/views.py @@ -0,0 +1,348 @@ +from __future__ import absolute_import, unicode_literals + +import logging + +from django.contrib import messages +from django.core.urlresolvers import reverse_lazy +from django.shortcuts import get_object_or_404 +from django.utils.translation import ugettext_lazy as _, ungettext + +from acls.models import AccessControlList +from common.views import ( + MultipleObjectFormActionView, SingleObjectCreateView, + SingleObjectDeleteView, SingleObjectEditView, SingleObjectListView, + TemplateView +) +from documents.permissions import permission_document_view +from documents.models import Document + +from .forms import CabinetListForm +from .models import Cabinet +from .permissions import ( + permission_cabinet_add_document, permission_cabinet_create, + permission_cabinet_delete, permission_cabinet_edit, + permission_cabinet_view, permission_cabinet_remove_document +) +from .widgets import jstree_data + + +logger = logging.getLogger(__name__) + + +class CabinetCreateView(SingleObjectCreateView): + fields = ('label',) + model = Cabinet + view_permission = permission_cabinet_create + + def get_extra_context(self): + return { + 'title': _('Create cabinet'), + } + + +class CabinetChildAddView(SingleObjectCreateView): + fields = ('label',) + model = Cabinet + + def form_valid(self, form): + """ + If the form is valid, save the associated model. + """ + self.object = form.save(commit=False) + self.object.parent = self.get_object() + self.object.save() + + return super(CabinetChildAddView, self).form_valid(form) + + def get_object(self, *args, **kwargs): + cabinet = super(CabinetChildAddView, self).get_object(*args, **kwargs) + + AccessControlList.objects.check_access( + permissions=permission_cabinet_edit, user=self.request.user, + obj=cabinet.get_root() + ) + + return cabinet + + def get_extra_context(self): + return { + 'title': _( + 'Add new level to: %s' + ) % self.get_object().get_full_path(), + } + + +class CabinetDeleteView(SingleObjectDeleteView): + model = Cabinet + object_permission = permission_cabinet_delete + post_action_redirect = reverse_lazy('cabinets:cabinet_list') + + def get_extra_context(self): + return { + 'object': self.get_object(), + 'title': _('Delete the cabinet: %s?') % self.get_object(), + } + + +class CabinetDetailView(TemplateView): + template_name = 'cabinets/cabinet_details.html' + + def get_document_queryset(self): + queryset = AccessControlList.objects.filter_by_access( + permission=permission_document_view, user=self.request.user, + queryset=self.get_object().documents.all() + ) + + return queryset + + def get_context_data(self, **kwargs): + data = super(CabinetDetailView, self).get_context_data(**kwargs) + + cabinet = self.get_object() + + data.update( + { + 'jstree_data': '\n'.join( + jstree_data(node=cabinet.get_root(), selected_node=cabinet) + ), + 'document_list': self.get_document_queryset(), + 'hide_links': True, + 'object': cabinet, + 'title': _('Details of cabinet: %s') % cabinet.get_full_path(), + } + ) + + return data + + def get_object(self): + cabinet = get_object_or_404(Cabinet, pk=self.kwargs['pk']) + + if cabinet.is_root_node(): + permission_object = cabinet + else: + permission_object = cabinet.get_root() + + AccessControlList.objects.check_access( + permissions=permission_cabinet_view, user=self.request.user, + obj=permission_object + ) + + return cabinet + + +class CabinetEditView(SingleObjectEditView): + fields = ('label',) + model = Cabinet + object_permission = permission_cabinet_edit + post_action_redirect = reverse_lazy('cabinets:cabinet_list') + + def get_extra_context(self): + return { + 'object': self.get_object(), + 'title': _('Edit cabinet: %s') % self.get_object(), + } + + +class CabinetListView(SingleObjectListView): + model = Cabinet + object_permission = permission_cabinet_view + + def get_extra_context(self): + return { + 'hide_link': True, + 'title': _('Cabinets'), + } + + def get_queryset(self): + return Cabinet.objects.root_nodes() + + +class DocumentCabinetListView(CabinetListView): + def dispatch(self, request, *args, **kwargs): + self.document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_document_view, user=request.user, + obj=self.document + ) + + return super(DocumentCabinetListView, self).dispatch( + request, *args, **kwargs + ) + + def get_extra_context(self): + return { + 'hide_link': True, + 'object': self.document, + 'title': _('Cabinets containing document: %s') % self.document, + } + + def get_queryset(self): + return self.document.document_cabinets().all() + + +class DocumentAddToCabinetView(MultipleObjectFormActionView): + form_class = CabinetListForm + model = Document + success_message = _( + 'Add to cabinet request performed on %(count)d document' + ) + success_message_plural = _( + 'Add to cabinet request performed on %(count)d documents' + ) + + def get_extra_context(self): + queryset = self.get_queryset() + + result = { + 'submit_label': _('Add'), + 'title': ungettext( + 'Add document to cabinets', + 'Add documents to cabinets', + queryset.count() + ) + } + + if queryset.count() == 1: + result.update( + { + 'object': queryset.first(), + 'title': _( + 'Add document "%s" to cabinets' + ) % queryset.first() + } + ) + + return result + + def get_form_extra_kwargs(self): + queryset = self.get_queryset() + result = { + 'help_text': _( + 'Cabinets to which the selected documents will be added.' + ), + 'permission': permission_cabinet_add_document, + 'user': self.request.user + } + + if queryset.count() == 1: + result.update( + { + 'queryset': Cabinet.objects.exclude( + pk__in=queryset.first().cabinets.all() + ) + } + ) + + return result + + def object_action(self, form, instance): + cabinet_membership = instance.cabinets.all() + + for cabinet in form.cleaned_data['cabinets']: + AccessControlList.objects.check_access( + obj=cabinet, permissions=permission_cabinet_add_document, + user=self.request.user + ) + if cabinet in cabinet_membership: + messages.warning( + self.request, _( + 'Document: %(document)s is already in ' + 'cabinet: %(cabinet)s.' + ) % { + 'document': instance, 'cabinet': cabinet + } + ) + else: + cabinet.documents.add(instance) + messages.success( + self.request, _( + 'Document: %(document)s added to cabinet: ' + '%(cabinet)s successfully.' + ) % { + 'document': instance, 'cabinet': cabinet + } + ) + + +class DocumentRemoveFromCabinetView(MultipleObjectFormActionView): + form_class = CabinetListForm + model = Document + success_message = _( + 'Remove from cabinet request performed on %(count)d document' + ) + success_message_plural = _( + 'Remove from cabinet request performed on %(count)d documents' + ) + + def get_extra_context(self): + queryset = self.get_queryset() + + result = { + 'submit_label': _('Remove'), + 'title': ungettext( + 'Remove document from cabinets', + 'Remove documents from cabinets', + queryset.count() + ) + } + + if queryset.count() == 1: + result.update( + { + 'object': queryset.first(), + 'title': _( + 'Remove document "%s" to cabinets' + ) % queryset.first() + } + ) + + return result + + def get_form_extra_kwargs(self): + queryset = self.get_queryset() + result = { + 'help_text': _( + 'Cabinets from which the selected documents will be removed.' + ), + 'permission': permission_cabinet_remove_document, + 'user': self.request.user + } + + if queryset.count() == 1: + result.update( + { + 'queryset': queryset.first().cabinets.all() + } + ) + + return result + + def object_action(self, form, instance): + cabinet_membership = instance.cabinets.all() + + for cabinet in form.cleaned_data['cabinets']: + AccessControlList.objects.check_access( + obj=cabinet, permissions=permission_cabinet_remove_document, + user=self.request.user + ) + + if cabinet not in cabinet_membership: + messages.warning( + self.request, _( + 'Document: %(document)s is not in cabinet: ' + '%(cabinet)s.' + ) % { + 'document': instance, 'cabinet': cabinet + } + ) + else: + cabinet.documents.remove(instance) + messages.success( + self.request, _( + 'Document: %(document)s removed from cabinet: ' + '%(cabinet)s.' + ) % { + 'document': instance, 'cabinet': cabinet + } + ) diff --git a/mayan/apps/cabinets/widgets.py b/mayan/apps/cabinets/widgets.py new file mode 100644 index 0000000000..7cab5b8595 --- /dev/null +++ b/mayan/apps/cabinets/widgets.py @@ -0,0 +1,28 @@ +from __future__ import unicode_literals + + +def jstree_data(node, selected_node): + result = [] + result.append('{') + result.append('"text": "{}",'.format(node.label)) + result.append( + '"state": {{ "opened": true, "selected": {} }},'.format( + 'true' if node == selected_node else 'false' + ) + ) + result.append( + '"data": {{ "href": "{}" }},'.format(node.get_absolute_url()) + ) + + children = node.get_children().order_by('label',) + + if children: + result.append('"children" : [') + for child in children: + result.extend(jstree_data(node=child, selected_node=selected_node)) + + result.append(']') + + result.append('},') + + return result diff --git a/mayan/apps/checkouts/apps.py b/mayan/apps/checkouts/apps.py index 759f5fcfdd..2f57b48efa 100644 --- a/mayan/apps/checkouts/apps.py +++ b/mayan/apps/checkouts/apps.py @@ -30,8 +30,8 @@ from .tasks import task_check_expired_check_outs # NOQA class CheckoutsApp(MayanAppConfig): + has_tests = True name = 'checkouts' - test = True verbose_name = _('Checkouts') def ready(self): diff --git a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo index aa5d21016f..f1a5c523cb 100644 Binary files a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po index f83ae4b596..bba43ddaa4 100644 --- a/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/ar/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document automatically checked in" @@ -38,7 +44,7 @@ msgstr "Document checked out" msgid "Document forcefully checked in" msgstr "Document forcefully checked in" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document already checked out." @@ -46,13 +52,11 @@ msgstr "Document already checked out." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "مستخدم" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +65,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +96,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +121,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +132,14 @@ msgstr "Document checkout" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Check in documents" @@ -146,64 +156,60 @@ msgstr "Check out documents" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Error trying to check out document; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" checked out successfully." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Check out document: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Check out details for document: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Document has not been checked out." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Error trying to check in document; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Document \"%s\" checked in successfully." @@ -252,11 +258,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +288,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo index c7fd7497ed..c532d89e76 100644 Binary files a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po index 46d957229a..20e9c283b1 100644 --- a/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/bg/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Автоматично регистрирани документи" @@ -38,7 +43,7 @@ msgstr "Документът е проверен." msgid "Document forcefully checked in" msgstr "Документът е принудително регистриран" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Документът вече е проверен." @@ -46,13 +51,11 @@ msgstr "Документът вече е проверен." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Потребител" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "Проверка на документ" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Регистрирай документи" @@ -146,64 +155,60 @@ msgstr "Провери документи" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Грешка при проверка на документ; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Документ \"%s\" проверен успешно." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Провери документ: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Данни от проверката на документ: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Документът не е проверяван." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Грешка при регистрация на документ; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Документ \"%s\" е регистриран успешно." @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo index 2a001d3520..244f511abc 100644 Binary files a/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.po index 50b87dbc94..573005f66c 100644 --- a/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/bs_BA/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Dokument je automatski prijavljen" @@ -38,7 +44,7 @@ msgstr "Dokument odjavljen" msgid "Document forcefully checked in" msgstr "Dokument je prisilno prijavljen" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Dokument je već odjavljen." @@ -46,13 +52,11 @@ msgstr "Dokument je već odjavljen." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Korisnik" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +65,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +96,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +121,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +132,14 @@ msgstr "Odjava dokumenta" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Prijaviti dokumente" @@ -146,64 +156,60 @@ msgstr "Odjaviti dokumente" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Greška pokušaja odjave dokumenta; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Dokument \"%s\" uspješno odjavljen." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Odjaviti dokument: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Odjavni detalji za dokument: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Dokument nije odjavljen." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Greška pokušaja prijave dokumenta; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Dokument \"%s\" uspješno prijavljen." @@ -252,11 +258,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +288,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo index 2204e3016d..866a2d6618 100644 Binary files a/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.po index e959b6efc1..18bb8bed68 100644 --- a/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/da/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "" @@ -38,7 +43,7 @@ msgstr "" msgid "Document forcefully checked in" msgstr "" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "" @@ -46,13 +51,11 @@ msgstr "" msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Bruger" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -146,64 +155,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.mo index 0beae97e14..1fc3613b37 100644 Binary files a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po index ff0679ef72..0e9eb6867d 100644 --- a/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/de_DE/LC_MESSAGES/django.po @@ -1,28 +1,34 @@ # 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 , 2015-2016 +# Jesaja Everling , 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-05-20 21:40+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 20:58+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Ausbuchungen" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "Ausgebuchte Dokumente" + #: events.py:9 msgid "Document automatically checked in" msgstr "Dokument automatisch eingebucht" @@ -39,7 +45,7 @@ msgstr "Dokument ausgebucht" msgid "Document forcefully checked in" msgstr "Dokument zwingend eingebucht" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Dokument bereits ausgebucht" @@ -47,13 +53,11 @@ msgstr "Dokument bereits ausgebucht" msgid "Document status" msgstr "Dokumentenstatus" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Benutzer" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Ausbuchungszeit" @@ -62,7 +66,6 @@ msgid "Check out expiration" msgstr "Ausbuchungsende" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Neue Versionen erlaubt?" @@ -94,7 +97,7 @@ msgstr "Ausgebucht" msgid "Checked in/available" msgstr "Eingebucht/Verfügbar" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Dokument" @@ -119,7 +122,6 @@ msgid "Block new version upload" msgstr "Hochladen neuer Versionen sperren" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Ausbuchungsende muss in der Zukunft liegen." @@ -131,6 +133,14 @@ msgstr "Ausbuchung" msgid "Document checkouts" msgstr "Ausbuchungen" +#: models.py:97 +msgid "New version block" +msgstr "Akutialisierungsschutz" + +#: models.py:98 +msgid "New version blocks" +msgstr "Aktualisierungsschutz" + #: permissions.py:10 msgid "Check in documents" msgstr "Dokumente einbuchen" @@ -147,64 +157,62 @@ msgstr "Dokumente ausbuchen" msgid "Check out details view" msgstr "Ansicht der Ausbuchungsdetails" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Fehler bei der Ausbuchung: %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Dokument \"%s\" erfolgreich ausgebucht" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Dokument %s ausbuchen " -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Ausgebuchte Dokumente" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Ausbuchungszeit" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Ausbuchungsende" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Ausbuchungsdetails für Dokument %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Sie haben dieses Dokument ursprünglich nicht ausgebucht. Soll Dokument %s trotzdem zwingend eingebucht werden?" +msgstr "" +"Sie haben dieses Dokument ursprünglich nicht ausgebucht. Soll Dokument %s " +"trotzdem zwingend eingebucht werden?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Dokument %s einbuchen?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Dokument wurde nicht ausgebucht." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Fehler bei der Einbuchung von Dokument %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Dokument \"%s\" erfolgreich eingebucht" @@ -253,11 +261,11 @@ msgstr "Einheit" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +291,6 @@ msgstr "Einheit" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo index fe5f421a48..c0f0f1839a 100644 Binary files a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po index 5c879101f7..05054a24c4 100644 --- a/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-07-10 15:47+0000\n" "Last-Translator: FULL NAME \n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,11 +18,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 #, fuzzy msgid "Checkouts" msgstr "checkouts" +#: apps.py:54 +#, fuzzy +#| msgid "checked out documents" +msgid "Checkedout documents" +msgstr "checked out documents" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document automatically checked in" @@ -39,7 +45,7 @@ msgstr "Document checked out" msgid "Document forcefully checked in" msgstr "Document forcefully checked in" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document already checked out." @@ -48,7 +54,7 @@ msgstr "Document already checked out." msgid "Document status" msgstr "Document status: %(widget)s %(text)s" -#: forms.py:37 models.py:37 views.py:85 +#: forms.py:37 models.py:37 views.py:79 #, fuzzy #| msgid "User: %s" msgid "User" @@ -105,7 +111,7 @@ msgstr "checked out" msgid "Checked in/available" msgstr "checked in/available" -#: models.py:27 +#: models.py:27 models.py:92 #, fuzzy msgid "Document" msgstr "document" @@ -147,6 +153,18 @@ msgstr "Document checkout" msgid "Document checkouts" msgstr "Document checkout" +#: models.py:97 +#, fuzzy +#| msgid "New versions allowed: %s" +msgid "New version block" +msgstr "New versions allowed: %s" + +#: models.py:98 +#, fuzzy +#| msgid "New versions allowed: %s" +msgid "New version blocks" +msgstr "New versions allowed: %s" + #: permissions.py:10 msgid "Check in documents" msgstr "Check in documents" @@ -164,42 +182,42 @@ msgstr "Check out documents" msgid "Check out details view" msgstr "check out date and time" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Error trying to check out document; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" checked out successfully." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Check out document: %s" -#: views.py:81 +#: views.py:75 #, fuzzy msgid "Documents checked out" msgstr "Document checked out" -#: views.py:91 +#: views.py:85 #, fuzzy msgid "Checkout time and date" msgstr "checkout time and date" -#: views.py:97 +#: views.py:91 #, fuzzy msgid "Checkout expiration" msgstr "checkout expiration" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Check out details for document: %s" -#: views.py:136 +#: views.py:130 #, fuzzy, python-format #| msgid "" #| "You didn't originally checked out this document. Are you sure you wish " @@ -211,22 +229,22 @@ msgstr "" "You didn't originally checked out this document. Are you sure you wish to " "forcefully check in document: %s?" -#: views.py:140 +#: views.py:134 #, fuzzy, python-format #| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Check out document: %s" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Document has not been checked out." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Error trying to check in document; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Document \"%s\" checked in successfully." @@ -308,9 +326,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo index ee5710166d..89bdac4bd4 100644 Binary files a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po index c319e5e525..a924606602 100644 --- a/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/es/LC_MESSAGES/django.po @@ -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: # Roberto Rosario, 2015-2016 @@ -9,20 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:44+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Reservaciones" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Documento devuelto automáticamente" @@ -39,7 +44,7 @@ msgstr "Documento reservado" msgid "Document forcefully checked in" msgstr "Documento devuelto forzosamente" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "El documento ya está reservado." @@ -47,13 +52,11 @@ msgstr "El documento ya está reservado." msgid "Document status" msgstr "Estatus del documento" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Usuario" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Hora de reserva" @@ -62,7 +65,6 @@ msgid "Check out expiration" msgstr "Salida de la reserva" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "¿Nuevas versiones permitidas?" @@ -94,7 +96,7 @@ msgstr "Reservado" msgid "Checked in/available" msgstr "Devuelto/disponible" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Documento" @@ -119,7 +121,6 @@ msgid "Block new version upload" msgstr "Restringir la subida de nuevas versiones" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Fecha y hora de la expiración de la reserva deben ser en el futuro." @@ -131,6 +132,14 @@ msgstr "Reserva de documentos" msgid "Document checkouts" msgstr "Reservaciones de documentos" +#: models.py:97 +msgid "New version block" +msgstr "Bloquear nueva version" + +#: models.py:98 +msgid "New version blocks" +msgstr "Bloquear nuevas versiones" + #: permissions.py:10 msgid "Check in documents" msgstr "Devolver documentos" @@ -147,64 +156,62 @@ msgstr "Reservar documentos" msgid "Check out details view" msgstr "Detalles de la reserva" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Error tratando de reservar documento; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" reservado con éxito." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Reservar el documento: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Documentos reservados" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Fecha y hora de reservación" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Expiración de la reservación" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Detalles de la reserva para el documento: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Usted no reservó inicialmente este documento. ¿Devolver forzosamente el documento: %s?" +msgstr "" +"Usted no reservó inicialmente este documento. ¿Devolver forzosamente el " +"documento: %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "¿Devolver el documento: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "El documento no ha sido reservado." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Error tratando de devolver documento: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Documento \"%s\" devuelto con éxito." @@ -253,11 +260,11 @@ msgstr "Periodo" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +290,6 @@ msgstr "Periodo" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo index 4b7565c8a8..9c3525a92a 100644 Binary files a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po index ccd0422f69..23d252da6f 100644 --- a/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/fa/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "خروج Checkout" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "سند بصورت اتوماتیک وارد شده است." @@ -38,7 +43,7 @@ msgstr "سند خارج شد." msgid "Document forcefully checked in" msgstr "سند طبق دستور وارد شد." -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "سند در حال حاضر خارج و یا checked out شده است." @@ -46,13 +51,11 @@ msgstr "سند در حال حاضر خارج و یا checked out شده است." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "کاربر" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "خارج شده checked out" msgid "Checked in/available" msgstr "وارد شده و یا موجود Checked in" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "سند" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "آپلود نسخه و یا بلوک جدید" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "خروج و یا checkout سند" msgid "Document checkouts" msgstr "خروجی های check out سند" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "ورود اسناد" @@ -146,64 +155,60 @@ msgstr "خروج اسناد" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "خطا در زمان خارج ویا checkout کردن سند: %s " -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "سند \"%s\" بالاجبار خارج ویا checked out شد." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "خروج و یا check out سند: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "اسناد خارج شده check out" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "زمان و تاریخ خروج" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "زمان پایان خارج بودن Checkout" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "جزئیات خروج و یا Checkout سند: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "سند خارج و یا checked out نشده است." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "خطا در زمان خروج و یا checkout سند: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "سند \"%s\" با موفقیت وارد و یا checked in شد." @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo index 60374568fc..d57113d23f 100644 Binary files a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po index 203dc974d1..a87fd7103e 100644 --- a/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/fr/LC_MESSAGES/django.po @@ -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: # Bruno CAPELETO , 2016 @@ -10,20 +10,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-05-23 20:04+0000\n" -"Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Verrous" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document déverrouillé automatiquement" @@ -40,7 +45,7 @@ msgstr "Document verrouillé" msgid "Document forcefully checked in" msgstr "Document déverrouillé de force" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document déjà verrouillé." @@ -48,13 +53,11 @@ msgstr "Document déjà verrouillé." msgid "Document status" msgstr "Status du document" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Utilisateur" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Heure du vérouillage" @@ -63,7 +66,6 @@ msgid "Check out expiration" msgstr "Expiration du vérouillage" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Autoriser de nouvelles versions ?" @@ -95,7 +97,7 @@ msgstr "Verrouillé" msgid "Checked in/available" msgstr "Déverrouillé/disponible" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Document" @@ -120,9 +122,9 @@ msgid "Block new version upload" msgstr "Empêcher l'import d'une nouvelle version" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." -msgstr "La date et l'heure d'expiration du verrou doit se situer dans le futur." +msgstr "" +"La date et l'heure d'expiration du verrou doit se situer dans le futur." #: models.py:87 permissions.py:7 msgid "Document checkout" @@ -132,6 +134,14 @@ msgstr "Verrouillage du document" msgid "Document checkouts" msgstr "Verrouillages du document" +#: models.py:97 +msgid "New version block" +msgstr "Bloc de la nouvelle version" + +#: models.py:98 +msgid "New version blocks" +msgstr "Blocs de la nouvelle version" + #: permissions.py:10 msgid "Check in documents" msgstr "Déverrouiller les documents" @@ -148,64 +158,62 @@ msgstr "Verrouiller les documents" msgid "Check out details view" msgstr "Afficher la vue détaillée" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Erreur lors de la tentative de verrouillage du document : %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Document \"%s\" verouillé avec succès." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Verrouiller le document : %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Documents verrouillés" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Date et heure du verrouillage" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Expiration du verrou" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Détails du verrou pour le document : %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Ce n'est pas vous qui avec posé le verrou sur ce document. Êtes vous certain de vouloir forcer le déverrouillage de : %s?" +msgstr "" +"Ce n'est pas vous qui avec posé le verrou sur ce document. Êtes vous certain " +"de vouloir forcer le déverrouillage de : %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Verrouiller le document : %s ?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Ce document n'a pas été verrouillé." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Erreur lors de la tentative de déverrouillage du document : %s " -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Document \"%s\" déverrouillé avec succès." @@ -254,11 +262,11 @@ msgstr "Période" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -284,9 +292,6 @@ msgstr "Période" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo index 40a6c7bcfe..463ee089eb 100644 Binary files a/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.po index 4060b2eb5a..abe0b62080 100644 --- a/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/hu/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "" @@ -38,7 +43,7 @@ msgstr "" msgid "Document forcefully checked in" msgstr "" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "" @@ -46,13 +51,11 @@ msgstr "" msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Felhasználó" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -146,64 +155,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.mo index 68e2426cca..491e52b43c 100644 Binary files a/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.po index 517d56d4f1..542b9274a4 100644 --- a/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/id/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "" @@ -38,7 +43,7 @@ msgstr "" msgid "Document forcefully checked in" msgstr "" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "" @@ -46,13 +51,11 @@ msgstr "" msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Pengguna" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -146,64 +155,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.mo index 7a08d2395a..aac561636e 100644 Binary files a/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.po index a5ae8867e7..0b9f1c61d7 100644 --- a/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -9,20 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Uscite" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Documento automaticamente in entrata" @@ -39,7 +44,7 @@ msgstr "Documento in uscita" msgid "Document forcefully checked in" msgstr "Forza documento in entrata" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Documento già uscito" @@ -47,13 +52,11 @@ msgstr "Documento già uscito" msgid "Document status" msgstr "Stato documento" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Utente" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Tempo di uscita" @@ -62,7 +65,6 @@ msgid "Check out expiration" msgstr "Scadenza dell'uscita" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Accetta nuove versioni" @@ -94,7 +96,7 @@ msgstr "Uscito" msgid "Checked in/available" msgstr "Check-in / disponibile" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Documento" @@ -119,7 +121,6 @@ msgid "Block new version upload" msgstr "Blocca la nuova versione in caricamento" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "La data e ora di uscita deve essere nel futuro." @@ -131,6 +132,14 @@ msgstr "Documento uscito" msgid "Document checkouts" msgstr "Documenti usciti" +#: models.py:97 +msgid "New version block" +msgstr "Nuovo blocco versione" + +#: models.py:98 +msgid "New version blocks" +msgstr "Nuovi blocchi versione" + #: permissions.py:10 msgid "Check in documents" msgstr "Check in documenti" @@ -147,64 +156,62 @@ msgstr "Check out dei documenti" msgid "Check out details view" msgstr "Visualizzazione in dettaglio dell'uscita" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Errore nel cercare il check out del documento; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Il documento\"%s\" è uscito con successo" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Check out documento: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Documenti estratti" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Ora e data checkout " -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Scadenza checkout " -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Dettaglio del check out per il documento: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Non hai originariamente fatto il checkout di questo documento. Forzare nel documento: %s?" +msgstr "" +"Non hai originariamente fatto il checkout di questo documento. Forzare nel " +"documento: %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Accetti il documento: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Il documento non è stato fatto uscire" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Errore nel tentare il check out del documento; %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Il documento \"%s\" è entrato con successo" @@ -253,11 +260,11 @@ msgstr "Periodo" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +290,6 @@ msgstr "Periodo" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo index fdead81dea..30332d37cc 100644 Binary files a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po index fb37318d1e..ad0c7df333 100644 --- a/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -10,20 +10,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-09 16:39+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Checkouts" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document automatisch in-gechecket" @@ -40,7 +45,7 @@ msgstr "Document uit-gecheckt" msgid "Document forcefully checked in" msgstr "Document geforceerd in-gecheckt" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document reeds uit-gecheckt." @@ -48,13 +53,11 @@ msgstr "Document reeds uit-gecheckt." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Gebruiker" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -63,7 +66,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Nieuwe versies toegestaan?" @@ -95,7 +97,7 @@ msgstr "Uit-checken" msgid "Checked in/available" msgstr "In-gecheckt/beschikbaar" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Document" @@ -120,7 +122,6 @@ msgid "Block new version upload" msgstr "Blokkeer uploaden van een nieuwe versie" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -132,6 +133,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -148,64 +157,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -254,11 +259,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -284,9 +289,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo index e883efc621..56a3b9f021 100644 Binary files a/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.po index ef6e8bc44b..c67664f851 100644 --- a/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/pl/LC_MESSAGES/django.po @@ -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: # Wojtek Warczakowski , 2016 @@ -9,20 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Blokady" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Dokument został automatycznie odblokowany" @@ -39,7 +46,7 @@ msgstr "Dokument został zablokowany" msgid "Document forcefully checked in" msgstr "Wymuszono odblokowanie dokumentu" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Dokument jest już zablokowany." @@ -47,13 +54,11 @@ msgstr "Dokument jest już zablokowany." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Użytkownik" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -62,7 +67,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -94,7 +98,7 @@ msgstr "Zablokowany" msgid "Checked in/available" msgstr "Odblokowany/dostępny" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Dokument" @@ -104,7 +108,8 @@ msgstr "Data i czas blokady" #: models.py:33 msgid "Amount of time to hold the document checked out in minutes." -msgstr "Liczba dni, godzin lub minut w trakcie których dokument będzie zablokowany." +msgstr "" +"Liczba dni, godzin lub minut w trakcie których dokument będzie zablokowany." #: models.py:35 msgid "Check out expiration date and time" @@ -119,7 +124,6 @@ msgid "Block new version upload" msgstr "Blokuj załadowanie nowej wersji" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Wygaśnięcie blokady musi nastąpić w przyszłości." @@ -131,6 +135,14 @@ msgstr "Blokada dokumentu" msgid "Document checkouts" msgstr "Blokady dokumentu" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Odblokuj dokumenty" @@ -147,64 +159,62 @@ msgstr "Zablokuj dokumenty" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Błąd podczas blokady dokumentu: %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Dokument \"%s\" został pomyślnie zablokowany." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Zablokuj dokument: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Dokumenty zablokowane" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Rozpoczęcie blokady" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Wygaśnięcie blokady" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Szczegóły blokady dokumentu: %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Ten dokument nie został przez ciebie zablokowany. Czy wymusić odblokowanie dokumentu: %s?" +msgstr "" +"Ten dokument nie został przez ciebie zablokowany. Czy wymusić odblokowanie " +"dokumentu: %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Odblokować dokument: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Dokument nie został zablokowany." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Błąd podczas odblokowania dokumentu: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Dokument \"%s\" został pomyślnie odblokowany." @@ -253,11 +263,11 @@ msgstr "Okres" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +293,6 @@ msgstr "Okres" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo index a2431293e1..64cc7f02d7 100644 Binary files a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po index fa73e45141..8451be6613 100644 --- a/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/pt/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "" @@ -38,7 +43,7 @@ msgstr "" msgid "Document forcefully checked in" msgstr "" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "" @@ -46,13 +51,11 @@ msgstr "" msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Utilizador" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -146,64 +155,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo index 08cb131b3c..610f22c0e3 100644 Binary files a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po index 441b223459..577f04a770 100644 --- a/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -9,20 +9,25 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 22:36+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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" "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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Reservas" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Documento devolvido automaticamente" @@ -39,7 +44,7 @@ msgstr "Documento reservado" msgid "Document forcefully checked in" msgstr "Documento devolvido forçosamente" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Documento já está reservado." @@ -47,13 +52,11 @@ msgstr "Documento já está reservado." msgid "Document status" msgstr "Status do documento" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Usuário" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Hora da reserva" @@ -62,7 +65,6 @@ msgid "Check out expiration" msgstr "Saída da reserva" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Novas versões permitidas?" @@ -94,7 +96,7 @@ msgstr "Reservado" msgid "Checked in/available" msgstr "Devolvido/disponível" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Documento" @@ -119,7 +121,6 @@ msgid "Block new version upload" msgstr "Restringir o carregamento de novas versões" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Data e hora da expiração da reserva deve ser no futuro." @@ -131,6 +132,14 @@ msgstr "Reserva de documentos" msgid "Document checkouts" msgstr "Reservas de documentos" +#: models.py:97 +msgid "New version block" +msgstr "Bloqueio de nova versão" + +#: models.py:98 +msgid "New version blocks" +msgstr "Bloqueios de nova versão" + #: permissions.py:10 msgid "Check in documents" msgstr "Devolver documentos" @@ -147,64 +156,62 @@ msgstr "Reservar documentos" msgid "Check out details view" msgstr "Detalhes da reserva" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Erro tentando reservar documeto; %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Documento \"%s\" reservado com êxito." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Reservar o documento: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Documentos reservados" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Data e hora da reserva" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Expiração da reserva" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Detalhes da reserva para o documento: %s " -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" -msgstr "Você não reservou inicialmente este documento. Devolver forçosamente o documento: %s?" +msgstr "" +"Você não reservou inicialmente este documento. Devolver forçosamente o " +"documento: %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Devolver o documento: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "O documento não foi reservado." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Erro tentando devolver o documento: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Documento \"%s\" devolvido com sucesso." @@ -253,11 +260,11 @@ msgstr "Período" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +290,6 @@ msgstr "Período" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo index 5104216595..b6b42f09c3 100644 Binary files a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po index b43cba8af6..7b9da13d90 100644 --- a/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/ro_RO/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Document aprobat în mod automat " @@ -38,7 +44,7 @@ msgstr "Documentul aprobat" msgid "Document forcefully checked in" msgstr "Document aprobat forţat" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Document deja aprobat." @@ -46,13 +52,11 @@ msgstr "Document deja aprobat." msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "utilizator" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +65,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +96,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -103,7 +106,8 @@ msgstr "" #: models.py:33 msgid "Amount of time to hold the document checked out in minutes." -msgstr "Total timp alocat pentru a deține documentul pentru aprobare în minute." +msgstr "" +"Total timp alocat pentru a deține documentul pentru aprobare în minute." #: models.py:35 msgid "Check out expiration date and time" @@ -118,7 +122,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +133,14 @@ msgstr "Document aprobat" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "Aprobări documentele" @@ -146,64 +157,60 @@ msgstr "Aprobări documente" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Eroare la încercarea de a aproba documentul ;% s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Documentul \"%s\" a fost aprobat cu succes." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Aprobarea documentului:% s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Verificat detaliile documentului:% s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Documentul nu a fost aprobat." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Eroare la încercarea de aprobare a documentului; % s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Documentul \"%s\" aprobat cu succes." @@ -252,11 +259,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +289,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo index 1d7f582765..6477791449 100644 Binary files a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po index 3c8bab177b..d8b4663074 100644 --- a/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,20 +9,27 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-07-19 19:54+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "Забронированные документы" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "Документ автоматически освобождён" @@ -39,7 +46,7 @@ msgstr "Документ забронирован" msgid "Document forcefully checked in" msgstr "Документ освобождён насильно" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "Документ уже забронирован." @@ -47,13 +54,11 @@ msgstr "Документ уже забронирован." msgid "Document status" msgstr "Статус документа" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Пользователь" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "Время бронивания" @@ -62,7 +67,6 @@ msgid "Check out expiration" msgstr "Окончание бронирования" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "Новые версии разрешены?" @@ -94,7 +98,7 @@ msgstr "Разбронирован" msgid "Checked in/available" msgstr "Освобождён/доступен" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "Документ" @@ -119,7 +123,6 @@ msgid "Block new version upload" msgstr "Заблокировать загрузку новых версий" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "Время окончания брованирования должно быть в будущем." @@ -131,6 +134,14 @@ msgstr "Бронирование документа" msgid "Document checkouts" msgstr "Забронированные документы" +#: models.py:97 +msgid "New version block" +msgstr "Блокировка добавления новых версий" + +#: models.py:98 +msgid "New version blocks" +msgstr "Блокировки добавления новых версий" + #: permissions.py:10 msgid "Check in documents" msgstr "Освобождение документов" @@ -147,64 +158,60 @@ msgstr "Бронирование документов" msgid "Check out details view" msgstr "Подробности бронирования" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "Не удалось забронировать %s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "Документ \"%s\" забронирован." -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "Бронирование документа: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "Документы забронированы" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "Дата и время бронирования" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "Истечение бронирования" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "Подробности бронирования %s" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "Документ был забронирован не вами. Освободить насильно %s?" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "Освободить документ: %s?" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "Документ не был забронирован." -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "Ошибка освобождения документа %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "Документ \"%s\" освобожден." @@ -253,11 +260,11 @@ msgstr "Интервал" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -283,9 +290,6 @@ msgstr "Интервал" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo index 0546f1fa47..1707b87c14 100644 Binary files a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po index 2a7c4b5920..05c61a83f9 100644 --- a/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/sl_SI/LC_MESSAGES/django.po @@ -1,58 +1,62 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-23 16:43+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" +msgstr "Odjave" + +#: apps.py:54 +msgid "Checkedout documents" msgstr "" #: events.py:9 msgid "Document automatically checked in" -msgstr "" +msgstr "Dokument je avtomatsko prijavljen" #: events.py:12 msgid "Document checked in" -msgstr "" +msgstr "Dokument prijavljen" #: events.py:15 msgid "Document checked out" -msgstr "" +msgstr "Dokument prijavljen" #: events.py:19 msgid "Document forcefully checked in" -msgstr "" +msgstr "Dokumentu je vsiljena prijava" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." -msgstr "" +msgstr "Dokument je že odjavljen" #: forms.py:28 msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +65,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -75,31 +78,31 @@ msgstr "" #: links.py:35 msgid "Check out document" -msgstr "" +msgstr "Odjavi dokument" #: links.py:41 msgid "Check in document" -msgstr "" +msgstr "Prijavi dokument" #: links.py:48 msgid "Check in/out" -msgstr "" +msgstr "Prijava / Odjava" #: literals.py:12 msgid "Checked out" -msgstr "" +msgstr "Odjavljen" #: literals.py:13 msgid "Checked in/available" -msgstr "" +msgstr "Prijavljen / na voljo" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" -msgstr "" +msgstr "Dokument" #: models.py:29 msgid "Check out date and time" -msgstr "" +msgstr "Oglejte si datum in čas" #: models.py:33 msgid "Amount of time to hold the document checked out in minutes." @@ -118,7 +121,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +132,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -146,64 +156,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -252,11 +258,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +288,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo index 3a10880f30..80ba6e692a 100644 Binary files a/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.po index 809c57ed4d..ef4bca3844 100644 --- a/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/vi_VN/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "" @@ -38,7 +43,7 @@ msgstr "" msgid "Document forcefully checked in" msgstr "" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "" @@ -46,13 +51,11 @@ msgstr "" msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "Người dùng" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "" @@ -146,64 +155,60 @@ msgstr "" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "" @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.mo index 59d2ad8ca2..03521f78b6 100644 Binary files a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po index 4ffd34e056..6b0eaf2c07 100644 --- a/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/checkouts/locale/zh_CN/LC_MESSAGES/django.po @@ -1,27 +1,32 @@ # 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-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-03-21 21:08+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:31 links.py:30 +#: apps.py:35 links.py:30 msgid "Checkouts" msgstr "" +#: apps.py:54 +msgid "Checkedout documents" +msgstr "" + #: events.py:9 msgid "Document automatically checked in" msgstr "文档自动签入" @@ -38,7 +43,7 @@ msgstr "文档检出" msgid "Document forcefully checked in" msgstr "文档强制签入" -#: exceptions.py:25 views.py:55 +#: exceptions.py:25 views.py:49 msgid "Document already checked out." msgstr "文档已经检出" @@ -46,13 +51,11 @@ msgstr "文档已经检出" msgid "Document status" msgstr "" -#: forms.py:37 models.py:37 views.py:85 -#| msgid "User: %s" +#: forms.py:37 models.py:37 views.py:79 msgid "User" msgstr "用户" #: forms.py:41 -#| msgid "Check out time: %s" msgid "Check out time" msgstr "" @@ -61,7 +64,6 @@ msgid "Check out expiration" msgstr "" #: forms.py:51 -#| msgid "New versions allowed: %s" msgid "New versions allowed?" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Checked in/available" msgstr "" -#: models.py:27 +#: models.py:27 models.py:92 msgid "Document" msgstr "" @@ -118,7 +120,6 @@ msgid "Block new version upload" msgstr "" #: models.py:54 -#| msgid "Check out expiration date and time" msgid "Check out expiration date and time must be in the future." msgstr "" @@ -130,6 +131,14 @@ msgstr "文档检出" msgid "Document checkouts" msgstr "" +#: models.py:97 +msgid "New version block" +msgstr "" + +#: models.py:98 +msgid "New version blocks" +msgstr "" + #: permissions.py:10 msgid "Check in documents" msgstr "签入文档" @@ -146,64 +155,60 @@ msgstr "检出文档" msgid "Check out details view" msgstr "" -#: views.py:59 +#: views.py:53 #, python-format msgid "Error trying to check out document; %s" msgstr "尝试检出文档出错%s" -#: views.py:64 +#: views.py:58 #, python-format msgid "Document \"%s\" checked out successfully." msgstr "文档\"%s\"检出成功" -#: views.py:72 +#: views.py:66 #, python-format msgid "Check out document: %s" msgstr "检出文档: %s" -#: views.py:81 +#: views.py:75 msgid "Documents checked out" msgstr "" -#: views.py:91 +#: views.py:85 msgid "Checkout time and date" msgstr "" -#: views.py:97 +#: views.py:91 msgid "Checkout expiration" msgstr "" -#: views.py:118 +#: views.py:112 #, python-format msgid "Check out details for document: %s" msgstr "文档:%s的检出信息" -#: views.py:136 +#: views.py:130 #, python-format -#| msgid "" -#| "dn't originally checked out this document. Are you sure you wish cefully " -#| "check in document: %s?" msgid "" "You didn't originally checked out this document. Forcefully check in the " "document: %s?" msgstr "" -#: views.py:140 +#: views.py:134 #, python-format -#| msgid "Check out document: %s" msgid "Check in the document: %s?" msgstr "" -#: views.py:177 +#: views.py:162 msgid "Document has not been checked out." msgstr "文档未被检出" -#: views.py:182 +#: views.py:167 #, python-format msgid "Error trying to check in document; %s" msgstr "尝试签入文档出错: %s" -#: views.py:187 +#: views.py:172 #, python-format msgid "Document \"%s\" checked in successfully." msgstr "文档\"%s\"签入成功" @@ -252,11 +257,11 @@ msgstr "" #~ msgstr "Enter a valid time difference." #~ msgid "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgstr "" -#~ "Amount of time to hold the document in the checked out state in days, hours " -#~ "and/or minutes." +#~ "Amount of time to hold the document in the checked out state in days, " +#~ "hours and/or minutes." #~ msgid "Document \"%(document)s\" checked out by %(fullname)s." #~ msgstr "Document \"%(document)s\" checked out by %(fullname)s." @@ -282,9 +287,6 @@ msgstr "" #~ msgid "document checkouts" #~ msgstr "document checkouts" -#~ msgid "checked out documents" -#~ msgstr "checked out documents" - #~ msgid "no" #~ msgstr "no" diff --git a/mayan/apps/common/apps.py b/mayan/apps/common/apps.py index 1c56cb4553..aee19c5aaa 100644 --- a/mayan/apps/common/apps.py +++ b/mayan/apps/common/apps.py @@ -20,10 +20,10 @@ from .handlers import ( user_locale_profile_session_config, user_locale_profile_create ) from .links import ( - link_about, link_code, link_current_user_details, link_current_user_edit, - link_current_user_locale_profile_edit, link_documentation, link_filters, - link_forum, link_license, link_packages_licenses, link_setup, link_support, - link_tools + link_about, link_check_version, link_code, link_current_user_details, + link_current_user_edit, link_current_user_locale_profile_edit, + link_documentation, link_filters, link_forum, link_license, + link_packages_licenses, link_setup, link_support, link_tools ) from .literals import DELETE_STALE_UPLOADS_INTERVAL from .menus import menu_about, menu_main, menu_tools, menu_user @@ -71,8 +71,8 @@ class MayanAppConfig(apps.AppConfig): class CommonApp(MayanAppConfig): app_url = '' + has_tests = True name = 'common' - test = True verbose_name = _('Common') def ready(self): @@ -123,6 +123,7 @@ class CommonApp(MayanAppConfig): links=( link_about, link_support, link_documentation, link_forum, link_code, link_license, link_packages_licenses, + link_check_version ) ) @@ -148,7 +149,7 @@ class CommonApp(MayanAppConfig): if settings.DEBUG: level = 'DEBUG' else: - level = 'INFO' + level = 'ERROR' loggers = {} for project_app in apps.apps.get_app_configs(): diff --git a/mayan/apps/common/classes.py b/mayan/apps/common/classes.py index 4fb01d844a..03ed9f5331 100644 --- a/mayan/apps/common/classes.py +++ b/mayan/apps/common/classes.py @@ -103,7 +103,7 @@ class ModelAttribute(object): ) return ' '.join( - [ugettext('Available attributes: '), ', '.join(result)] + [ugettext('Available attributes: \n'), ', \n'.join(result)] ) def get_display(self, show_name=False): @@ -208,3 +208,28 @@ class Package(object): self.label = label self.license_text = license_text self.__class__._registry.append(self) + + +class PropertyHelper(object): + """ + Makes adding fields using __class__.add_to_class easier. + Each subclass must implement the `constructor` and the `get_result` + method. + """ + @staticmethod + @property + def constructor(source_object): + return PropertyHelper(source_object) + + def __init__(self, instance): + self.instance = instance + + def __getattr__(self, name): + return self.get_result(name=name) + + def get_result(self, name): + """ + The method that produces the actual result. Must be implemented + by each subclass. + """ + raise NotImplementedError diff --git a/mayan/apps/common/exceptions.py b/mayan/apps/common/exceptions.py new file mode 100644 index 0000000000..54a297ca1f --- /dev/null +++ b/mayan/apps/common/exceptions.py @@ -0,0 +1,16 @@ +from __future__ import unicode_literals + + +class BaseCommonException(Exception): + """ + Base exception for the common app + """ + pass + + +class NotLatestVersion(BaseCommonException): + """ + The installed version is not the latest available version + """ + def __init__(self, upstream_version): + self.upstream_version = upstream_version diff --git a/mayan/apps/common/generics.py b/mayan/apps/common/generics.py index ab67e9cc0c..1ff511c2a9 100644 --- a/mayan/apps/common/generics.py +++ b/mayan/apps/common/generics.py @@ -18,7 +18,14 @@ from django_downloadview import VirtualDownloadView, VirtualFile from pure_pagination.mixins import PaginationMixin from .forms import ChoiceForm -from .mixins import * # NOQA +from .mixins import ( + DeleteExtraDataMixin, ExtraContextMixin, FormExtraKwargsMixin, + MultipleObjectMixin, ObjectActionMixin, + ObjectListPermissionFilterMixin, ObjectNameMixin, + ObjectPermissionCheckMixin, RedirectionMixin, + ViewPermissionCheckMixin +) + from .settings import setting_paginate_by __all__ = ( @@ -182,9 +189,49 @@ class FormView(FormExtraKwargsMixin, ViewPermissionCheckMixin, ExtraContextMixin class MultiFormView(DjangoFormView): + prefix = None prefixes = {} - prefix = None + def _create_form(self, form_name, klass): + form_kwargs = self.get_form_kwargs(form_name) + form_create_method = 'create_%s_form' % form_name + if hasattr(self, form_create_method): + form = getattr(self, form_create_method)(**form_kwargs) + else: + form = klass(**form_kwargs) + return form + + def forms_valid(self, forms): + for form_name, form in forms.items(): + form_valid_method = '%s_form_valid' % form_name + + if hasattr(self, form_valid_method): + return getattr(self, form_valid_method)(form) + + self.all_forms_valid(forms) + + return HttpResponseRedirect(self.get_success_url()) + + def forms_invalid(self, forms): + return self.render_to_response(self.get_context_data(forms=forms)) + + def get(self, request, *args, **kwargs): + form_classes = self.get_form_classes() + forms = self.get_forms(form_classes) + return self.render_to_response(self.get_context_data(forms=forms)) + + def get_context_data(self, **kwargs): + """ + Insert the form into the context dict. + """ + if 'forms' not in kwargs: + kwargs['forms'] = self.get_forms( + form_classes=self.get_form_classes() + ) + return super(FormMixin, self).get_context_data(**kwargs) + + def get_form_classes(self): + return self.form_classes def get_form_kwargs(self, form_name): kwargs = {} @@ -199,25 +246,6 @@ class MultiFormView(DjangoFormView): return kwargs - def _create_form(self, form_name, klass): - form_kwargs = self.get_form_kwargs(form_name) - form_create_method = 'create_%s_form' % form_name - if hasattr(self, form_create_method): - form = getattr(self, form_create_method)(**form_kwargs) - else: - form = klass(**form_kwargs) - return form - - def get_context_data(self, **kwargs): - """ - Insert the form into the context dict. - """ - if 'forms' not in kwargs: - kwargs['forms'] = self.get_forms( - form_classes=self.get_form_classes() - ) - return super(FormMixin, self).get_context_data(**kwargs) - def get_forms(self, form_classes): return dict( [ @@ -237,25 +265,6 @@ class MultiFormView(DjangoFormView): def get_prefix(self, form_name): return self.prefixes.get(form_name, self.prefix) - def get(self, request, *args, **kwargs): - form_classes = self.get_form_classes() - forms = self.get_forms(form_classes) - return self.render_to_response(self.get_context_data(forms=forms)) - - def forms_valid(self, forms): - for form_name, form in forms.items(): - form_valid_method = '%s_form_valid' % form_name - - if hasattr(self, form_valid_method): - return getattr(self, form_valid_method)(form) - - self.all_forms_valid(forms) - - return HttpResponseRedirect(self.get_success_url()) - - def forms_invalid(self, forms): - return self.render_to_response(self.get_context_data(forms=forms)) - def post(self, request, *args, **kwargs): form_classes = self.get_form_classes() forms = self.get_forms(form_classes) @@ -369,7 +378,7 @@ class SingleObjectDeleteView(ObjectNameMixin, DeleteExtraDataMixin, ViewPermissi return result -class SingleObjectDetailView(ViewPermissionCheckMixin, ObjectPermissionCheckMixin, ExtraContextMixin, ModelFormMixin, DetailView): +class SingleObjectDetailView(ViewPermissionCheckMixin, ObjectPermissionCheckMixin, FormExtraKwargsMixin, ExtraContextMixin, ModelFormMixin, DetailView): template_name = 'appearance/generic_form.html' def get_context_data(self, **kwargs): diff --git a/mayan/apps/common/links.py b/mayan/apps/common/links.py index 35c48647e6..e4407c6d4b 100644 --- a/mayan/apps/common/links.py +++ b/mayan/apps/common/links.py @@ -8,6 +8,10 @@ from navigation import Link link_about = Link( icon='fa fa-info', text=_('About this'), view='common:about_view' ) +link_check_version = Link( + icon='fa fa-refresh', text=_('Check for updates'), + view='common:check_version_view' +) link_current_user_details = Link( icon='fa fa-user', text=_('User details'), view='common:current_user_details' diff --git a/mayan/apps/common/literals.py b/mayan/apps/common/literals.py index ca8bee1dcc..af4bd308ad 100644 --- a/mayan/apps/common/literals.py +++ b/mayan/apps/common/literals.py @@ -4,7 +4,8 @@ from django.utils.translation import ugettext_lazy as _ DELETE_STALE_UPLOADS_INTERVAL = 60 * 10 # 10 minutes - +MAYAN_PYPI_NAME = 'mayan-edms' +PYPI_URL = 'https://pypi.python.org/pypi' TIME_DELTA_UNIT_DAYS = 'days' TIME_DELTA_UNIT_HOURS = 'hours' TIME_DELTA_UNIT_MINUTES = 'minutes' diff --git a/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo index 081c594fab..2dd2a8762e 100644 Binary files a/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/ar/LC_MESSAGES/django.po b/mayan/apps/common/locale/ar/LC_MESSAGES/django.po index 38b0233630..757aa039ce 100644 --- a/mayan/apps/common/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/ar/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "الاختيار" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "إضافة" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "إزالة" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "تفاصيل المستخدم" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "License" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Days" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Hours" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minutes" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Object" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "لم يتم اختيار اجراء." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "يجب اختيار غرض واحد عالأقل." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "لا شيء" diff --git a/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo index cca57d9b85..55167efbb7 100644 Binary files a/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/bg/LC_MESSAGES/django.po b/mayan/apps/common/locale/bg/LC_MESSAGES/django.po index 16256964c2..ebb1c7eeb7 100644 --- a/mayan/apps/common/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/bg/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Добави" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Премахнете" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Данни за потребител" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Лиценз" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Дни" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Часове" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Минути" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Обект" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Не са избрани действия." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Няма" diff --git a/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo index d899ed4223..df4283b36e 100644 Binary files a/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.po index 8b8819d328..e940736455 100644 --- a/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/bs_BA/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: bs_BA\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Odabir" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Dodati" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Ukloniti" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Detalji o korisniku" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licence" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Dana" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Sati" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuta" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Objekat" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nijedna akcija nije odabrana." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Mora biti izabrana barem jedna stanka." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Nijedno" diff --git a/mayan/apps/common/locale/da/LC_MESSAGES/django.mo b/mayan/apps/common/locale/da/LC_MESSAGES/django.mo index 2aa0079287..5d394f1322 100644 Binary files a/mayan/apps/common/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/da/LC_MESSAGES/django.po b/mayan/apps/common/locale/da/LC_MESSAGES/django.po index cc4fdec981..b27d524e05 100644 --- a/mayan/apps/common/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/da/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" "MIME-Version: 1.0\n" @@ -18,118 +18,152 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Bruger detaljer" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Objekt" @@ -174,6 +208,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -182,68 +234,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Ingen" diff --git a/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.mo index 66cdb8896f..7f65df7da2 100644 Binary files a/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.po index e2d422ace2..11396f66f0 100644 --- a/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/de_DE/LC_MESSAGES/django.po @@ -5,6 +5,7 @@ # Translators: # Translators: # Berny , 2015-2016 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Stefan Lodders , 2012 # Tobias Paepke , 2014,2016 @@ -12,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-31 19:01+0000\n" -"Last-Translator: Tobias Paepke \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" +"Last-Translator: Roberto Rosario\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" @@ -22,118 +23,152 @@ msgstr "" "Language: de_DE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Allgemein" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Verfügbare Attribute:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Auswahl" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filter" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Auswahl %s kann nicht übertragen werden" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Hinzufügen" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Entfernen" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s nicht erstellt, Fehler: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s erfolgreich erstellt." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s nicht gelöscht, Fehler: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s erfolgreich gelöscht." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s nicht aktualisiert, Fehler: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s erfolgreich aktualisiert." #: links.py:9 -msgid "About" -msgstr "Über" +msgid "About this" +msgstr "Über Mayan" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Benutzerdetails" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Details bearbeiten" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Lokalisierungsprofil" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Lokalisierungsprofil bearbeiten" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "Quelltext" + +#: links.py:35 +msgid "Documentation" +msgstr "Dokumentation" + +#: links.py:39 msgid "Data filters" msgstr "Datenfilter" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "Forum" + +#: links.py:47 views.py:190 msgid "License" msgstr "Lizenz" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Andere Paket-Lizenzen" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Einrichtung" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "Hilfe" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Werkzeuge" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Tage" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Stunden" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuten" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Über" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "Operation durchgeführt für %(count)d Objekte" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "Operation durchgeführt für %(count)d Objekte" + +#: mixins.py:235 msgid "Object" msgstr "Objekt" @@ -178,6 +213,24 @@ msgid "User locale profiles" msgstr "Benutzerlokalisierungsprofile" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Protokollierung für alle Apps automatisch freischalten." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Zeit für die Verzögerung von Hintergrundaufgaben, die für ihre Fortsetzung auf einen Datenbankcommit warten." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Eine Ganzzahl, die die Anzahl der angezeigten Datensätze pro Seite angibt." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Datenbackend, das alle Worker benutzen können, um Dateien zu teilen" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -186,68 +239,59 @@ msgid "" "temporary files." msgstr "Temporäres Verzeichnis zum systemweiten Speichern von Thumbnails, Vorschauen und temporären Dateien. " -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Datenbackend, das alle Worker benutzen können, um Dateien zu teilen" +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Eine Ganzzahl, die die Anzahl der angezeigten Datensätze pro Seite angibt." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Protokollierung für alle Apps automatisch freischalten." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Zeit für die Verzögerung von Hintergrundaufgaben, die für ihre Fortsetzung auf einen Datenbankcommit warten." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Aktuelle Benutzerdetails" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Aktuelle Benutzerdetails bearbeiten" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Aktuelle Benutzerlokalisierungsdetails" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Aktuelle Benutzerlokalisierungsdetails bearbeiten" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Filterauswahl" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Ergebnis für Filter %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filter nicht gefunden" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Einrichtungsdetails" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Keine Aktion ausgewählt." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Es muss mindestens ein Element ausgewählt werden." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Kein(e)" diff --git a/mayan/apps/common/locale/en/LC_MESSAGES/django.mo b/mayan/apps/common/locale/en/LC_MESSAGES/django.mo index 6e17d877d8..3e2ab7e3b0 100644 Binary files a/mayan/apps/common/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/en/LC_MESSAGES/django.po b/mayan/apps/common/locale/en/LC_MESSAGES/django.po index 63e92bcef2..5bfeaa6bed 100644 --- a/mayan/apps/common/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,121 +18,156 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Selection" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, fuzzy, python-format msgid "Unable to transfer selection: %s." msgstr "Unable to add %(selection)s to %(right_list_title)s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Add" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Remove" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 #, fuzzy -msgid "About" +msgid "About this" msgstr "about" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 #, fuzzy msgid "User details" msgstr "user details" -#: links.py:16 +#: links.py:20 #, fuzzy msgid "Edit details" msgstr "edit details" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "License" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +#, fuzzy +msgid "About" +msgstr "about" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "" @@ -177,6 +212,23 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #, fuzzy #| msgid "" #| "Temporary directory used site wide to store thumbnails, previews and " @@ -190,73 +242,65 @@ msgstr "" "temporary files. If none is specified, one will be created using tempfile." "mkdtemp()" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 #, fuzzy msgid "Current user details" msgstr "current user details" -#: views.py:42 +#: views.py:70 #, fuzzy msgid "Edit current user details" msgstr "edit current user details" -#: views.py:62 +#: views.py:90 #, fuzzy msgid "Current user locale profile details" msgstr "current user details" -#: views.py:69 +#: views.py:97 #, fuzzy msgid "Edit current user locale profile details" msgstr "edit current user details" -#: views.py:113 +#: views.py:153 #, fuzzy #| msgid "Selection" msgid "Filter selection" msgstr "Selection" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #, fuzzy #| msgid "Page not found" msgid "Filter not found" msgstr "Page not found" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "No action selected." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Must select at least one item." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "None" diff --git a/mayan/apps/common/locale/es/LC_MESSAGES/django.mo b/mayan/apps/common/locale/es/LC_MESSAGES/django.mo index 95bcacfccc..694e01e63e 100644 Binary files a/mayan/apps/common/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/es/LC_MESSAGES/django.po b/mayan/apps/common/locale/es/LC_MESSAGES/django.po index 3cdc8e7ca4..be8390468c 100644 --- a/mayan/apps/common/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/es/LC_MESSAGES/django.po @@ -7,13 +7,13 @@ # jmcainzos , 2014 # jmcainzos , 2015 # Lory977 , 2015 -# Roberto Rosario, 2016 +# Roberto Rosario, 2016-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:51+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+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" @@ -22,118 +22,152 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Común" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Atributos disponibles:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Selección" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtro" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "No se ha podido transferir la selección: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Agregar" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Eliminar" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s no se pudo crear, error: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s creado con éxito." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s no se pudo borrar, error: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s borrado con éxito." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s no se pudo actualizar, error: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s actualizado con éxito." #: links.py:9 -msgid "About" -msgstr "Acerca de" +msgid "About this" +msgstr "Sobre esto" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "Buscar actualizaciones" + +#: links.py:16 msgid "User details" msgstr "Detalles del usuario" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Editar detalles" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Perfil de localización" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Editar perfil de localización" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "Código fuente" + +#: links.py:35 +msgid "Documentation" +msgstr "Documentación" + +#: links.py:39 msgid "Data filters" msgstr "Filtros de datos" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "Foro" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licencia" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Licencias de otros paquetes" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Configuración" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "Apoyo" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Herramientas" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Días" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Horas" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minutos" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Acerca de" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "Operación realizada en %(count)d objeto " + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "Operación realizada en %(count)d objetos" + +#: mixins.py:235 msgid "Object" msgstr "Objeto" @@ -178,6 +212,24 @@ msgid "User locale profiles" msgstr "Perfiles de localización de usuario" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Activar bitácoras automáticamente a todas las aplicaciones." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Tiempo para retrasar las tareas de fondo que dependen de la propagación de información en la base de datos." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Un número entero que especifica cuántos objetos se debe mostrar por página." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Un soporte de almacenamiento que todos los 'workers' puedan utilizar para compartir archivos." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -186,68 +238,59 @@ msgid "" "temporary files." msgstr "Directorio temporero utilizado en todo el sitio para almacenar imágenes en miniatura, visualizaciones y archivos temporeros." -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Un soporte de almacenamiento que todos los 'workers' puedan utilizar para compartir archivos." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Un número entero que especifica cuántos objetos se debe mostrar por página." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "Su versión está actualizada." -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Activar bitácoras automáticamente a todas las aplicaciones." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Tiempo para retrasar las tareas de fondo que dependen de la propagación de información en la base de datos." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Detalles del usuario actual" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Editar los detalles del usuario actual" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Detalles del perfil de localización del usuario actual" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Editar los detalles del perfil del usuario local" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Selección de filtro" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Resultados para el filtro: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filtro no encontrado" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Elementos de configuración" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Ninguna acción seleccionada." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Debe seleccionar al menos un artículo." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Ninguno" diff --git a/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo index b5a88d03a7..cf13935055 100644 Binary files a/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/fa/LC_MESSAGES/django.po b/mayan/apps/common/locale/fa/LC_MESSAGES/django.po index 104af55de1..8eb30a3c0c 100644 --- a/mayan/apps/common/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/fa/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: fa\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "خصوصیات موجود" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "انتخاب" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "افزودن" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "حذف" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" -msgstr "درباره" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "جزئیات کاربر" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "ویرایش جزئیات" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "پروفایل محلی" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "ویرایش پروفایل محلی" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "لیسانس" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "نصب" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "ابزار" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "روزها" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "ساعات" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "دقایق" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "درباره" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "شیئ" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "پروفایل محلی کاربر" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "محلی که کلیه کاربران جهت به اشتراک گذاری فایل میتوانند استفاه کنند." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "محلی که کلیه کاربران جهت به اشتراک گذاری فایل میتوانند استفاه کنند." - -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "جزئیاتا کاربر فعلی" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "یرایش جزئیات کاربر کنونی" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "شرح پروفایل محلی کاربر فعلی" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "ویرایش شرح پروفایل محلی کاربر فعلی" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "اقلام نصب" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "هیچ عملیاتی action انتخاب نشده است." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "حداقل یک مورد انتخاب شود." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "هیچکدام." diff --git a/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo index 13d3146c26..26708e0823 100644 Binary files a/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/fr/LC_MESSAGES/django.po b/mayan/apps/common/locale/fr/LC_MESSAGES/django.po index ff667fccff..0e76f3d31f 100644 --- a/mayan/apps/common/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/fr/LC_MESSAGES/django.po @@ -4,6 +4,7 @@ # # Translators: # Translators: +# Christophe CHAUVET , 2016 # Franck Boucher , 2016 # PatrickHetu , 2012 # Pierre Lhoste , 2012 @@ -13,8 +14,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+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" @@ -23,118 +24,152 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Commun" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Options disponibles" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Sélection" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtre" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Impossible de transférer la sélection: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Ajouter" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Supprimer" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s n'a pas été créé, erreur: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s, creation réussi." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s non supprimé, erreur: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s, suppression réussie." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s n'a pas été mis à jour, erreur: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s, mise à jour réussie." #: links.py:9 -msgid "About" -msgstr "À propos" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Profil Utilisateur" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Modifier les détails" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Paramètres régionaux du profil" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Éditer les paramètres régionaux du profil" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "Filtres de données" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licence" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Licences des bibliothèques tierces" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Configuration" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Outils" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Jours" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Heures" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minutes" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "À propos" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Objet" @@ -179,76 +214,85 @@ msgid "User locale profiles" msgstr "Paramètres régionaux des profils utilisateur" #: settings.py:13 -#| msgid "" -#| "ary directory used site wide to store thumbnails, previews and porary es. " -#| "If none is specified, one will be created using pfile.mkdtemp()" -msgid "" -"Temporary directory used site wide to store thumbnails, previews and " -"temporary files." -msgstr "" +msgid "Automatically enable logging to all apps." +msgstr "Activation automatique de la trace pour toutes les applications." -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Un espace de stockage que tous les agents pourront utiliser pour partager des fichiers." +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Durée pendant laquelle les tâches d'arrière plan sont différées pour les tâches dépendant d'une mise à jour de la base de données." #: settings.py:27 msgid "An integer specifying how many objects should be displayed per page." msgstr "Valeur entière indiquant combien d'objets sont affichés sur chaque page." #: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Activation automatique de la trace pour toutes les applications." +msgid "A storage backend that all workers can use to share files." +msgstr "Un espace de stockage que tous les agents pourront utiliser pour partager des fichiers." -#: settings.py:39 +#: settings.py:38 +#| msgid "" +#| "ary directory used site wide to store thumbnails, previews and porary es. " +#| "If none is specified, one will be created using pfile.mkdtemp()" msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Durée pendant laquelle les tâches d'arrière plan sont différées pour les tâches dépendant d'une mise à jour de la base de données." +"Temporary directory used site wide to store thumbnails, previews and " +"temporary files." +msgstr "Le dossier temporaire est utilisé pour stocker les vignettes, aperçus et fichiers temporaires." -#: views.py:37 +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" + +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" + +#: views.py:65 msgid "Current user details" msgstr "Détails de l'utilisateur courant" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Modifier les détails des utilisateurs actuels" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Détails des paramètres régionaux de l'utilisateur actuel" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Éditer le détail des paramètres régionaux de l'utilisateur actuel" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Sélection du filtre" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Résultats pour le filtre : %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filtre non trouvé" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Paramètres de configuration" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Aucune action sélectionnée." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Vous devez sélectionner au moins un élément." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Aucun" diff --git a/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo index a87109bddc..185d04c9ca 100644 Binary files a/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/hu/LC_MESSAGES/django.po b/mayan/apps/common/locale/hu/LC_MESSAGES/django.po index 4254ab7cd9..d8c87144a1 100644 --- a/mayan/apps/common/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/hu/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" "MIME-Version: 1.0\n" @@ -18,118 +18,152 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "A felhasználó adatai" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "" @@ -174,6 +208,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -182,68 +234,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Semmi" diff --git a/mayan/apps/common/locale/id/LC_MESSAGES/django.mo b/mayan/apps/common/locale/id/LC_MESSAGES/django.mo index 3ec12cb127..2a7206fd85 100644 Binary files a/mayan/apps/common/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/id/LC_MESSAGES/django.po b/mayan/apps/common/locale/id/LC_MESSAGES/django.po index c09b1e73fb..f17422a746 100644 --- a/mayan/apps/common/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/id/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" "MIME-Version: 1.0\n" @@ -18,118 +18,152 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Atribut yang tersedia" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "tambah" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "hapus" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" -msgstr "Tentang" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Profil lengkap pengguna" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Edit" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Profil lokl" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "edit profil lokal" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Lisensi" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Tentang" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "" @@ -174,6 +208,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -182,68 +234,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "tidak ada aksi yang dipilih" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "pilih salah satu item" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "" diff --git a/mayan/apps/common/locale/it/LC_MESSAGES/django.mo b/mayan/apps/common/locale/it/LC_MESSAGES/django.mo index cc57276c96..d087fcc424 100644 Binary files a/mayan/apps/common/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/it/LC_MESSAGES/django.po b/mayan/apps/common/locale/it/LC_MESSAGES/django.po index c1edcfa96e..cc579181f5 100644 --- a/mayan/apps/common/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/it/LC_MESSAGES/django.po @@ -6,16 +6,16 @@ # Translators: # Carlo Zanatto <>, 2012 # Giovanni Tricarico , 2014 -# Marco Camplese , 2016 +# Marco Camplese , 2016-2017 # Pierpaolo Baldan , 2011-2012,2015 # Roberto Rosario, 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" -"Last-Translator: Marco Camplese \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" +"Last-Translator: Roberto Rosario\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" @@ -23,118 +23,152 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Comune" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Attributi disponibili:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Selezione" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtro" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Impossibile trasferire la selezione: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Aggiungi" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Rimuovi" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s non creato, errore: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s creato con successo.." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s non cancellato, errore: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s cancellato con successo.." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s non aggiornato, errore: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s aggiornato con successo." #: links.py:9 -msgid "About" -msgstr "About" +msgid "About this" +msgstr "A questo proposito" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Dettagli utente" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Modifica dettagli" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Profilo Locale" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Modifica profilo locale" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "Codice sorgente" + +#: links.py:35 +msgid "Documentation" +msgstr "Documentazione" + +#: links.py:39 msgid "Data filters" msgstr "Filtro dati" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "Forum" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licenza" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Licenze altri pacchetti" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Configurazione" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "Supporto" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Strumenti" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Giorni" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Orario" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuti" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "About" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "Operazione eseguita su %(count)d oggetti" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "Operazione eseguita su %(count)d oggetti" + +#: mixins.py:235 msgid "Object" msgstr "Oggetto" @@ -179,6 +213,24 @@ msgid "User locale profiles" msgstr "Profili dell'utente locale" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Abilita automaticamente i log per tutte le app." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Il ritardo per i task in background dipende dalla propagazione del commit su database." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Un intero che specifica quanti oggetti devono essere visualizzati per pagina." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Un backend di memorizzazione che tutti i lavoratori possono utilizzare per condividere i file." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -187,68 +239,59 @@ msgid "" "temporary files." msgstr "Directory temporanea utilizzata in tutto il sito per memorizzare, miniature, anteprime e files temporanei" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Un backend di memorizzazione che tutti i lavoratori possono utilizzare per condividere i file." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Un intero che specifica quanti oggetti devono essere visualizzati per pagina." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Abilita automaticamente i log per tutte le app." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Il ritardo per i task in background dipende dalla propagazione del commit su database." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Dettagli dell'attuale utente" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Modificare i dati dell'utente attuale" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Dettagli del profilo dell'utente attuale" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Modificare i dettagli del profilo corrente dell'utente" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Scegli il filtro" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Risultati per il filtro: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filtro non trovato" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Impostazione elementi" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nessuna azione selezionata" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Devi selezionare un elemento" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Nessuno" diff --git a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo index 91e85e30b4..c8b3982624 100644 Binary files a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po index c00f23d2ef..f50f3eeb36 100644 --- a/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/nl_NL/LC_MESSAGES/django.po @@ -5,14 +5,15 @@ # Translators: # Translators: # Evelijn Saaltink , 2016 +# Johan Braeken, 2017 # woei , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-09 15:54+0000\n" -"Last-Translator: Evelijn Saaltink \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" +"Last-Translator: Roberto Rosario\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" @@ -20,118 +21,152 @@ msgstr "" "Language: nl_NL\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" -msgstr "" +msgstr "Gemeenschappelijk" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Beschikbare eigenschappen:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Selectie" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filter" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." -msgstr "" +msgstr "Niet mogelijk om selectie over te dragen: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Voeg toe" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Verwijder" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" -msgstr "" +msgstr "%(object)s niet aangemaakt, foutmelding: %(error)s." -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s succesvol aangemaakt." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." -msgstr "" +msgstr "%(object)s niet verwijderd, foutmelding: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s succesbol verwijderd." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." -msgstr "" +msgstr "%(object)s niet geupdate, foutmelding: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." -msgstr "" +msgstr "%(object)s werden succesvol geupdate." #: links.py:9 -msgid "About" -msgstr "Informatie" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "gebruiker gegevens" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Bewerk details" -#: links.py:19 -msgid "Locale profile" -msgstr "Lokaal profiel" - #: links.py:23 -msgid "Edit locale profile" -msgstr "bewerk lokaal profiel" +msgid "Locale profile" +msgstr "Landsinstellingen" #: links.py:27 -msgid "Data filters" +msgid "Edit locale profile" +msgstr "Wijzig landsinstellingen" + +#: links.py:31 +msgid "Source code" msgstr "" -#: links.py:31 views.py:150 +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 +msgid "Data filters" +msgstr "Gegevensfilters" + +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licentie" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Andere pakketlicensies" -#: links.py:38 +#: links.py:54 msgid "Setup" -msgstr "Setu" +msgstr "Setup" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Gereedschappen" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Dagen" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Uren" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuten" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Informatie" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Object" @@ -169,83 +204,92 @@ msgstr "Taal" #: models.py:67 msgid "User locale profile" -msgstr "" +msgstr "Gebruikerslandsinstelling" #: models.py:68 msgid "User locale profiles" -msgstr "" +msgstr "Gebruikerslandinstellingen" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Wachttijd voor achtergrondtaken die afhankelijk zijn van het verbreiden van een database commit." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Een natuurlijk getal om aan te geven hoeveel objecten per pagina weergegeven worden." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Een opslagbackend die alle werkers kunnen gebruiken om bestanden te delen." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" msgid "" "Temporary directory used site wide to store thumbnails, previews and " "temporary files." +msgstr "Globale instelling voor een tijdelijke folder om miniaturen, voorvertoningen en tijdelijke bestanden in op te slaan." + +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "" - -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Gegevens van huidige gebruiker" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Bewerk gegevens van huidige gebruiker" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" -msgstr "" +msgstr "Details landinstellingen huidige gebruiker" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" -msgstr "" +msgstr "Wijzig landsinstellingen van de huidige gebruiker" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" -msgstr "" +msgstr "Filterselectie" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" -msgstr "" +msgstr "Resultaten voor filter: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" -msgstr "" +msgstr "Filter niet gevonden" -#: views.py:177 +#: views.py:217 msgid "Setup items" -msgstr "" +msgstr "Setup items" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Geen acties geselecteerd." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Selecteer minimaal een item." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Geen" diff --git a/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo index 9f9cde7e7c..bd6be8248f 100644 Binary files a/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/pl/LC_MESSAGES/django.po b/mayan/apps/common/locale/pl/LC_MESSAGES/django.po index 06ece6c5fb..dd0a4cc1ca 100644 --- a/mayan/apps/common/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/pl/LC_MESSAGES/django.po @@ -13,128 +13,162 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+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" "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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Ustawienia wspólne" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Dostępne atrybuty:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Zaznaczenie" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtr" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Nie można przenieść zaznaczenia: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Dodaj" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Usuń" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" -msgstr "Informacje o" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Dane użytkownika" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Edytuj dane użytkownika" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Profil regionalny" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Edytuj profil regionalny" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "Filtry danych" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licencja" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Pozostałe licencje" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Ustawienia" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Narzędzia" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Dni" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Godziny" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minuty" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Informacje o" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Obiekt" @@ -179,6 +213,24 @@ msgid "User locale profiles" msgstr "Profile regionalne użytkownika" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Włącz dla wszystkich aplikacji automatyczny zapis zdarzeń." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Czas opóźnienia wykonania zadań zależnych od operacji na bazie danych." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Liczba określająca ile obiektów będzie wyświetlane na stronie." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Backend przechowywania umożliwiający wszystkim użytkownikom udostępnianie plików." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -187,68 +239,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Backend przechowywania umożliwiający wszystkim użytkownikom udostępnianie plików." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Liczba określająca ile obiektów będzie wyświetlane na stronie." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Włącz dla wszystkich aplikacji automatyczny zapis zdarzeń." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Czas opóźnienia wykonania zadań zależnych od operacji na bazie danych." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Dane użytkownika" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Edytuj dane użytkownika" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Profil regionalny użytkownika" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Edytuj profil regionalny użytkownika" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Wybór filtru" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Wyniki dla filtru: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Nie znaleziono filtru" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Ustawienia elementów" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nie wybrano żadnego działania" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Musisz wybrać co najmniej jeden element." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Brak" diff --git a/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo index fc6e2c3ae1..0ff16fb906 100644 Binary files a/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/pt/LC_MESSAGES/django.po b/mayan/apps/common/locale/pt/LC_MESSAGES/django.po index f62d1aeade..450308a7a6 100644 --- a/mayan/apps/common/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/pt/LC_MESSAGES/django.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" "MIME-Version: 1.0\n" @@ -21,118 +21,152 @@ msgstr "" "Language: pt\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Seleção" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Adicionar" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Remover" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Detalhes do utilizador" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licença" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Configuração" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Ferramentas" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Objeto" @@ -177,6 +211,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -185,68 +237,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Itens de configuração" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nenhuma ação selecionada." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Deve selecionar pelo menos um item." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Nenhum" diff --git a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.mo index 1fc8a21a78..a219259a9e 100644 Binary files a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po index 45463a766a..b8f0a105f9 100644 --- a/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/pt_BR/LC_MESSAGES/django.po @@ -6,15 +6,16 @@ # Translators: # Aline Freitas , 2016 # Emerson Soares , 2011 +# Jadson Ribeiro , 2017 # Roberto Rosario, 2012 # Rogerio Falcone , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-11-17 22:46+0000\n" -"Last-Translator: Aline Freitas \n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" +"Last-Translator: Roberto Rosario\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" @@ -22,118 +23,152 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Comúm" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Atributos disponíveis:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Seleção" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Filtro" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Não foi possível transferir a seleção: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Adicionar" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Remover" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s não criado, erro: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s criado com sucesso." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s não removido, erro: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s removido com sucesso." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s não atualizado, erro: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s atualizado com sucesso." #: links.py:9 -msgid "About" -msgstr "Sobre" +msgid "About this" +msgstr "Sobre isso" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Detalhes do usuário" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Editar Detalhes" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Perfil Idioma" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Editar perfil Idioma" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "Código fonte" + +#: links.py:35 +msgid "Documentation" +msgstr "Documentação" + +#: links.py:39 msgid "Data filters" msgstr "Filtro de dados" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "Fórum" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licença" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Licenças de outros pacotes" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Configurações" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "Suporte" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Ferramentas" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Dia" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Hora" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minutos" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Sobre" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "Operação executada em %(count)d objeto" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "Operação executada em %(count)d objetos" + +#: mixins.py:235 msgid "Object" msgstr "Objeto" @@ -178,6 +213,24 @@ msgid "User locale profiles" msgstr "Perfis de localidade do usuário" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Ativar automaticamente o registro de todos os aplicativos." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Tempo para atrasar as tarefas de fundo que dependem da propagação de informação na base de dados." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Um número inteiro que especifica quantos objetos se deve mostrar por página." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Um suporte de armazenamento que todos os trabalhadores podem usar para compartilhar arquivos." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -186,68 +239,59 @@ msgid "" "temporary files." msgstr "Pasta temporária utilizada em todo o site para armazenar imagens em miniatura, visualizações e arquivos temporários." -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Um suporte de armazenamento que todos os trabalhadores podem usar para compartilhar arquivos." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Um número inteiro que especifica quantos objetos se deve mostrar por página." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Ativar automaticamente o registro de todos os aplicativos." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Tempo para atrasar as tarefas de fundo que dependem da propagação de informação na base de dados." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Detalhes do usuário atual" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Editar detalhes do usuário atual" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Detalhes do perfil de localidade do usuário atual" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Editar detalhes do perfil de localização do usuário atual" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Seleção de filtro" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Resultados para o filtro: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Filtro não encontrado" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Itens da Configuração" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nenhuma ação selecionada." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Deve selecionar pelo menos um item." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Nenhum" diff --git a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo index bb5457a5ae..9ae9e63f40 100644 Binary files a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po index b647b83a2b..9dbf22816c 100644 --- a/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/ro_RO/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "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:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "selecţie" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Adaugă" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Şterge" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" -msgstr "Despre" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "detalii utilizator" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Licenţă" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Zi" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Ore" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Minute" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Despre" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Obiect" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Nu a fost selectată nici o acţiune." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Trebuie sa selectaţi cel puţin un rând" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Nici unul" diff --git a/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo index 91e509bf60..8a4d01e50c 100644 Binary files a/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/ru/LC_MESSAGES/django.po b/mayan/apps/common/locale/ru/LC_MESSAGES/django.po index 2a696dff02..4ff45ef7dd 100644 --- a/mayan/apps/common/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/ru/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "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:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "Общий" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "Доступные атрибуты:" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Выбор" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "Фильтр" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "Невозможно передать выделение: %s." -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Добавить" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Удалить" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "%(object)s не создан, ошибка: %(error)s" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "%(object)s успешно создан." -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "%(object)s не удалён, ошибка: %(error)s." -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "%(object)s успешно удалён." -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "%(object)s не обновлён, ошибка: %(error)s." -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "%(object)s успешно обновлён." #: links.py:9 -msgid "About" -msgstr "Инфо" +msgid "About this" +msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "сведения о пользователе" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "Редактировать сведения" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "Профиль локали" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "Редактировать локаль" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "Фильтры данных" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Лицензия" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "Лицензии других пакетов" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "Настройки" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "Инструменты" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "Дней" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "Часов" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "Минут" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "Инфо" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Объект" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "Профили локали пользователей" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "Автоматически разрешать всем установленным приложениям делать записи в журнале." + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "Время задержки фоновых задач зависящих от процесса распространения записанных в БД данных." + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "Числовое значение указывающее как много объектов может быть отображено на одной странице." + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "Бекенд хранения, который каждый может использовать для хранения файлов." + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." -msgstr "Бекенд хранения, который каждый может использовать для хранения файлов." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" +msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." -msgstr "Числовое значение указывающее как много объектов может быть отображено на одной странице." +#: views.py:48 +msgid "Your version is up-to-date." +msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "Автоматически разрешать всем установленным приложениям делать записи в журнале." - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "Время задержки фоновых задач зависящих от процесса распространения записанных в БД данных." - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "Настройки текущего пользователя" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "Редактировать настройки текущего пользователя" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "Настройки локали текущего пользователя" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "Редактировать настройки локали текущего пользователя" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "Фильтр по выбранным" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "Результаты для фильтра: %s" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "Фильтр не найден" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "Элементы настроек" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Никаких действий не выбрано." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Необходимо выбрать хотя бы один элемент." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Ни один" diff --git a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo index 835e209426..4eb7d47b7c 100644 Binary files a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po index 7b5b6ab0ab..bea92c9315 100644 --- a/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/sl_SI/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" "MIME-Version: 1.0\n" @@ -18,118 +18,152 @@ msgstr "" "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:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 -msgid "User details" +#: links.py:12 views.py:51 +msgid "Check for updates" msgstr "" #: links.py:16 +msgid "User details" +msgstr "" + +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "" @@ -174,6 +208,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -182,68 +234,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "Brez" diff --git a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo index a69381cf29..0c06023076 100644 Binary files a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po index b2783432ce..276fbd654a 100644 --- a/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/vi_VN/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: vi_VN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "Lựa chọn" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "Thêm" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "Xóa" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "Chi tiết người dùng" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "Bản quyền" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "Đối tượng" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "Không thao tác nào được chọn." -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "Cần chọn ít nhất một phần tử." -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "None" diff --git a/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo index 65b56fb737..8397ff868c 100644 Binary files a/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.po index ae9fd5e2bb..3fbb2b89cd 100644 --- a/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/common/locale/zh_CN/LC_MESSAGES/django.po @@ -9,8 +9,8 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:52-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:52+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" "MIME-Version: 1.0\n" @@ -19,118 +19,152 @@ msgstr "" "Language: zh_CN\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: apps.py:72 settings.py:9 +#: apps.py:76 settings.py:9 msgid "Common" msgstr "" -#: classes.py:53 +#: classes.py:106 msgid "Available attributes: " msgstr "" -#: forms.py:27 +#: forms.py:26 msgid "Selection" msgstr "选择" -#: forms.py:106 +#: forms.py:105 msgid "Filter" msgstr "" -#: generics.py:126 +#: generics.py:133 #, python-format msgid "Unable to transfer selection: %s." msgstr "" -#: generics.py:150 +#: generics.py:157 msgid "Add" msgstr "新增" -#: generics.py:161 +#: generics.py:168 msgid "Remove" msgstr "移除" -#: generics.py:287 +#: generics.py:327 #, python-format msgid "%(object)s not created, error: %(error)s" msgstr "" -#: generics.py:298 +#: generics.py:338 #, python-format msgid "%(object)s created successfully." msgstr "" -#: generics.py:323 +#: generics.py:363 #, python-format msgid "%(object)s not deleted, error: %(error)s." msgstr "" -#: generics.py:334 +#: generics.py:374 #, python-format msgid "%(object)s deleted successfully." msgstr "" -#: generics.py:379 +#: generics.py:419 #, python-format msgid "%(object)s not updated, error: %(error)s." msgstr "" -#: generics.py:390 +#: generics.py:430 #, python-format msgid "%(object)s updated successfully." msgstr "" #: links.py:9 -msgid "About" +msgid "About this" msgstr "" -#: links.py:12 +#: links.py:12 views.py:51 +msgid "Check for updates" +msgstr "" + +#: links.py:16 msgid "User details" msgstr "用户信息" -#: links.py:16 +#: links.py:20 msgid "Edit details" msgstr "" -#: links.py:19 +#: links.py:23 msgid "Locale profile" msgstr "" -#: links.py:23 +#: links.py:27 msgid "Edit locale profile" msgstr "" -#: links.py:27 +#: links.py:31 +msgid "Source code" +msgstr "" + +#: links.py:35 +msgid "Documentation" +msgstr "" + +#: links.py:39 msgid "Data filters" msgstr "" -#: links.py:31 views.py:150 +#: links.py:43 +msgid "Forum" +msgstr "" + +#: links.py:47 views.py:190 msgid "License" msgstr "许可证" -#: links.py:34 views.py:164 +#: links.py:50 views.py:204 msgid "Other packages licenses" msgstr "" -#: links.py:38 +#: links.py:54 msgid "Setup" msgstr "" -#: links.py:41 views.py:194 +#: links.py:57 +msgid "Support" +msgstr "" + +#: links.py:61 views.py:234 msgid "Tools" msgstr "" -#: literals.py:13 +#: literals.py:14 msgid "Days" msgstr "天" -#: literals.py:14 +#: literals.py:15 msgid "Hours" msgstr "小时" -#: literals.py:15 +#: literals.py:16 msgid "Minutes" msgstr "分钟" -#: mixins.py:125 +#: menus.py:12 +msgid "About" +msgstr "" + +#: mixins.py:74 +#, python-format +msgid "Operation performed on %(count)d object" +msgstr "" + +#: mixins.py:75 +#, python-format +msgid "Operation performed on %(count)d objects" +msgstr "" + +#: mixins.py:235 msgid "Object" msgstr "对象" @@ -175,6 +209,24 @@ msgid "User locale profiles" msgstr "" #: settings.py:13 +msgid "Automatically enable logging to all apps." +msgstr "" + +#: settings.py:19 +msgid "" +"Time to delay background tasks that depend on a database commit to " +"propagate." +msgstr "" + +#: settings.py:27 +msgid "An integer specifying how many objects should be displayed per page." +msgstr "" + +#: settings.py:33 +msgid "A storage backend that all workers can use to share files." +msgstr "" + +#: settings.py:38 #| msgid "" #| "ary directory used site wide to store thumbnails, previews and porary es. " #| "If none is specified, one will be created using pfile.mkdtemp()" @@ -183,68 +235,59 @@ msgid "" "temporary files." msgstr "" -#: settings.py:21 -msgid "A storage backend that all workers can use to share files." +#: views.py:44 +#, python-format +msgid "The version you are using is outdated. The latest version is %s" msgstr "" -#: settings.py:27 -msgid "An integer specifying how many objects should be displayed per page." +#: views.py:48 +msgid "Your version is up-to-date." msgstr "" -#: settings.py:33 -msgid "Automatically enable logging to all apps." -msgstr "" - -#: settings.py:39 -msgid "" -"Time to delay background tasks that depend on a database commit to " -"propagate." -msgstr "" - -#: views.py:37 +#: views.py:65 msgid "Current user details" msgstr "" -#: views.py:42 +#: views.py:70 msgid "Edit current user details" msgstr "" -#: views.py:62 +#: views.py:90 msgid "Current user locale profile details" msgstr "" -#: views.py:69 +#: views.py:97 msgid "Edit current user locale profile details" msgstr "" -#: views.py:113 +#: views.py:153 #| msgid "Selection" msgid "Filter selection" msgstr "" -#: views.py:129 +#: views.py:169 #, python-format msgid "Results for filter: %s" msgstr "" -#: views.py:136 +#: views.py:176 #| msgid "Page not found" msgid "Filter not found" msgstr "" -#: views.py:177 +#: views.py:217 msgid "Setup items" msgstr "" -#: views.py:221 +#: views.py:261 msgid "No action selected." msgstr "请选择一个操作" -#: views.py:229 +#: views.py:269 msgid "Must select at least one item." msgstr "至少需要选择一项" -#: widgets.py:50 +#: widgets.py:48 msgid "None" msgstr "无" diff --git a/mayan/apps/common/management/commands/runtests.py b/mayan/apps/common/management/commands/runtests.py deleted file mode 100644 index 44832cdff8..0000000000 --- a/mayan/apps/common/management/commands/runtests.py +++ /dev/null @@ -1,34 +0,0 @@ -from __future__ import unicode_literals - -from django import apps -from django.core import management - - -class Command(management.BaseCommand): - help = 'Run all configured tests for the project.' - - def add_arguments(self, parser): - parser.add_argument( - '--nomigrations', action='store_true', dest='nomigrations', - default=False, - help='Don\'t use migrations when creating the test database.' - ) - - parser.add_argument( - '--reverse', action='store_true', dest='reverse', default=False, - help='Reverses test cases order.' - ) - - def handle(self, *args, **options): - kwargs = {} - if options.get('nomigrations'): - kwargs['nomigrations'] = True - - if options.get('reverse'): - kwargs['reverse'] = True - - test_apps = [app.name for app in apps.apps.get_app_configs() if getattr(app, 'test', False)] - - print 'Testing: {}'.format(', '.join(test_apps)) - - management.call_command('test', *test_apps, interactive=False, **kwargs) diff --git a/mayan/apps/common/mixins.py b/mayan/apps/common/mixins.py index 22edd785a2..0a04321e20 100644 --- a/mayan/apps/common/mixins.py +++ b/mayan/apps/common/mixins.py @@ -34,22 +34,6 @@ class DeleteExtraDataMixin(object): return HttpResponseRedirect(success_url) -class FormExtraKwargsMixin(object): - """ - Mixin that allows a view to pass extra keyword arguments to forms - """ - - form_extra_kwargs = {} - - def get_form_extra_kwargs(self): - return self.form_extra_kwargs - - def get_form_kwargs(self): - result = super(FormExtraKwargsMixin, self).get_form_kwargs() - result.update(self.get_form_extra_kwargs()) - return result - - class ExtraContextMixin(object): """ Mixin that allows views to pass extra context to the template @@ -66,6 +50,22 @@ class ExtraContextMixin(object): return context +class FormExtraKwargsMixin(object): + """ + Mixin that allows a view to pass extra keyword arguments to forms + """ + + form_extra_kwargs = {} + + def get_form_extra_kwargs(self): + return self.form_extra_kwargs + + def get_form_kwargs(self): + result = super(FormExtraKwargsMixin, self).get_form_kwargs() + result.update(self.get_form_extra_kwargs()) + return result + + class MultipleInstanceActionMixin(object): # TODO: Deprecated, replace views using this with # MultipleObjectFormActionView or MultipleObjectConfirmActionView diff --git a/mayan/apps/common/settings.py b/mayan/apps/common/settings.py index a1a16e656f..8edf6c8512 100644 --- a/mayan/apps/common/settings.py +++ b/mayan/apps/common/settings.py @@ -7,26 +7,6 @@ from django.utils.translation import ugettext_lazy as _ from smart_settings import Namespace namespace = Namespace(name='common', label=_('Common')) -setting_temporary_directory = namespace.add_setting( - global_name='COMMON_TEMPORARY_DIRECTORY', default=tempfile.gettempdir(), - help_text=_( - 'Temporary directory used site wide to store thumbnails, previews ' - 'and temporary files.' - ), - is_path=True -) -setting_shared_storage = namespace.add_setting( - global_name='COMMON_SHARED_STORAGE', - default='storage.backends.filebasedstorage.FileBasedStorage', - help_text=_('A storage backend that all workers can use to share files.') -) -setting_paginate_by = namespace.add_setting( - global_name='COMMON_PAGINATE_BY', - default=40, - help_text=_( - 'An integer specifying how many objects should be displayed per page.' - ) -) setting_auto_logging = namespace.add_setting( global_name='COMMON_AUTO_LOGGING', default=True, @@ -40,3 +20,23 @@ settings_db_sync_task_delay = namespace.add_setting( 'propagate.' ) ) +setting_paginate_by = namespace.add_setting( + global_name='COMMON_PAGINATE_BY', + default=40, + help_text=_( + 'An integer specifying how many objects should be displayed per page.' + ) +) +setting_shared_storage = namespace.add_setting( + global_name='COMMON_SHARED_STORAGE', + default='storage.backends.filebasedstorage.FileBasedStorage', + help_text=_('A storage backend that all workers can use to share files.') +) +setting_temporary_directory = namespace.add_setting( + global_name='COMMON_TEMPORARY_DIRECTORY', default=tempfile.gettempdir(), + help_text=_( + 'Temporary directory used site wide to store thumbnails, previews ' + 'and temporary files.' + ), + is_path=True +) diff --git a/mayan/apps/common/tests/mixins.py b/mayan/apps/common/tests/mixins.py index e5c818b1ed..4a78cdc6ef 100644 --- a/mayan/apps/common/tests/mixins.py +++ b/mayan/apps/common/tests/mixins.py @@ -3,7 +3,17 @@ from __future__ import unicode_literals import glob import os -import psutil +from django.conf import settings +from django.contrib.auth import get_user_model +from django.contrib.auth.models import Group +if getattr(settings, 'COMMON_TEST_FILE_HANDLES', False): + import psutil +from permissions.models import Role +from permissions.tests.literals import TEST_ROLE_LABEL +from user_management.tests import ( + TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_ADMIN_EMAIL, + TEST_GROUP_NAME, TEST_USER_EMAIL, TEST_USER_USERNAME, TEST_USER_PASSWORD +) from ..settings import setting_temporary_directory @@ -32,8 +42,37 @@ class ContentTypeCheckMixin(object): self.client = CustomClient() +class OpenFileCheckMixin(object): + def _get_descriptor_count(self): + process = psutil.Process() + return process.num_fds() + + def _get_open_files(self): + process = psutil.Process() + return process.open_files() + + def setUp(self): + super(OpenFileCheckMixin, self).setUp() + if getattr(settings, 'COMMON_TEST_FILE_HANDLES', False): + self._open_files = self._get_open_files() + + def tearDown(self): + if getattr(settings, 'COMMON_TEST_FILE_HANDLES', False) and not getattr(self, '_skip_file_descriptor_test', False): + for new_open_file in self._get_open_files(): + self.assertFalse( + new_open_file not in self._open_files, + msg='File descriptor leak. The number of file descriptors ' + 'at the start and at the end of the test are not the same.' + ) + + self._skip_file_descriptor_test = False + + super(OpenFileCheckMixin, self).tearDown() + + class TempfileCheckMixin(object): # Ignore the jvmstat instrumentation and GitLab's CI .config files + # Ignore LibreOffice fontconfig cache dir ignore_globs = ('hsperfdata_*', '.config', '.cache') def _get_temporary_entries(self): @@ -57,43 +96,37 @@ class TempfileCheckMixin(object): def setUp(self): super(TempfileCheckMixin, self).setUp() - self._temporary_items = self._get_temporary_entries() + if getattr(settings, 'COMMON_TEST_TEMP_FILES', False): + self._temporary_items = self._get_temporary_entries() def tearDown(self): - final_temporary_items = self._get_temporary_entries() - self.assertEqual( - self._temporary_items, final_temporary_items, - msg='Orphan temporary file. The number of temporary files and/or ' - 'directories at the start and at the end of the test are not the ' - 'same. Orphan entries: {}'.format( - ','.join(final_temporary_items - self._temporary_items) + if getattr(settings, 'COMMON_TEST_TEMP_FILES', False): + final_temporary_items = self._get_temporary_entries() + self.assertEqual( + self._temporary_items, final_temporary_items, + msg='Orphan temporary file. The number of temporary files and/or ' + 'directories at the start and at the end of the test are not the ' + 'same. Orphan entries: {}'.format( + ','.join(final_temporary_items - self._temporary_items) + ) ) - ) super(TempfileCheckMixin, self).tearDown() -class OpenFileCheckMixin(object): - def _get_descriptor_count(self): - process = psutil.Process() - return process.num_fds() - - def _get_open_files(self): - process = psutil.Process() - return process.open_files() - +class UserMixin(object): def setUp(self): - super(OpenFileCheckMixin, self).setUp() - self._open_files = self._get_open_files() + super(UserMixin, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) - def tearDown(self): - if not getattr(self, '_skip_file_descriptor_test', False): - for new_open_file in self._get_open_files(): - self.assertFalse( - new_open_file not in self._open_files, - msg='File descriptor leak. The number of file descriptors ' - 'at the start and at the end of the test are not the same.' - ) + self.user = get_user_model().objects.create_user( + username=TEST_USER_USERNAME, email=TEST_USER_EMAIL, + password=TEST_USER_PASSWORD + ) - self._skip_file_descriptor_test = False - - super(OpenFileCheckMixin, self).tearDown() + self.group = Group.objects.create(name=TEST_GROUP_NAME) + self.role = Role.objects.create(label=TEST_ROLE_LABEL) + self.group.user_set.add(self.user) + self.role.groups.add(self.group) diff --git a/mayan/apps/common/tests/runner.py b/mayan/apps/common/tests/runner.py new file mode 100644 index 0000000000..1c47d24574 --- /dev/null +++ b/mayan/apps/common/tests/runner.py @@ -0,0 +1,31 @@ +from __future__ import unicode_literals + +from django import apps +from django.test.runner import DiscoverRunner + + +class MayanTestRunner(DiscoverRunner): + @classmethod + def add_arguments(cls, parser): + DiscoverRunner.add_arguments(parser) + parser.add_argument( + '--mayan-apps', action='store_true', default=False, + dest='mayan_apps', + help='Test all Mayan apps that report to have tests.' + ) + + def __init__(self, *args, **kwargs): + self.mayan_apps = kwargs.pop('mayan_apps') + super(MayanTestRunner, self).__init__(*args, **kwargs) + + def build_suite(self, *args, **kwargs): + # Apps that report they have tests + if self.mayan_apps: + args = list(args) + args[0] = [ + app.name for app in apps.apps.get_app_configs() if getattr( + app, 'has_tests', False + ) + ] + + return super(MayanTestRunner, self).build_suite(*args, **kwargs) diff --git a/mayan/apps/common/tests/test_api.py b/mayan/apps/common/tests/test_api.py index 4b92bd8342..2a8f456b1c 100644 --- a/mayan/apps/common/tests/test_api.py +++ b/mayan/apps/common/tests/test_api.py @@ -2,10 +2,10 @@ from __future__ import unicode_literals from django.core.urlresolvers import reverse -from rest_framework.test import APITestCase +from rest_api.tests import BaseAPITestCase -class CommonAPITestCase(APITestCase): +class CommonAPITestCase(BaseAPITestCase): def test_content_type_list_view(self): response = self.client.get(reverse('rest_api:content-type-list')) self.assertEqual(response.status_code, 200) diff --git a/mayan/apps/common/tests/test_views.py b/mayan/apps/common/tests/test_views.py index 1b4175ff9f..a5716a1c65 100644 --- a/mayan/apps/common/tests/test_views.py +++ b/mayan/apps/common/tests/test_views.py @@ -7,7 +7,6 @@ from django.core.urlresolvers import clear_url_caches, reverse from django.http import HttpResponse from django.template import Context, Template -from permissions import Permission from permissions.models import Role from permissions.tests.literals import TEST_ROLE_LABEL from user_management.tests import ( @@ -37,7 +36,6 @@ class GenericViewTestCase(BaseTestCase): self.role = Role.objects.create(label=TEST_ROLE_LABEL) self.group.user_set.add(self.user) self.role.groups.add(self.group) - Permission.invalidate_cache() def tearDown(self): from mayan.urls import urlpatterns diff --git a/mayan/apps/common/urls.py b/mayan/apps/common/urls.py index 70141c1ceb..403aadd7df 100644 --- a/mayan/apps/common/urls.py +++ b/mayan/apps/common/urls.py @@ -1,22 +1,24 @@ from __future__ import unicode_literals from django.conf.urls import url -from django.contrib.staticfiles.templatetags.staticfiles import static -from django.views.generic import RedirectView from django.views.i18n import javascript_catalog, set_language -from api_views import APIContentTypeList +from .api_views import APIContentTypeList from .views import ( - AboutView, CurrentUserDetailsView, CurrentUserEditView, + AboutView, CheckVersionView, CurrentUserDetailsView, CurrentUserEditView, CurrentUserLocaleProfileDetailsView, CurrentUserLocaleProfileEditView, - FilterResultListView, FilterSelectView, HomeView, LicenseView, - PackagesLicensesView, SetupListView, ToolsListView, + FaviconRedirectView, FilterResultListView, FilterSelectView, HomeView, + LicenseView, PackagesLicensesView, SetupListView, ToolsListView, multi_object_action_view ) urlpatterns = [ url(r'^$', HomeView.as_view(), name='home'), url(r'^about/$', AboutView.as_view(), name='about_view'), + url( + r'^check_version/$', CheckVersionView.as_view(), + name='check_version_view' + ), url(r'^license/$', LicenseView.as_view(), name='license_view'), url( r'^packages/licenses/$', PackagesLicensesView.as_view(), @@ -56,9 +58,7 @@ urlpatterns = [ urlpatterns += [ url( - r'^favicon\.ico$', RedirectView.as_view( - permanent=True, url=static('appearance/images/favicon.ico') - ) + r'^favicon\.ico$', FaviconRedirectView.as_view() ), url( r'^jsi18n/(?P\S+?)/$', javascript_catalog, diff --git a/mayan/apps/common/utils.py b/mayan/apps/common/utils.py index 1f03bc2e23..fb006f6d57 100644 --- a/mayan/apps/common/utils.py +++ b/mayan/apps/common/utils.py @@ -5,17 +5,34 @@ import os import shutil import tempfile import types +import xmlrpclib from django.conf import settings +from django.core.urlresolvers import resolve as django_resolve +from django.urls.base import get_script_prefix from django.utils.datastructures import MultiValueDict from django.utils.http import urlquote as django_urlquote from django.utils.http import urlencode as django_urlencode +import mayan + +from .exceptions import NotLatestVersion +from .literals import MAYAN_PYPI_NAME, PYPI_URL from .settings import setting_temporary_directory logger = logging.getLogger(__name__) +def check_version(): + pypi = xmlrpclib.ServerProxy(PYPI_URL) + versions = pypi.package_releases(MAYAN_PYPI_NAME) + + if versions[0] != mayan.__version__: + raise NotLatestVersion(upstream_version=versions[0]) + else: + return True + + # http://stackoverflow.com/questions/123198/how-do-i-copy-a-file-in-python def copyfile(source, destination, buffer_size=1024 * 1024): """ @@ -93,6 +110,11 @@ def mkstemp(*args, **kwargs): return tempfile.mkstemp(*args, **kwargs) +def resolve(path, urlconf=None): + path = '/{}'.format(path.replace(get_script_prefix(), '', 1)) + return django_resolve(path=path, urlconf=urlconf) + + def return_attrib(obj, attrib, arguments=None): try: if isinstance(attrib, types.FunctionType): diff --git a/mayan/apps/common/validators.py b/mayan/apps/common/validators.py new file mode 100644 index 0000000000..84ff982615 --- /dev/null +++ b/mayan/apps/common/validators.py @@ -0,0 +1,32 @@ +from __future__ import unicode_literals + +import re + +from django.core.validators import RegexValidator +from django.utils import six +from django.utils.functional import SimpleLazyObject +from django.utils.translation import ugettext_lazy as _ + +# These values, if given to validate(), will trigger the self.required check. +EMPTY_VALUES = (None, '', [], (), {}) + + +def _lazy_re_compile(regex, flags=0): + """Lazily compile a regex with flags.""" + def _compile(): + # Compile the regex if it was not passed pre-compiled. + if isinstance(regex, six.string_types): + return re.compile(regex, flags) + else: + assert not flags, 'flags must be empty if regex is passed pre-compiled' + return regex + return SimpleLazyObject(_compile) + + +internal_name_re = _lazy_re_compile(r'^[a-zA-Z0-9_]+\Z') +validate_internal_name = RegexValidator( + internal_name_re, _( + "Enter a valid 'internal name' consisting of letters, numbers, and " + "underscores." + ), 'invalid' +) diff --git a/mayan/apps/common/views.py b/mayan/apps/common/views.py index 5e8f47481d..a05d2a2dba 100644 --- a/mayan/apps/common/views.py +++ b/mayan/apps/common/views.py @@ -10,21 +10,49 @@ from django.template import RequestContext from django.utils import timezone, translation from django.utils.http import urlencode from django.utils.translation import ugettext_lazy as _, ugettext -from django.views.generic import TemplateView +from django.views.generic import RedirectView, TemplateView from .classes import Filter +from .exceptions import NotLatestVersion from .forms import ( FilterForm, LicenseForm, LocaleProfileForm, LocaleProfileForm_view, PackagesLicensesForm, UserForm, UserForm_view ) -from .generics import * # NOQA +from .generics import ( # NOQA + AssignRemoveView, ConfirmView, FormView, MultiFormView, + MultipleObjectConfirmActionView, MultipleObjectFormActionView, + SingleObjectCreateView, SingleObjectDeleteView, + SingleObjectDetailView, SingleObjectEditView, SingleObjectListView, + SimpleView +) from .menus import menu_tools, menu_setup +from .utils import check_version class AboutView(TemplateView): template_name = 'appearance/about.html' +class CheckVersionView(SimpleView): + template_name = 'appearance/generic_template.html' + + def get_extra_context(self): + try: + check_version() + except NotLatestVersion as exception: + message = _( + 'The version you are using is outdated. The latest version ' + 'is %s' + ) % exception.upstream_version + else: + message = _('Your version is up-to-date.') + + return { + 'title': _('Check for updates'), + 'content': message + } + + class CurrentUserDetailsView(SingleObjectDetailView): form_class = UserForm_view @@ -100,6 +128,18 @@ class CurrentUserLocaleProfileEditView(SingleObjectEditView): return self.request.user.locale_profile +class FaviconRedirectView(RedirectView): + permanent = True + + def get_redirect_url(self, *args, **kwargs): + """ + Hide the static tag import to avoid errors with static file + processors + """ + from django.contrib.staticfiles.templatetags.staticfiles import static + return static('appearance/images/favicon.ico') + + class FilterSelectView(SimpleView): form_class = FilterForm template_name = 'appearance/generic_form.html' diff --git a/mayan/apps/converter/apps.py b/mayan/apps/converter/apps.py index 40b54d6bc0..a04056c761 100644 --- a/mayan/apps/converter/apps.py +++ b/mayan/apps/converter/apps.py @@ -14,8 +14,8 @@ from .licenses import * # NOQA class ConverterApp(MayanAppConfig): + has_tests = True name = 'converter' - test = True verbose_name = _('Converter') def ready(self): diff --git a/mayan/apps/converter/classes.py b/mayan/apps/converter/classes.py index f19d3b7b6b..9ab180e6fe 100644 --- a/mayan/apps/converter/classes.py +++ b/mayan/apps/converter/classes.py @@ -216,6 +216,10 @@ class ConverterBase(object): class BaseTransformation(object): + """ + Transformation can modify the appearance of the document's page preview. + Some transformation available are: Rotate, zoom, resize and crop. + """ arguments = () name = 'base_transformation' _registry = {} diff --git a/mayan/apps/converter/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/ar/LC_MESSAGES/django.mo index 59215be475..7001557bec 100644 Binary files a/mayan/apps/converter/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/ar/LC_MESSAGES/django.po b/mayan/apps/converter/locale/ar/LC_MESSAGES/django.po index c1c17b8a73..831c9e9834 100644 --- a/mayan/apps/converter/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,29 +9,31 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +43,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +51,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "تغيير حجم" - -#: classes.py:295 -msgid "Rotate" -msgstr "تدوير" - -#: classes.py:313 -msgid "Zoom" -msgstr "التكبير" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "تغيير حجم" + +#: classes.py:363 +msgid "Rotate" +msgstr "تدوير" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "التكبير" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "تحرير" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "اسم" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +140,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +159,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +188,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +213,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +532,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +652,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/bg/LC_MESSAGES/django.mo index 365ae29165..0d5e7cb300 100644 Binary files a/mayan/apps/converter/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/bg/LC_MESSAGES/django.po b/mayan/apps/converter/locale/bg/LC_MESSAGES/django.po index 0f8cf70816..489067b6b0 100644 --- a/mayan/apps/converter/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/bg/LC_MESSAGES/django.po @@ -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: # Pavlin Koldamov , 2012 @@ -9,29 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +42,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +50,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "Преоразмеряване" - -#: classes.py:295 -msgid "Rotate" -msgstr "Завъртете" - -#: classes.py:313 -msgid "Zoom" -msgstr "Увеличаване" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Преоразмеряване" + +#: classes.py:363 +msgid "Rotate" +msgstr "Завъртете" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Увеличаване" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Редактиране" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Име" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +139,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +158,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +187,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +212,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +531,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +651,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.mo index acd84bd0d0..5198675fd5 100644 Binary files a/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.po index cebc051a54..f0a025dd87 100644 --- a/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,29 +9,31 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +43,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +51,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "Promjeni veličinu" - -#: classes.py:295 -msgid "Rotate" -msgstr "Rotiraj" - -#: classes.py:313 -msgid "Zoom" -msgstr "Uvećaj" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Promjeni veličinu" + +#: classes.py:363 +msgid "Rotate" +msgstr "Rotiraj" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Uvećaj" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Urediti" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Ime" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +140,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +159,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +188,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +213,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +532,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +652,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/da/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/da/LC_MESSAGES/django.mo index e4df92419c..f23b4ea6c8 100644 Binary files a/mayan/apps/converter/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/da/LC_MESSAGES/django.po b/mayan/apps/converter/locale/da/LC_MESSAGES/django.po index ecd63460e1..de27b2f13c 100644 --- a/mayan/apps/converter/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/da/LC_MESSAGES/django.po @@ -1,36 +1,37 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -40,7 +41,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -49,49 +49,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "" - -#: classes.py:295 -msgid "Rotate" -msgstr "" - -#: classes.py:313 -msgid "Zoom" -msgstr "" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "" + +#: classes.py:363 +msgid "Rotate" +msgstr "" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" msgstr "" #: links.py:35 -msgid "Delete" +msgid "Create new transformation" msgstr "" #: links.py:39 +msgid "Delete" +msgstr "" + +#: links.py:43 msgid "Edit" msgstr "" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Navn" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -110,7 +138,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -130,22 +157,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -159,9 +186,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -187,14 +211,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -507,9 +530,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -625,7 +650,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.mo index 620ab439d9..8d91780eff 100644 Binary files a/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.po index 28ef027b85..c33287bf95 100644 --- a/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/de_DE/LC_MESSAGES/django.po @@ -1,38 +1,40 @@ # 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: +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Tobias Paepke , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 23:01+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Konverter" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Reihenfolge" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformation" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumente" @@ -42,7 +44,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Ausnahme bei der Ermittlung der PDF-Seitenanzahl: %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Kein Office-Dateiformat" @@ -51,53 +52,85 @@ msgstr "Kein Office-Dateiformat" msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice nicht installiert oder in Pfad %s nicht gefunden" -#: classes.py:254 -msgid "Resize" -msgstr "Größe ändern" - -#: classes.py:295 -msgid "Rotate" -msgstr "Drehen" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Zuschneiden" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "Drehen" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "Gaußsche Unschärfe" + +#: classes.py:325 +msgid "Mirror" +msgstr "Spiegeln" + +#: classes.py:336 +msgid "Resize" +msgstr "Größe ändern" + +#: classes.py:363 +msgid "Rotate" +msgstr "Drehen" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "Um 90° drehen" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "Um 180° drehen" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "Um 270° drehen" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "Unscharf maskieren" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "Neue Transformation erstellen" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Löschen" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Bearbeiten" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformationen" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Reihenfolge in der die Transformationen ausgeführt werden. Ohne Eintrag wird automatisch eine Reihenfolge zugewiesen." +msgstr "" +"Reihenfolge in der die Transformationen ausgeführt werden. Ohne Eintrag wird " +"automatisch eine Reihenfolge zugewiesen." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Name" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Argumemte für die Transformation als YAML dictionary eingeben, z.B: {\"degrees\": 180}" +msgstr "" +"Argumemte für die Transformation als YAML dictionary eingeben, z.B: " +"{\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -112,7 +145,6 @@ msgid "Edit transformations" msgstr "Transformationen bearbeiten" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Transformationen anzeigen" @@ -132,22 +164,25 @@ msgstr "Pfad zum Popple Programm pdftoppm" msgid "Enter a valid YAML value." msgstr "Einen gültigen YAML Wert eingeben" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" -msgstr "Transformation \"%(transformation)s\" für %(content_object)s wirklich löschen?" +msgstr "" +"Transformation \"%(transformation)s\" für %(content_object)s wirklich " +"löschen?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Transformation erstellen für %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "Transformation \"%(transformation)s\" für %(content_object)s bearbeiten" +msgstr "" +"Transformation \"%(transformation)s\" für %(content_object)s bearbeiten" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformationen von %s" @@ -161,9 +196,6 @@ msgstr "Transformationen von %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -189,14 +221,13 @@ msgstr "Transformationen von %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -509,9 +540,11 @@ msgstr "Transformationen von %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -627,7 +660,8 @@ msgstr "Transformationen von %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/en/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/en/LC_MESSAGES/django.mo index cbfcb93b5e..428677b3f4 100644 Binary files a/mayan/apps/converter/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/en/LC_MESSAGES/django.po b/mayan/apps/converter/locale/en/LC_MESSAGES/django.po index 6fb3e78918..a71299f9e3 100644 --- a/mayan/apps/converter/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,19 +18,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -50,49 +50,83 @@ msgstr "suported file formats" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "Resize" - -#: classes.py:295 -msgid "Rotate" -msgstr "Rotate" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Resize" + +#: classes.py:363 +msgid "Rotate" +msgstr "Rotate" + +#: classes.py:382 +#, fuzzy +#| msgid "Rotate by n degress." +msgid "Rotate 90 degrees" +msgstr "Rotate by n degress." + +#: classes.py:393 +#, fuzzy +#| msgid "Rotate by n degress." +msgid "Rotate 180 degrees" +msgstr "Rotate by n degress." + +#: classes.py:404 +#, fuzzy +#| msgid "Rotate by n degress." +msgid "Rotate 270 degrees" +msgstr "Rotate by n degress." + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -133,22 +167,22 @@ msgstr "Path to the libreoffice program." msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -164,9 +198,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #, fuzzy #~ msgid "Degrees" #~ msgstr "degrees" diff --git a/mayan/apps/converter/locale/es/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/es/LC_MESSAGES/django.mo index 4cfef69e9e..627dcde7bd 100644 Binary files a/mayan/apps/converter/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/es/LC_MESSAGES/django.po b/mayan/apps/converter/locale/es/LC_MESSAGES/django.po index be3dbda32f..b1c8d5121f 100644 --- a/mayan/apps/converter/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/es/LC_MESSAGES/django.po @@ -5,13 +5,13 @@ # Translators: # Translators: # Lory977 , 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-05-09 01:47+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:57+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" @@ -20,19 +20,19 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Convertidor" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Orden" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformación" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumentos" @@ -51,49 +51,80 @@ msgstr "No es un formato de archivo de la oficina." msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice no instalado o no encontrado en: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Cambiar el tamaño" - -#: classes.py:295 -msgid "Rotate" -msgstr "Girar" - -#: classes.py:313 -msgid "Zoom" -msgstr "Ampliar" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Recortar" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "Dar la vuelta" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "Desenfoque gaussiano" + +#: classes.py:325 +msgid "Mirror" +msgstr "Espejo" + +#: classes.py:336 +msgid "Resize" +msgstr "Cambiar el tamaño" + +#: classes.py:363 +msgid "Rotate" +msgstr "Girar" + +#: classes.py:382 +#| msgid "Rotate by n degress." +msgid "Rotate 90 degrees" +msgstr "Girar 90 grados" + +#: classes.py:393 +#| msgid "Rotate by n degress." +msgid "Rotate 180 degrees" +msgstr "Girar 180 grados" + +#: classes.py:404 +#| msgid "Rotate by n degress." +msgid "Rotate 270 degrees" +msgstr "Girar 270 grados" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "Unsharp masking" + +#: classes.py:430 +msgid "Zoom" +msgstr "Ampliar" + +#: links.py:35 msgid "Create new transformation" msgstr "Crear nueva transformación" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Borrar" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Editar" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformaciones" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "Orden de ejecución de las transformaciones. Si lo deja en blanco, un valor de orden sera asignado automáticamente. " -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nombre" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -132,22 +163,22 @@ msgstr "Ruta al programa pdftoppm de Poppler." msgid "Enter a valid YAML value." msgstr "Entre un valor YAML." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "¿Borrar transformación \"%(transformation)s\" para: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Crear transformación para :%s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "Editar transformación \"%(transformation)s\" para: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformaciones para: %s" @@ -161,9 +192,6 @@ msgstr "Transformaciones para: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" diff --git a/mayan/apps/converter/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/fa/LC_MESSAGES/django.mo index 89afae4d8f..668293dfc8 100644 Binary files a/mayan/apps/converter/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/fa/LC_MESSAGES/django.po b/mayan/apps/converter/locale/fa/LC_MESSAGES/django.po index 7e32dce8b0..108c8ece61 100644 --- a/mayan/apps/converter/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/fa/LC_MESSAGES/django.po @@ -1,36 +1,37 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "ترتیب" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "تبدیلات" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "آرگومانها" @@ -40,7 +41,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -49,49 +49,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "تغییر اندازه" - -#: classes.py:295 -msgid "Rotate" -msgstr "چرخاندن" - -#: classes.py:313 -msgid "Zoom" -msgstr "بزرگ/کوچک نمایی" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "تغییر اندازه" + +#: classes.py:363 +msgid "Rotate" +msgstr "چرخاندن" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "بزرگ/کوچک نمایی" + +#: links.py:35 msgid "Create new transformation" msgstr "ایجاد تبدیلات چدید" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "حذف" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "ویرایش" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "تبدیلات" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "نام" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -110,7 +138,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -130,22 +157,22 @@ msgstr "محل Popple نرم افزار pdftoppm." msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "تبدیلات برای : %s" @@ -159,9 +186,6 @@ msgstr "تبدیلات برای : %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -187,14 +211,13 @@ msgstr "تبدیلات برای : %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -507,9 +530,11 @@ msgstr "تبدیلات برای : %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -625,7 +650,8 @@ msgstr "تبدیلات برای : %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/fr/LC_MESSAGES/django.mo index c87b7bb1da..3cd0038b18 100644 Binary files a/mayan/apps/converter/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/fr/LC_MESSAGES/django.po b/mayan/apps/converter/locale/fr/LC_MESSAGES/django.po index 6d585245f6..2a8122e666 100644 --- a/mayan/apps/converter/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/fr/LC_MESSAGES/django.po @@ -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: # Pierre Lhoste , 2012 @@ -10,29 +10,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Convertisseur" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Ordre" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformation" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Arguments" @@ -42,62 +43,94 @@ msgid "Exception determining PDF page count; %s" msgstr "Exception déterminant le nombre de pages PDF : %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Format de fichier non reconnu." #: classes.py:120 #, python-format msgid "LibreOffice not installed or not found at path: %s" -msgstr "LibreOffice n'est pas installé ou n'a pas été trouvé à l'emplacement : %s" +msgstr "" +"LibreOffice n'est pas installé ou n'a pas été trouvé à l'emplacement : %s" -#: classes.py:254 -msgid "Resize" -msgstr "Redimensionner" - -#: classes.py:295 -msgid "Rotate" -msgstr "Rotation" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Découper" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Redimensionner" + +#: classes.py:363 +msgid "Rotate" +msgstr "Rotation" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "Créer une nouvelle transformation" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Suppression" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Modifier" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformations" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Ordre dans lequel les transformations seront exécutées. En l'absence de modification, un ordre est automatiquement assigné." +msgstr "" +"Ordre dans lequel les transformations seront exécutées. En l'absence de " +"modification, un ordre est automatiquement assigné." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nom" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Saisir les arguments pour la transformation sous la forme d'un dictionnaire YAML. Par exemple : {\"degrees\": 180}" +msgstr "" +"Saisir les arguments pour la transformation sous la forme d'un dictionnaire " +"YAML. Par exemple : {\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -112,7 +145,6 @@ msgid "Edit transformations" msgstr "Modifier des transformations" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Afficher les transformations existantes" @@ -132,22 +164,25 @@ msgstr "Chemin pour le programme Popple pdftoppm" msgid "Enter a valid YAML value." msgstr "Saisissez une valeur YAML valide." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" -msgstr "Êtes vous certain de vouloir supprimer la transformation \"%(transformation)s\" pour : %(content_object)s ?" +msgstr "" +"Êtes vous certain de vouloir supprimer la transformation \"%(transformation)s" +"\" pour : %(content_object)s ?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Créer une nouvelle transformation pour : %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "Modifier la transformation \"%(transformation)s\" pour : %(content_object)s" +msgstr "" +"Modifier la transformation \"%(transformation)s\" pour : %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformations pour : %s" @@ -161,9 +196,6 @@ msgstr "Transformations pour : %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -189,14 +221,13 @@ msgstr "Transformations pour : %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -509,9 +540,11 @@ msgstr "Transformations pour : %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -627,7 +660,8 @@ msgstr "Transformations pour : %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/hu/LC_MESSAGES/django.mo index 3d32340421..17b689ffad 100644 Binary files a/mayan/apps/converter/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/hu/LC_MESSAGES/django.po b/mayan/apps/converter/locale/hu/LC_MESSAGES/django.po index 6fd4505ed4..6f647b718b 100644 --- a/mayan/apps/converter/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/hu/LC_MESSAGES/django.po @@ -1,36 +1,37 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2015-08-20 19:29+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -40,7 +41,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -49,49 +49,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "" - -#: classes.py:295 -msgid "Rotate" -msgstr "" - -#: classes.py:313 -msgid "Zoom" -msgstr "" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "" + +#: classes.py:363 +msgid "Rotate" +msgstr "" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" msgstr "" #: links.py:35 -msgid "Delete" +msgid "Create new transformation" msgstr "" #: links.py:39 +msgid "Delete" +msgstr "" + +#: links.py:43 msgid "Edit" msgstr "" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -110,7 +138,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -130,22 +157,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -159,9 +186,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -187,14 +211,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -507,9 +530,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -625,7 +650,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/id/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/id/LC_MESSAGES/django.mo index 06d2ace2df..d4299869ae 100644 Binary files a/mayan/apps/converter/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/id/LC_MESSAGES/django.po b/mayan/apps/converter/locale/id/LC_MESSAGES/django.po index 1e774225c9..ba8e678612 100644 --- a/mayan/apps/converter/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/id/LC_MESSAGES/django.po @@ -1,36 +1,37 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2015-08-20 19:29+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -40,7 +41,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -49,49 +49,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "" - -#: classes.py:295 -msgid "Rotate" -msgstr "" - -#: classes.py:313 -msgid "Zoom" -msgstr "" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "" + +#: classes.py:363 +msgid "Rotate" +msgstr "" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" msgstr "" #: links.py:35 -msgid "Delete" +msgid "Create new transformation" msgstr "" #: links.py:39 +msgid "Delete" +msgstr "" + +#: links.py:43 msgid "Edit" msgstr "" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -110,7 +138,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -130,22 +157,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -159,9 +186,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -187,14 +211,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -507,9 +530,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -625,7 +650,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/it/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/it/LC_MESSAGES/django.mo index 0880c9dbf9..e082ca177a 100644 Binary files a/mayan/apps/converter/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/it/LC_MESSAGES/django.po b/mayan/apps/converter/locale/it/LC_MESSAGES/django.po index 4f6301d247..a6e7272bf9 100644 --- a/mayan/apps/converter/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -10,29 +10,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Convertitore" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Ordine" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Trasformazione" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argomenti" @@ -42,7 +43,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Eccezione che determina il conteggio pagine PDF: %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Non è un formato di file office" @@ -51,53 +51,85 @@ msgstr "Non è un formato di file office" msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice non installato o non trovato nel percorso: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Ridimensiona" - -#: classes.py:295 -msgid "Rotate" -msgstr "Ruotare" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Taglia" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Ridimensiona" + +#: classes.py:363 +msgid "Rotate" +msgstr "Ruotare" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "Crea nuova trasformazione" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Cancella" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Modifica" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Trasformazioni" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Ordine delle trasformazioni da eseguire. Se resta invariato verrà assegnato l'ordine automatico." +msgstr "" +"Ordine delle trasformazioni da eseguire. Se resta invariato verrà assegnato " +"l'ordine automatico." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nome " -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Scrivi gli argomenti per la trasformazione come dizionario YAML. es: {\"degrees\": 180}" +msgstr "" +"Scrivi gli argomenti per la trasformazione come dizionario YAML. es: " +"{\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -112,7 +144,6 @@ msgid "Edit transformations" msgstr "Modifica le trasformazioni" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Visualizza le trasformazioni esistenti" @@ -132,22 +163,24 @@ msgstr "Percorso per il programma Popple" msgid "Enter a valid YAML value." msgstr "Inserisci un valore YAML valido." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" -msgstr "Cancellare le trasformazioni \"%(transformation)s\" per: %(content_object)s?" +msgstr "" +"Cancellare le trasformazioni \"%(transformation)s\" per: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Crea una nuove trasformazioni per: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "Modifica le trasformazioni \"%(transformation)s\" per: %(content_object)s" +msgstr "" +"Modifica le trasformazioni \"%(transformation)s\" per: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Trasformazione per: %s" @@ -161,9 +194,6 @@ msgstr "Trasformazione per: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -189,14 +219,13 @@ msgstr "Trasformazione per: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -509,9 +538,11 @@ msgstr "Trasformazione per: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -627,7 +658,8 @@ msgstr "Trasformazione per: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.mo index 1f65b33f34..e27e5c0b1e 100644 Binary files a/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.po index 6813ca5a78..42c3bc5e6f 100644 --- a/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/nl_NL/LC_MESSAGES/django.po @@ -1,108 +1,141 @@ # 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 , 2016 +# Johan Braeken, 2017 # Lucas Weel , 2013 # woei , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-09 16:40+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Converter" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Volgorde" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformatie" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumenten" #: backends/python.py:86 backends/python.py:100 #, python-format msgid "Exception determining PDF page count; %s" -msgstr "" +msgstr "Exceptie bij het bepalen van aan aantal bladzijden van de PDF: %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." -msgstr "" +msgstr "Geen office bestandsformaat." #: classes.py:120 #, python-format msgid "LibreOffice not installed or not found at path: %s" -msgstr "" +msgstr "LibreOffice niet geënstalleerd of niet gevonden in pad: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Afmeting wijzigen" - -#: classes.py:295 -msgid "Rotate" -msgstr "Roteren" - -#: classes.py:313 -msgid "Zoom" -msgstr "Inzoomen" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Bijsnijden" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" msgstr "" +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Afmeting wijzigen" + +#: classes.py:363 +msgid "Rotate" +msgstr "Roteren" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Inzoomen" + #: links.py:35 +msgid "Create new transformation" +msgstr "Maak een nieuwe transformatie aan" + +#: links.py:39 msgid "Delete" msgstr "Verwijder" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "bewerken" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformaties" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" +"Volgorde waarin de transformaties worden uitgevoerd. Indien ongewijzigd zal " +"automatisch een volgorde toegekend worden." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Naam" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" msgstr "" +"Voer de argumenten voor de transformatie in als een YAML statement, " +"bijvoorbeeld: {\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" -msgstr "" +msgstr "Maak nieuwe transformaties aan" #: permissions.py:13 msgid "Delete transformations" @@ -110,16 +143,15 @@ msgstr "Transformaties verwijderen" #: permissions.py:16 msgid "Edit transformations" -msgstr "" +msgstr "Wijzig transformaties" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Bekijk bestaande transformaties" #: settings.py:10 msgid "Graphics conversion backend to use." -msgstr "" +msgstr "Te gebruiken backend voor grafische conversie." #: settings.py:16 msgid "Path to the libreoffice program." @@ -133,22 +165,23 @@ msgstr "Pad naar het Popple-programma pdftoppm." msgid "Enter a valid YAML value." msgstr "Voer een geldige YAML-waarde in." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" +"Transformatie verwijderen \"%(transformation)s\" voor: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" -msgstr "" +msgstr "Maak een nieuwe transformatie aan voor: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "" +msgstr "Wijzig transformatie \"%(transformation)s\" voor: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformaties voor: %s" @@ -162,9 +195,6 @@ msgstr "Transformaties voor: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -190,14 +220,13 @@ msgstr "Transformaties voor: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -510,9 +539,11 @@ msgstr "Transformaties voor: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -628,7 +659,8 @@ msgstr "Transformaties voor: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/pl/LC_MESSAGES/django.mo index addab585d1..787a365aaa 100644 Binary files a/mayan/apps/converter/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/pl/LC_MESSAGES/django.po b/mayan/apps/converter/locale/pl/LC_MESSAGES/django.po index 0395e60203..3f4e255046 100644 --- a/mayan/apps/converter/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/pl/LC_MESSAGES/django.po @@ -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: # mic , 2012,2015 @@ -10,29 +10,32 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Konwerter" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Kolejność" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformacja" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumenty" @@ -42,7 +45,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Wyjątek określający liczbę stron PDF: %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Format niezgodny z formatem plików LibreOffice." @@ -51,53 +53,85 @@ msgstr "Format niezgodny z formatem plików LibreOffice." msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice nie został zainstalowany lub nie znaleziono ścieżki: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Zmiana rozmiaru" - -#: classes.py:295 -msgid "Rotate" -msgstr "Obrócenie" - -#: classes.py:313 -msgid "Zoom" -msgstr "Powiększenie" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Przycięcie" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Zmiana rozmiaru" + +#: classes.py:363 +msgid "Rotate" +msgstr "Obrócenie" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Powiększenie" + +#: links.py:35 msgid "Create new transformation" msgstr "Utwórz nową transformację" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Usuń" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Edytuj" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformacje" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Kolejność wykonywania transformacji. Jeśli nie zostanie zmieniona, przyjmie wartość automatyczną." +msgstr "" +"Kolejność wykonywania transformacji. Jeśli nie zostanie zmieniona, przyjmie " +"wartość automatyczną." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nazwa" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Wprowadź argumenty dla transformacji w postaci słownika YAML np.: {\"degrees\": 180}" +msgstr "" +"Wprowadź argumenty dla transformacji w postaci słownika YAML np.: {\"degrees" +"\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -112,7 +146,6 @@ msgid "Edit transformations" msgstr "Edytuj transformacje" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Przeglądaj istniejące transformacje" @@ -132,22 +165,22 @@ msgstr "Ścieżka do programu pdftoppm z pakietu Poppler." msgid "Enter a valid YAML value." msgstr "Wprowadź poprawną wartość YAML." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "Usunąć transformację \"%(transformation)s\" dla: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Utwórz nową transformację dla: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "Edycja transformacji \"%(transformation)s\" dla: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformacje dla: %s" @@ -161,9 +194,6 @@ msgstr "Transformacje dla: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -189,14 +219,13 @@ msgstr "Transformacje dla: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -509,9 +538,11 @@ msgstr "Transformacje dla: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -627,7 +658,8 @@ msgstr "Transformacje dla: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/pt/LC_MESSAGES/django.mo index 78311170ab..1e2f5bd8ca 100644 Binary files a/mayan/apps/converter/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/pt/LC_MESSAGES/django.po b/mayan/apps/converter/locale/pt/LC_MESSAGES/django.po index 6d9478b3c6..cb430bd8c2 100644 --- a/mayan/apps/converter/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/pt/LC_MESSAGES/django.po @@ -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: # Emerson Soares , 2011 @@ -11,29 +11,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -43,7 +44,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -52,49 +52,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "Redimensionar" - -#: classes.py:295 -msgid "Rotate" -msgstr "Rodar" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Redimensionar" + +#: classes.py:363 +msgid "Rotate" +msgstr "Rodar" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Eliminar" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Editar" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nome" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -113,7 +141,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -133,22 +160,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -162,9 +189,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -190,14 +214,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -510,9 +533,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -628,7 +653,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.mo index f53f134c0e..9773aad27f 100644 Binary files a/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.po index 9b1a8a9cae..99f80885bd 100644 --- a/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -11,29 +11,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-17 22:48+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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" "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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Conversor" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Ordem" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Transformação" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Argumentos" @@ -43,7 +44,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Exceção ao determinar o número de páginas do PDF; %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Não é um formato de arquivo de escritório." @@ -52,53 +52,85 @@ msgstr "Não é um formato de arquivo de escritório." msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice não instalado ou não encontrado no caminho: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Redimensionar" - -#: classes.py:295 -msgid "Rotate" -msgstr "Rotacionar" - -#: classes.py:313 -msgid "Zoom" -msgstr "Ampliar" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Recortar" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Redimensionar" + +#: classes.py:363 +msgid "Rotate" +msgstr "Rotacionar" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Ampliar" + +#: links.py:35 msgid "Create new transformation" msgstr "Criar nova transformação" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Excluir" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Editar" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Transformações" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Ordem de execução das transformações. Se deixar em branco, um valor automático vai ser atribuído." +msgstr "" +"Ordem de execução das transformações. Se deixar em branco, um valor " +"automático vai ser atribuído." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nome" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Entre com os argumentos da transformação como um dicionário YAML. ie: {\"degrees\": 180}" +msgstr "" +"Entre com os argumentos da transformação como um dicionário YAML. ie: " +"{\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -113,7 +145,6 @@ msgid "Edit transformations" msgstr "Editar transformações" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Visualizar transformações existentes" @@ -133,22 +164,22 @@ msgstr "Caminho para o programa pdftoppm de Popple." msgid "Enter a valid YAML value." msgstr "Entre com um valor YAML válido." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "Excluir transformaçãa \"%(transformation)s\" para: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Criar nova transformação para: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "Editar transformação \"%(transformation)s\" para: %(content_object)s" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Transformações para: %s" @@ -162,9 +193,6 @@ msgstr "Transformações para: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -190,14 +218,13 @@ msgstr "Transformações para: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -510,9 +537,11 @@ msgstr "Transformações para: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -628,7 +657,8 @@ msgstr "Transformações para: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.mo index 213bccd870..5f46cbcf0a 100644 Binary files a/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.po index 165cc3859d..4dedf7b9f6 100644 --- a/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,29 +9,31 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-04-17 09:43+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +43,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +51,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "Redimensionarea" - -#: classes.py:295 -msgid "Rotate" -msgstr "Roti" - -#: classes.py:313 -msgid "Zoom" -msgstr "Zoom" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Redimensionarea" + +#: classes.py:363 +msgid "Rotate" +msgstr "Roti" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Zoom" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Șterge" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Editează" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Nume" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +140,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +159,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +188,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +213,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +532,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +652,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/ru/LC_MESSAGES/django.mo index 00b91fb808..9c4ba43705 100644 Binary files a/mayan/apps/converter/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/ru/LC_MESSAGES/django.po b/mayan/apps/converter/locale/ru/LC_MESSAGES/django.po index 06df947843..1d60d76384 100644 --- a/mayan/apps/converter/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,29 +9,32 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-07-19 20:00+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "Конвертер" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "Порядок" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "Преобразование" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "Аргументы" @@ -41,7 +44,6 @@ msgid "Exception determining PDF page count; %s" msgstr "Ошибка при определении числа страниц PDF; %s" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "Не является файлом офисного формата." @@ -50,53 +52,85 @@ msgstr "Не является файлом офисного формата." msgid "LibreOffice not installed or not found at path: %s" msgstr "LibreOffice не установлен, или не найден по пути: %s" -#: classes.py:254 -msgid "Resize" -msgstr "Изменение размера" - -#: classes.py:295 -msgid "Rotate" -msgstr "Вращать" - -#: classes.py:313 -msgid "Zoom" -msgstr "Увеличить" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "Кадрировать" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "Изменение размера" + +#: classes.py:363 +msgid "Rotate" +msgstr "Вращать" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "Увеличить" + +#: links.py:35 msgid "Create new transformation" msgstr "Создать новое преобразование" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "Удалить" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "Редактировать" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "Преобразования" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." -msgstr "Порядок выполнения преобразований. Если оставить неизменным, будет установлен флаг автоматического выставления порядка." +msgstr "" +"Порядок выполнения преобразований. Если оставить неизменным, будет " +"установлен флаг автоматического выставления порядка." -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Имя" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" -msgstr "Введите аргументы для преобразования в формате YAML-словаря, например: {\"degrees\": 180}" +msgstr "" +"Введите аргументы для преобразования в формате YAML-словаря, например: " +"{\"degrees\": 180}" #: permissions.py:10 msgid "Create new transformations" @@ -111,7 +145,6 @@ msgid "Edit transformations" msgstr "Изменить преобразования" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "Просмотр существующих преобразований" @@ -131,22 +164,24 @@ msgstr "Путь до программы Popple pdftoppm." msgid "Enter a valid YAML value." msgstr "Введите допустимое YAML-значение." -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "Удалить преобразование \"%(transformation)s\" для: %(content_object)s?" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "Создать новое преобразование для: %s" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" -msgstr "Изменить преобразование \"%(transformation)s\" for: %(content_object)sjavascript:;" +msgstr "" +"Изменить преобразование \"%(transformation)s\" for: " +"%(content_object)sjavascript:;" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "Преобразования для: %s" @@ -160,9 +195,6 @@ msgstr "Преобразования для: %s" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +220,13 @@ msgstr "Преобразования для: %s" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +539,11 @@ msgstr "Преобразования для: %s" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +659,8 @@ msgstr "Преобразования для: %s" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.mo index f3668dcd27..54a8f80286 100644 Binary files a/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.po index f8701f5130..de2fbee508 100644 --- a/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/sl_SI/LC_MESSAGES/django.po @@ -1,36 +1,38 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -40,7 +42,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -49,49 +50,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "" - -#: classes.py:295 -msgid "Rotate" -msgstr "" - -#: classes.py:313 -msgid "Zoom" -msgstr "" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "" + +#: classes.py:363 +msgid "Rotate" +msgstr "" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" msgstr "" #: links.py:35 -msgid "Delete" +msgid "Create new transformation" msgstr "" #: links.py:39 +msgid "Delete" +msgstr "" + +#: links.py:43 msgid "Edit" msgstr "" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Ime" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -110,7 +139,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -130,22 +158,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -159,9 +187,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -187,14 +212,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -507,9 +531,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -625,7 +651,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.mo index 5e6d060832..925e6f3bee 100644 Binary files a/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.po index 261c26b825..f97a203fc4 100644 --- a/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/vi_VN/LC_MESSAGES/django.po @@ -1,36 +1,37 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -40,7 +41,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -49,49 +49,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "" - -#: classes.py:295 -msgid "Rotate" -msgstr "" - -#: classes.py:313 -msgid "Zoom" -msgstr "" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 -msgid "Create new transformation" +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "" + +#: classes.py:363 +msgid "Rotate" +msgstr "" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" msgstr "" #: links.py:35 -msgid "Delete" +msgid "Create new transformation" msgstr "" #: links.py:39 +msgid "Delete" +msgstr "" + +#: links.py:43 msgid "Edit" msgstr "Sửa" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "Tên" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -110,7 +138,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -130,22 +157,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -159,9 +186,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -187,14 +211,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -507,9 +530,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -625,7 +650,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.mo index 74768e8579..4119fbb561 100644 Binary files a/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.po index 9288501a04..4766272838 100644 --- a/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/converter/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,29 +9,30 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:06+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:18 permissions.py:7 settings.py:7 +#: apps.py:19 permissions.py:7 settings.py:7 msgid "Converter" msgstr "" -#: apps.py:38 models.py:34 +#: apps.py:26 models.py:40 msgid "Order" msgstr "" -#: apps.py:40 models.py:64 +#: apps.py:28 models.py:70 msgid "Transformation" msgstr "" -#: apps.py:44 models.py:44 +#: apps.py:32 models.py:50 msgid "Arguments" msgstr "" @@ -41,7 +42,6 @@ msgid "Exception determining PDF page count; %s" msgstr "" #: classes.py:97 -#| msgid "suported file formats" msgid "Not an office file format." msgstr "" @@ -50,49 +50,77 @@ msgstr "" msgid "LibreOffice not installed or not found at path: %s" msgstr "" -#: classes.py:254 -msgid "Resize" -msgstr "调整大小" - -#: classes.py:295 -msgid "Rotate" -msgstr "旋转" - -#: classes.py:313 -msgid "Zoom" -msgstr "缩放" - -#: classes.py:333 +#: classes.py:290 msgid "Crop" msgstr "" -#: links.py:31 +#: classes.py:303 +msgid "Flip" +msgstr "" + +#: classes.py:314 +msgid "Gaussian blur" +msgstr "" + +#: classes.py:325 +msgid "Mirror" +msgstr "" + +#: classes.py:336 +msgid "Resize" +msgstr "调整大小" + +#: classes.py:363 +msgid "Rotate" +msgstr "旋转" + +#: classes.py:382 +msgid "Rotate 90 degrees" +msgstr "" + +#: classes.py:393 +msgid "Rotate 180 degrees" +msgstr "" + +#: classes.py:404 +msgid "Rotate 270 degrees" +msgstr "" + +#: classes.py:414 +msgid "Unsharp masking" +msgstr "" + +#: classes.py:430 +msgid "Zoom" +msgstr "缩放" + +#: links.py:35 msgid "Create new transformation" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Delete" msgstr "" -#: links.py:39 +#: links.py:43 msgid "Edit" msgstr "" -#: links.py:43 models.py:65 +#: links.py:47 models.py:71 msgid "Transformations" msgstr "" -#: models.py:32 +#: models.py:38 msgid "" "Order in which the transformations will be executed. If left unchanged, an " "automatic order value will be assigned." msgstr "" -#: models.py:38 +#: models.py:44 msgid "Name" msgstr "名称" -#: models.py:42 +#: models.py:48 msgid "" "Enter the arguments for the transformation as a YAML dictionary. ie: " "{\"degrees\": 180}" @@ -111,7 +139,6 @@ msgid "Edit transformations" msgstr "" #: permissions.py:19 -#| msgid "Raw application information" msgid "View existing transformations" msgstr "" @@ -131,22 +158,22 @@ msgstr "" msgid "Enter a valid YAML value." msgstr "" -#: views.py:71 +#: views.py:64 #, python-format msgid "Delete transformation \"%(transformation)s\" for: %(content_object)s?" msgstr "" -#: views.py:139 +#: views.py:127 #, python-format msgid "Create new transformation for: %s" msgstr "" -#: views.py:192 +#: views.py:175 #, python-format msgid "Edit transformation \"%(transformation)s\" for: %(content_object)s" msgstr "" -#: views.py:238 +#: views.py:216 #, python-format msgid "Transformations for: %s" msgstr "" @@ -160,9 +187,6 @@ msgstr "" #~ msgid "Height" #~ msgstr "height" -#~ msgid "Rotate by n degress." -#~ msgstr "Rotate by n degress." - #~ msgid "Degrees" #~ msgstr "degrees" @@ -188,14 +212,13 @@ msgstr "" #~ msgstr "File path to graphicsmagick's program." #~ msgid "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick.ImageMagick, " -#~ "converter.backends.graphicsmagick.GraphicsMagick and " -#~ "converter.backends.python.Python" +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick.ImageMagick, converter.backends.graphicsmagick.GraphicsMagick " +#~ "and converter.backends.python.Python" #~ msgstr "" -#~ "Graphics conversion backend to use. Options are: " -#~ "converter.backends.imagemagick, converter.backends.graphicsmagick and " -#~ "converter.backends.python." +#~ "Graphics conversion backend to use. Options are: converter.backends." +#~ "imagemagick, converter.backends.graphicsmagick and converter.backends." +#~ "python." #~ msgid "Help" #~ msgstr "Help" @@ -508,9 +531,11 @@ msgstr "" #~ msgstr "Magick Image File Format" #~ msgid "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgstr "" -#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ "Multiple-image Network Graphics (libpng 1.2.42,1.2.44, zlib " +#~ "1.2.3.3,1.2.3.4)" #~ msgid "Raw Bi-level bitmap in least-significant-byte first order" #~ msgstr "Raw Bi-level bitmap in least-significant-byte first order" @@ -626,7 +651,8 @@ msgstr "" #~ msgid "Joint Photographic Experts Group JFIF format (62)" #~ msgstr "Joint Photographic Experts Group JFIF format (62)" -#~ msgid "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" +#~ msgid "" +#~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" #~ msgstr "" #~ "Portable Network Graphics (libpng 1.2.42,1.2.44, zlib 1.2.3.3,1.2.3.4)" diff --git a/mayan/apps/converter/models.py b/mayan/apps/converter/models.py index 817ee605ee..32faf5ac45 100644 --- a/mayan/apps/converter/models.py +++ b/mayan/apps/converter/models.py @@ -21,8 +21,14 @@ class Transformation(models.Model): """ Model that stores the transformation and transformation arguments for a given object + Fields: + * order - Order of a Transformation - In case there are multiple + transformations for an object, this field list the order at which + they will be execute. + * arguments - Arguments of a Transformation - An optional field to hold a + transformation argument. Example: if a page is rotated with the Rotation + transformation, this field will show by how many degrees it was rotated. """ - content_type = models.ForeignKey(ContentType) object_id = models.PositiveIntegerField() content_object = GenericForeignKey('content_type', 'object_id') diff --git a/mayan/apps/django_gpg/api_views.py b/mayan/apps/django_gpg/api_views.py new file mode 100644 index 0000000000..bb8762f0a0 --- /dev/null +++ b/mayan/apps/django_gpg/api_views.py @@ -0,0 +1,59 @@ +from __future__ import absolute_import, unicode_literals + +from rest_framework import generics + +from rest_api.filters import MayanObjectPermissionsFilter +from rest_api.permissions import MayanPermission + +from .models import Key +from .permissions import ( + permission_key_delete, permission_key_upload, permission_key_view +) +from .serializers import KeySerializer + + +class APIKeyListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'GET': (permission_key_view,), + 'POST': (permission_key_upload,) + } + permission_classes = (MayanPermission,) + queryset = Key.objects.all() + serializer_class = KeySerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the keys. + """ + return super(APIKeyListView, self).get(*args, **kwargs) + + def post(self, *args, **kwargs): + """ + Upload a new key. + """ + return super(APIKeyListView, self).post(*args, **kwargs) + + +class APIKeyView(generics.RetrieveDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'DELETE': (permission_key_delete,), + 'GET': (permission_key_view,), + } + queryset = Key.objects.all() + serializer_class = KeySerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected key. + """ + + return super(APIKeyView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected key. + """ + + return super(APIKeyView, self).get(*args, **kwargs) diff --git a/mayan/apps/django_gpg/apps.py b/mayan/apps/django_gpg/apps.py index b9e5883a73..14de67f9ad 100644 --- a/mayan/apps/django_gpg/apps.py +++ b/mayan/apps/django_gpg/apps.py @@ -9,6 +9,7 @@ from common import ( MayanAppConfig, menu_facet, menu_object, menu_setup, menu_sidebar ) from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .classes import KeyStub from .links import ( @@ -25,13 +26,14 @@ from .permissions import ( class DjangoGPGApp(MayanAppConfig): app_url = 'gpg' + has_tests = True name = 'django_gpg' - test = True verbose_name = _('Django GPG') def ready(self): super(DjangoGPGApp, self).ready() + APIEndPoint(app=self, version_string='1') Key = self.get_model('Key') ModelPermission.register( diff --git a/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.mo index b7c47be34f..273cade153 100644 Binary files a/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.po index 98a7589b80..b2eab01cb9 100644 --- a/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,45 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Key ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +57,11 @@ msgstr "" msgid "None" msgstr "لا شيء" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +98,6 @@ msgid "Key management" msgstr "Key management" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +153,27 @@ msgstr "Document is signed, and signature is good." msgid "Document is signed with a valid signature." msgstr "Document is signed with a valid signature." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +194,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +202,6 @@ msgid "View keys" msgstr "View keys" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -216,13 +214,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +229,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +238,6 @@ msgstr "Import key" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +281,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.mo index 2e72b8837e..b0a36a1b61 100644 Binary files a/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.po index 6f19291860..c8e63853d1 100644 --- a/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/bg/LC_MESSAGES/django.po @@ -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: # Pavlin Koldamov , 2012 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Ключ ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +56,11 @@ msgstr "" msgid "None" msgstr "Няма" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +97,6 @@ msgid "Key management" msgstr "Управление на ключове" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +152,27 @@ msgstr "Документът е подписан и подписа е валид msgid "Document is signed with a valid signature." msgstr "Документът е подписан с валиден подпис." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +201,6 @@ msgid "View keys" msgstr "Виж ключове" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Подписи" @@ -216,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +237,6 @@ msgstr "Внасяне на ключ" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.mo index b683257435..96164b698f 100644 Binary files a/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.po index d6285aa2ae..1b9eaf27fe 100644 --- a/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,45 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID ključa" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +57,11 @@ msgstr "" msgid "None" msgstr "Nijedno" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +98,6 @@ msgid "Key management" msgstr "Upravljanje ključevima" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +153,27 @@ msgstr "Dokument je potpisan, a potpis je dobar." msgid "Document is signed with a valid signature." msgstr "Dokument je potpisan sa važećim potpisom." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +194,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,26 +202,25 @@ msgid "View keys" msgstr "Pogledaj ključeve" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Home direktorij se koristi za pohranu ključeva, kao i konfiguracijskih datoteka." +msgstr "" +"Home direktorij se koristi za pohranu ključeva, kao i konfiguracijskih " +"datoteka." #: settings.py:21 msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +231,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +240,6 @@ msgstr "Importuj ključ" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +283,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.mo index 85609690ba..8afb7522ed 100644 Binary files a/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.po index 0379b6f277..74fe153af2 100644 --- a/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/da/LC_MESSAGES/django.po @@ -1,52 +1,53 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "None" msgstr "Ingen" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -95,7 +96,6 @@ msgid "Key management" msgstr "" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -151,28 +151,27 @@ msgstr "" msgid "Document is signed with a valid signature." msgstr "" -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -193,7 +192,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -202,7 +200,6 @@ msgid "View keys" msgstr "" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -215,13 +212,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -232,7 +227,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -242,7 +236,6 @@ msgstr "" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -286,12 +279,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.mo index 30a48e4134..5f1ba23588 100644 Binary files a/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po index fbff8df6cd..3f26c361b1 100644 --- a/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Mathias Behrle , 2014 @@ -12,45 +12,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-20 21:54+0000\n" "Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Schlüssel-ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "Benutzer-ID" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Typ" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Erstellungsdatum" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Ablaufdatum" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Ohne Ablaufdatum" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Länge" @@ -58,11 +59,11 @@ msgstr "Länge" msgid "None" msgstr "Keine" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Fingerabdruck" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Verfahren" @@ -72,7 +73,9 @@ msgstr "Begriff" #: forms.py:48 msgid "Name, e-mail, key ID or key fingerprint to look for." -msgstr "Name, E-Mail, Schlüssel-ID oder Fingerabdruck des Schlüssels, der gesucht wird" +msgstr "" +"Name, E-Mail, Schlüssel-ID oder Fingerabdruck des Schlüssels, der gesucht " +"wird" #: links.py:13 msgid "Delete" @@ -99,7 +102,6 @@ msgid "Key management" msgstr "Schlüssel-Management" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Schlüssel hochladen" @@ -145,7 +147,9 @@ msgstr "Signaturfehler" #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Das Dokument ist signiert, aber kein öffentlicher Schlüssel zur Überprüfung verfügbar." +msgstr "" +"Das Dokument ist signiert, aber kein öffentlicher Schlüssel zur Überprüfung " +"verfügbar." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -155,28 +159,27 @@ msgstr "Dokument ist signiert mit gültiger Unterschrift." msgid "Document is signed with a valid signature." msgstr "Das Dokument ist mit einer gültigen Signatur signiert." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "ASCII Version des Schlüssels." -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Schlüssel-Daten" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Schlüssel" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Schlüssel" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Ungültige Schlüssel-Daten" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Schlüssel existiert bereits." @@ -197,7 +200,6 @@ msgid "Use keys to sign content" msgstr "Schlüssel benutzen um Inhalt zu signieren" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Schlüssel hochladen" @@ -206,7 +208,6 @@ msgid "View keys" msgstr "Schlüssel anzeigen" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Unterschriften" @@ -219,13 +220,11 @@ msgid "Path to the GPG binary." msgstr "Pfad zum Programm GPG" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Server, der nach unbekannten Schlüsseln durchsucht wird." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Schlüssel löschen: %s" @@ -236,7 +235,6 @@ msgstr "Details für Schlüssel %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Schlüssel-ID %s importieren?" @@ -246,7 +244,6 @@ msgstr "Schlüssel importieren" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Schlüssel-ID %(key_id)s konnte nicht importiert werden: %(error)s" @@ -290,12 +287,12 @@ msgstr "Neuen Schlüssel hochladen" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.mo index a5966431a4..5ec5b3d032 100644 Binary files a/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po index f78132148e..78dcfd7bde 100644 --- a/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,38 +18,38 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Key ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 #, fuzzy msgid "Creation date" msgstr "creation date" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 #, fuzzy msgid "Expiration date" msgstr "expiration date" -#: apps.py:83 +#: apps.py:57 #, fuzzy msgid "No expiration" msgstr "expiration date" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 #, fuzzy msgid "Length" msgstr "length" @@ -58,11 +58,11 @@ msgstr "length" msgid "None" msgstr "" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -160,29 +160,29 @@ msgstr "Document is signed, and signature is good." msgid "Document is signed with a valid signature." msgstr "Document is signed with a valid signature." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 +#: models.py:61 #, fuzzy #| msgid "Key ID" msgid "Key" msgstr "Key ID" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" diff --git a/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.mo index e67ba4fdd0..cf69afa5bf 100644 Binary files a/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.po index 5affd12616..d7a82c1a86 100644 --- a/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/es/LC_MESSAGES/django.po @@ -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: # jmcainzos , 2014 @@ -11,45 +11,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-09 01:46+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Identificador de clave" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "ID de usuario" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Tipo" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Fecha de creación" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Fecha de expiración" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "No expira" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Largo" @@ -57,11 +58,11 @@ msgstr "Largo" msgid "None" msgstr "Ninguno" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Huella" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algoritmo" @@ -71,7 +72,9 @@ msgstr "Término" #: forms.py:48 msgid "Name, e-mail, key ID or key fingerprint to look for." -msgstr "Nombre, dirección de correo electrónico, identificador de clave o huella digital de clave a buscar." +msgstr "" +"Nombre, dirección de correo electrónico, identificador de clave o huella " +"digital de clave a buscar." #: links.py:13 msgid "Delete" @@ -98,7 +101,6 @@ msgid "Key management" msgstr "Gestión de claves" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Subir llave" @@ -144,7 +146,9 @@ msgstr "Error de firma." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "El documento ha sido firmado pero no hay clave pública disponible para verificación." +msgstr "" +"El documento ha sido firmado pero no hay clave pública disponible para " +"verificación." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -154,28 +158,27 @@ msgstr "El documento ha sido firmado y la firma está en buen estado." msgid "Document is signed with a valid signature." msgstr "El documento ha sido firmado y la firma ha sido validada." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "Versión ASCII de la llave" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Datos de llave" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Llave" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Llaves" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Datos de llave invalidos" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Llave ya existe." @@ -196,7 +199,6 @@ msgid "Use keys to sign content" msgstr "Usar llaves para firmar contenido" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Subir llaves" @@ -205,26 +207,25 @@ msgid "View keys" msgstr "Ver claves" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Firma" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Directorio de inicio utilizado para almacenar las claves, así como los archivos de configuración." +msgstr "" +"Directorio de inicio utilizado para almacenar las claves, así como los " +"archivos de configuración." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Ruta al binario GPG." #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Servidor usado para buscar llaves." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Borrar llave: %s" @@ -235,7 +236,6 @@ msgstr "Detalles para llave: %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "¿Importar llave: %s?" @@ -245,7 +245,6 @@ msgstr "Importar clave" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "No se pudo importar la llave: %(key_id)s; %(error)s " @@ -289,12 +288,12 @@ msgstr "Subir una nueva llave" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.mo index 7fc8f54dcb..e0ab462a35 100644 Binary files a/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.po index 42bb14f760..62f0d1b806 100644 --- a/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/fa/LC_MESSAGES/django.po @@ -1,52 +1,53 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "شناسه کلید" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "نوع" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "تاریخ ایجاد" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "تاریخ انقضا" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "طول" @@ -54,11 +55,11 @@ msgstr "طول" msgid "None" msgstr "هیچکدام." -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -95,7 +96,6 @@ msgid "Key management" msgstr "مدیریت کلید" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -151,28 +151,27 @@ msgstr "سند امضا شده است و امضا مورد تایید میباش msgid "Document is signed with a valid signature." msgstr "سند با امضای مورد تایید امضا شده است." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -193,7 +192,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -202,7 +200,6 @@ msgid "View keys" msgstr "دیدن کلیدها" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "امضاها" @@ -215,13 +212,11 @@ msgid "Path to the GPG binary." msgstr "محل کتایخانه باینری GPG" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -232,7 +227,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -242,7 +236,6 @@ msgstr "وارد کردن کلید" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -286,12 +279,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.mo index f38174f28c..0132661385 100644 Binary files a/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.po index 801ff61f5b..c81b613f7a 100644 --- a/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/fr/LC_MESSAGES/django.po @@ -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: # Bruno CAPELETO , 2016 @@ -11,45 +11,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-23 20:02+0000\n" "Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID de la clé" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "Id Utilisateur" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Type" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Date de création" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Date d'expiration" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Pas d'expiration" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Durée" @@ -57,11 +58,11 @@ msgstr "Durée" msgid "None" msgstr "Aucun" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Emprunte" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algorithme" @@ -98,7 +99,6 @@ msgid "Key management" msgstr "Gestion des clés" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Uploader la clé" @@ -144,7 +144,9 @@ msgstr "Erreur de signature." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Ce document est signé mais aucune clé publique n'est disponible pour vérifier la signature." +msgstr "" +"Ce document est signé mais aucune clé publique n'est disponible pour " +"vérifier la signature." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -154,28 +156,27 @@ msgstr "Le document est signé et la signature est bonne." msgid "Document is signed with a valid signature." msgstr "Le document est signé avec une signature valide." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "Version ASCII de la clef" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Contenu de la clef" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Clé" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Clés" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Contenu de clef incorrecte" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Clé déjà existante" @@ -196,7 +197,6 @@ msgid "Use keys to sign content" msgstr "Utiliser des clefs pour signer le document" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Uploader les clés" @@ -205,26 +205,25 @@ msgid "View keys" msgstr "Afficher les clés" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Signatures" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Répertoire principal utilisé pour stocker les clés, ainsi que les fichiers de configuration" +msgstr "" +"Répertoire principal utilisé pour stocker les clés, ainsi que les fichiers " +"de configuration" #: settings.py:21 msgid "Path to the GPG binary." msgstr "Chemin du binaire GPG" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Serveur de clefs à contacter" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Effacer la clé: %s" @@ -235,7 +234,6 @@ msgstr "Détails de la clé: %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Importer l'identifiant de clé : %s ?" @@ -245,7 +243,6 @@ msgstr "Importer la clé" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Impossible d'importer la clé : %(key_id)s; %(error)s" @@ -289,12 +286,12 @@ msgstr "Uploader une nouvelle clé" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.mo index 62a8456e05..c8426a2ed4 100644 Binary files a/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.po index 3c9bd2d917..7b8d03db6a 100644 --- a/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/hu/LC_MESSAGES/django.po @@ -1,52 +1,53 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "None" msgstr "Semmi" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -95,7 +96,6 @@ msgid "Key management" msgstr "" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -151,28 +151,27 @@ msgstr "" msgid "Document is signed with a valid signature." msgstr "" -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -193,7 +192,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -202,7 +200,6 @@ msgid "View keys" msgstr "" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -215,13 +212,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -232,7 +227,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -242,7 +236,6 @@ msgstr "" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -286,12 +279,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.mo index 2d4027bc18..437bee5183 100644 Binary files a/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.po index c586ee243c..ee220e7865 100644 --- a/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/id/LC_MESSAGES/django.po @@ -1,52 +1,53 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "None" msgstr "" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -95,7 +96,6 @@ msgid "Key management" msgstr "" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -151,28 +151,27 @@ msgstr "" msgid "Document is signed with a valid signature." msgstr "" -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -193,7 +192,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -202,7 +200,6 @@ msgid "View keys" msgstr "" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -215,13 +212,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -232,7 +227,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -242,7 +236,6 @@ msgstr "" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -286,12 +279,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.mo index 9ad67ff2ed..82c48281a0 100644 Binary files a/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.po index 895fcb7777..5183ba1c9e 100644 --- a/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -10,45 +10,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-09-24 10:33+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "chiave ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "User ID" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Tipo" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Data di creazione" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Data scadenza" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Nessuna scadenza" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Lunghezza" @@ -56,11 +57,11 @@ msgstr "Lunghezza" msgid "None" msgstr "Nessuna " -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Impronta" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algoritmo" @@ -97,7 +98,6 @@ msgid "Key management" msgstr "Gestione delle chiavi" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Carica chiave" @@ -143,7 +143,9 @@ msgstr "Errore di firma" #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Il documento è stato firmato, ma la chiave pubblica non è disponibile per la verifica" +msgstr "" +"Il documento è stato firmato, ma la chiave pubblica non è disponibile per la " +"verifica" #: literals.py:58 msgid "Document is signed, and signature is good." @@ -153,28 +155,27 @@ msgstr "Documento firmato e firma è buona." msgid "Document is signed with a valid signature." msgstr "Il documento è firmato con una firma valida." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "Versione ASCII blindata della chiave" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Dati chiave" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Chiave" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Chiavi" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Dati chiave non valida" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "La chiave esiste già." @@ -195,7 +196,6 @@ msgid "Use keys to sign content" msgstr "Usa la chiave per formare i contenuti" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Carica chiavi" @@ -204,26 +204,25 @@ msgid "View keys" msgstr "Vista delle chiavi" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Firme" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Home directory utilizzata per memorizzare le chiavi così come i file di configurazione." +msgstr "" +"Home directory utilizzata per memorizzare le chiavi così come i file di " +"configurazione." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Percorso per il programma GPG" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Keyserver utilizzato per richiedere le chiavi." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Cancellare la chiave: %s" @@ -234,7 +233,6 @@ msgstr "Dettagli della chiave: %s." #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Importare ID chiave: %s?" @@ -244,7 +242,6 @@ msgstr "Importa chiave" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Impossibile importare la chiave: %(key_id)s; %(error)s" @@ -288,12 +285,12 @@ msgstr "Carica nuova chiave" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.mo index ed2c5476c6..b67cbedc00 100644 Binary files a/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.po index b82110c77d..9d8273fce1 100644 --- a/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-09 16:40+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Sleutel-ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "Gebruikers-ID" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Type" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Aanmaakdatum" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Verloopdatu" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Geen verloop" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Lengte" @@ -55,11 +56,11 @@ msgstr "Lengte" msgid "None" msgstr "Geen" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Vingerafdru" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algoritme" @@ -96,7 +97,6 @@ msgid "Key management" msgstr "Sleutelbeheer" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Upload sleutel" @@ -152,28 +152,27 @@ msgstr "Document is getekend, en handtekening is goed." msgid "Document is signed with a valid signature." msgstr "Document is getekend met een geldige handtekening." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Sleutel" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Sleutels" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Ongeldige sleutelgegevens" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Sleutel bestaat al." @@ -194,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +201,6 @@ msgid "View keys" msgstr "Bekijk sleutels" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Handtekeningen" @@ -216,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +237,6 @@ msgstr "Importeer sleutel" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.mo index 8ebc1319ea..6558d65ca5 100644 Binary files a/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.po index 3103cad4c9..1ca5ace4ec 100644 --- a/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/pl/LC_MESSAGES/django.po @@ -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: # Annunnaky , 2015 @@ -10,45 +10,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Key ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Typ" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Data utworzenia" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Data wygaśnięcia" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Długość" @@ -56,11 +58,11 @@ msgstr "Długość" msgid "None" msgstr "Brak" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -97,7 +99,6 @@ msgid "Key management" msgstr "Zarządzanie kluczami" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -143,7 +144,9 @@ msgstr "Błąd podpisu." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Dokument został podpisany, ale klucz publiczny nie jest dostępny do weryfikacji." +msgstr "" +"Dokument został podpisany, ale klucz publiczny nie jest dostępny do " +"weryfikacji." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -153,28 +156,27 @@ msgstr "Dokument został podpisany, a podpis jest dobry." msgid "Document is signed with a valid signature." msgstr "Dokument podpisany za pomocą ważnego podpisu." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -195,7 +197,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -204,26 +205,24 @@ msgid "View keys" msgstr "View keys" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Katalog domowy używany do przechowywania kluczy oraz plików konfiguracyjnych." +msgstr "" +"Katalog domowy używany do przechowywania kluczy oraz plików konfiguracyjnych." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Ścieżka do GPG binary." #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -234,7 +233,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -244,7 +242,6 @@ msgstr "Importuj klucz" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -288,12 +285,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.mo index 29851cc43c..15880382e7 100644 Binary files a/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.po index b65ad439e1..8e63ba3ed4 100644 --- a/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/pt/LC_MESSAGES/django.po @@ -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: # Roberto Rosario, 2012 @@ -10,45 +10,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID da chave" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -56,11 +57,11 @@ msgstr "" msgid "None" msgstr "Nenhum" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -97,7 +98,6 @@ msgid "Key management" msgstr "Gestão de chaves" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -143,7 +143,9 @@ msgstr "Erro de assinatura." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "O documento está assinado, mas não está disponível uma chave pública para verificação." +msgstr "" +"O documento está assinado, mas não está disponível uma chave pública para " +"verificação." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -153,28 +155,27 @@ msgstr "O documento está assinado e a assinatura é válida." msgid "Document is signed with a valid signature." msgstr "O documento está assinado com uma assinatura válida." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -195,7 +196,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -204,7 +204,6 @@ msgid "View keys" msgstr "Ver as chaves" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Assinaturas" @@ -217,13 +216,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -234,7 +231,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -244,7 +240,6 @@ msgstr "Importar chave" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -288,12 +283,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.mo index 05c09456f1..66a93ced08 100644 Binary files a/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.po index e3482eec1f..1285e760e7 100644 --- a/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -11,45 +11,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-17 23:07+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID da chave" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "ID de usuário" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Tipo" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Data de criação" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Data de expiração" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Sem expiração" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Largura" @@ -57,11 +58,11 @@ msgstr "Largura" msgid "None" msgstr "Nenhum" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Impressão digital" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Algorítimo" @@ -98,7 +99,6 @@ msgid "Key management" msgstr "Gerenciar chaves" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Envio da chave" @@ -154,28 +154,27 @@ msgstr "Documento assinado e a assinatura está em bom estado." msgid "Document is signed with a valid signature." msgstr "Documento assinado com assinatura válida." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "Versão ASCII da chave." -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Dados da chave" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Chave" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Chaves" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Dados da chave inválidos" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "A chave já existe." @@ -196,7 +195,6 @@ msgid "Use keys to sign content" msgstr "Usar chaves para assinar conteúdo" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Enviar chaves" @@ -205,26 +203,25 @@ msgid "View keys" msgstr "Ver as chaves" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Assinaturas" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Diretório inicial usado para armazenar as chaves, assim como os arquivos de configuração." +msgstr "" +"Diretório inicial usado para armazenar as chaves, assim como os arquivos de " +"configuração." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Caminho para o binário GPG." #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Servidor usado para procurar chaves." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Apagar chave: %s" @@ -235,7 +232,6 @@ msgstr "Detalhes para chave: %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Importar ID da chave: %s?" @@ -245,7 +241,6 @@ msgstr "Importar chave" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Não foi possível importar chave: %(key_id)s; %(error)s" @@ -289,12 +284,12 @@ msgstr "Carregar nova chave" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.mo index 4c3443d54b..98f2b17dc5 100644 Binary files a/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.po index d05753ffc8..2a91cbb95a 100644 --- a/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,45 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID cheie" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Tip" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +57,11 @@ msgstr "" msgid "None" msgstr "Nici unul" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +98,6 @@ msgid "Key management" msgstr "gestionare chei" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -142,7 +143,9 @@ msgstr "Eroare semnătură." #: literals.py:53 msgid "Document is signed but no public key is available for verification." -msgstr "Documentul este semnat, dar nici o cheie publică nu este disponibilă pentru verificare." +msgstr "" +"Documentul este semnat, dar nici o cheie publică nu este disponibilă pentru " +"verificare." #: literals.py:58 msgid "Document is signed, and signature is good." @@ -152,28 +155,27 @@ msgstr "Documentul este semnat, iar semnătura este bună." msgid "Document is signed with a valid signature." msgstr "Documentul este semnat cu o semnătură validă." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +196,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,26 +204,25 @@ msgid "View keys" msgstr "Vizualiza cheile" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Cale director utilizată pentru a stoca cheile, precum și fișiere de configurare." +msgstr "" +"Cale director utilizată pentru a stoca cheile, precum și fișiere de " +"configurare." #: settings.py:21 msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +233,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +242,6 @@ msgstr "Import cheie" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +285,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.mo index bb93c5c08b..9a3075e51e 100644 Binary files a/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.po index 6a3dccca02..e068a77401 100644 --- a/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,45 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-07-19 20:20+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "Django GPG" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "ID ключа" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "Идентификатор пользователя" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "Тип" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "Дата создания" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "Дата окончания" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "Не устаревает" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "Длина" @@ -55,11 +58,11 @@ msgstr "Длина" msgid "None" msgstr "Ни один" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "Отпечаток" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "Алгоритм" @@ -96,7 +99,6 @@ msgid "Key management" msgstr "Управление ключами" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "Загрузить ключ" @@ -152,28 +154,27 @@ msgstr "Документ подписан и подпись верна." msgid "Document is signed with a valid signature." msgstr "Документ подписан допустимой подписью." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "Содержимое ключа" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "Ключ" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "Ключи" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "Неверные данные ключа" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "Ключ уже существует." @@ -194,7 +195,6 @@ msgid "Use keys to sign content" msgstr "Использовать ключи для подписи контента" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "Загрузить ключи" @@ -203,26 +203,25 @@ msgid "View keys" msgstr "Просмотр ключей" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "Подписи" #: settings.py:15 msgid "Home directory used to store keys as well as configuration files." -msgstr "Домашний каталог, используемый для хранения ключей, а также файлов конфигурации." +msgstr "" +"Домашний каталог, используемый для хранения ключей, а также файлов " +"конфигурации." #: settings.py:21 msgid "Path to the GPG binary." msgstr "Путь к GPG исходникам." #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "Сервер ключей используемый для запроса ключей." #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "Удалить ключ: %s" @@ -233,7 +232,6 @@ msgstr "Подробности для ключа: %s" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "Получить ключ ID: %s?" @@ -243,7 +241,6 @@ msgstr "Получить ключ" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "Невозможно импортировать ключ %(key_id)s; %(error)s" @@ -287,12 +284,12 @@ msgstr "Загрузить новый ключ" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.mo index b95d50b1db..29861aa88c 100644 Binary files a/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.po index e4137c2a43..b57b56e8ee 100644 --- a/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/sl_SI/LC_MESSAGES/django.po @@ -1,52 +1,54 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -54,11 +56,11 @@ msgstr "" msgid "None" msgstr "Brez" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -95,7 +97,6 @@ msgid "Key management" msgstr "" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -151,28 +152,27 @@ msgstr "" msgid "Document is signed with a valid signature." msgstr "" -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -193,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -202,7 +201,6 @@ msgid "View keys" msgstr "" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -215,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -232,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -242,7 +237,6 @@ msgstr "" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -286,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.mo index 98e29e896c..19e0d0124c 100644 Binary files a/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.po index 3a37ebc8ec..4fcf662615 100644 --- a/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "Key ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +56,11 @@ msgstr "" msgid "None" msgstr "None" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +97,6 @@ msgid "Key management" msgstr "Quản lý khóa" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +152,27 @@ msgstr "Document is signed, and signature is good." msgid "Document is signed with a valid signature." msgstr "Document is signed, and signature is good." -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +201,6 @@ msgid "View keys" msgstr "Xem các khóa" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -216,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +237,6 @@ msgstr "Import key" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.mo index fb3f37df1c..4ab8740395 100644 Binary files a/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.po index c163015017..632987651a 100644 --- a/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/django_gpg/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:22+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:30 +#: apps.py:31 msgid "Django GPG" msgstr "" -#: apps.py:73 apps.py:76 forms.py:17 +#: apps.py:47 apps.py:50 forms.py:17 msgid "Key ID" msgstr "密钥ID" -#: apps.py:74 apps.py:87 forms.py:19 models.py:47 +#: apps.py:48 apps.py:61 forms.py:19 models.py:52 msgid "User ID" msgstr "" -#: apps.py:77 forms.py:34 models.py:50 +#: apps.py:51 forms.py:34 models.py:55 msgid "Type" msgstr "" -#: apps.py:79 forms.py:23 models.py:31 +#: apps.py:53 forms.py:23 models.py:36 msgid "Creation date" msgstr "" -#: apps.py:82 forms.py:27 models.py:35 +#: apps.py:56 forms.py:27 models.py:40 msgid "Expiration date" msgstr "" -#: apps.py:83 +#: apps.py:57 msgid "No expiration" msgstr "" -#: apps.py:85 forms.py:32 models.py:42 +#: apps.py:59 forms.py:32 models.py:47 msgid "Length" msgstr "" @@ -55,11 +56,11 @@ msgstr "" msgid "None" msgstr "无" -#: forms.py:31 models.py:39 +#: forms.py:31 models.py:44 msgid "Fingerprint" msgstr "" -#: forms.py:33 models.py:45 +#: forms.py:33 models.py:50 msgid "Algorithm" msgstr "" @@ -96,7 +97,6 @@ msgid "Key management" msgstr "密钥管理" #: links.py:37 -#| msgid "Import key" msgid "Upload key" msgstr "" @@ -152,28 +152,27 @@ msgstr "文档已签名,并且是有效的。" msgid "Document is signed with a valid signature." msgstr "文档使用有效签名进行签名" -#: models.py:27 +#: models.py:32 msgid "ASCII armored version of the key." msgstr "" -#: models.py:28 +#: models.py:33 msgid "Key data" msgstr "" -#: models.py:56 -#| msgid "Key ID" +#: models.py:61 msgid "Key" msgstr "" -#: models.py:57 +#: models.py:62 msgid "Keys" msgstr "" -#: models.py:63 +#: models.py:68 msgid "Invalid key data" msgstr "" -#: models.py:66 +#: models.py:71 msgid "Key already exists." msgstr "" @@ -194,7 +193,6 @@ msgid "Use keys to sign content" msgstr "" #: permissions.py:22 -#| msgid "public keys" msgid "Upload keys" msgstr "" @@ -203,7 +201,6 @@ msgid "View keys" msgstr "查看密钥" #: settings.py:10 -#| msgid "Signature error." msgid "Signatures" msgstr "" @@ -216,13 +213,11 @@ msgid "Path to the GPG binary." msgstr "" #: settings.py:25 -#| msgid "List of keyservers to be queried for unknown keys." msgid "Keyserver used to query for keys." msgstr "" #: views.py:38 #, python-format -#| msgid "Delete keys" msgid "Delete key: %s" msgstr "" @@ -233,7 +228,6 @@ msgstr "" #: views.py:68 #, python-format -#| msgid "Import key" msgid "Import key ID: %s?" msgstr "" @@ -243,7 +237,6 @@ msgstr "导入密钥" #: views.py:78 #, python-format -#| msgid "Unable to import key id: %(key_id)s; %(error)s" msgid "Unable to import key: %(key_id)s; %(error)s" msgstr "" @@ -287,12 +280,12 @@ msgstr "" #~ msgstr "Delete key" #~ msgid "" -#~ "Delete key %s? If you delete a public key that is part of a public/private " -#~ "pair the private key will be deleted as well." +#~ "Delete key %s? If you delete a public key that is part of a public/" +#~ "private pair the private key will be deleted as well." #~ msgstr "" -#~ "Are you sure you wish to delete key: %s? If you try to delete a public key " -#~ "that is part of a public/private pair the private key will be deleted as " -#~ "well." +#~ "Are you sure you wish to delete key: %s? If you try to delete a public " +#~ "key that is part of a public/private pair the private key will be deleted " +#~ "as well." #~ msgid "results" #~ msgstr "results" diff --git a/mayan/apps/django_gpg/models.py b/mayan/apps/django_gpg/models.py index feccaecc75..ebffe2c084 100644 --- a/mayan/apps/django_gpg/models.py +++ b/mayan/apps/django_gpg/models.py @@ -23,6 +23,11 @@ logger = logging.getLogger(__name__) @python_2_unicode_compatible class Key(models.Model): + """ + Fields: + * key_type - Will show private or public, the only two types of keys in + a public key infrastructure, the kind used in Mayan. + """ key_data = models.TextField( help_text=_('ASCII armored version of the key.'), verbose_name=_('Key data') diff --git a/mayan/apps/django_gpg/serializers.py b/mayan/apps/django_gpg/serializers.py new file mode 100644 index 0000000000..df3c965690 --- /dev/null +++ b/mayan/apps/django_gpg/serializers.py @@ -0,0 +1,17 @@ +from __future__ import unicode_literals + +from rest_framework import serializers + +from .models import Key + + +class KeySerializer(serializers.ModelSerializer): + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:key-detail'}, + } + fields = ( + 'algorithm', 'creation_date', 'expiration_date', 'fingerprint', + 'id', 'key_data', 'key_type', 'length', 'url', 'user_id' + ) + model = Key diff --git a/mayan/apps/django_gpg/tests/test_api.py b/mayan/apps/django_gpg/tests/test_api.py new file mode 100644 index 0000000000..605f973911 --- /dev/null +++ b/mayan/apps/django_gpg/tests/test_api.py @@ -0,0 +1,59 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings + +from rest_api.tests import BaseAPITestCase +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import Key + +from .literals import TEST_KEY_DATA, TEST_KEY_FINGERPRINT + + +@override_settings(OCR_AUTO_OCR=False) +class KeyAPITestCase(BaseAPITestCase): + def setUp(self): + super(KeyAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + def _create_key(self): + return Key.objects.create(key_data=TEST_KEY_DATA) + + def test_key_create_view(self): + response = self.client.post( + reverse('rest_api:key-list'), { + 'key_data': TEST_KEY_DATA + } + ) + self.assertEqual(response.data['fingerprint'], TEST_KEY_FINGERPRINT) + + key = Key.objects.first() + self.assertEqual(Key.objects.count(), 1) + self.assertEqual(key.fingerprint, TEST_KEY_FINGERPRINT) + + def test_key_delete_view(self): + key = self._create_key() + + self.client.delete(reverse('rest_api:key-detail', args=(key.pk,))) + + self.assertEqual(Key.objects.count(), 0) + + def test_key_detail_view(self): + key = self._create_key() + + response = self.client.get( + reverse('rest_api:key-detail', args=(key.pk,)) + ) + + self.assertEqual(response.data['fingerprint'], key.fingerprint) diff --git a/mayan/apps/django_gpg/urls.py b/mayan/apps/django_gpg/urls.py index eaaf3fa762..ac21c86d2d 100644 --- a/mayan/apps/django_gpg/urls.py +++ b/mayan/apps/django_gpg/urls.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import APIKeyListView, APIKeyView from .views import ( KeyDeleteView, KeyDetailView, KeyDownloadView, KeyQueryView, KeyQueryResultView, KeyReceive, KeyUploadView, PrivateKeyListView, @@ -38,3 +39,11 @@ urlpatterns = [ r'^receive/(?P.+)/$', KeyReceive.as_view(), name='key_receive' ), ] + +api_urls = [ + url( + r'^keys/(?P[0-9]+)/$', APIKeyView.as_view(), + name='key-detail' + ), + url(r'^keys/$', APIKeyListView.as_view(), name='key-list'), +] diff --git a/mayan/apps/document_comments/api_views.py b/mayan/apps/document_comments/api_views.py new file mode 100644 index 0000000000..2ce872e2db --- /dev/null +++ b/mayan/apps/document_comments/api_views.py @@ -0,0 +1,120 @@ +from __future__ import absolute_import, unicode_literals + +from django.core.exceptions import PermissionDenied +from django.shortcuts import get_object_or_404 + +from rest_framework import generics + +from acls.models import AccessControlList +from documents.models import Document +from permissions import Permission + +from .permissions import ( + permission_comment_create, permission_comment_delete, + permission_comment_view +) +from .serializers import CommentSerializer, WritableCommentSerializer + + +class APICommentListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of all the document comments. + """ + return super(APICommentListView, self).get(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_comment_view + else: + permission_required = permission_comment_create + + document = get_object_or_404(Document, pk=self.kwargs['document_pk']) + + try: + Permission.check_permissions( + self.request.user, (permission_required,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + + return document + + def get_queryset(self): + return self.get_document().comments.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return CommentSerializer + else: + return WritableCommentSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def post(self, *args, **kwargs): + """ + Create a new document comment. + """ + return super(APICommentListView, self).post(*args, **kwargs) + + +class APICommentView(generics.RetrieveDestroyAPIView): + lookup_url_kwarg = 'comment_pk' + serializer_class = CommentSerializer + + def delete(self, request, *args, **kwargs): + """ + Delete the selected document comment. + """ + + return super(APICommentView, self).delete(request, *args, **kwargs) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected document comment. + """ + + return super(APICommentView, self).get(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_comment_view + else: + permission_required = permission_comment_delete + + document = get_object_or_404(Document, pk=self.kwargs['document_pk']) + + try: + Permission.check_permissions( + self.request.user, (permission_required,) + ) + except PermissionDenied: + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + + return document + + def get_queryset(self): + return self.get_document().comments.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } diff --git a/mayan/apps/document_comments/apps.py b/mayan/apps/document_comments/apps.py index c4d5f3dfd4..d79f3bd7b3 100644 --- a/mayan/apps/document_comments/apps.py +++ b/mayan/apps/document_comments/apps.py @@ -5,7 +5,9 @@ from django.utils.translation import ugettext_lazy as _ from acls import ModelPermission from common import MayanAppConfig, menu_facet, menu_object, menu_sidebar +from documents.search import document_page_search, document_search from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .links import ( link_comment_add, link_comment_delete, link_comments_for_document @@ -19,12 +21,15 @@ from .permissions import ( class DocumentCommentsApp(MayanAppConfig): app_namespace = 'comments' app_url = 'comments' + has_tests = True name = 'document_comments' verbose_name = _('Document comments') def ready(self): super(DocumentCommentsApp, self).ready() + APIEndPoint(app=self, version_string='1') + Document = apps.get_model( app_label='documents', model_name='Document' ) @@ -45,6 +50,15 @@ class DocumentCommentsApp(MayanAppConfig): ) SourceColumn(source=Comment, label=_('Comment'), attribute='comment') + document_page_search.add_model_field( + field='document_version__document__comments__comment', + label=_('Comments') + ) + document_search.add_model_field( + field='comments__comment', + label=_('Comments') + ) + menu_sidebar.bind_links( links=(link_comment_add,), sources=( diff --git a/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.mo index b0a550b935..6222aa9c1a 100644 Binary files a/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.po index d250379d6b..c32908fd04 100644 --- a/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/ar/LC_MESSAGES/django.po @@ -1,48 +1,51 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Date" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "مستخدم" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "تعليق" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "التعليقات" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +57,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "التعليقات" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +77,17 @@ msgstr "حذف التعليقات" msgid "View comments" msgstr "عرض التعليقات" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "إضافة تعليق على الوثيقة: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.mo index 6401841138..93320d50b8 100644 Binary files a/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.po index b4568c327e..f82e271be4 100644 --- a/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/bg/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Дата" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Потребител" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Коментар" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Коментари" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Коментари" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Изтриване на коментари" msgid "View comments" msgstr "Преглед на коментари" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Добавяне на коментар към документ: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.mo index f0fbd24ea1..1f1054f174 100644 Binary files a/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.po index b6db8b2ba5..e294bad9b6 100644 --- a/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/bs_BA/LC_MESSAGES/django.po @@ -1,48 +1,51 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Datum" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Korisnik" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Komentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Komentari" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +57,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Komentari" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +77,17 @@ msgstr "Obriši komentare" msgid "View comments" msgstr "Pregledaj komentare" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Dodaj komentar za dokument: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.mo index 578fd9045b..4906b79a3c 100644 Binary files a/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.po index d30bef8e52..4be0c530d6 100644 --- a/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/da/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Dato" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Bruger" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Kommentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Kommentarer" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Kommentarer" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Slet kommentarer" msgid "View comments" msgstr "Se kommentarer" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Tilføj kommentar til dokument: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.mo index 85da4060f8..f987a875bd 100644 Binary files a/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.po index ea34ed74c7..77db3dc358 100644 --- a/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Berny , 2015 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Kommentare" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Datum" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Benutzer" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Kommentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Kommentare" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Kommentar erstellt" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Kommentar gelöscht" @@ -55,10 +57,6 @@ msgstr "Kommentar hinzufügen" msgid "Delete" msgstr "Löschen" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Kommentare" - #: models.py:23 msgid "Document" msgstr "Dokument" @@ -79,18 +77,17 @@ msgstr "Kommentare löschen" msgid "View comments" msgstr "Kommentare ansehen" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Kommentar zu Dokument %s hinzufügen" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Kommentar %s löschen?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Kommentare für Dokument: %s" diff --git a/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.mo index e8cf79ce35..76b0457828 100644 Binary files a/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po index 0add17e181..d0296a481e 100644 --- a/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2013-11-20 11:56+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,26 +18,30 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 +#: apps.py:26 #, fuzzy #| msgid "Delete comments" msgid "Document comments" msgstr "Delete comments" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 #, fuzzy msgid "Comment" msgstr "Comments" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comments" + #: events.py:9 #, fuzzy #| msgid "Delete comments" @@ -60,10 +64,6 @@ msgstr "add comment" msgid "Delete" msgstr "delete" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comments" - #: models.py:23 #, fuzzy msgid "Document" @@ -85,18 +85,18 @@ msgstr "Delete comments" msgid "View comments" msgstr "View comments" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Add comment to document: %s" -#: views.py:90 +#: views.py:79 #, fuzzy, python-format #| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Delete comments" -#: views.py:122 +#: views.py:106 #, fuzzy, python-format msgid "Comments for document: %s" msgstr "Add comment to document: %s" diff --git a/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.mo index 37abc63a33..31b572099e 100644 Binary files a/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.po index 3fb8867504..e89c770a7b 100644 --- a/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/es/LC_MESSAGES/django.po @@ -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: # Roberto Rosario, 2015 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Comentarios de documento" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Fecha" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Usuario" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Comentario" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comentarios" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Comentario de documento creado" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Comentario de documento borrado" @@ -55,10 +57,6 @@ msgstr "Añadir comentario" msgid "Delete" msgstr "Borrar" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comentarios" - #: models.py:23 msgid "Document" msgstr "Documento" @@ -79,18 +77,17 @@ msgstr "Eliminar comentarios" msgid "View comments" msgstr "Ver comentarios" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Añadir comentario al documento: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "¿Borrar comentario: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Comentarios para el documento: %s" diff --git a/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.mo index 08241c2548..0aa1f7c64d 100644 Binary files a/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.po index a5777a047c..64797198b6 100644 --- a/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/fa/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "تاریخ" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "کاربر" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "شرح" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "توضیحات" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "اضافه کردن توضیحات" msgid "Delete" msgstr "حذف" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "توضیحات" - #: models.py:23 msgid "Document" msgstr "سند" @@ -78,18 +76,17 @@ msgstr "حذف توضیحات" msgid "View comments" msgstr "بازبینی توضیحات" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "اضافه کردن توضیحات به سند: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "توضیحات سند %s" diff --git a/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.mo index d741a32707..d53c60780a 100644 Binary files a/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.po index 08e93aff2c..dcb6591df4 100644 --- a/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/fr/LC_MESSAGES/django.po @@ -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: # Thierry Schott , 2016 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Commentaires du document" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Date" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Utilisateur" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Commentaire" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Commentaires" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Commentaire de document créé" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Commentaire de document supprimé" @@ -55,10 +57,6 @@ msgstr "Ajouter un commentaire" msgid "Delete" msgstr "Suppression" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Commentaires" - #: models.py:23 msgid "Document" msgstr "Document" @@ -79,18 +77,17 @@ msgstr "Supprimer des commentaires" msgid "View comments" msgstr "Afficher les commentaires" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Ajouter un commentaire au document : %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Supprimer le commentaire : %s ?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Commentaires pour le document : %s" diff --git a/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.mo index c7ea56a6c9..88723d8033 100644 Binary files a/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.po index 4301236550..5269ffe71a 100644 --- a/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/hu/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Felhasználó" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Megjegyzés" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Megjegyzések" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Megjegyzések" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "hozzászólás törlése" msgid "View comments" msgstr "hozzászólás megtekintése" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Megjegyzés fűzése a %s dokumentumhoz." -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.mo index 55189323d8..270b9ed13b 100644 Binary files a/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.po index 6f563c7f4a..6b52a26ff9 100644 --- a/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/id/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Pengguna" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Komentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Komentar-komentar" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Komentar-komentar" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Hapus komentar-komentar" msgid "View comments" msgstr "Lihat komentar-komentar" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Menambah komentar ke dokumen: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.mo index f14546d0d4..797884faf4 100644 Binary files a/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.po index f9bc51023d..584e97c26b 100644 --- a/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-09-24 09:51+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Commenti documento" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Utente" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Commento" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Commenti " + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Commento documento creato" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Commento documento cancellato" @@ -55,10 +57,6 @@ msgstr "Aggiungi commento" msgid "Delete" msgstr "Cancella" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Commenti " - #: models.py:23 msgid "Document" msgstr "Documento" @@ -79,18 +77,17 @@ msgstr "Cancella commenti" msgid "View comments" msgstr "Visualizza commenti" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Aggiungi un comento al documento: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Cancellare il commento: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Commenti al documento: %s" diff --git a/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.mo index a9d56e03ed..6d7550e31b 100644 Binary files a/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.po index 8faa889e6c..9898ec7c5c 100644 --- a/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-10-28 12:44+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Documentopmerkingen" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Datum" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Gebruiker" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Commentaar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Commentaar" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -55,10 +57,6 @@ msgstr "Voeg opmerking toe" msgid "Delete" msgstr "Verwijder" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Commentaar" - #: models.py:23 msgid "Document" msgstr "Document" @@ -79,18 +77,17 @@ msgstr "Verwijderen van commentaar" msgid "View comments" msgstr "Bekijk commentaar" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Opmerking toevoegen aan document: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Verwijder opmerking: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Opmerkingen voor document: %s" diff --git a/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.mo index 8b127d81dd..7f61224d41 100644 Binary files a/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.po index 31961be65a..ca6a948707 100644 --- a/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/pl/LC_MESSAGES/django.po @@ -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: # Wojtek Warczakowski , 2016 @@ -9,41 +9,44 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Komentarze dokumentu" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Użytkownik" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Komentarz" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Komentarze" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Dokument został skomentowany" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Komentarz do dokumentu został usunięty" @@ -55,10 +58,6 @@ msgstr "Dodaj komentarz" msgid "Delete" msgstr "Usuń" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Komentarze" - #: models.py:23 msgid "Document" msgstr "Dokument" @@ -79,18 +78,17 @@ msgstr "Usuwaj komentarze" msgid "View comments" msgstr "Przeglądaj komentarze" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Dodanie komentarza do dokumentu: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Usunąć komentarz: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Komentarze do dokumentu: %s" diff --git a/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.mo index e641521186..3bd15c0167 100644 Binary files a/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.po index 71167c7c84..789e80e123 100644 --- a/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/pt/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Utilizador" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Comentário" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comentários" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "Eliminar" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comentários" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Excluir comentários" msgid "View comments" msgstr "Ver comentários" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Adicionar comentário ao documento: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.mo index f5d30f8963..6fa5262fcb 100644 Binary files a/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.po index 23ae98d96a..16a42fbccc 100644 --- a/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -9,41 +9,43 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-17 22:54+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Comentários de documento" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Usuário" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Comentário" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comentários" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Comentário de documento criado" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Comentário de documento apagado" @@ -55,10 +57,6 @@ msgstr "Adicionar comentário" msgid "Delete" msgstr "Excluir" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comentários" - #: models.py:23 msgid "Document" msgstr "Documento" @@ -79,18 +77,17 @@ msgstr "Excluir comentários" msgid "View comments" msgstr "Ver comentários" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Adicionar comentário ao documento: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Apagar comentário: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Comentário para documento: %s" diff --git a/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.mo index b00cd1e8b8..8d08a9e883 100644 Binary files a/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.po index 56513d1ea0..3d475cecdd 100644 --- a/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/ro_RO/LC_MESSAGES/django.po @@ -1,48 +1,51 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-17 09:39+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Data" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "utilizator" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Comentariu" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Comentarii" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +57,6 @@ msgstr "" msgid "Delete" msgstr "Șterge" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Comentarii" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +77,17 @@ msgstr "Ștergeți comentarii" msgid "View comments" msgstr "Vezi comentariile" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Adaugă comentariu la document:% s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.mo index b771173907..37c7a67fdd 100644 Binary files a/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.po index 383a39376d..39e6874af7 100644 --- a/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,41 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-07-14 01:35+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "Комментарии документа" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Дата" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Пользователь" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Комментарий" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Комментарии" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "Комментарий документа создан" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "Комментарий документа удалён" @@ -55,10 +59,6 @@ msgstr "Добавить комментарий" msgid "Delete" msgstr "Удалить" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Комментарии" - #: models.py:23 msgid "Document" msgstr "Документ" @@ -79,18 +79,17 @@ msgstr "Удалить комментарии" msgid "View comments" msgstr "Просмотр комментариев" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Добавить комментарий на документ: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "Удалить комментарий: %s?" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "Комментарии для документа: %s" diff --git a/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.mo index 32a7002e5b..c45d13e748 100644 Binary files a/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.po index 9f8c03b55d..8d1970e3c7 100644 --- a/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/sl_SI/LC_MESSAGES/django.po @@ -1,48 +1,51 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-23 16:43+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Komentar" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Komentarji" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,13 +57,9 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Komentarji" - #: models.py:23 msgid "Document" -msgstr "" +msgstr "Dokument" #: models.py:33 msgid "Date time submitted" @@ -78,18 +77,17 @@ msgstr "Izbriši komentarje" msgid "View comments" msgstr "Poglej komentarje" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Dodaj komentar datotekei: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.mo index 8d4550d6de..3f99f7af7c 100644 Binary files a/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.po index 79b52a7022..b391404ed4 100644 --- a/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/vi_VN/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "Ngày" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "Người dùng" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "Chú thích" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "Chú thích" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "Chú thích" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "Xóa chú thích" msgid "View comments" msgstr "Xem chú thích" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "Thêm chú thích cho tài liệu: %s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.mo index a59929dd9a..9b10404d58 100644 Binary files a/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.po index 447c47680c..5151d44697 100644 --- a/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/document_comments/locale/zh_CN/LC_MESSAGES/django.po @@ -1,48 +1,50 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-03-21 21:09+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:23 -#| msgid "Delete comments" +#: apps.py:26 msgid "Document comments" msgstr "" -#: apps.py:41 +#: apps.py:46 msgid "Date" msgstr "日期" -#: apps.py:43 models.py:27 +#: apps.py:48 models.py:27 msgid "User" msgstr "用户" #. Translators: Comment here is a noun and refers to the actual text stored -#: apps.py:46 models.py:30 models.py:72 views.py:25 +#: apps.py:51 models.py:30 models.py:72 views.py:23 msgid "Comment" msgstr "评论" +#: apps.py:55 apps.py:59 links.py:22 models.py:73 permissions.py:7 +msgid "Comments" +msgstr "评论" + #: events.py:9 -#| msgid "Delete comments" msgid "Document comment created" msgstr "" #: events.py:13 -#| msgid "Delete comments" msgid "Document comment deleted" msgstr "" @@ -54,10 +56,6 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:22 models.py:73 permissions.py:7 -msgid "Comments" -msgstr "评论" - #: models.py:23 msgid "Document" msgstr "" @@ -78,18 +76,17 @@ msgstr "删除评论" msgid "View comments" msgstr "查看评论" -#: views.py:47 +#: views.py:41 #, python-format msgid "Add comment to document: %s" msgstr "添加评论到文档:%s" -#: views.py:90 +#: views.py:79 #, python-format -#| msgid "Delete comments" msgid "Delete comment: %s?" msgstr "" -#: views.py:122 +#: views.py:106 #, python-format msgid "Comments for document: %s" msgstr "" diff --git a/mayan/apps/document_comments/serializers.py b/mayan/apps/document_comments/serializers.py new file mode 100644 index 0000000000..4090cdadfd --- /dev/null +++ b/mayan/apps/document_comments/serializers.py @@ -0,0 +1,71 @@ +from __future__ import unicode_literals + +from rest_framework import serializers +from rest_framework.reverse import reverse + +from documents.serializers import DocumentSerializer +from user_management.serializers import UserSerializer + +from .models import Comment + + +class CommentSerializer(serializers.HyperlinkedModelSerializer): + document = DocumentSerializer(read_only=True) + document_comments_url = serializers.SerializerMethodField() + url = serializers.SerializerMethodField() + user = UserSerializer(read_only=True) + + class Meta: + fields = ( + 'comment', 'document', 'document_comments_url', 'id', + 'submit_date', 'url', 'user' + ) + model = Comment + + def get_document_comments_url(self, instance): + return reverse( + 'rest_api:comment-list', args=( + instance.document.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:comment-detail', args=( + instance.document.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + +class WritableCommentSerializer(serializers.ModelSerializer): + document = DocumentSerializer(read_only=True) + document_comments_url = serializers.SerializerMethodField() + url = serializers.SerializerMethodField() + user = UserSerializer(read_only=True) + + class Meta: + fields = ( + 'comment', 'document', 'document_comments_url', 'id', + 'submit_date', 'url', 'user' + ) + model = Comment + read_only_fields = ('document',) + + def create(self, validated_data): + validated_data['document'] = self.context['document'] + validated_data['user'] = self.context['request'].user + return super(WritableCommentSerializer, self).create(validated_data) + + def get_document_comments_url(self, instance): + return reverse( + 'rest_api:comment-list', args=( + instance.document.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:comment-detail', args=( + instance.document.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) diff --git a/mayan/apps/document_comments/tests/__init__.py b/mayan/apps/document_comments/tests/__init__.py new file mode 100644 index 0000000000..e69de29bb2 diff --git a/mayan/apps/document_comments/tests/literals.py b/mayan/apps/document_comments/tests/literals.py new file mode 100644 index 0000000000..489cba38be --- /dev/null +++ b/mayan/apps/document_comments/tests/literals.py @@ -0,0 +1,3 @@ +from __future__ import unicode_literals + +TEST_COMMENT_TEXT = 'test comment text' diff --git a/mayan/apps/document_comments/tests/test_api.py b/mayan/apps/document_comments/tests/test_api.py new file mode 100644 index 0000000000..72dd645028 --- /dev/null +++ b/mayan/apps/document_comments/tests/test_api.py @@ -0,0 +1,97 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings + +from rest_framework.test import APITestCase + +from documents.models import DocumentType +from documents.tests.literals import ( + TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +) +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import Comment + +from .literals import TEST_COMMENT_TEXT + + +@override_settings(OCR_AUTO_OCR=False) +class CommentAPITestCase(APITestCase): + def setUp(self): + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + + def _create_comment(self): + return self.document.comments.create( + comment=TEST_COMMENT_TEXT, user=self.admin_user + ) + + def test_comment_create_view(self): + response = self.client.post( + reverse( + 'rest_api:comment-list', args=(self.document.pk,) + ), { + 'comment': TEST_COMMENT_TEXT + } + ) + + self.assertEqual(response.status_code, 201) + comment = Comment.objects.first() + self.assertEqual(Comment.objects.count(), 1) + self.assertEqual(response.data['id'], comment.pk) + + def test_comment_delete_view(self): + comment = self._create_comment() + + self.client.delete( + reverse( + 'rest_api:comment-detail', args=(self.document.pk, comment.pk,) + ) + ) + + self.assertEqual(Comment.objects.count(), 0) + + def test_comment_detail_view(self): + comment = self._create_comment() + + response = self.client.get( + reverse( + 'rest_api:comment-detail', args=(self.document.pk, comment.pk,) + ) + ) + + self.assertEqual(response.data['comment'], comment.comment) + + def test_comment_list_view(self): + comment = self._create_comment() + + response = self.client.get( + reverse('rest_api:comment-list', args=(self.document.pk,)) + ) + + self.assertEqual( + response.data['results'][0]['comment'], comment.comment + ) diff --git a/mayan/apps/document_comments/urls.py b/mayan/apps/document_comments/urls.py index ddb4659ef2..b46f295399 100644 --- a/mayan/apps/document_comments/urls.py +++ b/mayan/apps/document_comments/urls.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import APICommentListView, APICommentView from .views import ( DocumentCommentCreateView, DocumentCommentDeleteView, DocumentCommentListView @@ -21,3 +22,14 @@ urlpatterns = [ DocumentCommentListView.as_view(), name='comments_for_document' ), ] + +api_urls = [ + url( + r'^document/(?P[0-9]+)/comments/$', + APICommentListView.as_view(), name='comment-list' + ), + url( + r'^document/(?P[0-9]+)/comments/(?P[0-9]+)/$', + APICommentView.as_view(), name='comment-detail' + ), +] diff --git a/mayan/apps/document_indexing/api_views.py b/mayan/apps/document_indexing/api_views.py index 02126ccd5d..9ff6774804 100644 --- a/mayan/apps/document_indexing/api_views.py +++ b/mayan/apps/document_indexing/api_views.py @@ -175,4 +175,4 @@ class APIDocumentIndexListView(generics.ListAPIView): obj=document ) - return document.node_instances.all() + return document.index_instance_nodes.all() diff --git a/mayan/apps/document_indexing/apps.py b/mayan/apps/document_indexing/apps.py index 2e95e0c807..278e6dd403 100644 --- a/mayan/apps/document_indexing/apps.py +++ b/mayan/apps/document_indexing/apps.py @@ -3,7 +3,7 @@ from __future__ import absolute_import, unicode_literals from kombu import Exchange, Queue from django.apps import apps -from django.db.models.signals import post_save, post_delete +from django.db.models.signals import post_delete, pre_delete from django.utils.translation import ugettext_lazy as _ from acls import ModelPermission @@ -21,9 +21,8 @@ from navigation import SourceColumn from rest_api.classes import APIEndPoint from .handlers import ( - document_created_index_update, create_default_document_index, - document_index_delete, document_metadata_index_update, - document_metadata_index_post_delete + create_default_document_index, handler_delete_empty, + handler_index_document, handler_remove_document ) from .links import ( link_document_index_list, link_index_main_menu, link_index_setup, @@ -44,8 +43,8 @@ from .widgets import get_instance_link, index_instance_item_link, node_level class DocumentIndexingApp(MayanAppConfig): app_namespace = 'indexing' app_url = 'indexing' + has_tests = True name = 'document_indexing' - test = True verbose_name = _('Document indexing') def ready(self): @@ -59,10 +58,6 @@ class DocumentIndexingApp(MayanAppConfig): app_label='documents', model_name='DocumentType' ) - DocumentMetadata = apps.get_model( - app_label='metadata', model_name='DocumentMetadata' - ) - DocumentIndexInstanceNode = self.get_model('DocumentIndexInstanceNode') Index = self.get_model('Index') @@ -145,13 +140,16 @@ class DocumentIndexingApp(MayanAppConfig): app.conf.CELERY_ROUTES.update( { - 'document_indexing.tasks.task_delete_empty_index_nodes': { + 'document_indexing.tasks.task_delete_empty': { + 'queue': 'indexing' + }, + 'document_indexing.tasks.task_remove_document': { 'queue': 'indexing' }, 'document_indexing.tasks.task_index_document': { 'queue': 'indexing' }, - 'document_indexing.tasks.task_do_rebuild_all_indexes': { + 'document_indexing.tasks.task_rebuild_index': { 'queue': 'tools' }, } @@ -185,24 +183,18 @@ class DocumentIndexingApp(MayanAppConfig): menu_tools.bind_links(links=(link_rebuild_index_instances,)) post_delete.connect( - document_index_delete, dispatch_uid='document_index_delete', + handler_delete_empty, dispatch_uid='handler_delete_empty', sender=Document ) - post_delete.connect( - document_metadata_index_post_delete, - dispatch_uid='document_metadata_index_post_delete', - sender=DocumentMetadata + pre_delete.connect( + handler_remove_document, dispatch_uid='handler_remove_document', + sender=Document ) post_document_created.connect( - document_created_index_update, - dispatch_uid='document_created_index_update', sender=Document + handler_index_document, + dispatch_uid='handler_index_document', sender=Document ) post_initial_document_type.connect( create_default_document_index, dispatch_uid='create_default_document_index', sender=DocumentType ) - post_save.connect( - document_metadata_index_update, - dispatch_uid='document_metadata_index_update', - sender=DocumentMetadata - ) diff --git a/mayan/apps/document_indexing/forms.py b/mayan/apps/document_indexing/forms.py index aa8acf3ade..8bdf0dd1b7 100644 --- a/mayan/apps/document_indexing/forms.py +++ b/mayan/apps/document_indexing/forms.py @@ -1,11 +1,20 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django import forms +from django.utils.translation import ugettext_lazy as _ from common.classes import ModelAttribute from documents.models import Document -from .models import IndexTemplateNode +from .models import Index, IndexTemplateNode + + +class IndexListForm(forms.Form): + indexes = forms.ModelMultipleChoiceField( + help_text=_('Indexes to be queued for rebuilding.'), + label=_('Indexes'), queryset=Index.objects.filter(enabled=True), + required=False, widget=forms.widgets.CheckboxSelectMultiple() + ) class IndexTemplateNodeForm(forms.ModelForm): @@ -19,7 +28,9 @@ class IndexTemplateNodeForm(forms.ModelForm): self.fields['expression'].help_text = ' '.join( [ unicode(self.fields['expression'].help_text), - ModelAttribute.help_text_for(Document, type_names=['indexing']) + ModelAttribute.help_text_for( + Document, type_names=['indexing'] + ).replace('\n', '
            ') ] ) diff --git a/mayan/apps/document_indexing/handlers.py b/mayan/apps/document_indexing/handlers.py index 175fbfcd39..d0e185cf64 100644 --- a/mayan/apps/document_indexing/handlers.py +++ b/mayan/apps/document_indexing/handlers.py @@ -3,7 +3,9 @@ from __future__ import unicode_literals from django.apps import apps from django.utils.translation import ugettext_lazy as _ -from .tasks import task_delete_empty_index_nodes, task_index_document +from .tasks import ( + task_delete_empty, task_index_document, task_remove_document +) def create_default_document_index(sender, **kwargs): @@ -31,23 +33,17 @@ def create_default_document_index(sender, **kwargs): ) -def document_created_index_update(sender, **kwargs): +def handler_delete_empty(sender, **kwargs): + task_delete_empty.apply_async() + + +def handler_index_document(sender, **kwargs): task_index_document.apply_async( kwargs=dict(document_id=kwargs['instance'].pk) ) -def document_index_delete(sender, **kwargs): - task_delete_empty_index_nodes.apply_async() - - -def document_metadata_index_update(sender, **kwargs): - task_index_document.apply_async( - kwargs=dict(document_id=kwargs['instance'].document.pk) - ) - - -def document_metadata_index_post_delete(sender, **kwargs): - task_index_document.apply_async( - kwargs=dict(document_id=kwargs['instance'].document.pk) +def handler_remove_document(sender, **kwargs): + task_remove_document.apply_async( + kwargs=dict(document_id=kwargs['instance'].pk) ) diff --git a/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.mo index ee0bee6894..021f1e0ea5 100644 Binary files a/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.po index 3ed97bc974..e3423d7845 100644 --- a/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,67 +9,72 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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" #: admin.py:24 msgid "None" msgstr "لا شيء" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indexes" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +94,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Deletes and creates from scratch all the document indexes." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +102,97 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Causes this index to be visible and updated when document data changes." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "Causes this node to be visible and updated when document data changes." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Causes this index to be visible and updated when document data changes." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Causes this node to be visible and updated when document data changes." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Check this option to have this node act as a container for documents and not as a parent for further nodes." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "قيمة" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "الوثائق" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +220,74 @@ msgstr "View document indexes" msgid "Rebuild document indexes" msgstr "Rebuild document indexes" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "On large databases this operation may take some time to execute." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +349,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +390,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.mo index 82a948632a..b8308ffee6 100644 Binary files a/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.po index 52ea6c168d..46350df460 100644 --- a/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/bg/LC_MESSAGES/django.po @@ -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: # Pavlin Koldamov , 2012 @@ -9,67 +9,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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" #: admin.py:24 msgid "None" msgstr "Няма" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Индекси" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +93,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Изтриване и създаване от нулата на всички индекси за документа." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +101,96 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Предизвиква този индекс да бъдат видим и актуализиран, когато данните в " +"документа се променят." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Предизвиква този индекс да бъдат видим и актуализиран, когато данните в документа се променят." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Стойност" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Документи" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +218,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "При големи бази данни тази операция може да отнеме известно време за изпълнение." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +347,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +388,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.mo index 04b1e5f483..b54c86ed5c 100644 Binary files a/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.po index 2bbbb288a3..462bdba8d9 100644 --- a/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,67 +9,72 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19: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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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" #: admin.py:24 msgid "None" msgstr "Nijedno" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indeksi" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +94,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Briše i nanovo kreira indekse svih dokumenata." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +102,100 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Uzrokuje da će ovaj indeks biti vidljiv i update-ovan kad se promjene podaci " +"dokumenta." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Uzrokuje da će ovaj nod biti vidljiv i update-ovan kad se promjene podaci " +"dokumenta." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Označite ovu opciju da ovaj nod služi kao kontejner za dokumente a ne kao " +"parent za buduće nodove." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Uzrokuje da će ovaj indeks biti vidljiv i update-ovan kad se promjene podaci dokumenta." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Uzrokuje da će ovaj nod biti vidljiv i update-ovan kad se promjene podaci dokumenta." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Označite ovu opciju da ovaj nod služi kao kontejner za dokumente a ne kao parent za buduće nodove." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Vrijednost" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumenti" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +223,74 @@ msgstr "Pregledaj indekse dokumenata" msgid "Rebuild document indexes" msgstr " Obnovi indekse dokumenata" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Na velikim bazama podataka ove operacije mogu potrajati neko vrijeme." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +352,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +393,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.mo index 1aff61ff6c..0accd566f1 100644 Binary files a/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.po index 7e9a0f3b4f..31cb01ff43 100644 --- a/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/da/LC_MESSAGES/django.po @@ -1,74 +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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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" #: admin.py:24 msgid "None" msgstr "Ingen" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -88,7 +92,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -96,96 +100,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumenter" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -213,77 +215,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "På store databaser kan denne operation tage lidt tid at udføre." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -345,9 +344,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -384,11 +385,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.mo index ace206a5ca..b0df31eb9d 100644 Binary files a/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po index 26cf2c0e75..5433d8d322 100644 --- a/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Berny , 2015-2016 @@ -13,67 +13,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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" #: admin.py:24 msgid "None" msgstr "Keine" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Dokumententypen" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Dokumentenindices" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Bezeichner" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Abkürzung" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Aktiviert" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Elemente" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Stufe" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "Dokument verknüpft" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Knotenpunkt" -#: handlers.py:18 -msgid "Creation date" -msgstr "Erstellungsdatum" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indices" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Erstellungsdatum" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Index erstellen" @@ -93,7 +97,7 @@ msgstr "Baumvorlage" msgid "Deletes and creates from scratch all the document indexes." msgstr "Löscht und erstellt alle Dokumentenindices neu" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Indices wiederaufbauen" @@ -101,96 +105,106 @@ msgstr "Indices wiederaufbauen" msgid "New child node" msgstr "Neuer Unterknoten" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "Interner Name um diesen Index zu identifizieren" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Bewirkt Sichtbarkeit und Aktualisierung des Index, wenn Dokumente geändert " +"werden." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Index" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Index-Instanzen" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Vorlage/Template zur Generierung eingeben. Django's Standard-Vorlagen-" +"Sprache benutzen (https://docs.djangoproject.com/en/1.7/ref/templates/" +"builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "Indexierungsausdruck" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Bewirkt Sichtbarkeit und Aktualisierung des Index, wenn Dokumente geändert " +"werden." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Wählen Sie diese Option, wenn Dokumente in diesem Knoten dargestellt werden " +"sollen (und dieser Knoten nicht als Eltern-Knoten für weitere Kind-" +"Knotenpunkte fungieren soll)." + +#: models.py:173 +msgid "Link documents" +msgstr "Dokumente verknüpfen" + +#: models.py:178 +msgid "Root" +msgstr "Wurzel" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" -msgstr "Fehler bei der Indexierung von Dokument %(document)s; Ausdruck: %(expression)s; %(exception)s" +msgstr "" +"Fehler bei der Indexierung von Dokument %(document)s; Ausdruck: " +"%(expression)s; %(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Interner Name um diesen Index zu identifizieren" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Bewirkt Sichtbarkeit und Aktualisierung des Index, wenn Dokumente geändert werden." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Index" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Index-Instanzen" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Vorlage/Template zur Generierung eingeben. Django's Standard-Vorlagen-Sprache benutzen (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "Indexierungsausdruck" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Bewirkt Sichtbarkeit und Aktualisierung des Index, wenn Dokumente geändert werden." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Wählen Sie diese Option, wenn Dokumente in diesem Knoten dargestellt werden sollen (und dieser Knoten nicht als Eltern-Knoten für weitere Kind-Knotenpunkte fungieren soll)." - -#: models.py:134 -msgid "Link documents" -msgstr "Dokumente verknüpfen" - -#: models.py:139 -msgid "Root" -msgstr "Wurzel" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "Index Knotenvorlage" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "Index Knotenvorlagen" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "Index Knotenpunkt" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Wert" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumente" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "Indexknotenpunkt" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "Indexknotenpunkte" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "Indexknotenpunkt" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "Indexknotenpunkte" @@ -218,77 +232,74 @@ msgstr "Dokumentenindices anzeigen" msgid "Rebuild document indexes" msgstr "Dokumentenindices neu aufbauen" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Index %s löschen?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Index %s bearbeiten" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Verfügbare Dokumententypen" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Verknüpfte Dokumententypen" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Mit Index %s verknüpfte Dokumententypen" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "Baumvorlagen für Index %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Unterknotenpunkt von %s erstellen" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "Indexvorlagen-Knotenpunkt %s löschen?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "Indexvorlagen-Knotenpunkt %s bearbeiten" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navigation: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Inhalt von Index %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Knotenpunkte der Indices, die Dokumente enthalten: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Bei großen Datenbanken kann dieser Vorgang einige Zeit in Anspruch nehmen." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Alle Indices neu aufbauen?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Indexwiederaufbau erfolgreich eingereiht" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -350,9 +361,11 @@ msgstr "Indexwiederaufbau erfolgreich eingereiht" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -389,11 +402,11 @@ msgstr "Indexwiederaufbau erfolgreich eingereiht" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.mo index 097ad6810a..ed06b7fb82 100644 Binary files a/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po index 8a2bde3c51..91b34678d6 100644 --- a/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -22,7 +22,7 @@ msgstr "" msgid "None" msgstr "" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 #, fuzzy msgid "Document types" msgstr "document types" @@ -33,49 +33,53 @@ msgstr "document types" msgid "Document indexing" msgstr "document indexes" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 #, fuzzy msgid "Enabled" msgstr "enabled" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 #, fuzzy msgid "Items" msgstr "items" -#: apps.py:144 +#: apps.py:104 #, fuzzy msgid "Level" msgstr "level" -#: apps.py:152 +#: apps.py:112 #, fuzzy msgid "Has document links?" msgstr "has document links?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" + +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 +msgid "Indexes" +msgstr "Indexes" + +#: handlers.py:20 #, fuzzy msgid "Creation date" msgstr "create index" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 -msgid "Indexes" -msgstr "Indexes" - -#: links.py:31 views.py:36 +#: links.py:31 views.py:34 #, fuzzy msgid "Create index" msgstr "create index" @@ -98,7 +102,7 @@ msgstr "tree template" msgid "Deletes and creates from scratch all the document indexes." msgstr "Deletes and creates from scratch all the document indexes." -#: links.py:57 +#: links.py:57 views.py:319 #, fuzzy msgid "Rebuild indexes" msgstr "rebuild indexes" @@ -108,7 +112,65 @@ msgstr "rebuild indexes" msgid "New child node" msgstr "new child node" -#: managers.py:56 +#: models.py:37 +#, fuzzy +#| msgid "Internal name used to reference this index." +msgid "This values will be used by other apps to reference this index." +msgstr "Internal name used to reference this index." + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Causes this index to be visible and updated when document data changes." + +#: models.py:117 models.py:149 +#, fuzzy +msgid "Index" +msgstr "Indexes" + +#: models.py:136 +#, fuzzy +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +#, fuzzy +msgid "Index instances" +msgstr "index instance" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +#, fuzzy +msgid "Indexing expression" +msgstr "indexing expression" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "Causes this node to be visible and updated when document data changes." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." + +#: models.py:173 +#, fuzzy +msgid "Link documents" +msgstr "link documents" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, fuzzy, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " @@ -116,105 +178,47 @@ msgid "" msgstr "" "Error updating document index, expression: %(expression)s; %(exception)s" -#: models.py:29 -#, fuzzy -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Internal name used to reference this index." - -#: models.py:35 -msgid "Causes this index to be visible and updated when document data changes." -msgstr "" -"Causes this index to be visible and updated when document data changes." - -#: models.py:82 models.py:109 -#, fuzzy -msgid "Index" -msgstr "Indexes" - -#: models.py:101 -#, fuzzy -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -#, fuzzy -msgid "Index instances" -msgstr "index instance" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -#, fuzzy -msgid "Indexing expression" -msgstr "indexing expression" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Causes this node to be visible and updated when document data changes." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not " -"as a parent for further nodes." -msgstr "" -"Check this option to have this node act as a container for documents and not " -"as a parent for further nodes." - -#: models.py:134 -#, fuzzy -msgid "Link documents" -msgstr "link documents" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 #, fuzzy msgid "Index node template" msgstr "index template node" -#: models.py:145 +#: models.py:262 #, fuzzy msgid "Indexes node template" msgstr "indexes template nodes" -#: models.py:153 +#: models.py:270 #, fuzzy msgid "Index template node" msgstr "index template node" -#: models.py:156 +#: models.py:273 #, fuzzy msgid "Value" msgstr "value" -#: models.py:159 +#: models.py:277 #, fuzzy msgid "Documents" msgstr "documents" -#: models.py:204 +#: models.py:363 #, fuzzy msgid "Index node instance" msgstr "index instance" -#: models.py:205 +#: models.py:364 #, fuzzy msgid "Indexes node instances" msgstr "index instance" -#: models.py:213 +#: models.py:372 #, fuzzy msgid "Document index node instance" msgstr "index instance" -#: models.py:214 +#: models.py:373 #, fuzzy msgid "Document indexes node instances" msgstr "index instance" @@ -243,81 +247,79 @@ msgstr "View document indexes" msgid "Rebuild document indexes" msgstr "Rebuild document indexes" -#: views.py:51 +#: views.py:49 #, fuzzy, python-format #| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Delete document indexes" -#: views.py:64 +#: views.py:62 #, fuzzy, python-format msgid "Edit index: %s" msgstr "edit index: %s" -#: views.py:81 +#: views.py:79 #, fuzzy msgid "Available document types" msgstr "document types" -#: views.py:83 +#: views.py:81 #, fuzzy msgid "Document types linked" msgstr "document types" -#: views.py:106 +#: views.py:96 #, fuzzy, python-format msgid "Document types linked to index: %s" msgstr "document types for index: %s" -#: views.py:145 +#: views.py:135 #, fuzzy, python-format msgid "Tree template nodes for index: %s" msgstr "tree template nodes for index: %s" -#: views.py:172 +#: views.py:157 #, fuzzy, python-format msgid "Create child node of: %s" msgstr "create child node" -#: views.py:196 +#: views.py:181 #, fuzzy, python-format msgid "Delete the index template node: %s?" msgstr "edit index template node: %s" -#: views.py:218 +#: views.py:203 #, fuzzy, python-format msgid "Edit the index template node: %s?" msgstr "edit index template node: %s" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, fuzzy, python-format msgid "Contents for index: %s" msgstr "contents for index: %s" -#: views.py:331 +#: views.py:309 #, fuzzy, python-format msgid "Indexes nodes containing document: %s" msgstr "indexes containing: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "On large databases this operation may take some time to execute." - -#: views.py:342 -#, fuzzy -msgid "Rebuild all indexes?" -msgstr "rebuild indexes" - -#: views.py:351 +#: views.py:328 #, fuzzy msgid "Index rebuild queued successfully." msgstr "Index rebuild completed successfully." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#, fuzzy +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #, fuzzy #~ msgid "Index list" #~ msgstr "index list" diff --git a/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.mo index 75df19f1e7..d28594952b 100644 Binary files a/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.po index ebe1770c8d..75b73250ae 100644 --- a/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/es/LC_MESSAGES/django.po @@ -6,13 +6,13 @@ # Translators: # jmcainzos , 2014 # Lory977 , 2015 -# Roberto Rosario, 2016 +# Roberto Rosario, 2016-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-23 06:46+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:56+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" @@ -25,7 +25,7 @@ msgstr "" msgid "None" msgstr "Ninguno" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Tipos de documento" @@ -34,44 +34,48 @@ msgstr "Tipos de documento" msgid "Document indexing" msgstr "Indexación de documentos" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Etiqueta" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Identificador" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Habilitado" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Elementos" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Nível" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "El documento tiene enlaces?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Nodo" -#: handlers.py:18 -msgid "Creation date" -msgstr "Fecha de creación" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "Los índices a someter para reconstrucción." -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Índices" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Fecha de creación" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Crear índice" @@ -91,7 +95,7 @@ msgstr "árbol de plantilla" msgid "Deletes and creates from scratch all the document indexes." msgstr "Borra y crea desde cero todos los índices de documentos." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "reconstruir índices" @@ -99,98 +103,98 @@ msgstr "reconstruir índices" msgid "New child node" msgstr "nuevo nodo secundario" -#: managers.py:56 +#: models.py:37 +#| msgid "Internal name used to reference this index." +msgid "This values will be used by other apps to reference this index." +msgstr "Estos valores serán utilizados por otras aplicaciones para hacer referencia a este índice." + +#: models.py:43 +msgid "" +"Causes this index to be visible and updated when document data changes." +msgstr "Hace que este índice sea visible y actualizado cuando los datos de documentos cambien." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "índice" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Instancias de índices" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "Introduzca una plantilla para generar. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " + +#: models.py:157 +msgid "Indexing expression" +msgstr "expresión de indexación" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "Hace que este nodo sea visible y actualizado cuando los datos de los documentos son cambiados." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not" +" as a parent for further nodes." +msgstr "Marque esta opción para que el nodo actúe como un contenedor de documentos y no como un padre para otros nodos secundarios." + +#: models.py:173 +msgid "Link documents" +msgstr "enlace de documentos" + +#: models.py:178 +msgid "Root" +msgstr "raíz" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "Error indexando documento: %(document)s; expresión: %(expression)s; %(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Estos valores serán utilizados por otras aplicaciones para hacer referencia a este índice." - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Hace que este índice sea visible y actualizado cuando los datos de documentos cambien." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "índice" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Instancias de índices" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Introduzca una plantilla para generar. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " - -#: models.py:118 -msgid "Indexing expression" -msgstr "expresión de indexación" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Hace que este nodo sea visible y actualizado cuando los datos de los documentos son cambiados." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Marque esta opción para que el nodo actúe como un contenedor de documentos y no como un padre para otros nodos secundarios." - -#: models.py:134 -msgid "Link documents" -msgstr "enlace de documentos" - -#: models.py:139 -msgid "Root" -msgstr "raíz" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "nodo de plantilla de indice" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "nodos de plantillas de índices" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "nodo de plantilla de indice" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valor" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documentos" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "índice de nodo de instancia" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "nodos de instancias de indices" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" -msgstr "" +msgstr "Instancia del nodo del índice de documentos" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" -msgstr "" +msgstr "Instancias de nodos de índices de documentos" #: permissions.py:7 msgid "Indexing" @@ -216,77 +220,75 @@ msgstr "Ver los índices de documentos" msgid "Rebuild document indexes" msgstr "Generar índices de documentos" -#: views.py:51 +#: views.py:49 #, python-format #| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "¿Borrar el indice: %s?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Editar índice: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Tipos de documentos disponibles" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Tipos de documentos enlazados " -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Tipos de documentos enlazados al índice: %s" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "nodos de la plantilla del árbol del índice: %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Crear nodo hijo de: %s" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "¿Borrar el nodo de plantilla de indice: %s?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "¿Editar el nodo de plantilla de indice: %s?" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navegación: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "contenido del indice: %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Nodos de indices que contienen el documento: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "En bases de datos de gran tamaño esta operación puede tardar algún tiempo en ejecutarse." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "¿Reconstruir todos los índices?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Reconstrucción de Índices en espera de forma exitosa." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" diff --git a/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.mo index 7b6a192551..aae5112ec2 100644 Binary files a/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.po index a18b5229a3..9d457d7acb 100644 --- a/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/fa/LC_MESSAGES/django.po @@ -1,74 +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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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" #: admin.py:24 msgid "None" msgstr "ناموجود" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "انواع سند" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "برچسب" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Slug" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "فعال شده" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "اقلام" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "سطح" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "آیا سند دارای پیوند است؟" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "گره" -#: handlers.py:18 -msgid "Creation date" -msgstr "تاریخ ایجاد" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "اندیس ها" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "تاریخ ایجاد" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "ایجاد اندیس" @@ -88,7 +92,7 @@ msgstr "الگوی درخت" msgid "Deletes and creates from scratch all the document indexes." msgstr "کلیه ایندکس ها پاک شده و از اول بازسازی خواهند شد." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "بازسازی اندیس ها" @@ -96,96 +100,99 @@ msgstr "بازسازی اندیس ها" msgid "New child node" msgstr "گره فرزند جدید" -#: managers.py:56 -#, python-format -msgid "" -"Error indexing document: %(document)s; expression: %(expression)s; " -"%(exception)s" -msgstr "خطای ساختن ایندکس سند: %(document)s; , عبارت : %(expression)s; %(exception)s" - -#: models.py:29 -#| msgid "Internal name used to reference this index." +#: models.py:37 msgid "This values will be used by other apps to reference this index." msgstr "" -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "باعث میشود که این ایندکس قابل رویت شود و در زمان تغییر داده سند بروز رسانی شود." +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"باعث میشود که این ایندکس قابل رویت شود و در زمان تغییر داده سند بروز رسانی " +"شود." -#: models.py:82 models.py:109 +#: models.py:117 models.py:149 msgid "Index" msgstr "اندیس" -#: models.py:101 +#: models.py:136 msgid "Index instance" msgstr "index instance" -#: models.py:102 +#: models.py:137 msgid "Index instances" msgstr "" -#: models.py:114 +#: models.py:153 msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" msgstr "" -#: models.py:118 +#: models.py:157 msgid "Indexing expression" msgstr "عبارت اندیس گذاری" -#: models.py:123 +#: models.py:162 msgid "Causes this node to be visible and updated when document data changes." -msgstr "باعث میشود که این ایندکس قابل رویت شود و در زمان تغییر داده سند بروز رسانی شود." +msgstr "" +"باعث میشود که این ایندکس قابل رویت شود و در زمان تغییر داده سند بروز رسانی " +"شود." -#: models.py:131 +#: models.py:170 msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." msgstr "بررسی شود که اینکه این گره ظرفی برای اسناد است و نه پدر گره های دیگر." -#: models.py:134 +#: models.py:173 msgid "Link documents" msgstr "اسناد پیوند" -#: models.py:139 +#: models.py:178 msgid "Root" msgstr "ریشه" -#: models.py:144 +#: models.py:236 +#, python-format +msgid "" +"Error indexing document: %(document)s; expression: %(expression)s; " +"%(exception)s" +msgstr "" +"خطای ساختن ایندکس سند: %(document)s; , عبارت : %(expression)s; %(exception)s" + +#: models.py:261 msgid "Index node template" msgstr "الگوی گره اندیس" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "الگوی گره اندیس ها" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "گره الگوی اندیس" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "مقدار" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "اسناد" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "موردی ازگره اندیس" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "موارد گره اندیس ها" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -213,77 +220,74 @@ msgstr "دیدن ایندکسهای سند" msgid "Rebuild document indexes" msgstr "بازسازی ایندکسهای سند" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "ویرایش اندیس %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "گره الگوی درخت اندیس %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "محتوا برای اندیس : %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "در پایگاه داده بزرگ این عملیات مدت زیادی بطول خواهد انجامید." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "ساخت مجدد اندیسها در صف قرار گرفت." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -345,9 +349,11 @@ msgstr "ساخت مجدد اندیسها در صف قرار گرفت." #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -384,11 +390,11 @@ msgstr "ساخت مجدد اندیسها در صف قرار گرفت." #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/fr/LC_MESSAGES/django.mo index fbfe04634f..b7747a13a6 100644 Binary files a/mayan/apps/document_indexing/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/fr/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/fr/LC_MESSAGES/django.po index 11ff9120df..4e9437a2ff 100644 --- a/mayan/apps/document_indexing/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/fr/LC_MESSAGES/django.po @@ -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: # Pierre Lhoste , 2012 @@ -11,67 +11,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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" #: admin.py:24 msgid "None" msgstr "Aucun" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Types de document" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Indexation de document" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Libellé" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Jeton" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Activé" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Éléments" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Niveau" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "Est lié à d'autres documents ?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Noeud" -#: handlers.py:18 -msgid "Creation date" -msgstr "Date de création" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indexes" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Date de création" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Créer un index" @@ -89,9 +93,10 @@ msgstr "Modèle d'arborescence" #: links.py:54 msgid "Deletes and creates from scratch all the document indexes." -msgstr "Supprimer et reconstruire les indexes des documents en partant de zéro." +msgstr "" +"Supprimer et reconstruire les indexes des documents en partant de zéro." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Reconstruire les index" @@ -99,96 +104,106 @@ msgstr "Reconstruire les index" msgid "New child node" msgstr "Nouveau noeud enfant" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" +"Ces valeurs seront utilisées par d'autres applications pour référencer cet " +"indexe." + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Permet à cet index d'être à la fois visible et mis à jour quand le contenu " +"d'un document est modifié." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Index" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Instance d'indexe" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Saisissez un modèle à restituer. Utiliser le langage de rendu de Django par " +"défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "Expression d'indexation" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Permet à ce noeud d'être visible et mis à jour quand le contenu d'un " +"document est modifié." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Cochez cette option pour permettre à ce noeud d'être un conteneur de " +"documents et pas seulement un noeud parent d'autres noeuds enfants." + +#: models.py:173 +msgid "Link documents" +msgstr "Lier les documents" + +#: models.py:178 +msgid "Root" +msgstr "Racine" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" -msgstr "Erreur lors de l'indexation du document: %(document)s; expression: %(expression)s; %(exception)s" +msgstr "" +"Erreur lors de l'indexation du document: %(document)s; expression: " +"%(expression)s; %(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Ces valeurs seront utilisées par d'autres applications pour référencer cet indexe." - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Permet à cet index d'être à la fois visible et mis à jour quand le contenu d'un document est modifié." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Index" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Instance d'indexe" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Saisissez un modèle à restituer. Utiliser le langage de rendu de Django par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "Expression d'indexation" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Permet à ce noeud d'être visible et mis à jour quand le contenu d'un document est modifié." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Cochez cette option pour permettre à ce noeud d'être un conteneur de documents et pas seulement un noeud parent d'autres noeuds enfants." - -#: models.py:134 -msgid "Link documents" -msgstr "Lier les documents" - -#: models.py:139 -msgid "Root" -msgstr "Racine" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "Noeud de modèle d'index" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "Noeud de modèle d'index" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "Noeud de modèle d'index" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valeur" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documents" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "Noeud d'instance d'index" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "Noeud d'instances d'indexes" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "Instance de noeud d'indexe de document" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "Instances de noeuds d'indexe de document" @@ -216,77 +231,74 @@ msgstr "Afficher les indexes des documents" msgid "Rebuild document indexes" msgstr "Reconstruire les indexes des documents" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Supprimer l'indexe : %s ?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Modifier l'index: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Types de document disponible" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Types de document liés" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Types de documents liés à l'indexe : %s" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "Noeuds de modèles arborescentes pour l'index: %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Créer un noeud enfant pour: %s" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "Supprimer le noeud du modèle d'indexe: %s ?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "Modifier le noeud du modèle d'index: %s" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navigation: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Contenu de l'index:%s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Noeuds d'indexe contenant le document : %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Sur de grosses bases de données, cette opération peut prendre un certain temps." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Reconstruire tous les indexes ?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "La ré-indexation en attente a été faite avec succès." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -348,9 +360,11 @@ msgstr "La ré-indexation en attente a été faite avec succès." #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -387,11 +401,11 @@ msgstr "La ré-indexation en attente a été faite avec succès." #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.mo index 605e626c6d..3483e71242 100644 Binary files a/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.po index 0c4474260c..7a708ea4e4 100644 --- a/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/hu/LC_MESSAGES/django.po @@ -1,74 +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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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" #: admin.py:24 msgid "None" msgstr "Semmi" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -88,7 +92,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -96,96 +100,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "dokumentumok" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -213,77 +215,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "A nagy adatbázisok esetében a művelet sokáig is tarthat." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -345,9 +344,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -384,11 +385,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.mo index 707653be22..4391c26ab1 100644 Binary files a/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.po index 74491109cf..03418669eb 100644 --- a/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/id/LC_MESSAGES/django.po @@ -1,74 +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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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" #: admin.py:24 msgid "None" msgstr "" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -88,7 +92,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -96,96 +100,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumen" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -213,77 +215,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Pada database yang besar pekerjaan berikut mungkin akan membutuhkan waktu untuk dilaksanakan." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -345,9 +344,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -384,11 +385,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.mo index c236cbf878..c7f39495e6 100644 Binary files a/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.po index dd51315a8b..daca814b6e 100644 --- a/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/it/LC_MESSAGES/django.po @@ -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: # Carlo Zanatto <>, 2012 @@ -12,67 +12,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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" #: admin.py:24 msgid "None" msgstr "Nessuno" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Tipi di documento" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Indicizzazione documento" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "etichetta" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Slug" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Abilitato" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Articoli" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Livello" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "Il documento ha un collegamento?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Nodo" -#: handlers.py:18 -msgid "Creation date" -msgstr "Data di creazione" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indici" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Data di creazione" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Crea indice" @@ -92,7 +96,7 @@ msgstr "Template Principale" msgid "Deletes and creates from scratch all the document indexes." msgstr "Cancellazione e ricostruzione di tutti gli indici documento" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Ricostruisci indici" @@ -100,96 +104,105 @@ msgstr "Ricostruisci indici" msgid "New child node" msgstr "Novo nodo figlio" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" +"Questo valore è utilizzato dalle altre apps per riferirsi a questo indice." + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Fa sì che questo indice possa essere visibile e aggiornato quando i dati del " +"documento cambiano." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Indice" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Instanze indice" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Inserisci il template da renderizzare. Usa il linguaggio di template di " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "Espressione di indicizzazione" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Fa sì che questo nodo possa essere visibili e aggiornato quando i dati del " +"documento cambiano." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Selezionare questa opzione per questo specifico nodo quale contenitore per i " +"documenti e non come un genitore per ulteriori nodi." + +#: models.py:173 +msgid "Link documents" +msgstr "Documenti di collegamento" + +#: models.py:178 +msgid "Root" +msgstr "Principale" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" -msgstr "Errore nell'ndicizzazione del documento: %(document)s; espressione: %(expression)s; %(exception)s" +msgstr "" +"Errore nell'ndicizzazione del documento: %(document)s; espressione: " +"%(expression)s; %(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Questo valore è utilizzato dalle altre apps per riferirsi a questo indice." - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Fa sì che questo indice possa essere visibile e aggiornato quando i dati del documento cambiano." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Indice" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Instanze indice" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Inserisci il template da renderizzare. Usa il linguaggio di template di Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "Espressione di indicizzazione" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Fa sì che questo nodo possa essere visibili e aggiornato quando i dati del documento cambiano." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Selezionare questa opzione per questo specifico nodo quale contenitore per i documenti e non come un genitore per ulteriori nodi." - -#: models.py:134 -msgid "Link documents" -msgstr "Documenti di collegamento" - -#: models.py:139 -msgid "Root" -msgstr "Principale" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "Indice del nodo Template " -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "Indici dei nodi Template" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "Indice del nodo Template" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valore" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documenti" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "Istanza nodo Indice" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "Istanze nodo indici" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "Istanza del nodo indice del documento" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "Istanze dei nodi indice del documento" @@ -217,77 +230,74 @@ msgstr "Visualizza indici documento" msgid "Rebuild document indexes" msgstr "Ricostruisci indici documento" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Cancellare l'indice: %s?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Modifica indice: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Tipi di documento disponibili" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Tipi di documento collegati" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Tipi di documento collegati all'indice: %s" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "Template principale per i nodi dell'indice: %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Crea un nodo figlio di: %s" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "Cancellare il template del nodo indice: %s?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "Modificare il template del nodo indice: %s?" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navigazione: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Contenuti per l'indice: %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Indici contenuti nel documento: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Per un database di grosse dimensioni l'operazione protrebbe aver bisogno di tempo." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Ricostruire tutti gli indici?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Ricostruzione dell'indice messo in coda." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -349,9 +359,11 @@ msgstr "Ricostruzione dell'indice messo in coda." #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -388,11 +400,11 @@ msgstr "Ricostruzione dell'indice messo in coda." #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.mo index 2b7a12d84c..1d49d5aca0 100644 Binary files a/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.po index 2295889bb4..cdd17d7fa6 100644 --- a/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.po @@ -1,86 +1,91 @@ # 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 , 2016 +# Johan Braeken, 2017 # Lucas Weel , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-09 16:41+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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" #: admin.py:24 msgid "None" msgstr "Geen" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Documentsoorten" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Documentindexering" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Label" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Ingeschakeld" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Items" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Niveau" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" -msgstr "" +msgstr "Heeft document verwijzingen?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Node" -#: handlers.py:18 -msgid "Creation date" -msgstr "Aanmaakdatum" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indexeringen" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Aanmaakdatum" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Indexering aanmaken" #: links.py:35 links.py:64 msgid "Edit" -msgstr "bewerken" +msgstr "Bewerken" #: links.py:40 links.py:68 msgid "Delete" -msgstr "Verwijder" +msgstr "Verwijderen" #: links.py:44 msgid "Tree template" @@ -88,9 +93,9 @@ msgstr "Sjabloon boomstructuur" #: links.py:54 msgid "Deletes and creates from scratch all the document indexes." -msgstr "document indexeringen vernieuwen" +msgstr "Documentindexeringen vanaf nul vernieuwen" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Opnieuw indexeren" @@ -98,96 +103,99 @@ msgstr "Opnieuw indexeren" msgid "New child node" msgstr "Nieuwe node" -#: managers.py:56 -#, python-format -msgid "" -"Error indexing document: %(document)s; expression: %(expression)s; " -"%(exception)s" -msgstr "" - -#: models.py:29 -#| msgid "Internal name used to reference this index." +#: models.py:37 msgid "This values will be used by other apps to reference this index." msgstr "" -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Maakt deze index zichtbaar en 'up-to-date' wanneer document gegevens wijzigd." +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Maakt deze index zichtbaar en 'up-to-date' wanneer document gegevens wijzigd." -#: models.py:82 models.py:109 +#: models.py:117 models.py:149 msgid "Index" msgstr "Index" -#: models.py:101 +#: models.py:136 msgid "Index instance" msgstr "index instance" -#: models.py:102 +#: models.py:137 msgid "Index instances" msgstr "" -#: models.py:114 +#: models.py:153 msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" msgstr "" -#: models.py:118 +#: models.py:157 msgid "Indexing expression" msgstr "Indexeringsexpressie" -#: models.py:123 +#: models.py:162 msgid "Causes this node to be visible and updated when document data changes." -msgstr "Maakt deze node zichtbaar en 'up-to-date' wanneer document gegevens wijzigen" +msgstr "" +"Maakt deze node zichtbaar en 'up-to-date' wanneer document gegevens wijzigen" -#: models.py:131 +#: models.py:170 msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Selecteer deze optie, wanneer deze node alleen documenten dient te bevatten. " +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Selecteer deze optie, wanneer deze node alleen documenten dient te bevatten. " -#: models.py:134 +#: models.py:173 msgid "Link documents" msgstr "Koppel documenten" -#: models.py:139 +#: models.py:178 msgid "Root" msgstr "" -#: models.py:144 +#: models.py:236 +#, python-format +msgid "" +"Error indexing document: %(document)s; expression: %(expression)s; " +"%(exception)s" +msgstr "" +"Fout bij het indexeren van document: %(document)s; uitdrukking: " +"%(expression)s; %(exception)s" + +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Waarde" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documenten" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -215,77 +223,74 @@ msgstr "Bekijk document-indexeringen" msgid "Rebuild document indexes" msgstr "documenten opnieuw indexeren" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Beschikbare documentsoorten" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Voor een grote database kan deze operatie lang duren." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -347,9 +352,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -386,11 +393,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.mo index bc6e72ca81..f49c8cb370 100644 Binary files a/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.po index 5b67bfd82d..2d8f860b2b 100644 --- a/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/pl/LC_MESSAGES/django.po @@ -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: # mic , 2012,2015 @@ -11,67 +11,73 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: admin.py:24 msgid "None" msgstr "Brak" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Typy dokumentów" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Etykieta" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Slug" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Włączony" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Pozycje" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Węzeł" -#: handlers.py:18 -msgid "Creation date" -msgstr "Data utworzenia" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indeksy" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Data utworzenia" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Tworzenie indeksu" @@ -91,7 +97,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Usuwa i tworzy od podstaw wszystkie indeksy dokumentów." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Przebudowa indeksów" @@ -99,96 +105,100 @@ msgstr "Przebudowa indeksów" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Powoduje że ten wskaźnik będzie widoczny i zaktualizowany podczas zmiany " +"danych dokumentów." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Indeks" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "Causes this node to be visible and updated when document data changes." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Powoduje że ten wskaźnik będzie widoczny i zaktualizowany podczas zmiany danych dokumentów." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Indeks" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Causes this node to be visible and updated when document data changes." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Check this option to have this node act as a container for documents and not as a parent for further nodes." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Wartość" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumenty" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -216,77 +226,74 @@ msgstr "Zobacz indeksy dokumentów" msgid "Rebuild document indexes" msgstr "Odbuduj indeksy dokumentów" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Dostępne typy dokumentów" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Zawartość indeksu: %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Węzły indeksów zawierające dokument: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Na dużych bazach danych operacja może chwilę potrwać." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -348,9 +355,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -387,11 +396,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.mo index efc7a19a4d..3a27fc14a3 100644 Binary files a/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.po index a88f2d4264..bff5d03656 100644 --- a/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/pt/LC_MESSAGES/django.po @@ -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: # Renata Oliveira , 2011 @@ -10,67 +10,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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" #: admin.py:24 msgid "None" msgstr "Nenhum" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Nome" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Slug" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Itens" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Índices" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -90,7 +94,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Exclui e cria a partir do zero todos os índices de documentos." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -98,96 +102,100 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Faz com que este índice seja visível e atualizado quando os dados do " +"documento forem alterados." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Faz com que este nó seja visível e atualizado quando os dados do documento " +"forem alterados." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Escolha esta opção para que este nó atue como contentor para documentos e " +"não como pai de outros nós." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Faz com que este índice seja visível e atualizado quando os dados do documento forem alterados." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Faz com que este nó seja visível e atualizado quando os dados do documento forem alterados." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Escolha esta opção para que este nó atue como contentor para documentos e não como pai de outros nós." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valor" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documentos" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -215,77 +223,74 @@ msgstr "Ver índices de documento" msgid "Rebuild document indexes" msgstr "Reconstruir índices de documento" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Esta operação pode levar algum tempo em bases de dados grandes." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -347,9 +352,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -386,11 +393,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.mo index a2d7540553..c7025e4d4c 100644 Binary files a/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.po index 4de82a369c..71f6ebf337 100644 --- a/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -11,67 +11,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+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" "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" #: admin.py:24 msgid "None" msgstr "Nenhum" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Tipos de Documentos" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Indexação de documentos" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Etiqueta" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "Identificador" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Habilitado" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Itens" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Nível" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "Tem links de documentos?" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Nó" -#: handlers.py:18 -msgid "Creation date" -msgstr "Data de criação" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Índices" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Data de criação" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Criar índice" @@ -91,7 +95,7 @@ msgstr "Árvore de modelo" msgid "Deletes and creates from scratch all the document indexes." msgstr "Exclui e criar a partir do zero todos os índices de documento." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Reconstruir índices de documento" @@ -99,96 +103,106 @@ msgstr "Reconstruir índices de documento" msgid "New child node" msgstr "Novo node filho" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" +"Estes valores serão utilizados por outras aplicações para fazer referência a " +"este índice." + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Faz com que este índice seja visível e atualizado quando dados de documentos " +"forem alterados." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Índice" + +#: models.py:136 +msgid "Index instance" +msgstr "Instância de índice" + +#: models.py:137 +msgid "Index instances" +msgstr "Instâncias de índice" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Insira um modelo para renderizar. Use a linguagem de modelo padrão do Django " +"(https://docs.djangoproject.com/pt-br/1.10/ref/templates/builtins/)" + +#: models.py:157 +msgid "Indexing expression" +msgstr "Indexando expressão" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Faz com que este nó seja visível e atualizado quando dados do documento " +"forem alterados." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Marque esta opção para que este nó atue como um recipiente para documentos e " +"não como um pai para outros nós secundários." + +#: models.py:173 +msgid "Link documents" +msgstr "Link de documentos" + +#: models.py:178 +msgid "Root" +msgstr "Raiz" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" -msgstr "Erro indexando documento: %(document)s; expressão: %(expression)s; %(exception)s" +msgstr "" +"Erro indexando documento: %(document)s; expressão: %(expression)s; " +"%(exception)s" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "Estes valores serão utilizados por outras aplicações para fazer referência a este índice." - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Faz com que este índice seja visível e atualizado quando dados de documentos forem alterados." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Índice" - -#: models.py:101 -msgid "Index instance" -msgstr "Instância de índice" - -#: models.py:102 -msgid "Index instances" -msgstr "Instâncias de índice" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Insira um modelo para renderizar. Use a linguagem de modelo padrão do Django (https://docs.djangoproject.com/pt-br/1.10/ref/templates/builtins/)" - -#: models.py:118 -msgid "Indexing expression" -msgstr "Indexando expressão" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Faz com que este nó seja visível e atualizado quando dados do documento forem alterados." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Marque esta opção para que este nó atue como um recipiente para documentos e não como um pai para outros nós secundários." - -#: models.py:134 -msgid "Link documents" -msgstr "Link de documentos" - -#: models.py:139 -msgid "Root" -msgstr "Raiz" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "Índice de modelo de nó" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "Indices de modelo de nó" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "Indice de modelo de índice" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valor" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documento" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "Índice de instância de nó" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "Índices instâncias de nó " -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "Instâncias do nó do índice de documentos" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "Instâncias de nós de lindice de instâncias" @@ -216,77 +230,74 @@ msgstr "Ver índices de documento" msgid "Rebuild document indexes" msgstr "Reconstruir índices de documento" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Apagar o índice: %s?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Editar Indice: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Tipos de documentos disponíveis" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Tipos de documentos vinculados" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "Tipos de documentos vinculados ao índice: %s" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "Nós de modelo da árvore do índice: %s" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "Criar nó filho de: %s" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "Excluir o nó de modelo de índice: %s?" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "Editar o nó de modelo de índice: %s?" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Navegação: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "Conteúdo para Indice? %s" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "Indexar nós contendo documento: %s" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Em grandes bases de dados esta operação pode levar algum tempo para executar." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Reconstruir todos os índices?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Índices em fila reconstruídos com sucesso." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -348,9 +359,11 @@ msgstr "Índices em fila reconstruídos com sucesso." #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -387,11 +400,11 @@ msgstr "Índices em fila reconstruídos com sucesso." #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.mo index 70c927f433..2eff12c92a 100644 Binary files a/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.po index 0d4f684543..ec55afd8e4 100644 --- a/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,67 +9,72 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: admin.py:24 msgid "None" msgstr "Nici unul" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Etichetă" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Articole" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Indexuri" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +94,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Șterge și creează de la zero toate indexurile de documente." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +102,100 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Cauză pentru acest index să fie vizibil și actualizat când documentul suferă " +"schimbări." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Cauză pentru ca acest nod să fie vizibil și actualizat atunci când datele " +"documentului se modifică." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Bifați această opțiune pentru a avea acest nod ca un container pentru " +"documente și nu ca un părinte pentru nodurile suplimentare." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Cauză pentru acest index să fie vizibil și actualizat când documentul suferă schimbări." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Cauză pentru ca acest nod să fie vizibil și actualizat atunci când datele documentului se modifică." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Bifați această opțiune pentru a avea acest nod ca un container pentru documente și nu ca un părinte pentru nodurile suplimentare." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Valoare" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Documente" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +223,74 @@ msgstr "Vezi indexul de documente" msgid "Rebuild document indexes" msgstr "Reconstruire index documente" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Pe baze de date mari, această operație poate dura ceva timp pentru a executa." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +352,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +393,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.mo index feeb6d23e4..64ac0ad5e6 100644 Binary files a/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.po index a427ce095e..4d79ee994e 100644 --- a/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,67 +9,73 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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" #: admin.py:24 msgid "None" msgstr "Ни один" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "Типы документов" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "Индексирование документа" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Надпись" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "Доступно" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "Элементы" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "Уровень" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "Узел" -#: handlers.py:18 -msgid "Creation date" -msgstr "Дата создания" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." +msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "Индексы" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "Дата создания" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "Создать индекс" @@ -89,7 +95,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "Удаляет и создается с нуля, все индексы документа." -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "Восстановление индексов" @@ -97,96 +103,97 @@ msgstr "Восстановление индексов" msgid "New child node" msgstr "Новый дочерний узел" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" +"Этот индекс должен быть видимым и обновляться при изменении данных документа." + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "Индекс" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "Экземпляры индекса" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" +"Этот узел должен быть видимым и обновляются при изменении данных документа." + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" +"Этот узел будет контейнером для документов и не будет иметь дочерних узлов." + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "Корень" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "Этот индекс должен быть видимым и обновляться при изменении данных документа." - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "Индекс" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "Экземпляры индекса" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "Этот узел должен быть видимым и обновляются при изменении данных документа." - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "Этот узел будет контейнером для документов и не будет иметь дочерних узлов." - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "Корень" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Значение" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Документы" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +221,74 @@ msgstr "Просмотр индексов документа" msgid "Rebuild document indexes" msgstr "Восстановление индексов документа" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "Удалить индекс: %s?" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "Редактировать индекс: %s" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "Доступные типы документов" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "Типы документов связаны" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "Навигация: %s" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "В больших базах данных эта операция может занять некоторое время для выполнения." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "Восстановить все индексы?" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "Восстановление индекса успешно отправлено в очередь." +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +350,11 @@ msgstr "Восстановление индекса успешно отправ #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +391,11 @@ msgstr "Восстановление индекса успешно отправ #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.mo index 0b45da13cf..9045da6741 100644 Binary files a/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.po index 4ef9bb3d4a..4cea524985 100644 --- a/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/sl_SI/LC_MESSAGES/django.po @@ -1,74 +1,79 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: admin.py:24 msgid "None" msgstr "Brez" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "Oznaka" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -88,7 +93,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -96,96 +101,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Dokumenti" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -213,77 +216,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "Če je baza velika lahko operacija zahteva nekaj več časa da se izvrši." - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -345,9 +345,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -384,11 +386,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.mo index 3b12687e1b..0e3a678cc4 100644 Binary files a/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.po index d45f72629c..eb2b30bef2 100644 --- a/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/vi_VN/LC_MESSAGES/django.po @@ -1,74 +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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19: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-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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" #: admin.py:24 msgid "None" msgstr "None" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -88,7 +92,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -96,96 +100,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "Giá trị" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "Tài liệu" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -213,77 +215,74 @@ msgstr "" msgid "Rebuild document indexes" msgstr "" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "" - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -345,9 +344,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -384,11 +385,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.mo index 49ce22f6f9..c071040c94 100644 Binary files a/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.po index 14e3e06cb6..2ff6153030 100644 --- a/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/document_indexing/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,67 +9,71 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:32+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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" #: admin.py:24 msgid "None" msgstr "无" -#: admin.py:26 apps.py:139 links.py:48 models.py:41 +#: admin.py:26 apps.py:99 links.py:48 models.py:49 msgid "Document types" msgstr "" #: apps.py:49 -#| msgid "document indexes" msgid "Document indexing" msgstr "" -#: apps.py:125 models.py:25 +#: apps.py:85 models.py:33 msgid "Label" msgstr "" -#: apps.py:126 models.py:30 +#: apps.py:86 models.py:38 msgid "Slug" msgstr "" -#: apps.py:128 apps.py:148 models.py:38 models.py:126 +#: apps.py:88 apps.py:108 models.py:46 models.py:165 msgid "Enabled" msgstr "" -#: apps.py:133 apps.py:163 apps.py:176 +#: apps.py:93 apps.py:123 apps.py:136 msgid "Items" msgstr "" -#: apps.py:144 +#: apps.py:104 msgid "Level" msgstr "" -#: apps.py:152 +#: apps.py:112 msgid "Has document links?" msgstr "" -#: apps.py:159 apps.py:170 +#: apps.py:119 apps.py:130 msgid "Node" msgstr "" -#: handlers.py:18 -msgid "Creation date" +#: forms.py:14 +msgid "Indexes to be queued for rebuilding." msgstr "" -#: links.py:18 links.py:22 links.py:25 links.py:28 models.py:83 views.py:75 -#: views.py:235 +#: forms.py:15 links.py:18 links.py:22 links.py:25 links.py:28 models.py:118 +#: views.py:73 views.py:220 msgid "Indexes" msgstr "索引" -#: links.py:31 views.py:36 +#: handlers.py:20 +msgid "Creation date" +msgstr "" + +#: links.py:31 views.py:34 msgid "Create index" msgstr "" @@ -89,7 +93,7 @@ msgstr "" msgid "Deletes and creates from scratch all the document indexes." msgstr "从所有的文档索引中删除并创建。" -#: links.py:57 +#: links.py:57 views.py:319 msgid "Rebuild indexes" msgstr "" @@ -97,96 +101,94 @@ msgstr "" msgid "New child node" msgstr "" -#: managers.py:56 +#: models.py:37 +msgid "This values will be used by other apps to reference this index." +msgstr "" + +#: models.py:43 +msgid "Causes this index to be visible and updated when document data changes." +msgstr "当文档数据变化时,将导致索引被更新和可见。" + +#: models.py:117 models.py:149 +msgid "Index" +msgstr "" + +#: models.py:136 +msgid "Index instance" +msgstr "index instance" + +#: models.py:137 +msgid "Index instances" +msgstr "" + +#: models.py:153 +msgid "" +"Enter a template to render. Use Django's default templating language " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" + +#: models.py:157 +msgid "Indexing expression" +msgstr "" + +#: models.py:162 +msgid "Causes this node to be visible and updated when document data changes." +msgstr "当文档数据变化时,导致节点被更新和可见。" + +#: models.py:170 +msgid "" +"Check this option to have this node act as a container for documents and not " +"as a parent for further nodes." +msgstr "检查当前节点是否为文档容器,而不是作为别处节点的父节点。" + +#: models.py:173 +msgid "Link documents" +msgstr "" + +#: models.py:178 +msgid "Root" +msgstr "" + +#: models.py:236 #, python-format msgid "" "Error indexing document: %(document)s; expression: %(expression)s; " "%(exception)s" msgstr "" -#: models.py:29 -#| msgid "Internal name used to reference this index." -msgid "This values will be used by other apps to reference this index." -msgstr "" - -#: models.py:35 -msgid "" -"Causes this index to be visible and updated when document data changes." -msgstr "当文档数据变化时,将导致索引被更新和可见。" - -#: models.py:82 models.py:109 -msgid "Index" -msgstr "" - -#: models.py:101 -msgid "Index instance" -msgstr "index instance" - -#: models.py:102 -msgid "Index instances" -msgstr "" - -#: models.py:114 -msgid "" -"Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "" - -#: models.py:118 -msgid "Indexing expression" -msgstr "" - -#: models.py:123 -msgid "Causes this node to be visible and updated when document data changes." -msgstr "当文档数据变化时,导致节点被更新和可见。" - -#: models.py:131 -msgid "" -"Check this option to have this node act as a container for documents and not" -" as a parent for further nodes." -msgstr "检查当前节点是否为文档容器,而不是作为别处节点的父节点。" - -#: models.py:134 -msgid "Link documents" -msgstr "" - -#: models.py:139 -msgid "Root" -msgstr "" - -#: models.py:144 +#: models.py:261 msgid "Index node template" msgstr "" -#: models.py:145 +#: models.py:262 msgid "Indexes node template" msgstr "" -#: models.py:153 +#: models.py:270 msgid "Index template node" msgstr "" -#: models.py:156 +#: models.py:273 msgid "Value" msgstr "值" -#: models.py:159 +#: models.py:277 msgid "Documents" msgstr "文档" -#: models.py:204 +#: models.py:363 msgid "Index node instance" msgstr "" -#: models.py:205 +#: models.py:364 msgid "Indexes node instances" msgstr "" -#: models.py:213 +#: models.py:372 msgid "Document index node instance" msgstr "" -#: models.py:214 +#: models.py:373 msgid "Document indexes node instances" msgstr "" @@ -214,77 +216,74 @@ msgstr "查看文档索引" msgid "Rebuild document indexes" msgstr "重建文档索引" -#: views.py:51 +#: views.py:49 #, python-format -#| msgid "Delete document indexes" msgid "Delete the index: %s?" msgstr "" -#: views.py:64 +#: views.py:62 #, python-format msgid "Edit index: %s" msgstr "" -#: views.py:81 +#: views.py:79 msgid "Available document types" msgstr "" -#: views.py:83 +#: views.py:81 msgid "Document types linked" msgstr "" -#: views.py:106 +#: views.py:96 #, python-format msgid "Document types linked to index: %s" msgstr "" -#: views.py:145 +#: views.py:135 #, python-format msgid "Tree template nodes for index: %s" msgstr "" -#: views.py:172 +#: views.py:157 #, python-format msgid "Create child node of: %s" msgstr "" -#: views.py:196 +#: views.py:181 #, python-format msgid "Delete the index template node: %s?" msgstr "" -#: views.py:218 +#: views.py:203 #, python-format msgid "Edit the index template node: %s?" msgstr "" -#: views.py:286 +#: views.py:268 #, python-format msgid "Navigation: %s" msgstr "" -#: views.py:291 +#: views.py:273 #, python-format msgid "Contents for index: %s" msgstr "" -#: views.py:331 +#: views.py:309 #, python-format msgid "Indexes nodes containing document: %s" msgstr "" -#: views.py:341 -msgid "On large databases this operation may take some time to execute." -msgstr "在大数据库中,此操作将比较耗时。" - -#: views.py:342 -msgid "Rebuild all indexes?" -msgstr "" - -#: views.py:351 +#: views.py:328 msgid "Index rebuild queued successfully." msgstr "" +#~ msgid "On large databases this operation may take some time to execute." +#~ msgstr "On large databases this operation may take some time to execute." + +#~ msgid "Rebuild all indexes?" +#~ msgstr "rebuild indexes" + #~ msgid "Index list" #~ msgstr "index list" @@ -346,9 +345,11 @@ msgstr "" #~ msgstr "Maximum suffix (%s) count reached." #~ msgid "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgstr "" -#~ "Error in document indexing update expression: %(expression)s; %(exception)s" +#~ "Error in document indexing update expression: %(expression)s; " +#~ "%(exception)s" #~ msgid "Unable to delete document indexing node; %s" #~ msgstr "Unable to delete document indexing node; %s" @@ -385,11 +386,11 @@ msgstr "" #~ msgstr "documents rename count" #~ msgid "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgstr "" -#~ "A dictionary that maps the index name and where on the filesystem that index" -#~ " will be mirrored." +#~ "A dictionary that maps the index name and where on the filesystem that " +#~ "index will be mirrored." #~ msgid "Index rebuild error: %s" #~ msgstr "Index rebuild error: %s" diff --git a/mayan/apps/document_indexing/managers.py b/mayan/apps/document_indexing/managers.py index 4eea5fd87b..b47b1b00c4 100644 --- a/mayan/apps/document_indexing/managers.py +++ b/mayan/apps/document_indexing/managers.py @@ -1,14 +1,6 @@ from __future__ import unicode_literals -import logging - -from django.db import models, transaction -from django.template import Context, Template -from django.utils.translation import ugettext_lazy as _ - -from documents.models import Document - -logger = logging.getLogger(__name__) +from django.db import models class DocumentIndexInstanceNodeManager(models.Manager): @@ -17,104 +9,25 @@ class DocumentIndexInstanceNodeManager(models.Manager): class IndexManager(models.Manager): + def index_document(self, document): + for index in self.filter(enabled=True, document_types=document.document_type): + index.index_document(document=document) + def get_by_natural_key(self, name): return self.get(name=name) + def rebuild(self): + for index in self.all(): + index.rebuild() + class IndexInstanceNodeManager(models.Manager): - @staticmethod - def delete_empty_index_nodes_recursive(instance_node): - """ - Calls itself recursively deleting empty index instance nodes up to - root - """ - - if instance_node.get_children().count() == 0: - # if there are no children, delete node and check parent for the - # same conditions - parent = instance_node.parent - if parent: - instance_node.delete() - IndexInstanceNodeManager.delete_empty_index_nodes_recursive( - parent - ) - - def cascade_eval(self, document, template_node, parent_index_instance=None): - """ - Evaluate an enabled index expression and update or create all the - related index instances also recursively calling itself to evaluate - all the index's children - """ - - if template_node.enabled: - try: - template = Template(template_node.expression) - context = Context({'document': document}) - result = template.render(context=context) - except Exception as exception: - error_message = _( - 'Error indexing document: %(document)s; expression: ' - '%(expression)s; %(exception)s' - ) % { - 'document': document, - 'expression': template_node.expression, - 'exception': exception - } - logger.debug(error_message) - else: - if result: - index_instance, created = self.get_or_create( - index_template_node=template_node, value=result, - parent=parent_index_instance - ) - - if template_node.link_documents: - index_instance.documents.add(document) - - for child in template_node.get_children(): - self.cascade_eval( - document=document, - template_node=child, - parent_index_instance=index_instance - ) - - def delete_empty_index_nodes(self): - """ - Delete empty index instance nodes - """ - - for instance_node in self.filter(documents__isnull=True, parent__isnull=False): - IndexInstanceNodeManager.delete_empty_index_nodes_recursive( - instance_node - ) - - def index_document(self, document): - """ - Update or create all the index instances related to a document - """ - - from .models import Index - - with transaction.atomic(): - self.remove_document(document) - - # Only update indexes where the document type is found - for index in Index.objects.filter(enabled=True, document_types=document.document_type): - root_instance, created = self.get_or_create( - index_template_node=index.template_root, parent=None - ) - for template_node in index.template_root.get_children(): - self.cascade_eval(document, template_node, root_instance) + def delete_empty(self): + # Select leaf nodes only because .delete_empty() bubbles up + for root_nodes in self.filter(parent=None): + for index_instance_node in root_nodes.get_leafnodes(): + index_instance_node.delete_empty() def remove_document(self, document): - for index_node in self.filter(documents=document): - index_node.documents.remove(document) - - self.delete_empty_index_nodes() - - def rebuild_all_indexes(self): - for instance_node in self.all(): - instance_node.delete() - - for document in Document.objects.all(): - self.index_document(document) + for index_instance_node in self.filter(documents=document): + index_instance_node.remove_document(document=document) diff --git a/mayan/apps/document_indexing/migrations/0011_auto_20170524_0456.py b/mayan/apps/document_indexing/migrations/0011_auto_20170524_0456.py new file mode 100644 index 0000000000..192fa3dd8e --- /dev/null +++ b/mayan/apps/document_indexing/migrations/0011_auto_20170524_0456.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.6 on 2017-05-24 04:56 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('document_indexing', '0010_documentindexinstancenode_indexinstance'), + ] + + operations = [ + migrations.AlterField( + model_name='indextemplatenode', + name='expression', + field=models.TextField( + help_text="Enter a template to render. Use Django's default " + "templating language (https://docs.djangoproject.com/en/1.7/" + "ref/templates/builtins/)", + verbose_name='Indexing expression' + ), + ), + ] diff --git a/mayan/apps/document_indexing/migrations/0012_auto_20170530_0728.py b/mayan/apps/document_indexing/migrations/0012_auto_20170530_0728.py new file mode 100644 index 0000000000..e07de36b16 --- /dev/null +++ b/mayan/apps/document_indexing/migrations/0012_auto_20170530_0728.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2017-05-30 07:28 +from __future__ import unicode_literals + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('document_indexing', '0011_auto_20170524_0456'), + ] + + operations = [ + migrations.AlterField( + model_name='index', + name='slug', + field=models.SlugField(help_text='This value will be used by other apps to reference this index.', max_length=128, unique=True, verbose_name='Slug'), + ), + migrations.AlterField( + model_name='indexinstancenode', + name='documents', + field=models.ManyToManyField(related_name='index_instance_nodes', to='documents.Document', verbose_name='Documents'), + ), + migrations.AlterField( + model_name='indexinstancenode', + name='index_template_node', + field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='index_instance_nodes', to='document_indexing.IndexTemplateNode', verbose_name='Index template node'), + ), + ] diff --git a/mayan/apps/document_indexing/models.py b/mayan/apps/document_indexing/models.py index e3499c718a..1fa15ef6b8 100644 --- a/mayan/apps/document_indexing/models.py +++ b/mayan/apps/document_indexing/models.py @@ -1,7 +1,10 @@ from __future__ import absolute_import, unicode_literals +import logging + from django.core.urlresolvers import reverse -from django.db import models +from django.db import models, transaction +from django.template import Context, Template from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext, ugettext_lazy as _ @@ -11,20 +14,27 @@ from mptt.models import MPTTModel from acls.models import AccessControlList from documents.models import Document, DocumentType from documents.permissions import permission_document_view +from lock_manager.runtime import locking_backend from .managers import ( DocumentIndexInstanceNodeManager, IndexManager, IndexInstanceNodeManager ) +logger = logging.getLogger(__name__) + @python_2_unicode_compatible class Index(models.Model): + """ + Parent model that defines an index and hold all the relationship for its + template and instance when resolved. + """ label = models.CharField( max_length=128, unique=True, verbose_name=_('Label') ) slug = models.SlugField( help_text=_( - 'This values will be used by other apps to reference this index.' + 'This value will be used by other apps to reference this index.' ), max_length=128, unique=True, verbose_name=_('Slug') ) enabled = models.BooleanField( @@ -41,14 +51,6 @@ class Index(models.Model): objects = IndexManager() - @property - def template_root(self): - return self.node_templates.get(parent=None) - - @property - def instance_root(self): - return self.template_root.node_instance.get() - def __str__(self): return self.label @@ -65,10 +67,17 @@ class Index(models.Model): """ Automatically create the root index template node """ - super(Index, self).save(*args, **kwargs) IndexTemplateNode.objects.get_or_create(parent=None, index=self) + @property + def instance_root(self): + return self.template_root.index_instance_nodes.get() + + @property + def template_root(self): + return self.node_templates.get(parent=None) + def get_document_types_names(self): return ', '.join( [ @@ -76,6 +85,34 @@ class Index(models.Model): ] or ['None'] ) + def index_document(self, document): + logger.debug('Index; Indexing document: %s', document) + self.template_root.index_document(document=document) + + def rebuild(self): + """ + Delete and reconstruct the index by deleting of all its instance nodes + and recreating them for the documents whose types are associated with + this index + """ + # Delete all index instance nodes by deleting the root index + # instance node. All child index instance nodes will be cascade + # deleted. + try: + self.instance_root.delete() + except IndexInstanceNode.DoesNotExist: + # Empty index, ignore this exception + pass + + # Create the new root index instance node + self.template_root.index_instance_nodes.create() + + # Re-index each document with a type associated with this index + for document in Document.objects.filter(document_type__in=self.document_types.all()): + # Evaluate each index template node for each document + # associated with this index. + self.index_document(document=document) + class Meta: verbose_name = _('Index') verbose_name_plural = _('Indexes') @@ -102,12 +139,16 @@ class IndexInstance(Index): @python_2_unicode_compatible class IndexTemplateNode(MPTTModel): + """ + The template to generate an index. Each entry represents a level in a + hierarchy of levels. Each level can contain further levels or a list of + documents but not both. + """ parent = TreeForeignKey('self', blank=True, null=True) index = models.ForeignKey( Index, related_name='node_templates', verbose_name=_('Index') ) - expression = models.CharField( - max_length=128, + expression = models.TextField( help_text=_( 'Enter a template to render. ' 'Use Django\'s default templating language ' @@ -138,6 +179,84 @@ class IndexTemplateNode(MPTTModel): else: return self.expression + def index_document(self, document, acquire_lock=True): + # Avoid another process to index this same document for the same + # template node. This prevents this template node's index instance + # nodes from being deleted while the template is evaluated and + # documents added to it. + if acquire_lock: + lock = locking_backend.acquire_lock( + 'indexing:indexing_template_node_{}'.format(self.pk) + ) + + # Start transaction after the lock in case the locking backend uses + # the database. + with transaction.atomic(): + logger.debug('IndexTemplateNode; Indexing document: %s', document) + + logger.debug( + 'Removing document "%s" from all index instance nodes', + document + ) + for index_template_node in self.index_instance_nodes.all(): + index_template_node.remove_document( + document=document, acquire_lock=False + ) + + if not self.parent: + logger.debug( + 'IndexTemplateNode; parent: creating empty root index ' + 'instance node' + ) + index_instance_node, created = self.index_instance_nodes.get_or_create() + + for child in self.get_children(): + child.index_document(document=document, acquire_lock=False) + + if acquire_lock: + lock.release() + + elif self.enabled: + logger.debug('IndexTemplateNode; non parent: evaluating') + logger.debug('My parent is: %s', self.parent) + logger.debug( + 'My parent nodes: %s', self.parent.index_instance_nodes.all() + ) + logger.debug( + 'IndexTemplateNode; Evaluating template: %s', self.expression + ) + + try: + context = Context({'document': document}) + template = Template(self.expression) + result = template.render(context=context) + except Exception as exception: + logger.debug('Evaluating error: %s', exception) + error_message = _( + 'Error indexing document: %(document)s; expression: ' + '%(expression)s; %(exception)s' + ) % { + 'document': document, + 'expression': self.expression, + 'exception': exception + } + logger.debug(error_message) + else: + logger.debug('Evaluation result: %s', result) + if result: + index_instance_node, created = self.index_instance_nodes.get_or_create( + parent=self.parent.index_instance_nodes.get(), + value=result + ) + if self.link_documents: + index_instance_node.documents.add(document) + + for child in self.get_children(): + child.index_document(document=document, acquire_lock=False) + finally: + if acquire_lock: + lock.release() + class Meta: verbose_name = _('Index node template') verbose_name_plural = _('Indexes node template') @@ -147,14 +266,15 @@ class IndexTemplateNode(MPTTModel): class IndexInstanceNode(MPTTModel): parent = TreeForeignKey('self', null=True, blank=True) index_template_node = models.ForeignKey( - IndexTemplateNode, related_name='node_instance', + IndexTemplateNode, related_name='index_instance_nodes', verbose_name=_('Index template node') ) value = models.CharField( blank=True, db_index=True, max_length=128, verbose_name=_('Value') ) documents = models.ManyToManyField( - Document, related_name='node_instances', verbose_name=_('Documents') + Document, related_name='index_instance_nodes', + verbose_name=_('Documents') ) objects = IndexInstanceNodeManager() @@ -193,6 +313,52 @@ class IndexInstanceNode(MPTTModel): return ' / '.join(result) + def delete_empty(self, acquire_lock=True): + """ + The argument `acquire_lock` controls whether or not this method + acquires or lock. The case for this is to acquire when called directly + or not to acquire when called as part of a larger index process + that already has a lock + """ + # Prevent another process to work on this node. We use the node's + # parent template node for the lock + if acquire_lock: + lock = locking_backend.acquire_lock( + 'indexing:indexing_template_node_{}'.format( + self.index_template_node.pk + ) + ) + # Start transaction after the lock in case the locking backend uses + # the database. + with transaction.atomic(): + if self.documents.count() == 0 and self.get_children().count() == 0: + if self.parent: + self.delete() + self.parent.delete_empty(acquire_lock=False) + if acquire_lock: + lock.release() + + def remove_document(self, document, acquire_lock=True): + """ + The argument `acquire_lock` controls whether or not this method + acquires or lock. The case for this is to acquire when called directly + or not to acquire when called as part of a larger index process + that already has a lock + """ + # Prevent another process to work on this node. We use the node's + # parent template node for the lock + if acquire_lock: + lock = locking_backend.acquire_lock( + 'indexing:indexing_template_node_{}'.format( + self.index_template_node.pk + ) + ) + self.documents.remove(document) + self.delete_empty(acquire_lock=False) + + if acquire_lock: + lock.release() + class Meta: verbose_name = _('Index node instance') verbose_name_plural = _('Indexes node instances') diff --git a/mayan/apps/document_indexing/tasks.py b/mayan/apps/document_indexing/tasks.py index a86077c7d4..500dab629c 100644 --- a/mayan/apps/document_indexing/tasks.py +++ b/mayan/apps/document_indexing/tasks.py @@ -7,7 +7,6 @@ from django.db import OperationalError from mayan.celery import app from lock_manager import LockError -from lock_manager.runtime import locking_backend from .literals import RETRY_DELAY @@ -15,23 +14,36 @@ logger = logging.getLogger(__name__) @app.task(bind=True, default_retry_delay=RETRY_DELAY, max_retries=None, ignore_result=True) -def task_delete_empty_index_nodes(self): +def task_delete_empty(self): IndexInstanceNode = apps.get_model( app_label='document_indexing', model_name='IndexInstanceNode' ) try: - rebuild_lock = locking_backend.acquire_lock( - 'document_indexing_task_do_rebuild_all_indexes' - ) + IndexInstanceNode.objects.delete_empty() except LockError as exception: - # A rebuild is happening, retry later raise self.retry(exc=exception) + + +@app.task(bind=True, default_retry_delay=RETRY_DELAY, max_retries=None, ignore_result=True) +def task_remove_document(self, document_id): + Document = apps.get_model( + app_label='documents', model_name='Document' + ) + IndexInstanceNode = apps.get_model( + app_label='document_indexing', model_name='IndexInstanceNode' + ) + + try: + document = Document.objects.get(pk=document_id) + except Document.DoesNotExist: + # Document was deleted before we could execute, abort + pass else: try: - IndexInstanceNode.objects.delete_empty_index_nodes() - finally: - rebuild_lock.release() + IndexInstanceNode.objects.remove_document(document=document) + except LockError as exception: + raise self.retry(exc=exception) @app.task(bind=True, default_retry_delay=RETRY_DELAY, max_retries=None, ignore_result=True) @@ -39,66 +51,42 @@ def task_index_document(self, document_id): Document = apps.get_model( app_label='documents', model_name='Document' ) - - IndexInstanceNode = apps.get_model( - app_label='document_indexing', model_name='IndexInstanceNode' + Index = apps.get_model( + app_label='document_indexing', model_name='Index' ) try: - rebuild_lock = locking_backend.acquire_lock( - 'document_indexing_task_do_rebuild_all_indexes' - ) - except LockError as exception: - # A rebuild is happening, retry later - raise self.retry(exc=exception) + document = Document.objects.get(pk=document_id) + except Document.DoesNotExist: + # Document was deleted before we could execute, abort about + # updating + pass else: try: - lock = locking_backend.acquire_lock( - 'document_indexing_task_update_index_document_%d' % document_id + Index.objects.index_document(document=document) + except OperationalError as exception: + logger.warning( + 'Operational error while trying to index document: ' + '%s; %s', document, exception + ) + raise self.retry(exc=exception) + except LockError as exception: + logger.warning( + 'Unable to acquire lock for document %s; %s ', + document, exception ) - except LockError as exception: - # This document is being reindexed by another task, retry later raise self.retry(exc=exception) - else: - try: - document = Document.objects.get(pk=document_id) - except Document.DoesNotExist: - # Document was deleted before we could execute, abort about - # updating - pass - else: - try: - IndexInstanceNode.objects.index_document(document) - except OperationalError as exception: - logger.warning( - 'Operational error while trying to index document: ' - '%s; %s', document, exception - ) - lock.release() - raise self.retry(exc=exception) - else: - lock.release() - finally: - lock.release() - finally: - rebuild_lock.release() @app.task(bind=True, default_retry_delay=RETRY_DELAY, ignore_result=True) -def task_do_rebuild_all_indexes(self): - IndexInstanceNode = apps.get_model( - app_label='document_indexing', model_name='IndexInstanceNode' +def task_rebuild_index(self, index_id): + Index = apps.get_model( + app_label='document_indexing', model_name='Index' ) try: - lock = locking_backend.acquire_lock( - 'document_indexing_task_do_rebuild_all_indexes' - ) + index = Index.objects.get(pk=index_id) + index.rebuild() except LockError as exception: - # Another rebuild is happening, retry later + # This index is being rebuilt by another task, retry later raise self.retry(exc=exception) - else: - try: - IndexInstanceNode.objects.rebuild_all_indexes() - finally: - lock.release() diff --git a/mayan/apps/document_indexing/tests/test_models.py b/mayan/apps/document_indexing/tests/test_models.py index c853e4b85e..dfc3831e02 100644 --- a/mayan/apps/document_indexing/tests/test_models.py +++ b/mayan/apps/document_indexing/tests/test_models.py @@ -116,7 +116,7 @@ class IndexTestCase(BaseTestCase): ), ['', '0003'] ) - # Document deleted from, index structure should update + # Document deleted, index structure should update self.document.delete() self.assertEqual( list( @@ -162,7 +162,7 @@ class IndexTestCase(BaseTestCase): self.assertEqual(list(IndexInstanceNode.objects.all()), []) # Rebuild all indexes - IndexInstanceNode.objects.rebuild_all_indexes() + Index.objects.rebuild() # Check that document is in instance node instance_node = IndexInstanceNode.objects.get(value='0001') diff --git a/mayan/apps/document_indexing/tests/test_views.py b/mayan/apps/document_indexing/tests/test_views.py index 71d14f014b..62b758d81e 100644 --- a/mayan/apps/document_indexing/tests/test_views.py +++ b/mayan/apps/document_indexing/tests/test_views.py @@ -5,7 +5,7 @@ from user_management.tests import ( TEST_USER_USERNAME, TEST_USER_PASSWORD ) -from ..models import Index, IndexInstanceNode +from ..models import Index from ..permissions import ( permission_document_indexing_create, permission_document_indexing_delete, permission_document_indexing_edit, permission_document_indexing_view @@ -128,7 +128,7 @@ class IndexViewTestCase(GenericDocumentViewTestCase): ) # Rebuild indexes - IndexInstanceNode.objects.rebuild_all_indexes() + Index.objects.rebuild() return index diff --git a/mayan/apps/document_indexing/urls.py b/mayan/apps/document_indexing/urls.py index bdf0a432cc..701265903f 100644 --- a/mayan/apps/document_indexing/urls.py +++ b/mayan/apps/document_indexing/urls.py @@ -9,9 +9,9 @@ from .api_views import ( ) from .views import ( DocumentIndexNodeListView, IndexInstanceNodeView, IndexListView, - RebuildIndexesConfirmView, SetupIndexDocumentTypesView, - SetupIndexCreateView, SetupIndexDeleteView, SetupIndexEditView, - SetupIndexListView, SetupIndexTreeTemplateListView, TemplateNodeCreateView, + RebuildIndexesView, SetupIndexDocumentTypesView, SetupIndexCreateView, + SetupIndexDeleteView, SetupIndexEditView, SetupIndexListView, + SetupIndexTreeTemplateListView, TemplateNodeCreateView, TemplateNodeDeleteView, TemplateNodeEditView ) @@ -61,7 +61,7 @@ urlpatterns = [ ), url( - r'^rebuild/all/$', RebuildIndexesConfirmView.as_view(), + r'^rebuild/all/$', RebuildIndexesView.as_view(), name='rebuild_index_instances' ), url( diff --git a/mayan/apps/document_indexing/views.py b/mayan/apps/document_indexing/views.py index 2642289c87..87dbcd84b5 100644 --- a/mayan/apps/document_indexing/views.py +++ b/mayan/apps/document_indexing/views.py @@ -8,14 +8,14 @@ from django.utils.translation import ugettext_lazy as _ from acls.models import AccessControlList from common.views import ( - AssignRemoveView, ConfirmView, SingleObjectCreateView, + AssignRemoveView, FormView, SingleObjectCreateView, SingleObjectDeleteView, SingleObjectEditView, SingleObjectListView ) from documents.models import Document, DocumentType from documents.permissions import permission_document_view from documents.views import DocumentListView -from .forms import IndexTemplateNodeForm +from .forms import IndexListForm, IndexTemplateNodeForm from .models import ( DocumentIndexInstanceNode, Index, IndexInstance, IndexInstanceNode, IndexTemplateNode @@ -25,7 +25,7 @@ from .permissions import ( permission_document_indexing_edit, permission_document_indexing_rebuild, permission_document_indexing_view ) -from .tasks import task_do_rebuild_all_indexes +from .tasks import task_rebuild_index from .widgets import node_tree @@ -248,7 +248,9 @@ class IndexInstanceNodeView(DocumentListView): return DocumentListView.get_queryset(self) else: self.object_permission = None - return self.index_instance_node.get_children().order_by('value') + return self.index_instance_node.get_children().order_by( + 'value' + ) else: self.object_permission = None return IndexInstanceNode.objects.none() @@ -312,16 +314,20 @@ class DocumentIndexNodeListView(SingleObjectListView): return DocumentIndexInstanceNode.objects.get_for(self.get_document()) -class RebuildIndexesConfirmView(ConfirmView): +class RebuildIndexesView(FormView): extra_context = { - 'message': _('On large databases this operation may take some time to execute.'), - 'title': _('Rebuild all indexes?'), + 'title': _('Rebuild indexes'), } + form_class = IndexListForm view_permission = permission_document_indexing_rebuild + def form_valid(self, form): + for index in form.cleaned_data['indexes']: + task_rebuild_index(index_id=index.pk) + + messages.success(self.request, _('Index rebuild queued successfully.')) + + return super(RebuildIndexesView, self).form_valid(form=form) + def get_post_action_redirect(self): return reverse('common:tools_list') - - def view_action(self): - task_do_rebuild_all_indexes.apply_async() - messages.success(self.request, _('Index rebuild queued successfully.')) diff --git a/mayan/apps/document_signatures/apps.py b/mayan/apps/document_signatures/apps.py index eecfad9102..b5901b8bb4 100644 --- a/mayan/apps/document_signatures/apps.py +++ b/mayan/apps/document_signatures/apps.py @@ -46,8 +46,8 @@ logger = logging.getLogger(__name__) class DocumentSignaturesApp(MayanAppConfig): app_namespace = 'signatures' app_url = 'signatures' + has_tests = True name = 'document_signatures' - test = True verbose_name = _('Document signatures') def ready(self): diff --git a/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.mo index 1b1733fe7b..4055afd3e9 100644 Binary files a/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.po index 372cfc4df4..77943af54f 100644 --- a/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -27,17 +29,15 @@ msgstr "Document signatures" msgid "Date" msgstr "Date" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Key ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "لا شيء" @@ -45,64 +45,59 @@ msgstr "لا شيء" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +133,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Signature file" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +198,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +210,60 @@ msgid "Verify document signatures" msgstr "Verify document signatures" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "On large databases this operation may take some time to execute." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.mo index a3d59316cc..16aa0ea5c6 100644 Binary files a/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.po index b0a31d6e7a..869192246c 100644 --- a/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/bg/LC_MESSAGES/django.po @@ -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: # Pavlin Koldamov , 2012 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "Сигнатури на документа" msgid "Date" msgstr "Дата" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Ключ ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Няма" @@ -45,64 +44,59 @@ msgstr "Няма" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Файл със сигнатура" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "Изтриване на несвързани сигнатури" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,62 @@ msgid "Verify document signatures" msgstr "Проверете сигнатурите на документа" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "При големи бази данни тази операция може да отнеме известно време за изпълнение." +msgstr "" +"При големи бази данни тази операция може да отнеме известно време за " +"изпълнение." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.mo index 270f10e31d..875a1271b0 100644 Binary files a/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.po index 1b58bda6c4..cfe727f597 100644 --- a/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -27,17 +29,15 @@ msgstr "Potpisi dokumenta" msgid "Date" msgstr "Datum" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID ključa" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nijedno" @@ -45,64 +45,59 @@ msgstr "Nijedno" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +133,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Datoteka potpisa" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +198,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +210,60 @@ msgid "Verify document signatures" msgstr "Provjeriti potpise dokumenta" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Na velikim bazama podataka ove operacije mogu potrajati neko vrijeme." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.mo index 9a860e1962..00d6aca64f 100644 Binary files a/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.po index 2bb0e24574..10d56f0d02 100644 --- a/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/da/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -26,17 +27,15 @@ msgstr "" msgid "Date" msgstr "Dato" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Ingen" @@ -44,64 +43,59 @@ msgstr "Ingen" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +131,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +196,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +208,60 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "På store databaser kan denne operation tage lidt tid at udføre." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.mo index 4eb6b4ed82..d45ab8d3a8 100644 Binary files a/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po index 337be4e52f..72b203ea2a 100644 --- a/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Berny , 2015 @@ -13,14 +13,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-20 22:09+0000\n" "Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -31,17 +32,15 @@ msgstr "Dokumentenunterschriften" msgid "Date" msgstr "Datum" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Schlüssel-ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "Unterschrifts-ID" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nichts" @@ -49,64 +48,59 @@ msgstr "Nichts" msgid "Type" msgstr "Typ" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Schlüssel" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Passphrase" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "Eingebettete Unterschrift?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Datum der Unterschrift" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "Unterschrifts-Schlüssel-ID" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "Unterschrifts-Schlüssel vorhanden?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Schlüssel-Fingerabdruck" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Erstellungsdatum des Schlüssels" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Ablaufdatum des Schlüssels" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Schlüssellänge" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Schlüssel-Verfahren" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "Schlüssel-Benutzer-ID" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Schlüssel-Typ" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Alle Dokumente überprüfen" @@ -142,55 +136,55 @@ msgstr "Unterschrift seperat" msgid "Sign embedded" msgstr "Unterschrift eingebettet" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Dokumentenversion" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Datum der Signierung" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Fingerabdruck des öffentlichen Schlüssels" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Dokumentenversion Unterschrift" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Dokumentenversionen Unterschriften" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Separat" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Eingebettet" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Dokumentenversion der eingebetteten Unterschrift" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Dokumentenversion der eingebetteten Unterschriften" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Unterschriftsdatei" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Dokumentenversion der seperaten Unterschrift" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Dokumentenversion der seperaten Unterschriften" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "Unterschrift" @@ -207,12 +201,10 @@ msgid "Delete detached signatures" msgstr "Separate Unterschriften löschen" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Separate Unterschriften der Dokumente herunterladen" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Separate Unterschriften der Dokumente hochladen" @@ -221,63 +213,61 @@ msgid "Verify document signatures" msgstr "Dokumentenunterschriften überprüfen" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Details der Unterschriften des Dokuments" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "Passphrase wird benötigt um den Schlüssel zu entsperren" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Passphrase ist ungültig" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "Dokumentenversion wurde erfolgreich signiert." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Dokumentenversion \"%s\" mit seperater Unterschrift signieren" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Dokumentenversion \"%s\" mit eingebetteter Unterschrift signieren" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Separate Unterschrift löschen: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Details für Signatur: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Unterschriften für Dokumentenversion: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Seperate Unterschrift für Dokumentenversion hochladen: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Bei großen Datenbanken kann dieser Vorgang einige Zeit in Anspruch nehmen." +msgstr "" +"Bei großen Datenbanken kann dieser Vorgang einige Zeit in Anspruch nehmen." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Alle Unterschriften der Dokumente überprüfen?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Überprüfung der Unterschriften erfolgreich eingereiht." diff --git a/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.mo index 76295457a5..7cda87b10e 100644 Binary files a/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po index 9905a89654..d2d894e5c9 100644 --- a/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -26,19 +26,19 @@ msgstr "Document signatures" msgid "Date" msgstr "" -#: apps.py:94 models.py:37 +#: apps.py:94 models.py:47 #, fuzzy #| msgid "Key ID: %s" msgid "Key ID" msgstr "Key ID: %s" -#: apps.py:98 forms.py:71 models.py:41 +#: apps.py:98 forms.py:64 models.py:51 #, fuzzy #| msgid "Signature ID: %s" msgid "Signature ID" msgstr "Signature ID: %s" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "" @@ -46,63 +46,63 @@ msgstr "" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 +#: forms.py:46 #, fuzzy #| msgid "Signature file" msgid "Signature is embedded?" msgstr "Signature file" -#: forms.py:55 +#: forms.py:48 #, fuzzy #| msgid "Signature file" msgid "Signature date" msgstr "Signature file" -#: forms.py:58 +#: forms.py:51 #, fuzzy #| msgid "Signature ID: %s" msgid "Signature key ID" msgstr "Signature ID: %s" -#: forms.py:60 +#: forms.py:53 #, fuzzy #| msgid "Signature type: %s" msgid "Signature key present?" msgstr "Signature type: %s" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" @@ -150,65 +150,65 @@ msgstr "detached" msgid "Sign embedded" msgstr "embedded" -#: models.py:31 +#: models.py:41 #, fuzzy msgid "Document version" msgstr "document version" -#: models.py:35 +#: models.py:45 #, fuzzy msgid "Date signed" msgstr "download signature" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 #, fuzzy msgid "Document version signature" msgstr "document version signature" -#: models.py:52 +#: models.py:62 #, fuzzy msgid "Document version signatures" msgstr "document version signatures" -#: models.py:71 +#: models.py:81 #, fuzzy msgid "Detached" msgstr "detached" -#: models.py:73 +#: models.py:83 #, fuzzy msgid "Embedded" msgstr "embedded" -#: models.py:88 +#: models.py:98 #, fuzzy msgid "Document version embedded signature" msgstr "document version signature" -#: models.py:89 +#: models.py:99 #, fuzzy msgid "Document version embedded signatures" msgstr "document version signatures" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Signature file" -#: models.py:126 +#: models.py:136 #, fuzzy msgid "Document version detached signature" msgstr "document version signature" -#: models.py:127 +#: models.py:137 #, fuzzy msgid "Document version detached signatures" msgstr "document version signatures" -#: models.py:130 +#: models.py:140 #, fuzzy msgid "signature" msgstr "signatures" @@ -250,61 +250,61 @@ msgstr "Verify document signatures" msgid "View details of document signatures" msgstr "Verify document signatures" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 #, fuzzy msgid "Document version signed successfully." msgstr "document version signatures" -#: views.py:129 +#: views.py:117 #, fuzzy, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "document version signature" -#: views.py:240 +#: views.py:218 #, fuzzy, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "document version signature" -#: views.py:267 +#: views.py:245 #, fuzzy, python-format msgid "Delete detached signature: %s" msgstr "Download detached signatures" -#: views.py:292 +#: views.py:270 #, fuzzy, python-format #| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Document signatures" -#: views.py:339 +#: views.py:312 #, fuzzy, python-format msgid "Signatures for document version: %s" msgstr "signature properties for: %s" -#: views.py:375 +#: views.py:343 #, fuzzy, python-format msgid "Upload detached signature for document version: %s" msgstr "Upload detached signature for: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "" -#: views.py:393 +#: views.py:361 #, fuzzy #| msgid "Verify document signatures" msgid "Verify all document for signatures?" msgstr "Verify document signatures" -#: views.py:403 +#: views.py:371 #, fuzzy msgid "Signature verification queued successfully." msgstr "Detached signature uploaded successfully." diff --git a/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.mo index 966a6c96d7..996d6e5803 100644 Binary files a/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.po index 3cc61a9523..a4319b3765 100644 --- a/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/es/LC_MESSAGES/django.po @@ -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: # jmcainzos , 2014 @@ -12,14 +12,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-23 06:48+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:51 permissions.py:8 settings.py:7 @@ -30,17 +31,15 @@ msgstr "Firmas de documentos" msgid "Date" msgstr "Fecha" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Identificador de clave" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID de firma" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Ninguno" @@ -48,64 +47,59 @@ msgstr "Ninguno" msgid "Type" msgstr "Tipo" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Llave" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Contraseña" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "¿Firma integrada?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Fecha de la firma" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "ID de llave de firma" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "¿Llave de la firma presente?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Huella de la llave" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Fecha de creación de la llave" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Fecha de expiración de la llave" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Tamaño de la llave" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Algoritmo de la llave" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "ID de usuario de la llave" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Tipo de llave" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Verificar todos los documents" @@ -141,55 +135,55 @@ msgstr "Firma aparte" msgid "Sign embedded" msgstr "Firma integrada" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Versión de documento" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Fecha firmado" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Huella de llave publica" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Firma de versión de documento" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Firmas de versión de documento" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Aparte" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Integrado" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Firma integrada de versión de documento" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Firmas integradas de version de documento" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Archivo de firma" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Firma anejada de version de documento" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Firmas anejadas de version de documento" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "firma" @@ -206,12 +200,10 @@ msgid "Delete detached signatures" msgstr "Borrar firmas separadas" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Descargar firma aparte de documentos" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Subir firmas aparte de documentos" @@ -220,63 +212,62 @@ msgid "Verify document signatures" msgstr "Verificar firmas de documentos" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Ver detalles de firma de documentos" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "Se necesita contraseña para acceder a esta llave." -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Contraseña incorrecta." -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "Versión de documento firmada con éxito." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Firmar versión de documento \"%s\" con una firma aparte " -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Firmar versión de documento \"%s\" con una firma integrada" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Borrar firma aparte: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Detalles para la firma: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Firmas para la versión de documento: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Subir firma aparte para la versión de documento: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "En bases de datos de gran tamaño esta operación puede tardar algún tiempo en ejecutarse." +msgstr "" +"En bases de datos de gran tamaño esta operación puede tardar algún tiempo en " +"ejecutarse." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "¿Verificar todos los documentos para firmas?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Verificación de firmas colocada en la cola." diff --git a/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.mo index 5339cabc60..d05e53cb2a 100644 Binary files a/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.po index fc81baf490..2e047f9478 100644 --- a/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/fa/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -26,17 +27,15 @@ msgstr "امضاهای سند" msgid "Date" msgstr "تاریخ" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "شناسه کلید" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "هیچ" @@ -44,64 +43,59 @@ msgstr "هیچ" msgid "Type" msgstr "نوع" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +131,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "نسخه سند" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "امضای نسخه سند" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "امضاهای نسخه سند" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "جدا شده" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "داخلی و یا جا سازی شده" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "فایل امضا" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +196,10 @@ msgid "Delete detached signatures" msgstr "حذف امضاهای جدا شده" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +208,60 @@ msgid "Verify document signatures" msgstr "بررسی امضای سند" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "در پایگاه داده بزرگ این عملیات مدت زیادی بطول خواهد انجامید." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.mo index d78dac99aa..2b6ce1db36 100644 Binary files a/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.po index f575ff469c..f4077f327a 100644 --- a/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/fr/LC_MESSAGES/django.po @@ -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: # Bruno CAPELETO , 2016 @@ -12,14 +12,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-05-23 19:54+0000\n" "Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -30,17 +31,15 @@ msgstr "Signatures du document" msgid "Date" msgstr "Date" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID de la clé" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID de la signature" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Aucune" @@ -48,64 +47,59 @@ msgstr "Aucune" msgid "Type" msgstr "Type" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Clé" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Phrase secrète" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "La signature est-elle intégrée?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Date de la signature" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "Identifiant de la clef de signature" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "Clé de signature présente?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Emprunte de la clef" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Date de création de la clé" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Date d'expiration de la clé" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Longueur de la clé" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Algorithme de la clé" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "Clé de l'ID utilisateur" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Type de clé" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Vérifier tous les documents" @@ -141,55 +135,55 @@ msgstr "Signature détachée" msgid "Sign embedded" msgstr "Signature intégrée" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Version du document" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Date de signature" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Emprunte de la clef publique" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Signature de la version du document" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Signatures pour la version du document" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Externe" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Intégré" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Signature intégrée de la version du document" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Signatures intégrées de la version du document" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Fichier de signature" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Signature externe de la version du document" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Signatures externes de la version du document" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "signature" @@ -206,12 +200,10 @@ msgid "Delete detached signatures" msgstr "Suppression des signatures détachées" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Télécharger les signatures externes du document" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Transmettre les signatures externes du document" @@ -220,63 +212,62 @@ msgid "Verify document signatures" msgstr "Vérifier les signatures du document" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Voir le détails des signatures du document" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "Une phrase secrète est nécessaire pour déverrouiller cette clé" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Phrase secrète incorrecte" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "Signature de la version du document réussie." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Signer la version \"%s\" du document avec une signature externe" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Signer la version \"%s\" du document avec une signature intégrée" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Supprimer la signature détachée: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Détails de la signature: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Signatures pour cette version du document: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Transférer une signature détachée pour la version du document: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Sur de grosses bases de données, cette opération peut prendre un certain temps." +msgstr "" +"Sur de grosses bases de données, cette opération peut prendre un certain " +"temps." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Vérifier la signature des documents?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Vérification de la signature ajoutée à la file d'attente" diff --git a/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.mo index 41a1aa6146..b97959be9b 100644 Binary files a/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.po index 0180d893cc..cd6c0ac816 100644 --- a/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/hu/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -26,17 +27,15 @@ msgstr "" msgid "Date" msgstr "" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Semmi" @@ -44,64 +43,59 @@ msgstr "Semmi" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +131,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +196,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +208,60 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "A nagy adatbázisok esetében a művelet sokáig is tarthat." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.mo index 3667e8c279..fa78f1a7e8 100644 Binary files a/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.po index d5e39cb143..4ef6ff2c40 100644 --- a/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/id/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -26,17 +27,15 @@ msgstr "" msgid "Date" msgstr "" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "" @@ -44,64 +43,59 @@ msgstr "" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +131,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +196,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +208,62 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Pada database yang besar pekerjaan berikut mungkin akan membutuhkan waktu untuk dilaksanakan." +msgstr "" +"Pada database yang besar pekerjaan berikut mungkin akan membutuhkan waktu " +"untuk dilaksanakan." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.mo index 58b430eeda..d647d4a93c 100644 Binary files a/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.po index c7f2f178eb..48dd34a632 100644 --- a/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/it/LC_MESSAGES/django.po @@ -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: # Carlo Zanatto <>, 2012 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-09-24 13:19+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -29,17 +30,15 @@ msgstr "Firme documento" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID Chiave" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID Firma" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nessuno" @@ -47,64 +46,59 @@ msgstr "Nessuno" msgid "Type" msgstr "Tipo" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Chiave" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Passphrase" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "La firma è integrata?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Data firma" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "ID chiave di firma" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "La chiave di firma è presente?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Impronta della chiave" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Data di creazione chiave" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Data scadenza chiave" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Lunghezza chiave" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Algoritmo chiave" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "ID chiave utente" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Tipo chiave" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Verifica tutti i documenti" @@ -140,55 +134,55 @@ msgstr "Firma scollegata" msgid "Sign embedded" msgstr "Firma incorporata" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Versione documento" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Data firma" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Chiave pubblica impronta" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Versione della firma del documento" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Versioni delle firma del documento" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Distaccato" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Incorporata" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Firma incorporata versione documento" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Firme incorporate versione documento" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "File della firma" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Firma versione del documento distaccata" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Firma distaccata versione dei documenti" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "firma" @@ -205,12 +199,10 @@ msgid "Delete detached signatures" msgstr "Elimina firme allegate" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Scarica firme scollegate documenti" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Carica firme scollegate documenti" @@ -219,63 +211,62 @@ msgid "Verify document signatures" msgstr "Verifica la firma del documento" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Vedi dettagli delle firme documento" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "è richiesta la passphrase per sbloccare questa chiave." -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "La passphrase non è corretta." -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "La versione del documento è stata firmata con successo." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Firma la versione del documento \"%s\" con firma allegata" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Firma la versione del documento \"%s\" con la firma integrata" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Cancella la firma allegata: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Dettagli per la firma: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Firme per la versione del documento: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Carica la firma scollegata per la versione documento: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Per un database di grosse dimensioni l'operazione protrebbe aver bisogno di tempo." +msgstr "" +"Per un database di grosse dimensioni l'operazione protrebbe aver bisogno di " +"tempo." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Verificare le firme per tutti i documenti?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Verifica firme messo in coda con successo." diff --git a/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.mo index c3ff84a49d..092ae431c2 100644 Binary files a/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.po index 066f1c5c20..734f31fb28 100644 --- a/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-09 16:39+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "Documenthandtekeningen" msgid "Date" msgstr "Datum" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Sleutel-ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "Handtekening-ID" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Geen" @@ -45,64 +44,59 @@ msgstr "Geen" msgid "Type" msgstr "Type" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Sleutel" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Datum van handtekening" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "Handtekening sleutel-ID" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Sleutelverloopdatu" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Sleutellengte" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Sleutelsoort" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Verifieer alle documenten" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "Teken ingesloten" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Documentversie" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Losgekoppeld" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Ingesloten" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Handtekeningbestand" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "Handtekening" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,60 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Voor een grote database kan deze operatie lang duren." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.mo index 9097a5b7f7..f995fbf736 100644 Binary files a/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.po index d6762f34f8..7b416db05b 100644 --- a/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/pl/LC_MESSAGES/django.po @@ -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: # mic , 2012 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -27,17 +29,15 @@ msgstr "Document signatures" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Key ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Brak" @@ -45,64 +45,59 @@ msgstr "Brak" msgid "Type" msgstr "Typ" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +133,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Wersja dokumentu" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Signature file" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +198,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +210,60 @@ msgid "Verify document signatures" msgstr "Verify document signatures" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Na dużych bazach danych operacja może chwilę potrwać." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.mo index e95fd25660..3ed372d876 100644 Binary files a/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.po index 60ae06c37e..3e6debac58 100644 --- a/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/pt/LC_MESSAGES/django.po @@ -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: # Vítor Figueiró , 2012 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "Assinaturas do documento" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID da chave" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nenhum" @@ -45,64 +44,59 @@ msgstr "Nenhum" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Ficheiro de assinatura" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,60 @@ msgid "Verify document signatures" msgstr "Verificar as assinaturas do documento" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Esta operação pode levar algum tempo em bases de dados grandes." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.mo index 87da528bb5..6e9f51a820 100644 Binary files a/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.po index c0e3f7f3b5..7096124e2c 100644 --- a/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-11-17 22:53+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -28,17 +29,15 @@ msgstr "Assinaturas de documentos" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID da chave" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID da assinatura" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nenhum" @@ -46,64 +45,59 @@ msgstr "Nenhum" msgid "Type" msgstr "Tipo" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Chave" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Senha" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "Assinatura integrada?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Data da assinatura" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "ID da chave da assinatura" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "Chave da assinatura presente?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Impressão digital da chave" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Data de criação da chave" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Data de expiração da chave" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Tamanho da chave" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Algoritmo da chave" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "ID de usuário da chave" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Tipo de chave" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Verificar todos os documentos" @@ -139,55 +133,55 @@ msgstr "Assinatura destacada" msgid "Sign embedded" msgstr "Assinatura integrada" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Versão do Documento" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Data da assinatura" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Impressão digital da chave pública" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Versão do documento da assinatura " -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Versão do documento das assinaturas" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "destacado" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "embutido" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Versão do documento da assinatura integrada" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Versão do documento das assinaturas integradas" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Arquivo de assinatura" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Versão do documento da assinatura destacada" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Versão do documento das assinaturas destacadas" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "assinatura" @@ -204,12 +198,10 @@ msgid "Delete detached signatures" msgstr "Excluir assinaturas desanexados" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Baixar assinatura destacada de documentos" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Carregar assinaturas destacadas de documentos" @@ -218,63 +210,61 @@ msgid "Verify document signatures" msgstr "Verificar as assinaturas de documentos" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Ver detalhes da assinatura de documentos" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "É preciso senha para acessar a chave." -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Senha incorreta." -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "A versão do documento foi assinada com sucesso." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Assinar a versão do documento \"%s\" com uma assinatura destacada" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Assinar uma versão do documento \"%s\" com uma assinatura integrada" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Excluir assinatura destacada: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Detalhes para a assinatura: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Assinaturas para a versão do documento: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Carregar a assinatura destacada para a versão do documento: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Em grandes bases de dados esta operação pode levar algum tempo para executar." +msgstr "" +"Em grandes bases de dados esta operação pode levar algum tempo para executar." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Verificar todos os documentos para assinaturas?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Verificação de assinaturas colocada em fila." diff --git a/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.mo index 97d263275e..ac1f1121c7 100644 Binary files a/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.po index b02cd1679c..6fb87518fd 100644 --- a/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -27,17 +29,15 @@ msgstr "Document de semnături" msgid "Date" msgstr "Data" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID cheie" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Nici unul" @@ -45,64 +45,59 @@ msgstr "Nici unul" msgid "Type" msgstr "Tip" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +133,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Versiune document" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Fisier semnătura" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +198,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +210,61 @@ msgid "Verify document signatures" msgstr "Verifica semnăturile de documente" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "Pe baze de date mari, această operație poate dura ceva timp pentru a executa." +msgstr "" +"Pe baze de date mari, această operație poate dura ceva timp pentru a executa." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.mo index f66faf89e3..1cb5e15ea2 100644 Binary files a/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.po index 5a32610ce7..640ed250c2 100644 --- a/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -10,15 +10,18 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-07-19 20:01+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -28,17 +31,15 @@ msgstr "Подписи документа" msgid "Date" msgstr "Дата" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "ID ключа" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "ID подписи" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Ни один" @@ -46,64 +47,59 @@ msgstr "Ни один" msgid "Type" msgstr "Тип" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "Ключ" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "Кодовая фраза" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "Подпись встроена?" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "Дата подписи" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "ID ключа подписи" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "Ключ подписи предоставлен?" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "Отпечаток ключа" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "Дата создания ключа" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "Дата устаревания ключа" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "Длина ключа" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "Алгоритм ключа" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "ID пользователя ключа" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "Тип ключа" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "Проверить все документы" @@ -139,55 +135,55 @@ msgstr "Подпись отеделена" msgid "Sign embedded" msgstr "Подпись встроена" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "Версия документа" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "Дата подписи" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "Отпечаток публичного ключа" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "Подпись версии документа" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "Подписи версий документов" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "Отделена" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "Встроена" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "Встроенная подпись версии документа" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "Встроенные подписи версий документов" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "Файл подписи" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "Отделённая подпись версии документа" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "Отделённые подписи версий документов" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "подпись" @@ -204,12 +200,10 @@ msgid "Delete detached signatures" msgstr "Удаление отделенных подписей" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "Скачать отделенные подписи документов" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "Вгрузить отделенные подписи документов" @@ -218,63 +212,62 @@ msgid "Verify document signatures" msgstr "Проверить подпись документа" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "Посмотреть подробности подписей документов" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "Для разблокироваки этого ключа необходима кодовая фраза" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "Кодовая фраза неверна." -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "Версия документа успешно подписана." -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "Подписать версию документа \"%s\" отделённой подписью" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "Подписать версию документа \"%s\" встроенной подписью" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "Удалить отделённую подпись: %s" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "Подробности для подписи: %s" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "Подписи для документа версии: %s" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "Выгрузить отделённую подпись для версии документа: %s" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." -msgstr "В больших базах данных эта операция может занять некоторое время для выполнения." +msgstr "" +"В больших базах данных эта операция может занять некоторое время для " +"выполнения." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "Проверить подписи во всех документах?" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "Верификация сигнатуры добавлена в очередь." diff --git a/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.mo index 89a180821a..70e0cd4442 100644 Binary files a/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.po index 50e13a83cc..b65172f98c 100644 --- a/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/sl_SI/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # 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-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:51 permissions.py:8 settings.py:7 msgid "Document signatures" @@ -26,17 +28,15 @@ msgstr "" msgid "Date" msgstr "" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "Brez" @@ -44,64 +44,59 @@ msgstr "Brez" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -137,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -202,12 +197,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -216,63 +209,60 @@ msgid "Verify document signatures" msgstr "" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "Če je baza velika lahko operacija zahteva nekaj več časa da se izvrši." -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.mo index 47fe2505cb..9075060959 100644 Binary files a/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.po index 2a771651f4..e0e5dafae0 100644 --- a/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "Chữ kí tài liệu" msgid "Date" msgstr "Ngày" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "Key ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "None" @@ -45,64 +44,59 @@ msgstr "None" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "File lưu chữ kí" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,60 @@ msgid "Verify document signatures" msgstr "xác nhận chữ kí tài liệu" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "" -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.mo index 89fda776a7..3864017893 100644 Binary files a/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.po index 4cd853a3a0..498c5974a8 100644 --- a/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/document_signatures/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2016-04-27 18:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:51 permissions.py:8 settings.py:7 @@ -27,17 +28,15 @@ msgstr "文档签名" msgid "Date" msgstr "日期" -#: apps.py:94 models.py:37 -#| msgid "Key ID: %s" +#: apps.py:94 models.py:47 msgid "Key ID" msgstr "密钥ID" -#: apps.py:98 forms.py:71 models.py:41 -#| msgid "Signature ID: %s" +#: apps.py:98 forms.py:64 models.py:51 msgid "Signature ID" msgstr "" -#: apps.py:99 forms.py:83 +#: apps.py:99 forms.py:76 msgid "None" msgstr "无" @@ -45,64 +44,59 @@ msgstr "无" msgid "Type" msgstr "" -#: forms.py:23 +#: forms.py:21 msgid "Key" msgstr "" -#: forms.py:27 +#: forms.py:25 msgid "Passphrase" msgstr "" -#: forms.py:53 -#| msgid "Signature file" +#: forms.py:46 msgid "Signature is embedded?" msgstr "" -#: forms.py:55 -#| msgid "Signature file" +#: forms.py:48 msgid "Signature date" msgstr "" -#: forms.py:58 -#| msgid "Signature ID: %s" +#: forms.py:51 msgid "Signature key ID" msgstr "" -#: forms.py:60 -#| msgid "Signature type: %s" +#: forms.py:53 msgid "Signature key present?" msgstr "" -#: forms.py:73 +#: forms.py:66 msgid "Key fingerprint" msgstr "" -#: forms.py:77 +#: forms.py:70 msgid "Key creation date" msgstr "" -#: forms.py:82 +#: forms.py:75 msgid "Key expiration date" msgstr "" -#: forms.py:87 +#: forms.py:80 msgid "Key length" msgstr "" -#: forms.py:91 +#: forms.py:84 msgid "Key algorithm" msgstr "" -#: forms.py:95 +#: forms.py:88 msgid "Key user ID" msgstr "" -#: forms.py:99 +#: forms.py:92 msgid "Key type" msgstr "" #: links.py:32 -#| msgid "Verify document signatures" msgid "Verify all documents" msgstr "" @@ -138,55 +132,55 @@ msgstr "" msgid "Sign embedded" msgstr "" -#: models.py:31 +#: models.py:41 msgid "Document version" msgstr "" -#: models.py:35 +#: models.py:45 msgid "Date signed" msgstr "" -#: models.py:45 +#: models.py:55 msgid "Public key fingerprint" msgstr "" -#: models.py:51 +#: models.py:61 msgid "Document version signature" msgstr "" -#: models.py:52 +#: models.py:62 msgid "Document version signatures" msgstr "" -#: models.py:71 +#: models.py:81 msgid "Detached" msgstr "" -#: models.py:73 +#: models.py:83 msgid "Embedded" msgstr "" -#: models.py:88 +#: models.py:98 msgid "Document version embedded signature" msgstr "" -#: models.py:89 +#: models.py:99 msgid "Document version embedded signatures" msgstr "" -#: models.py:122 +#: models.py:132 msgid "Signature file" msgstr "签名文件" -#: models.py:126 +#: models.py:136 msgid "Document version detached signature" msgstr "" -#: models.py:127 +#: models.py:137 msgid "Document version detached signatures" msgstr "" -#: models.py:130 +#: models.py:140 msgid "signature" msgstr "" @@ -203,12 +197,10 @@ msgid "Delete detached signatures" msgstr "删除分离的签名" #: permissions.py:25 -#| msgid "Download detached signatures" msgid "Download detached document signatures" msgstr "" #: permissions.py:29 -#| msgid "Upload detached signatures" msgid "Upload detached document signatures" msgstr "" @@ -217,63 +209,60 @@ msgid "Verify document signatures" msgstr "核对文档签名" #: permissions.py:37 -#| msgid "Verify document signatures" msgid "View details of document signatures" msgstr "" -#: views.py:67 views.py:172 +#: views.py:60 views.py:155 msgid "Passphrase is needed to unlock this key." msgstr "" -#: views.py:77 views.py:182 +#: views.py:70 views.py:165 msgid "Passphrase is incorrect." msgstr "" -#: views.py:98 views.py:202 +#: views.py:91 views.py:185 msgid "Document version signed successfully." msgstr "" -#: views.py:129 +#: views.py:117 #, python-format msgid "Sign document version \"%s\" with a detached signature" msgstr "" -#: views.py:240 +#: views.py:218 #, python-format msgid "Sign document version \"%s\" with a embedded signature" msgstr "" -#: views.py:267 +#: views.py:245 #, python-format msgid "Delete detached signature: %s" msgstr "" -#: views.py:292 +#: views.py:270 #, python-format -#| msgid "Document signatures" msgid "Details for signature: %s" msgstr "" -#: views.py:339 +#: views.py:312 #, python-format msgid "Signatures for document version: %s" msgstr "" -#: views.py:375 +#: views.py:343 #, python-format msgid "Upload detached signature for document version: %s" msgstr "" -#: views.py:392 +#: views.py:360 msgid "On large databases this operation may take some time to execute." msgstr "在大数据库中,此操作将比较耗时。" -#: views.py:393 -#| msgid "Verify document signatures" +#: views.py:361 msgid "Verify all document for signatures?" msgstr "" -#: views.py:403 +#: views.py:371 msgid "Signature verification queued successfully." msgstr "" diff --git a/mayan/apps/document_signatures/models.py b/mayan/apps/document_signatures/models.py index 53dcff0de7..fede657b90 100644 --- a/mayan/apps/document_signatures/models.py +++ b/mayan/apps/document_signatures/models.py @@ -26,6 +26,16 @@ def upload_to(*args, **kwargs): @python_2_unicode_compatible class SignatureBaseModel(models.Model): + """ + Fields: + * key_id - Key Identifier - This is what identifies uniquely a key. Not + two keys in the world have the same Key ID. The Key ID is also used to + locate a key in the key servers: http://pgp.mit.edu + * signature_id - Signature ID - Every time a key is used to sign something + it will generate a unique signature ID. No two signature IDs are the same, + even when using the same key. + """ + document_version = models.ForeignKey( DocumentVersion, editable=False, related_name='signatures', verbose_name=_('Document version') diff --git a/mayan/apps/document_states/admin.py b/mayan/apps/document_states/admin.py index 9243c1cc65..6bdac355b2 100644 --- a/mayan/apps/document_states/admin.py +++ b/mayan/apps/document_states/admin.py @@ -30,7 +30,7 @@ class WorkflowAdmin(admin.ModelAdmin): filter_horizontal = ('document_types',) inlines = (WorkflowStateInline, WorkflowTransitionInline) - list_display = ('label', 'document_types_list') + list_display = ('label', 'internal_name', 'document_types_list') @admin.register(WorkflowInstance) diff --git a/mayan/apps/document_states/api_views.py b/mayan/apps/document_states/api_views.py new file mode 100644 index 0000000000..62de61d99e --- /dev/null +++ b/mayan/apps/document_states/api_views.py @@ -0,0 +1,603 @@ +from __future__ import absolute_import, unicode_literals + +from django.shortcuts import get_object_or_404 + +from rest_framework import generics + +from acls.models import AccessControlList +from documents.models import Document, DocumentType +from documents.permissions import permission_document_type_view +from rest_api.filters import MayanObjectPermissionsFilter +from rest_api.permissions import MayanPermission + +from .models import Workflow +from .permissions import ( + permission_workflow_create, permission_workflow_delete, + permission_workflow_edit, permission_workflow_view +) +from .serializers import ( + NewWorkflowDocumentTypeSerializer, WorkflowDocumentTypeSerializer, + WorkflowInstanceSerializer, WorkflowInstanceLogEntrySerializer, + WorkflowSerializer, WorkflowStateSerializer, WorkflowTransitionSerializer, + WritableWorkflowInstanceLogEntrySerializer, WritableWorkflowSerializer, + WritableWorkflowTransitionSerializer +) + + +class APIDocumentTypeWorkflowListView(generics.ListAPIView): + serializer_class = WorkflowSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the document type workflows. + """ + return super(APIDocumentTypeWorkflowListView, self).get(*args, **kwargs) + + def get_document_type(self): + document_type = get_object_or_404(DocumentType, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=self.request.user, + obj=document_type + ) + + return document_type + + def get_queryset(self): + return self.get_document_type().workflows.all() + + +class APIWorkflowDocumentTypeList(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'GET': (permission_document_type_view,), + } + + def get(self, *args, **kwargs): + """ + Returns a list of all the document types attached to a workflow. + """ + + return super(APIWorkflowDocumentTypeList, self).get(*args, **kwargs) + + def get_queryset(self): + """ + This view returns a list of document types that belong to a workflow + RESEARCH: Could the documents.api_views.APIDocumentTypeList class + be subclasses for this? + """ + + return self.get_workflow().document_types.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowDocumentTypeSerializer + elif self.request.method == 'POST': + return NewWorkflowDocumentTypeSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + """ + Retrieve the parent workflow of the workflow document type. + Perform custom permission and access check. + """ + + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def post(self, request, *args, **kwargs): + """ + Attach a document type to a specified workflow. + """ + + return super( + APIWorkflowDocumentTypeList, self + ).post(request, *args, **kwargs) + + +class APIWorkflowDocumentTypeView(generics.RetrieveDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + lookup_url_kwarg = 'document_type_pk' + mayan_object_permissions = { + 'GET': (permission_document_type_view,), + } + serializer_class = WorkflowDocumentTypeSerializer + + def delete(self, request, *args, **kwargs): + """ + Remove a document type from the selected workflow. + """ + + return super( + APIWorkflowDocumentTypeView, self + ).delete(request, *args, **kwargs) + + def get(self, *args, **kwargs): + """ + Returns the details of the selected workflow document type. + """ + + return super(APIWorkflowDocumentTypeView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().document_types.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + """ + This view returns a document types that belongs to a workflow + RESEARCH: Could the documents.api_views.APIDocumentTypeView class + be subclasses for this? + RESEARCH: Since this is a parent-child API view could this be made + into a generic API class? + RESEARCH: Reuse get_workflow method from APIWorkflowDocumentTypeList? + """ + + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def perform_destroy(self, instance): + """ + RESEARCH: Move this kind of methods to the serializer instead it that + ability becomes available in Django REST framework + """ + + self.get_workflow().document_types.remove(instance) + + +class APIWorkflowListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'GET': (permission_workflow_view,), + 'POST': (permission_workflow_create,) + } + permission_classes = (MayanPermission,) + queryset = Workflow.objects.all() + + def get(self, *args, **kwargs): + """ + Returns a list of all the workflows. + """ + return super(APIWorkflowListView, self).get(*args, **kwargs) + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowSerializer + else: + return WritableWorkflowSerializer + + def post(self, *args, **kwargs): + """ + Create a new workflow. + """ + return super(APIWorkflowListView, self).post(*args, **kwargs) + + +class APIWorkflowView(generics.RetrieveUpdateDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'DELETE': (permission_workflow_delete,), + 'GET': (permission_workflow_view,), + 'PATCH': (permission_workflow_edit,), + 'PUT': (permission_workflow_edit,) + } + queryset = Workflow.objects.all() + + def delete(self, *args, **kwargs): + """ + Delete the selected workflow. + """ + + return super(APIWorkflowView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected workflow. + """ + + return super(APIWorkflowView, self).get(*args, **kwargs) + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowSerializer + else: + return WritableWorkflowSerializer + + def patch(self, *args, **kwargs): + """ + Edit the selected workflow. + """ + + return super(APIWorkflowView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected workflow. + """ + + return super(APIWorkflowView, self).put(*args, **kwargs) + + +# Workflow state views + + +class APIWorkflowStateListView(generics.ListCreateAPIView): + serializer_class = WorkflowStateSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the workflow states. + """ + return super(APIWorkflowStateListView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().states.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def post(self, *args, **kwargs): + """ + Create a new workflow state. + """ + return super(APIWorkflowStateListView, self).post(*args, **kwargs) + + +class APIWorkflowStateView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'state_pk' + serializer_class = WorkflowStateSerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected workflow state. + """ + + return super(APIWorkflowStateView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected workflow state. + """ + + return super(APIWorkflowStateView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().states.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def patch(self, *args, **kwargs): + """ + Edit the selected workflow state. + """ + + return super(APIWorkflowStateView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected workflow state. + """ + + return super(APIWorkflowStateView, self).put(*args, **kwargs) + + +# Workflow transition views + + +class APIWorkflowTransitionListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of all the workflow transitions. + """ + return super(APIWorkflowTransitionListView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().transitions.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowTransitionSerializer + else: + return WritableWorkflowTransitionSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def post(self, *args, **kwargs): + """ + Create a new workflow transition. + """ + return super(APIWorkflowTransitionListView, self).post(*args, **kwargs) + + +class APIWorkflowTransitionView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'transition_pk' + + def delete(self, *args, **kwargs): + """ + Delete the selected workflow transition. + """ + + return super(APIWorkflowTransitionView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected workflow transition. + """ + + return super(APIWorkflowTransitionView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_workflow().transitions.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowTransitionSerializer + else: + return WritableWorkflowTransitionSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow': self.get_workflow(), + 'view': self + } + + def get_workflow(self): + if self.request.method == 'GET': + permission_required = permission_workflow_view + else: + permission_required = permission_workflow_edit + + workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=workflow + ) + + return workflow + + def patch(self, *args, **kwargs): + """ + Edit the selected workflow transition. + """ + + return super(APIWorkflowTransitionView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected workflow transition. + """ + + return super(APIWorkflowTransitionView, self).put(*args, **kwargs) + + +# Document workflow views + + +class APIWorkflowInstanceListView(generics.ListAPIView): + serializer_class = WorkflowInstanceSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the document workflows. + """ + return super(APIWorkflowInstanceListView, self).get(*args, **kwargs) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=self.request.user, + obj=document + ) + + return document + + def get_queryset(self): + return self.get_document().workflows.all() + + +class APIWorkflowInstanceView(generics.RetrieveAPIView): + lookup_url_kwarg = 'workflow_pk' + serializer_class = WorkflowInstanceSerializer + + def get(self, *args, **kwargs): + """ + Return the details of the selected document workflow. + """ + + return super(APIWorkflowInstanceView, self).get(*args, **kwargs) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=self.request.user, + obj=document + ) + + return document + + def get_queryset(self): + return self.get_document().workflows.all() + + +class APIWorkflowInstanceLogEntryListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of all the document workflows log entries. + """ + return super(APIWorkflowInstanceLogEntryListView, self).get( + *args, **kwargs + ) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + if self.request.method == 'GET': + """ + Only test for permission if reading. If writing, the permission + will be checked in the serializer + + IMPROVEMENT: + When writing, add check for permission or ACL for the workflow. + Failing that, check for ACLs for any of the workflow's transitions. + Failing that, then raise PermissionDenied + """ + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=self.request.user, + obj=document + ) + + return document + + def get_serializer_class(self): + if self.request.method == 'GET': + return WorkflowInstanceLogEntrySerializer + else: + return WritableWorkflowInstanceLogEntrySerializer + + def get_serializer_context(self): + return { + 'format': self.format_kwarg, + 'request': self.request, + 'workflow_instance': self.get_workflow_instance(), + 'view': self + } + + def get_queryset(self): + return self.get_workflow_instance().log_entries.all() + + def get_workflow_instance(self): + workflow = get_object_or_404( + self.get_document().workflows, pk=self.kwargs['workflow_pk'] + ) + + return workflow + + def post(self, *args, **kwargs): + """ + Transition a document workflow by creating a new document workflow + log entry. + """ + return super(APIWorkflowInstanceLogEntryListView, self).post(*args, **kwargs) diff --git a/mayan/apps/document_states/apps.py b/mayan/apps/document_states/apps.py index 7e71d5b1a2..6a16143c09 100644 --- a/mayan/apps/document_states/apps.py +++ b/mayan/apps/document_states/apps.py @@ -1,17 +1,25 @@ from __future__ import unicode_literals from django.apps import apps -from django.db.models.signals import post_save +from django.db.models.signals import pre_delete, post_delete, post_save from django.utils.translation import ugettext_lazy as _ -from common import ( - MayanAppConfig, menu_facet, menu_object, menu_secondary, menu_setup, - menu_sidebar -) -from common.widgets import two_state_template -from navigation import SourceColumn +from kombu import Exchange, Queue -from .handlers import launch_workflow +from acls import ModelPermission +from acls.links import link_acl_list +from common import ( + MayanAppConfig, menu_facet, menu_main, menu_object, menu_secondary, + menu_setup, menu_sidebar, menu_tools +) +from common.classes import ModelAttribute +from common.widgets import two_state_template +from mayan.celery import app +from navigation import SourceColumn +from rest_api.classes import APIEndPoint + +from .classes import DocumentStateHelper +from .handlers import handler_index_document, launch_workflow from .links import ( link_document_workflow_instance_list, link_setup_workflow_document_types, link_setup_workflow_create, link_setup_workflow_delete, @@ -20,29 +28,72 @@ from .links import ( link_setup_workflow_state_delete, link_setup_workflow_state_edit, link_setup_workflow_transitions, link_setup_workflow_transition_create, link_setup_workflow_transition_delete, link_setup_workflow_transition_edit, - link_workflow_instance_detail, link_workflow_instance_transition + link_tool_launch_all_workflows, link_workflow_instance_detail, + link_workflow_instance_transition, link_workflow_document_list, + link_workflow_list, link_workflow_state_document_list, + link_workflow_state_list ) +from .permissions import permission_workflow_transition class DocumentStatesApp(MayanAppConfig): app_url = 'states' + has_tests = True name = 'document_states' - test = True verbose_name = _('Document states') def ready(self): super(DocumentStatesApp, self).ready() + APIEndPoint(app=self, version_string='1') + Document = apps.get_model( app_label='documents', model_name='Document' ) + Document.add_to_class( + 'workflow', DocumentStateHelper.constructor + ) + Workflow = self.get_model('Workflow') WorkflowInstance = self.get_model('WorkflowInstance') WorkflowInstanceLogEntry = self.get_model('WorkflowInstanceLogEntry') + WorkflowRuntimeProxy = self.get_model('WorkflowRuntimeProxy') WorkflowState = self.get_model('WorkflowState') + WorkflowStateRuntimeProxy = self.get_model('WorkflowStateRuntimeProxy') WorkflowTransition = self.get_model('WorkflowTransition') + ModelAttribute( + Document, 'workflow.< workflow internal name >.get_current_state', + label=_('Current state of a workflow'), description=_( + 'Return the current state of the selected workflow' + ), type_name=['property', 'indexing'] + ) + ModelAttribute( + Document, + 'workflow.< workflow internal name >.get_current_state.completion', + label=_('Current state of a workflow'), description=_( + 'Return the completion value of the current state of the ' + 'selected workflow' + ), type_name=['property', 'indexing'] + ) + + ModelPermission.register( + model=Workflow, permissions=(permission_workflow_transition,) + ) + + ModelPermission.register( + model=WorkflowTransition, + permissions=(permission_workflow_transition,) + ) + + SourceColumn( + source=Workflow, label=_('Label'), attribute='label' + ) + SourceColumn( + source=Workflow, label=_('Internal name'), + attribute='internal_name' + ) SourceColumn( source=Workflow, label=_('Initial state'), func=lambda context: context['object'].get_initial_state() or _('None') @@ -108,14 +159,32 @@ class DocumentStatesApp(MayanAppConfig): attribute='destination_state' ) + app.conf.CELERY_QUEUES.extend( + ( + Queue( + 'document_states', Exchange('document_states'), + routing_key='converter' + ), + ) + ) + + app.conf.CELERY_ROUTES.update( + { + 'document_states.tasks.task_launch_all_workflows': { + 'queue': 'document_states' + }, + } + ) + menu_facet.bind_links( links=(link_document_workflow_instance_list,), sources=(Document,) ) + menu_main.bind_links(links=(link_workflow_list,), position=10) menu_object.bind_links( links=( link_setup_workflow_states, link_setup_workflow_transitions, link_setup_workflow_document_types, link_setup_workflow_edit, - link_setup_workflow_delete + link_acl_list, link_setup_workflow_delete ), sources=(Workflow,) ) menu_object.bind_links( @@ -126,7 +195,7 @@ class DocumentStatesApp(MayanAppConfig): ) menu_object.bind_links( links=( - link_setup_workflow_transition_edit, + link_setup_workflow_transition_edit, link_acl_list, link_setup_workflow_transition_delete ), sources=(WorkflowTransition,) ) @@ -136,6 +205,16 @@ class DocumentStatesApp(MayanAppConfig): link_workflow_instance_transition ), sources=(WorkflowInstance,) ) + menu_object.bind_links( + links=( + link_workflow_document_list, link_workflow_state_list, + ), sources=(WorkflowRuntimeProxy,) + ) + menu_object.bind_links( + links=( + link_workflow_state_document_list, + ), sources=(WorkflowStateRuntimeProxy,) + ) menu_secondary.bind_links( links=(link_setup_workflow_list, link_setup_workflow_create), sources=( @@ -143,6 +222,12 @@ class DocumentStatesApp(MayanAppConfig): 'document_states:setup_workflow_list' ) ) + menu_secondary.bind_links( + links=(link_workflow_list,), + sources=( + WorkflowRuntimeProxy, + ) + ) menu_setup.bind_links(links=(link_setup_workflow_list,)) menu_sidebar.bind_links( links=( @@ -150,7 +235,16 @@ class DocumentStatesApp(MayanAppConfig): link_setup_workflow_transition_create ), sources=(Workflow,) ) + menu_tools.bind_links(links=(link_tool_launch_all_workflows,)) post_save.connect( launch_workflow, dispatch_uid='launch_workflow', sender=Document ) + + # Index updating + + post_save.connect( + handler_index_document, + dispatch_uid='handler_index_document_save', + sender=WorkflowInstanceLogEntry + ) diff --git a/mayan/apps/document_states/classes.py b/mayan/apps/document_states/classes.py new file mode 100644 index 0000000000..cba92b76e0 --- /dev/null +++ b/mayan/apps/document_states/classes.py @@ -0,0 +1,13 @@ +from __future__ import unicode_literals + +from common.classes import PropertyHelper + + +class DocumentStateHelper(PropertyHelper): + @staticmethod + @property + def constructor(*args, **kwargs): + return DocumentStateHelper(*args, **kwargs) + + def get_result(self, name): + return self.instance.workflows.get(workflow__internal_name=name) diff --git a/mayan/apps/document_states/forms.py b/mayan/apps/document_states/forms.py index 98ead3a160..ca8612f170 100644 --- a/mayan/apps/document_states/forms.py +++ b/mayan/apps/document_states/forms.py @@ -1,4 +1,4 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals from django import forms from django.utils.translation import ugettext_lazy as _ @@ -8,7 +8,7 @@ from .models import Workflow, WorkflowState, WorkflowTransition class WorkflowForm(forms.ModelForm): class Meta: - fields = ('label',) + fields = ('label', 'internal_name') model = Workflow @@ -32,11 +32,16 @@ class WorkflowTransitionForm(forms.ModelForm): class WorkflowInstanceTransitionForm(forms.Form): def __init__(self, *args, **kwargs): - workflow = kwargs.pop('workflow') + user = kwargs.pop('user') + workflow_instance = kwargs.pop('workflow_instance') super(WorkflowInstanceTransitionForm, self).__init__(*args, **kwargs) - self.fields['transition'].choices = workflow.get_transition_choices().values_list('pk', 'label') + self.fields[ + 'transition' + ].queryset = workflow_instance.get_transition_choices(_user=user) - transition = forms.ChoiceField(label=_('Transition')) + transition = forms.ModelChoiceField( + label=_('Transition'), queryset=WorkflowTransition.objects.none() + ) comment = forms.CharField( label=_('Comment'), required=False, widget=forms.widgets.Textarea() ) diff --git a/mayan/apps/document_states/handlers.py b/mayan/apps/document_states/handlers.py index 293d6a859c..fcdef979cf 100644 --- a/mayan/apps/document_states/handlers.py +++ b/mayan/apps/document_states/handlers.py @@ -2,6 +2,8 @@ from __future__ import unicode_literals from django.apps import apps +from document_indexing.tasks import task_index_document + def launch_workflow(sender, instance, created, **kwargs): Workflow = apps.get_model( @@ -10,3 +12,11 @@ def launch_workflow(sender, instance, created, **kwargs): if created: Workflow.objects.launch_for(instance) + + +def handler_index_document(sender, **kwargs): + task_index_document.apply_async( + kwargs=dict( + document_id=kwargs['instance'].workflow_instance.document.pk + ) + ) diff --git a/mayan/apps/document_states/links.py b/mayan/apps/document_states/links.py index f9a0e3bba3..f2d41f7e58 100644 --- a/mayan/apps/document_states/links.py +++ b/mayan/apps/document_states/links.py @@ -6,7 +6,7 @@ from navigation import Link from .permissions import ( permission_workflow_create, permission_workflow_delete, - permission_workflow_edit, permission_workflow_transition, + permission_workflow_edit, permission_workflow_tools, permission_workflow_view, ) @@ -71,12 +71,36 @@ link_setup_workflow_transitions = Link( permissions=(permission_workflow_view,), text=_('Transitions'), view='document_states:setup_workflow_transitions', args='object.pk' ) +link_tool_launch_all_workflows = Link( + icon='fa fa-sitemap', + permissions=(permission_workflow_tools,), + text=_('Launch all workflows'), + view='document_states:tool_launch_all_workflows' +) link_workflow_instance_detail = Link( permissions=(permission_workflow_view,), text=_('Detail'), view='document_states:workflow_instance_detail', args='resolved_object.pk' ) link_workflow_instance_transition = Link( - permissions=(permission_workflow_transition,), text=_('Transition'), + text=_('Transition'), view='document_states:workflow_instance_transition', args='resolved_object.pk' ) +link_workflow_document_list = Link( + permissions=(permission_workflow_view,), text=_('Workflow documents'), + view='document_states:workflow_document_list', args='resolved_object.pk' +) +link_workflow_list = Link( + permissions=(permission_workflow_view,), icon='fa fa-sitemap', + text=_('Workflows'), view='document_states:workflow_list' +) +link_workflow_state_document_list = Link( + permissions=(permission_workflow_view,), + text=_('State documents'), view='document_states:workflow_state_document_list', + args='resolved_object.pk' +) +link_workflow_state_list = Link( + permissions=(permission_workflow_view,), + text=_('States'), view='document_states:workflow_state_list', + args='resolved_object.pk' +) diff --git a/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.mo index a3be1e0026..bd06c9666e 100644 Binary files a/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.po index 5af554bcea..78ec7bdafb 100644 --- a/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/ar/LC_MESSAGES/django.po @@ -1,75 +1,77 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "لا شيء" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "مستخدم" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "تعليق" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +95,7 @@ msgstr "تحرير" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +107,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +227,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "ارسال" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.mo index 4073880835..18744aac8d 100644 Binary files a/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.po index 1bb7f2623d..6f6b1a5404 100644 --- a/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/bg/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Няма" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Потребител" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Коментар" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "Редактиране" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Подаване" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/bs_BA/LC_MESSAGES/django.mo index 802ddbf341..04bf8bd013 100644 Binary files a/mayan/apps/document_states/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/bs_BA/LC_MESSAGES/django.po index ea9fc3d137..1bb190234a 100644 --- a/mayan/apps/document_states/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/bs_BA/LC_MESSAGES/django.po @@ -1,75 +1,77 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nijedno" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Korisnik" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Komentar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +95,7 @@ msgstr "Urediti" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +107,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +227,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Podnijeti" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/da/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/da/LC_MESSAGES/django.mo index 23a6ef5dca..367b668685 100644 Binary files a/mayan/apps/document_states/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/da/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/da/LC_MESSAGES/django.po index 02bc28043d..065fbf0098 100644 --- a/mayan/apps/document_states/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/da/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Ingen" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Bruger" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Kommentar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.mo index cfa420bae5..17b6171957 100644 Binary files a/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.po index 1bae99f4e6..36a2a013b9 100644 --- a/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/de_DE/LC_MESSAGES/django.po @@ -1,76 +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: # Berny , 2015 +# Jesaja Everling , 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 23:13+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "Status" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Initialstatus" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Keiner" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Aktueller Status" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Benutzer" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Letzter Übergang" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Datum und Zeit" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Fertigstellung" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Übergang" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Kommentar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "Initialstatus" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Herkunftsstatus" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Zielstatus" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "Workflows" @@ -82,7 +84,7 @@ msgstr "Workflow erstellen" msgid "Delete" msgstr "Löschen" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Dokumententypen" @@ -94,7 +96,7 @@ msgstr "Bearbeiten" msgid "Create state" msgstr "Status erstellen" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Status" @@ -106,74 +108,110 @@ msgstr "Übergang erstellen" msgid "Transitions" msgstr "Übergänge" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "Alle Workflows starten" + +#: links.py:81 msgid "Detail" msgstr "Detail" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Bezeichnung" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Workflow" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Diesen Status markieren, wenn der Workflow damit starten soll. Nur ein Status kann initial sein." +msgstr "" +"Diesen Status markieren, wenn der Workflow damit starten soll. Nur ein " +"Status kann initial sein." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Initial" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Ermöglicht den Eintrag einer Zahl (ohne Prozentzeichen), die den Stand der Fertigstellung in Bezug auf den Workflow angibt." +msgstr "" +"Ermöglicht den Eintrag einer Zahl (ohne Prozentzeichen), die den Stand der " +"Fertigstellung in Bezug auf den Workflow angibt." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Workflow Status" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Workflow Status" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Workflow Übergang" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Workflow Übergänge" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Dokument" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Workflow" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Workflows" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Zeit" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Workflow Logeintrag" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Workflow Logeinträge" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Dokumentenworkflows" @@ -194,67 +232,122 @@ msgstr "Workflows bearbeiten" msgid "View workflows" msgstr "Workflows anzeigen" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Workflowübergänge durchführen" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Workflows für Dokument: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Dokumente mit Workflow %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Detail für Workflow: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Absenden" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Übergang für Workflow %s durchführen" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Verfügbare Dokumententypen" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Dokumententypen zugeordnet zu diesem Workflow" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Dokumententypen zugeordnet zu Workflow %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Status für Workflow %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Status für Workflow %s erstellen" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Übergänge für Workflow %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Übergänge für Workflow %s erstellen" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Integritätsfehler beim Speichern des Übergangs" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Dokumente mit Workflow %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/en/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/en/LC_MESSAGES/django.mo index 252bfd331b..6584aef737 100644 Binary files a/mayan/apps/document_states/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/en/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/en/LC_MESSAGES/django.po index aa92837534..681c22b4cf 100644 --- a/mayan/apps/document_states/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,59 +17,59 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +81,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +93,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +105,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +225,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/es/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/es/LC_MESSAGES/django.mo index 1b8ef878f8..af9473c641 100644 Binary files a/mayan/apps/document_states/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/es/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/es/LC_MESSAGES/django.po index 5106c2cc87..14f08444d8 100644 --- a/mayan/apps/document_states/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/es/LC_MESSAGES/django.po @@ -1,77 +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: # Roberto Rosario, 2015 -# Roberto Rosario, 2016 +# Roberto Rosario, 2016-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-05-09 01:51+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-23 02:58+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "Estados de documentos" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Estado inicial" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Ninguno" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Estado actual" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Usuario" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Última transición" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Fecha y hora" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Cantidad de completación" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transición" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Comentario" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "¿Es el estado inicial?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Estado origen" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Estado destino" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "Flujos de trabajo" @@ -83,7 +84,7 @@ msgstr "Crear flujo de trabajo" msgid "Delete" msgstr "Borrar" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Tipos de documentos" @@ -95,7 +96,7 @@ msgstr "Editar" msgid "Create state" msgstr "Crear estado" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Estados" @@ -107,74 +108,110 @@ msgstr "Crear transición" msgid "Transitions" msgstr "Transiciones" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "Iniciar todos los flujos de trabajo" + +#: links.py:81 msgid "Detail" msgstr "Detalle" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "Documentos del flujo de trabajo" + +#: links.py:99 +msgid "State documents" +msgstr "Documentos del estado de flujo" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Etiqueta" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Flujo de trabajo" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Seleccione si este va a ser el estado con el que desea que el flujo de trabajo comience. Sólo un estado puede ser el estado inicial." +msgstr "" +"Seleccione si este va a ser el estado con el que desea que el flujo de " +"trabajo comience. Sólo un estado puede ser el estado inicial." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Inicial" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Introduzca el porcentaje de finalización que este estado representa en relación con el flujo de trabajo. Utilice números sin el signo de porcentaje." +msgstr "" +"Introduzca el porcentaje de finalización que este estado representa en " +"relación con el flujo de trabajo. Utilice números sin el signo de porcentaje." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Estado de flujo de trabajo" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Estados de flujo de trabajo" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Transición de flujo de trabajo" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Transiciones de flujo de trabajo" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Documento" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Instancia de flujo de trabajo" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Instancias de flujo de trabajo" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Fecha y hora" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Entrada de registro de la instancia de flujo de trabajo" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Entradas de registro de las instancias de flujos de trabajo" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "No hay opción valida de transición." + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Flujos de trabajo de document" @@ -195,67 +232,122 @@ msgstr "Editar flujos de trabajo" msgid "View workflows" msgstr "Ver flujos de trabajo" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Realizar transiciones" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "Ejecutar herramientas de flujos de trabajo" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "Llave primaria del tipo de documento a ser agregado." + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "Llave primaria del estado de destino a ser agregado." + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "Llave primaria del estado inicial a ser agregado." + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "Un enlace a la historia completa de este flujo de trabajo." + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Flujos de trabajo para el documento: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documentos con el flujo de trabajo: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Detalle de flujo de trabajo: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Enviar" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Realizar la transición de flujo de trabajo: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Tipos de documentos disponibles" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Tipos de documentos asignados a este flujo de trabajo" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Tipos de documentos asignados al flujo de trabajo: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Estados del flujo de trabajo: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Crear estados para el flujo de trabajo: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Transiciones de flujo de trabajo: %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Crear transiciones para el flujo de trabajo: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "No se puede guardar la transición; error de integridad." + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documentos con el flujo de trabajo: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "Documentos en el flujo de trabajo \"%s\", estado \"%s\"" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "¿Lanzar todos los flujos de trabajo?" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "Lanzamiento de flujos de trabajo sometido con éxito." diff --git a/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.mo index 23911ffbf5..542eccc24f 100644 Binary files a/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.po index 51265ea7fc..ec03b1a417 100644 --- a/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/fa/LC_MESSAGES/django.po @@ -1,76 +1,77 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mehdi Amani , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "وضعیت اولیه" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "هیچ" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "وضعیت فعلی" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "کاربر" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "آخرین تغییر وضعیت" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "تاریخ و زمان" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "تغییر وضعیت" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "شرح" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "آیا در وضعیت اولیه است؟" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "وضعیت شروع" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "وضعیت نهایی" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "گردشکار" @@ -82,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "حذف" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "انواع سند" @@ -94,7 +95,7 @@ msgstr "ویرایش" msgid "Create state" msgstr "وضغیت ایجاد" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "وضعیت ها" @@ -106,74 +107,108 @@ msgstr "تغییر وضعیت به ایجاد" msgid "Transitions" msgstr "تغییر وضعیت ها" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "شرح" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "برچسب" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "گردشکار" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "در صورتیکه این وضعیت شروع گردشکار باشد این وضعیت را انتخاب کنید. وضعیت فقط میتواند وضعیت اولیه باشد." +msgstr "" +"در صورتیکه این وضعیت شروع گردشکار باشد این وضعیت را انتخاب کنید. وضعیت فقط " +"میتواند وضعیت اولیه باشد." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "اولیه" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "وضعیت گردشکار" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "وضعیتهای گردشکار" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "تغییر وضعیت گردشکار" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "تغییر وضعیت های گردشکار" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "سند" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "موردی از گردشکار" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "موردهای گردشکار" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "تاریخ زمان" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "ورودیه لاگ برای مورد گردشکار" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "ورودیهای مورد گردشکار" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -194,67 +229,122 @@ msgstr "ویرایش گردشکار" msgid "View workflows" msgstr "مشاهده گردشکار" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "گردشکارهای سند : %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "شرح گردشکار : %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "ارسال" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "انجام تغییر وضعیت گردشکار : %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "نوع سند مرتبط با گردش کاری: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "وضعیتهای گردشکار : %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "وضعیت ایجاد برای گردشکار : %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "تغییر وضعیتهای گردشکار : %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "ایجاد تغییر وضعیت برای گردشکار : %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "قادر به ذخیره انتقال نیست:خطای تجمع" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.mo index 6c19328d5a..2580a7af68 100644 Binary files a/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.po index 6d01182f7e..418ba177a4 100644 --- a/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/fr/LC_MESSAGES/django.po @@ -1,76 +1,77 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" -"Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "États du document" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "État initial" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Aucun" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "État actuel" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Utilisateur" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Dernière transition" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Date et heure" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Finalisation" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transition" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Commentaire" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "Est ce l'état initial?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "État d'origine" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "État de destination" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "Flux de travail" @@ -82,7 +83,7 @@ msgstr "Créer un flux de travail" msgid "Delete" msgstr "Supprimer" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Types de document" @@ -94,7 +95,7 @@ msgstr "Modifier" msgid "Create state" msgstr "Créer un état" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "États" @@ -106,74 +107,110 @@ msgstr "Créer une transition" msgid "Transitions" msgstr "Transitions" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Détail" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Étiquette" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Flux de travail" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Sélectionnez si ceci sera l'état avec lequel vous voulez que le flux de travail pour démarrer. Un seul état peut être à l'état initial." +msgstr "" +"Sélectionnez si ceci sera l'état avec lequel vous voulez que le flux de " +"travail pour démarrer. Un seul état peut être à l'état initial." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Initial" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Entrer le pourcentage de finalisation que cet état représente dans la relation du flux de travail. Saisir un nombre sans le signe pourcentage." +msgstr "" +"Entrer le pourcentage de finalisation que cet état représente dans la " +"relation du flux de travail. Saisir un nombre sans le signe pourcentage." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "État du flux de travail" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "États du flux de travail" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Transition du flux de travail" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Transitions du flux de travail" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Document" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Instance du flux de travail" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Instances du flux de travail" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Date et heure" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Entrée de la journalisation de l'instance du flux de travail" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Entrées de la journlisation du flux de travail" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Flux de travail du document" @@ -194,67 +231,122 @@ msgstr "Modifier des flux de travail" msgid "View workflows" msgstr "Voir les flux de travail" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Transition des flux de travails" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Flux de travail du document: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documents avec le flux de travail: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Détail du flux de travail: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Soumettre" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Construire une transition pour le flux de travail: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Types de document disponible" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Types de document associé à ce flux de travail" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Types de document assignés au flux de travail: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "États du flux de travail: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Créer des états pour le flux de travail: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Transitions du flux de travail: %s " -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Créer des transitions du flux de travail: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Impossible de sauvegarder la transition; erreur d'intégrité." + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documents avec le flux de travail: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.mo index a584f4a2bd..96e024e02e 100644 Binary files a/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.po index c3d442d94a..5d67a02e9d 100644 --- a/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/hu/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Semmi" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Felhasználó" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Megjegyzés" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/id/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/id/LC_MESSAGES/django.mo index 568695d2a2..64e43d5243 100644 Binary files a/mayan/apps/document_states/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/id/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/id/LC_MESSAGES/django.po index 00d127e3b5..a07ede27a5 100644 --- a/mayan/apps/document_states/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/id/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Pengguna" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Komentar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/it/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/it/LC_MESSAGES/django.mo index 6a81bf8a8c..0523239c5a 100644 Binary files a/mayan/apps/document_states/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/it/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/it/LC_MESSAGES/django.po index 15d11b1ab4..1f10d60cef 100644 --- a/mayan/apps/document_states/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/it/LC_MESSAGES/django.po @@ -1,76 +1,77 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-09-24 10:35+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "Stati documento" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Stato iniziale" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nessuna " -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Stato corrente" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Utente" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Ultima transizione" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Data e ora" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Completamento" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transizione" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Commento" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "Stato iniziale?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Stato originale" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Stato di destinazione" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "I workflow" @@ -82,7 +83,7 @@ msgstr "Crea workflow" msgid "Delete" msgstr "Cancella" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Tipi di documento" @@ -94,7 +95,7 @@ msgstr "Modifica" msgid "Create state" msgstr "Crea stato" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Stati" @@ -106,74 +107,110 @@ msgstr "Crea transizione" msgid "Transitions" msgstr "Transizioni" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Dettagli" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Etichetta" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Workflow" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Seleziona se questo è lo stato da utilizzare quando il workflow inizia. Solo uno stato può essere quello iniziale." +msgstr "" +"Seleziona se questo è lo stato da utilizzare quando il workflow inizia. Solo " +"uno stato può essere quello iniziale." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Iniziale" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Inserisci la percentuale di completamento che questo stato rappresenta in relazione al workflow. Usa i numeri senza segno di percentuale." +msgstr "" +"Inserisci la percentuale di completamento che questo stato rappresenta in " +"relazione al workflow. Usa i numeri senza segno di percentuale." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Stato workflow" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Stati workflow" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Transizione workflow" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Transizioni workflow" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Documento" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Istanza workflow" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Istanze workflow" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Data e ora" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Voce log istanza workflow" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Voci log istanza workflow" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Workflow documento" @@ -194,67 +231,122 @@ msgstr "Modifica workflows" msgid "View workflows" msgstr "Vedi workflows" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Transizioni workflow" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Workflow per il documento: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documento con il workflow: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Dettagli del workflow: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Invia" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Esegui transizione per il workflow: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Tipi di documento disponibili" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Tipi di documento assegnati a questo workflow" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Tipi di documento assegnati al workflow: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Stati del workflow: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Crea stati del workflow: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Trasizioni per il workflow: %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Crea trasizioni per il workflow: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Impossibile salvare la transizione: errore di integrità" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documento con il workflow: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.mo index d6509b12eb..50981b3975 100644 Binary files a/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.po index 11d63efbac..f91574c720 100644 --- a/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/nl_NL/LC_MESSAGES/django.po @@ -1,76 +1,77 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-10-28 12:43+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "Documentstaten" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Initiële staat" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Geen" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Huidige staat" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Gebruiker" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Laatste transitie" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Datum en tijd" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Voltooiing" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transitie" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Commentaar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Originele staat" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Bestemmingsstaat" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -82,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "Verwijder" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Documentsoorten" @@ -94,7 +95,7 @@ msgstr "bewerken" msgid "Create state" msgstr "Maak staat aan" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Staten" @@ -106,74 +107,106 @@ msgstr "Transitie aanmaken" msgid "Transitions" msgstr "Transities" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Detai" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Label" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Workflow" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Initieel" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Workflowstaat" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Workflowstaten" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Workflowtransitie" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Workflowtransities" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Document" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Workflowinstantie" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "Workflowinstanties" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Datumtijd" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Documentworkflows" @@ -194,67 +227,122 @@ msgstr "Workflows verwijderen" msgid "View workflows" msgstr "Workflows bekijken" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Workflows voor document: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documenten met de workflow: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Detail van workflow: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Verstuur" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Beschikbare documentsoorten" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documenten met de workflow: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.mo index c658c7653c..c586801861 100644 Binary files a/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.po index 3e363e2acd..70983513ab 100644 --- a/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/pl/LC_MESSAGES/django.po @@ -1,76 +1,79 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Annunnaky , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Stan początkowy" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Brak" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Aktualny stan" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Użytkownik" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Data i godzina" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Komentarz" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "Czy jest stan początkowy?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -82,7 +85,7 @@ msgstr "" msgid "Delete" msgstr "Usuń" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Typy dokumentu" @@ -94,7 +97,7 @@ msgstr "Edytuj" msgid "Create state" msgstr "Utwórz stan" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "Stany" @@ -106,74 +109,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Szczegół" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Etykieta" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Obieg dokumentów" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Początkowy" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Stan obiegu" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Stany obiegu" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Dokument" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -194,67 +229,122 @@ msgstr "Edytuj obieg" msgid "View workflows" msgstr "Pokaż obieg" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Obiegi dokumentu: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Szczegóły obiegu dokumentów: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Wyślij" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Dokonaj zmiany w obiegu dokumentów: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Dostępne typy dokumentów" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Typy dokumentów przypisane do obiegu dokumentów: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Stany obiegu dokumentów: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Utwórz stany obiegu dokumentów: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Zmiany obiegu dokumentów: %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Utwórz zmiany w obiegu dokumentów: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Nie można zapisać zmiany; błąd integralności." + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.mo index 31283dc65e..da4d0de8ba 100644 Binary files a/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.po index e1aa11eff8..f1d267fe2a 100644 --- a/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/pt/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nenhum" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Utilizador" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Comentário" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "Eliminar" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "Editar" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Nome" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Submeter" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.mo index 5d84a7fcbb..77dab71e05 100644 Binary files a/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.po index ab6fb8a370..6db6a0c4e6 100644 --- a/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 # Rogerio Falcone , 2015 @@ -9,69 +9,70 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:31 +#: apps.py:41 msgid "Document states" msgstr "Estados de documentos" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Estado Inicial" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nenhum" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Estado corrente" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Usuário" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "Última transação" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "data e hora" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Finalização" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Transações" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Comentário" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "é estado inicial?" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "Estado Original" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "Estado de destino" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "Workflows" @@ -83,7 +84,7 @@ msgstr "Criar fluxo de trabalho" msgid "Delete" msgstr "Excluir" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Tipos de Documentos" @@ -95,9 +96,9 @@ msgstr "Editar" msgid "Create state" msgstr "Criar estado" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" -msgstr "estado" +msgstr "Estados" #: links.py:58 msgid "Create transition" @@ -107,74 +108,110 @@ msgstr "Criar Transições" msgid "Transitions" msgstr "Transações" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "Detalhes" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Label" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "Workflow" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." -msgstr "Selecione se este será o estado com o qual você deseja que o fluxo de trabalho para começar em. Apenas um Estado pode ser o estado inicial." +msgstr "" +"Selecione se este será o estado com o qual você deseja que o fluxo de " +"trabalho para começar em. Apenas um Estado pode ser o estado inicial." -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "Inicial" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." -msgstr "Entre com a porcentagem de finalização que este estado representa em relação com o fluxo de trabalho. Utilize números sem o sinal de porcentagem." +msgstr "" +"Entre com a porcentagem de finalização que este estado representa em relação " +"com o fluxo de trabalho. Utilize números sem o sinal de porcentagem." -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "Estado do Workflow" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "Estados do Workflow" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "Transição do Workflow" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "Transição dos Workflows" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Documento" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "Instância do Workflow" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "instâncias do Workflow " -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "Hora e data" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "Workflow instance log de entrada " -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "Workflow instance log de entradas" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "Fluxos de trabalho do documento" @@ -195,67 +232,122 @@ msgstr "Editar Workflows" msgid "View workflows" msgstr "Ver workflows" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "Realizar transição" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "Workflows para documento: %s" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "Documentos com o fluxo de trabalho: %s" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "Detalhe do workflow: %(workflow)s" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Submeter" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "Fazer a transição para o workflow: %s" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Tipos de documentos disponíveis" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "Tipos de documentos atribuídos a este fluxo de trabalho" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "Os tipos de documento atribuído ao workflow: %s" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "Estado do workflow: %s" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "Criar estados para Workflow: %s" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "Transição do Workflow: %s" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "Criar Transição para Workflow: %s" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "Não foi possível salvar transição; erro de integridade." + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "Documentos com o fluxo de trabalho: %s" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.mo index 03d30df385..cf7d43733f 100644 Binary files a/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.po index 12d7c01369..0f4fb8b1fe 100644 --- a/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/ro_RO/LC_MESSAGES/django.po @@ -1,75 +1,77 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-04-17 09:43+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Nici unul" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "utilizator" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Comentariu" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "Șterge" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +95,7 @@ msgstr "Editează" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +107,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Etichetă" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +227,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Trimiteţi" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.mo index dda6baba5e..653fa93210 100644 Binary files a/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.po index 4a34ca5627..dcbf71b4c2 100644 --- a/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/ru/LC_MESSAGES/django.po @@ -1,76 +1,79 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "Статусы документа" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "Исходное состояние" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Ничего" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "Текущее состояние" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Пользователь" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "Дата и время" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "Завершение" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "Переход" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Комментарий" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -82,7 +85,7 @@ msgstr "" msgid "Delete" msgstr "Удалить" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "Типы документов" @@ -94,7 +97,7 @@ msgstr "Редактировать" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -106,74 +109,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Надпись" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "Документ" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -194,67 +229,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "Подтвердить" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "Доступные типы документов" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.mo index d02ec2a0ec..69748f009b 100644 Binary files a/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.po index 50b8799fb8..983e8272d2 100644 --- a/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/sl_SI/LC_MESSAGES/django.po @@ -1,75 +1,77 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-23 16:43+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "Brez" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Komentar" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +83,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +95,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +107,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "Oznaka" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" -msgstr "" +msgstr "Dokument" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +227,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.mo index a5c9bdb86e..a53497a5c0 100644 Binary files a/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.po index cbf0d01988..9154482951 100644 --- a/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/vi_VN/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "None" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "Người dùng" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "Chú thích" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "Sửa" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.mo index 1c0a152157..09a57bfa83 100644 Binary files a/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.po index 4989ac9c63..87e48087a3 100644 --- a/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/document_states/locale/zh_CN/LC_MESSAGES/django.po @@ -1,75 +1,76 @@ # 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-11-23 02:53-0400\n" -"PO-Revision-Date: 2016-03-21 21:09+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:31 +#: apps.py:41 msgid "Document states" msgstr "" -#: apps.py:47 +#: apps.py:70 msgid "Initial state" msgstr "" -#: apps.py:48 apps.py:58 apps.py:68 apps.py:74 +#: apps.py:71 apps.py:81 apps.py:91 apps.py:97 msgid "None" msgstr "无" -#: apps.py:52 +#: apps.py:75 msgid "Current state" msgstr "" -#: apps.py:56 apps.py:83 models.py:189 +#: apps.py:79 apps.py:106 models.py:269 msgid "User" msgstr "用户" -#: apps.py:62 +#: apps.py:85 msgid "Last transition" msgstr "" -#: apps.py:66 apps.py:79 +#: apps.py:89 apps.py:102 msgid "Date and time" msgstr "" -#: apps.py:72 apps.py:99 models.py:79 +#: apps.py:95 apps.py:122 models.py:99 msgid "Completion" msgstr "" -#: apps.py:86 forms.py:39 links.py:79 models.py:187 +#: apps.py:109 forms.py:43 links.py:85 models.py:267 msgid "Transition" msgstr "" -#: apps.py:90 forms.py:41 models.py:190 +#: apps.py:113 forms.py:46 models.py:270 msgid "Comment" msgstr "评论" -#: apps.py:95 +#: apps.py:118 msgid "Is initial state?" msgstr "" -#: apps.py:103 models.py:105 +#: apps.py:126 models.py:126 msgid "Origin state" msgstr "" -#: apps.py:107 models.py:109 +#: apps.py:130 models.py:130 msgid "Destination state" msgstr "" -#: links.py:15 links.py:38 models.py:59 views.py:185 +#: links.py:15 links.py:38 links.py:95 models.py:69 views.py:130 views.py:409 msgid "Workflows" msgstr "" @@ -81,7 +82,7 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:29 models.py:25 +#: links.py:29 models.py:34 msgid "Document types" msgstr "" @@ -93,7 +94,7 @@ msgstr "" msgid "Create state" msgstr "" -#: links.py:54 +#: links.py:54 links.py:104 msgid "States" msgstr "" @@ -105,74 +106,106 @@ msgstr "" msgid "Transitions" msgstr "" -#: links.py:75 +#: links.py:77 +msgid "Launch all workflows" +msgstr "" + +#: links.py:81 msgid "Detail" msgstr "" -#: models.py:21 models.py:67 models.py:101 +#: links.py:90 +msgid "Workflow documents" +msgstr "" + +#: links.py:99 +msgid "State documents" +msgstr "" + +#: models.py:30 models.py:87 models.py:122 msgid "Label" msgstr "" -#: models.py:58 models.py:65 models.py:99 models.py:126 +#: models.py:68 models.py:85 models.py:120 models.py:148 msgid "Workflow" msgstr "" -#: models.py:71 +#: models.py:91 msgid "" "Select if this will be the state with which you want the workflow to start " "in. Only one state can be the initial state." msgstr "" -#: models.py:73 +#: models.py:93 msgid "Initial" msgstr "" -#: models.py:77 +#: models.py:97 msgid "" "Enter the percent of completion that this state represents in relation to " "the workflow. Use numbers without the percent sign." msgstr "" -#: models.py:92 +#: models.py:113 msgid "Workflow state" msgstr "" -#: models.py:93 +#: models.py:114 msgid "Workflow states" msgstr "" -#: models.py:119 +#: models.py:141 msgid "Workflow transition" msgstr "" -#: models.py:120 +#: models.py:142 msgid "Workflow transitions" msgstr "" -#: models.py:129 +#: models.py:151 msgid "Document" msgstr "" -#: models.py:173 models.py:181 +#: models.py:246 models.py:261 msgid "Workflow instance" msgstr "" -#: models.py:174 +#: models.py:247 msgid "Workflow instances" msgstr "" -#: models.py:184 +#: models.py:264 msgid "Datetime" msgstr "" -#: models.py:196 +#: models.py:276 msgid "Workflow instance log entry" msgstr "" -#: models.py:197 +#: models.py:277 msgid "Workflow instance log entries" msgstr "" +#: models.py:281 +msgid "Not a valid transition choice." +msgstr "" + +#: models.py:287 +msgid "Workflow runtime proxy" +msgstr "" + +#: models.py:288 +msgid "Workflow runtime proxies" +msgstr "" + +#: models.py:294 +msgid "Workflow state runtime proxy" +msgstr "" + +#: models.py:295 +msgid "Workflow state runtime proxies" +msgstr "" + #: permissions.py:7 msgid "Document workflows" msgstr "" @@ -193,67 +226,122 @@ msgstr "" msgid "View workflows" msgstr "" -#: permissions.py:26 +#: permissions.py:25 msgid "Transition workflows" msgstr "" -#: views.py:57 +#: permissions.py:28 +msgid "Execute workflow tools" +msgstr "" + +#: serializers.py:22 +msgid "Primary key of the document type to be added." +msgstr "" + +#: serializers.py:37 +msgid "" +"API URL pointing to a document type in relation to the workflow to which it " +"is attached. This URL is different than the canonical document type URL." +msgstr "" + +#: serializers.py:116 +msgid "Primary key of the destination state to be added." +msgstr "" + +#: serializers.py:120 +msgid "Primary key of the origin state to be added." +msgstr "" + +#: serializers.py:218 +msgid "" +"API URL pointing to a workflow in relation to the document to which it is " +"attached. This URL is different than the canonical workflow URL." +msgstr "" + +#: serializers.py:227 +msgid "A link to the entire history of this workflow." +msgstr "" + +#: serializers.py:259 +msgid "" +"Comma separated list of document type primary keys to which this workflow " +"will be attached." +msgstr "" + +#: serializers.py:319 +msgid "Primary key of the transition to be added." +msgstr "" + +#: views.py:54 #, python-format msgid "Workflows for document: %s" msgstr "" -#: views.py:91 -#, python-format -msgid "Documents with the workflow: %s" -msgstr "" - -#: views.py:116 +#: views.py:78 #, python-format msgid "Detail of workflow: %(workflow)s" msgstr "" -#: views.py:162 +#: views.py:106 msgid "Submit" msgstr "提交" -#: views.py:164 +#: views.py:108 #, python-format msgid "Do transition for workflow: %s" msgstr "" -#: views.py:215 +#: views.py:160 msgid "Available document types" msgstr "" -#: views.py:216 +#: views.py:161 msgid "Document types assigned this workflow" msgstr "" -#: views.py:226 +#: views.py:171 #, python-format msgid "Document types assigned the workflow: %s" msgstr "" -#: views.py:269 +#: views.py:210 views.py:503 #, python-format msgid "States of workflow: %s" msgstr "" -#: views.py:287 +#: views.py:228 #, python-format msgid "Create states for workflow: %s" msgstr "" -#: views.py:363 +#: views.py:304 #, python-format msgid "Transitions of workflow: %s" msgstr "" -#: views.py:376 +#: views.py:317 #, python-format msgid "Create transitions for workflow: %s" msgstr "" -#: views.py:406 +#: views.py:347 msgid "Unable to save transition; integrity error." msgstr "" + +#: views.py:435 +#, python-format +msgid "Documents with the workflow: %s" +msgstr "" + +#: views.py:482 +#, python-format +msgid "Documents in the workflow \"%s\", state \"%s\"" +msgstr "" + +#: views.py:517 +msgid "Launch all workflows?" +msgstr "" + +#: views.py:524 +msgid "Workflow launch queued successfully." +msgstr "" diff --git a/mayan/apps/document_states/migrations/0003_auto_20170325_0447.py b/mayan/apps/document_states/migrations/0003_auto_20170325_0447.py new file mode 100644 index 0000000000..76b055a35b --- /dev/null +++ b/mayan/apps/document_states/migrations/0003_auto_20170325_0447.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.5 on 2017-03-25 04:47 +from __future__ import unicode_literals + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('document_states', '0002_workflowstate_completion'), + ] + + operations = [ + migrations.CreateModel( + name='WorkflowRuntimeProxy', + fields=[ + ], + options={ + 'verbose_name': 'Workflow runtime proxy', + 'proxy': True, + 'verbose_name_plural': 'Workflow runtime proxies', + }, + bases=('document_states.workflow',), + ), + migrations.CreateModel( + name='WorkflowStateRuntimeProxy', + fields=[ + ], + options={ + 'verbose_name': 'Workflow state runtime proxy', + 'proxy': True, + 'verbose_name_plural': 'Workflow state runtime proxies', + }, + bases=('document_states.workflowstate',), + ), + migrations.AlterModelOptions( + name='workflow', + options={'ordering': ('label',), 'verbose_name': 'Workflow', 'verbose_name_plural': 'Workflows'}, + ), + migrations.AlterModelOptions( + name='workflowstate', + options={'ordering': ('label',), 'verbose_name': 'Workflow state', 'verbose_name_plural': 'Workflow states'}, + ), + migrations.AlterModelOptions( + name='workflowtransition', + options={'ordering': ('label',), 'verbose_name': 'Workflow transition', 'verbose_name_plural': 'Workflow transitions'}, + ), + ] diff --git a/mayan/apps/document_states/migrations/0004_workflow_internal_name.py b/mayan/apps/document_states/migrations/0004_workflow_internal_name.py new file mode 100644 index 0000000000..837b34bac1 --- /dev/null +++ b/mayan/apps/document_states/migrations/0004_workflow_internal_name.py @@ -0,0 +1,72 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.10.7 on 2017-06-03 18:26 +from __future__ import unicode_literals + +from django.db import migrations, models +from django.utils.text import slugify + +from common.validators import validate_internal_name + + +def generate_internal_name(apps, schema_editor): + Workflow = apps.get_model('document_states', 'Workflow') + internal_names = [] + + for workflow in Workflow.objects.all(): + # Slugify and replace dashes (not allowed) by underscores + workflow.internal_name = slugify(workflow.label).replace('-', '_') + if workflow.internal_name in internal_names: + # Add a suffix in case two conversions yield the same + # result. + workflow.internal_name = '{}_'.format( + workflow.internal_name + ) + + internal_names.append(workflow.internal_name) + workflow.save() + + +class Migration(migrations.Migration): + dependencies = [ + ('document_states', '0003_auto_20170325_0447'), + ] + + operations = [ + # Add the internal name field but make it non unique + # https://docs.djangoproject.com/en/1.10/howto/ + # writing-migrations/#migrations-that-add-unique-fields + migrations.AddField( + model_name='workflow', + name='internal_name', + field=models.CharField( + db_index=True, default=' ', + help_text='This value will be used by other apps to reference ' + 'this workflow. Can only contain letters, numbers, and ' + 'underscores.', max_length=255, unique=False, validators=[ + validate_internal_name + ], verbose_name='Internal name' + ), + ), + + # Generate the slugs based on the labels + migrations.RunPython( + generate_internal_name, reverse_code=migrations.RunPython.noop + ), + + # Make the internal name field unique + # Add the internal name field but make it non unique + # https://docs.djangoproject.com/en/1.10/howto/ + # writing-migrations/#migrations-that-add-unique-fields + migrations.AlterField( + model_name='workflow', + name='internal_name', + field=models.CharField( + db_index=True, + help_text='This value will be used by other apps to reference ' + 'this workflow. Can only contain letters, numbers, and ' + 'underscores.', max_length=255, unique=True, validators=[ + validate_internal_name + ], verbose_name='Internal name' + ), + ), + ] diff --git a/mayan/apps/document_states/models.py b/mayan/apps/document_states/models.py index 09fc7cf345..6984cb15d9 100644 --- a/mayan/apps/document_states/models.py +++ b/mayan/apps/document_states/models.py @@ -1,22 +1,38 @@ -from __future__ import unicode_literals +from __future__ import absolute_import, unicode_literals import logging from django.conf import settings +from django.core.exceptions import PermissionDenied, ValidationError from django.core.urlresolvers import reverse from django.db import IntegrityError, models from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ +from acls.models import AccessControlList +from common.validators import validate_internal_name from documents.models import Document, DocumentType +from permissions import Permission from .managers import WorkflowManager +from .permissions import permission_workflow_transition logger = logging.getLogger(__name__) @python_2_unicode_compatible class Workflow(models.Model): + """ + Fields: + * label - Identifier. A name/label to call the workflow + """ + internal_name = models.CharField( + db_index=True, help_text=_( + 'This value will be used by other apps to reference this ' + 'workflow. Can only contain letters, numbers, and underscores.' + ), max_length=255, unique=True, validators=[validate_internal_name], + verbose_name=_('Internal name') + ) label = models.CharField( max_length=255, unique=True, verbose_name=_('Label') ) @@ -55,12 +71,23 @@ class Workflow(models.Model): ) class Meta: + ordering = ('label',) verbose_name = _('Workflow') verbose_name_plural = _('Workflows') @python_2_unicode_compatible class WorkflowState(models.Model): + """ + Fields: + * completion - Completion Amount - A user defined numerical value to help + determine if the workflow of the document is nearing completion (100%). + The Completion Amount will be determined by the completion value of the + Actual State. Example: If the workflow has 3 states: registered, approved, + archived; the admin could give the follow completion values to the + states: 33%, 66%, 100%. If the Actual State of the document if approved, + the Completion Amount will show 66%. + """ workflow = models.ForeignKey( Workflow, related_name='states', verbose_name=_('Workflow') ) @@ -88,6 +115,7 @@ class WorkflowState(models.Model): return super(WorkflowState, self).save(*args, **kwargs) class Meta: + ordering = ('label',) unique_together = ('workflow', 'label') verbose_name = _('Workflow state') verbose_name_plural = _('Workflow states') @@ -113,6 +141,7 @@ class WorkflowTransition(models.Model): return self.label class Meta: + ordering = ('label',) unique_together = ( 'workflow', 'label', 'origin_state', 'destination_state' ) @@ -137,17 +166,23 @@ class WorkflowInstance(models.Model): 'document_states:workflow_instance_detail', args=(str(self.pk),) ) - def do_transition(self, comment, transition, user): + def do_transition(self, transition, user, comment=None): try: if transition in self.get_current_state().origin_transitions.all(): self.log_entries.create( - comment=comment, transition=transition, user=user + comment=comment or '', transition=transition, user=user ) except AttributeError: # No initial state has been set for this workflow pass def get_current_state(self): + """ + Actual State - The current state of the workflow. If there are + multiple states available, for example: registered, approved, + archived; this field will tell at the current state where the + document is right now. + """ try: return self.get_last_transition().destination_state except AttributeError: @@ -160,13 +195,58 @@ class WorkflowInstance(models.Model): return None def get_last_transition(self): + """ + Last Transition - The last transition used by the last user to put + the document in the actual state. + """ try: return self.get_last_log_entry().transition except AttributeError: return None - def get_transition_choices(self): - return self.get_current_state().origin_transitions.all() + def get_transition_choices(self, _user=None): + current_state = self.get_current_state() + + if current_state: + queryset = current_state.origin_transitions.all() + + if _user: + try: + Permission.check_permissions( + requester=_user, permissions=( + permission_workflow_transition, + ) + ) + except PermissionDenied: + try: + """ + Check for ACL access to the workflow, if true, allow + all transition options. + """ + + AccessControlList.objects.check_access( + permissions=permission_workflow_transition, + user=_user, obj=self.workflow + ) + except PermissionDenied: + """ + If not ACL access to the workflow, filter transition + options by each transition ACL access + """ + + queryset = AccessControlList.objects.filter_by_access( + permission=permission_workflow_transition, + user=_user, queryset=queryset + ) + return queryset + else: + """ + This happens when a workflow has no initial state and a document + whose document type has this workflow is created. We return an + empty transition queryset. + """ + + return WorkflowTransition.objects.none() class Meta: unique_together = ('document', 'workflow') @@ -176,6 +256,13 @@ class WorkflowInstance(models.Model): @python_2_unicode_compatible class WorkflowInstanceLogEntry(models.Model): + """ + Fields: + * user - The user who last transitioned the document from a state to the + Actual State. + * datetime - Date Time - The date and time when the last user transitioned + the document state to the Actual state. + """ workflow_instance = models.ForeignKey( WorkflowInstance, related_name='log_entries', verbose_name=_('Workflow instance') @@ -195,3 +282,21 @@ class WorkflowInstanceLogEntry(models.Model): class Meta: verbose_name = _('Workflow instance log entry') verbose_name_plural = _('Workflow instance log entries') + + def clean(self): + if self.transition not in self.workflow_instance.get_transition_choices(_user=self.user): + raise ValidationError(_('Not a valid transition choice.')) + + +class WorkflowRuntimeProxy(Workflow): + class Meta: + proxy = True + verbose_name = _('Workflow runtime proxy') + verbose_name_plural = _('Workflow runtime proxies') + + +class WorkflowStateRuntimeProxy(WorkflowState): + class Meta: + proxy = True + verbose_name = _('Workflow state runtime proxy') + verbose_name_plural = _('Workflow state runtime proxies') diff --git a/mayan/apps/document_states/permissions.py b/mayan/apps/document_states/permissions.py index c992864d20..470c196a41 100644 --- a/mayan/apps/document_states/permissions.py +++ b/mayan/apps/document_states/permissions.py @@ -22,6 +22,8 @@ permission_workflow_view = namespace.add_permission( # 'transition workflows' from one state to another, to move the workflow # forwards permission_workflow_transition = namespace.add_permission( - name='workflow_transition', - label=_('Transition workflows') + name='workflow_transition', label=_('Transition workflows') +) +permission_workflow_tools = namespace.add_permission( + name='workflow_tools', label=_('Execute workflow tools') ) diff --git a/mayan/apps/document_states/serializers.py b/mayan/apps/document_states/serializers.py new file mode 100644 index 0000000000..4739bfe714 --- /dev/null +++ b/mayan/apps/document_states/serializers.py @@ -0,0 +1,354 @@ +from __future__ import unicode_literals + +from django.core.exceptions import ValidationError as DjangoValidationError +from django.utils.translation import ugettext_lazy as _ + +from rest_framework import serializers +from rest_framework.exceptions import ValidationError +from rest_framework.reverse import reverse + +from documents.models import DocumentType +from documents.serializers import DocumentTypeSerializer +from user_management.serializers import UserSerializer + +from .models import ( + Workflow, WorkflowInstance, WorkflowInstanceLogEntry, WorkflowState, + WorkflowTransition +) + + +class NewWorkflowDocumentTypeSerializer(serializers.Serializer): + document_type_pk = serializers.IntegerField( + help_text=_('Primary key of the document type to be added.') + ) + + def create(self, validated_data): + document_type = DocumentType.objects.get( + pk=validated_data['document_type_pk'] + ) + self.context['workflow'].document_types.add(document_type) + + return validated_data + + +class WorkflowDocumentTypeSerializer(DocumentTypeSerializer): + workflow_document_type_url = serializers.SerializerMethodField( + help_text=_( + 'API URL pointing to a document type in relation to the ' + 'workflow to which it is attached. This URL is different than ' + 'the canonical document type URL.' + ) + ) + + class Meta(DocumentTypeSerializer.Meta): + fields = DocumentTypeSerializer.Meta.fields + ( + 'workflow_document_type_url', + ) + read_only_fields = DocumentTypeSerializer.Meta.fields + + def get_workflow_document_type_url(self, instance): + return reverse( + 'rest_api:workflow-document-type-detail', args=( + self.context['workflow'].pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + +class WorkflowStateSerializer(serializers.HyperlinkedModelSerializer): + url = serializers.SerializerMethodField() + workflow_url = serializers.SerializerMethodField() + + class Meta: + fields = ( + 'completion', 'id', 'initial', 'label', 'url', 'workflow_url', + ) + model = WorkflowState + + def create(self, validated_data): + validated_data['workflow'] = self.context['workflow'] + return super(WorkflowStateSerializer, self).create(validated_data) + + def get_url(self, instance): + return reverse( + 'rest_api:workflowstate-detail', args=( + instance.workflow.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def get_workflow_url(self, instance): + return reverse( + 'rest_api:workflow-detail', args=( + instance.workflow.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + +class WorkflowTransitionSerializer(serializers.HyperlinkedModelSerializer): + destination_state = WorkflowStateSerializer() + origin_state = WorkflowStateSerializer() + url = serializers.SerializerMethodField() + workflow_url = serializers.SerializerMethodField() + + class Meta: + fields = ( + 'destination_state', 'id', 'label', 'origin_state', 'url', + 'workflow_url', + ) + model = WorkflowTransition + + def get_url(self, instance): + return reverse( + 'rest_api:workflowtransition-detail', args=( + instance.workflow.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def get_workflow_url(self, instance): + return reverse( + 'rest_api:workflow-detail', args=( + instance.workflow.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + +class WritableWorkflowTransitionSerializer(serializers.ModelSerializer): + destination_state_pk = serializers.IntegerField( + help_text=_('Primary key of the destination state to be added.'), + write_only=True + ) + origin_state_pk = serializers.IntegerField( + help_text=_('Primary key of the origin state to be added.'), + write_only=True + ) + url = serializers.SerializerMethodField() + workflow_url = serializers.SerializerMethodField() + + class Meta: + fields = ( + 'destination_state_pk', 'id', 'label', 'origin_state_pk', 'url', + 'workflow_url', + ) + model = WorkflowTransition + + def create(self, validated_data): + validated_data['destination_state'] = WorkflowState.objects.get( + pk=validated_data.pop('destination_state_pk') + ) + validated_data['origin_state'] = WorkflowState.objects.get( + pk=validated_data.pop('origin_state_pk') + ) + + validated_data['workflow'] = self.context['workflow'] + return super(WritableWorkflowTransitionSerializer, self).create( + validated_data + ) + + def get_url(self, instance): + return reverse( + 'rest_api:workflowtransition-detail', args=( + instance.workflow.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def get_workflow_url(self, instance): + return reverse( + 'rest_api:workflow-detail', args=( + instance.workflow.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def update(self, instance, validated_data): + validated_data['destination_state'] = WorkflowState.objects.get( + pk=validated_data.pop('destination_state_pk') + ) + validated_data['origin_state'] = WorkflowState.objects.get( + pk=validated_data.pop('origin_state_pk') + ) + + return super(WritableWorkflowTransitionSerializer, self).update( + instance, validated_data + ) + + +class WorkflowSerializer(serializers.HyperlinkedModelSerializer): + document_types_url = serializers.HyperlinkedIdentityField( + view_name='rest_api:workflow-document-type-list' + ) + states = WorkflowStateSerializer(many=True, required=False) + transitions = WorkflowTransitionSerializer(many=True, required=False) + + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:workflow-detail'}, + } + fields = ( + 'document_types_url', 'id', 'internal_name', 'label', 'states', + 'transitions', 'url' + ) + model = Workflow + + +class WorkflowInstanceLogEntrySerializer(serializers.ModelSerializer): + document_workflow_url = serializers.SerializerMethodField() + transition = WorkflowTransitionSerializer(read_only=True) + user = UserSerializer(read_only=True) + + class Meta: + fields = ( + 'comment', 'datetime', 'document_workflow_url', 'transition', + 'user' + ) + model = WorkflowInstanceLogEntry + + def get_document_workflow_url(self, instance): + return reverse( + 'rest_api:workflowinstance-detail', args=( + instance.workflow_instance.document.pk, + instance.workflow_instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + +class WorkflowInstanceSerializer(serializers.ModelSerializer): + current_state = WorkflowStateSerializer( + read_only=True, source='get_current_state' + ) + document_workflow_url = serializers.SerializerMethodField( + help_text=_( + 'API URL pointing to a workflow in relation to the ' + 'document to which it is attached. This URL is different than ' + 'the canonical workflow URL.' + ) + ) + last_log_entry = WorkflowInstanceLogEntrySerializer( + read_only=True, source='get_last_log_entry' + ) + log_entries_url = serializers.SerializerMethodField( + help_text=_('A link to the entire history of this workflow.') + ) + transition_choices = WorkflowTransitionSerializer( + many=True, read_only=True, source='get_transition_choices' + ) + workflow = WorkflowSerializer(read_only=True) + + class Meta: + fields = ( + 'current_state', 'document_workflow_url', 'last_log_entry', + 'log_entries_url', 'transition_choices', 'workflow', + ) + model = WorkflowInstance + + def get_document_workflow_url(self, instance): + return reverse( + 'rest_api:workflowinstance-detail', args=( + instance.document.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_log_entries_url(self, instance): + return reverse( + 'rest_api:workflowinstancelogentry-list', args=( + instance.document.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + +class WritableWorkflowSerializer(serializers.ModelSerializer): + document_types_pk_list = serializers.CharField( + help_text=_( + 'Comma separated list of document type primary keys to which this ' + 'workflow will be attached.' + ), required=False + ) + + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:workflow-detail'}, + } + fields = ( + 'document_types_pk_list', 'label', 'id', 'url', + ) + model = Workflow + + def _add_document_types(self, document_types_pk_list, instance): + instance.document_types.add( + *DocumentType.objects.filter( + pk__in=document_types_pk_list.split(',') + ) + ) + + def create(self, validated_data): + document_types_pk_list = validated_data.pop( + 'document_types_pk_list', '' + ) + + instance = super(WritableWorkflowSerializer, self).create( + validated_data + ) + + if document_types_pk_list: + self._add_document_types( + document_types_pk_list=document_types_pk_list, + instance=instance + ) + + return instance + + def update(self, instance, validated_data): + document_types_pk_list = validated_data.pop( + 'document_types_pk_list', '' + ) + + instance = super(WritableWorkflowSerializer, self).update( + instance, validated_data + ) + + if document_types_pk_list: + instance.documents.clear() + self._add_documents( + document_types_pk_list=document_types_pk_list, + instance=instance + ) + + return instance + + +class WritableWorkflowInstanceLogEntrySerializer(serializers.ModelSerializer): + document_workflow_url = serializers.SerializerMethodField() + transition_pk = serializers.IntegerField( + help_text=_('Primary key of the transition to be added.'), + write_only=True + ) + transition = WorkflowTransitionSerializer(read_only=True) + user = UserSerializer(read_only=True) + + class Meta: + fields = ( + 'comment', 'datetime', 'document_workflow_url', 'transition', + 'transition_pk', 'user' + ) + model = WorkflowInstanceLogEntry + + def get_document_workflow_url(self, instance): + return reverse( + 'rest_api:workflowinstance-detail', args=( + instance.workflow_instance.document.pk, + instance.workflow_instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def validate(self, attrs): + attrs['user'] = self.context['request'].user + attrs['workflow_instance'] = self.context['workflow_instance'] + attrs['transition'] = WorkflowTransition.objects.get( + pk=attrs.pop('transition_pk') + ) + + instance = WorkflowInstanceLogEntry(**attrs) + + try: + instance.full_clean() + except DjangoValidationError as exception: + raise ValidationError(exception) + + return attrs diff --git a/mayan/apps/document_states/tasks.py b/mayan/apps/document_states/tasks.py new file mode 100644 index 0000000000..2156a45ead --- /dev/null +++ b/mayan/apps/document_states/tasks.py @@ -0,0 +1,24 @@ +from __future__ import unicode_literals + +import logging + +from django.apps import apps + +from mayan.celery import app + +logger = logging.getLogger(__name__) + + +@app.task(ignore_result=True) +def task_launch_all_workflows(): + Document = apps.get_model(app_label='documents', model_name='Document') + Workflow = apps.get_model( + app_label='document_states', model_name='Workflow' + ) + + logger.info('Start launching workflows') + for document in Document.objects.all(): + logger.debug('Lauching workflows for document ID: %d', document.pk) + Workflow.objects.launch_for(document=document) + + logger.info('Finished launching workflows') diff --git a/mayan/apps/document_states/tests/literals.py b/mayan/apps/document_states/tests/literals.py index c8fa5f52d8..212427d2d3 100644 --- a/mayan/apps/document_states/tests/literals.py +++ b/mayan/apps/document_states/tests/literals.py @@ -1,8 +1,20 @@ from __future__ import unicode_literals -TEST_WORKFLOW_LABEL = 'test workflow' +TEST_INDEX_LABEL = 'test workflow index' + +TEST_WORKFLOW_LABEL = 'test workflow label' +TEST_WORKFLOW_INTERNAL_NAME = 'test_workflow_label' +TEST_WORKFLOW_LABEL_EDITED = 'test workflow label edited' TEST_WORKFLOW_INITIAL_STATE_LABEL = 'test initial state' TEST_WORKFLOW_INITIAL_STATE_COMPLETION = 33 -TEST_WORKFLOW_STATE_LABEL = 'test state' +TEST_WORKFLOW_INSTANCE_LOG_ENTRY_COMMENT = 'test workflow instance log entry comment' +TEST_WORKFLOW_STATE_LABEL = 'test state label' +TEST_WORKFLOW_STATE_LABEL_EDITED = 'test state label edited' TEST_WORKFLOW_STATE_COMPLETION = 66 -TEST_WORKFLOW_TRANSITION_LABEL = 'test transtition' +TEST_WORKFLOW_TRANSITION_LABEL = 'test transition label' +TEST_WORKFLOW_TRANSITION_LABEL_2 = 'test transition label 2' +TEST_WORKFLOW_TRANSITION_LABEL_EDITED = 'test transition label edited' + +TEST_INDEX_TEMPLATE_METADATA_EXPRESSION = '{{{{ document.workflow.{}.get_current_state }}}}'.format( + TEST_WORKFLOW_INTERNAL_NAME +) diff --git a/mayan/apps/document_states/tests/test_api.py b/mayan/apps/document_states/tests/test_api.py new file mode 100644 index 0000000000..84ae9b930c --- /dev/null +++ b/mayan/apps/document_states/tests/test_api.py @@ -0,0 +1,812 @@ +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.urlresolvers import reverse +from django.test import override_settings + +from rest_framework.test import APITestCase + +from acls.models import AccessControlList +from documents.models import DocumentType +from documents.tests.literals import ( + TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +) +from permissions import Permission +from permissions.models import Role +from permissions.tests.literals import TEST_ROLE_LABEL +from rest_api.tests import BaseAPITestCase +from user_management.tests import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, + TEST_GROUP_NAME, TEST_USER_EMAIL, TEST_USER_USERNAME, TEST_USER_PASSWORD +) + +from ..models import Workflow +from ..permissions import permission_workflow_transition + +from .literals import ( + TEST_WORKFLOW_INTERNAL_NAME, TEST_WORKFLOW_INITIAL_STATE_COMPLETION, + TEST_WORKFLOW_INITIAL_STATE_LABEL, + TEST_WORKFLOW_INSTANCE_LOG_ENTRY_COMMENT, TEST_WORKFLOW_LABEL, + TEST_WORKFLOW_LABEL_EDITED, TEST_WORKFLOW_STATE_COMPLETION, + TEST_WORKFLOW_STATE_LABEL, TEST_WORKFLOW_STATE_LABEL_EDITED, + TEST_WORKFLOW_TRANSITION_LABEL, TEST_WORKFLOW_TRANSITION_LABEL_EDITED +) + + +@override_settings(OCR_AUTO_OCR=False) +class WorkflowAPITestCase(BaseAPITestCase): + def setUp(self): + super(WorkflowAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + super(WorkflowAPITestCase, self).tearDown() + + def _create_workflow(self): + return Workflow.objects.create( + label=TEST_WORKFLOW_LABEL, + internal_name=TEST_WORKFLOW_INTERNAL_NAME + ) + + def test_workflow_create_view(self): + response = self.client.post( + reverse('rest_api:workflow-list'), { + 'label': TEST_WORKFLOW_LABEL + } + ) + + workflow = Workflow.objects.first() + self.assertEqual(Workflow.objects.count(), 1) + self.assertEqual(response.data['id'], workflow.pk) + + def test_workflow_create_with_document_type_view(self): + response = self.client.post( + reverse('rest_api:workflow-list'), { + 'label': TEST_WORKFLOW_LABEL, + 'document_types_pk_list': '{}'.format(self.document_type.pk) + } + ) + + workflow = Workflow.objects.first() + self.assertEqual(Workflow.objects.count(), 1) + self.assertQuerysetEqual( + workflow.document_types.all(), (repr(self.document_type),) + ) + self.assertEqual(response.data['id'], workflow.pk) + + def test_workflow_delete_view(self): + workflow = self._create_workflow() + + self.client.delete( + reverse('rest_api:workflow-detail', args=(workflow.pk,)) + ) + + self.assertEqual(Workflow.objects.count(), 0) + + def test_workflow_detail_view(self): + workflow = self._create_workflow() + + response = self.client.get( + reverse('rest_api:workflow-detail', args=(workflow.pk,)) + ) + + self.assertEqual(response.data['label'], workflow.label) + + def test_workflow_document_type_create_view(self): + workflow = self._create_workflow() + + self.client.post( + reverse( + 'rest_api:workflow-document-type-list', + args=(workflow.pk,) + ), data={'document_type_pk': self.document_type.pk} + ) + + self.assertQuerysetEqual( + workflow.document_types.all(), (repr(self.document_type),) + ) + + def test_workflow_document_type_delete_view(self): + workflow = self._create_workflow() + workflow.document_types.add(self.document_type) + + self.client.delete( + reverse( + 'rest_api:workflow-document-type-detail', + args=(workflow.pk, self.document_type.pk) + ) + ) + + workflow.refresh_from_db() + self.assertQuerysetEqual(workflow.document_types.all(), ()) + # The workflow document type entry was deleted and not the document + # type itself. + self.assertQuerysetEqual( + DocumentType.objects.all(), (repr(self.document_type),) + ) + + def test_workflow_document_type_detail_view(self): + workflow = self._create_workflow() + workflow.document_types.add(self.document_type) + + response = self.client.get( + reverse( + 'rest_api:workflow-document-type-detail', + args=(workflow.pk, self.document_type.pk) + ) + ) + + self.assertEqual(response.data['label'], self.document_type.label) + + def test_workflow_document_type_list_view(self): + workflow = self._create_workflow() + workflow.document_types.add(self.document_type) + + response = self.client.get( + reverse( + 'rest_api:workflow-document-type-list', args=(workflow.pk,) + ) + ) + + self.assertEqual( + response.data['results'][0]['label'], self.document_type.label + ) + + def test_workflow_list_view(self): + workflow = self._create_workflow() + + response = self.client.get(reverse('rest_api:workflow-list')) + + self.assertEqual(response.data['results'][0]['label'], workflow.label) + + def test_workflow_put_view(self): + workflow = self._create_workflow() + + self.client.put( + reverse('rest_api:workflow-detail', args=(workflow.pk,)), + data={'label': TEST_WORKFLOW_LABEL_EDITED} + ) + + workflow.refresh_from_db() + self.assertEqual(workflow.label, TEST_WORKFLOW_LABEL_EDITED) + + def test_workflow_patch_view(self): + workflow = self._create_workflow() + + self.client.patch( + reverse('rest_api:workflow-detail', args=(workflow.pk,)), + data={'label': TEST_WORKFLOW_LABEL_EDITED} + ) + + workflow.refresh_from_db() + self.assertEqual(workflow.label, TEST_WORKFLOW_LABEL_EDITED) + + def test_document_type_workflow_list(self): + workflow = self._create_workflow() + workflow.document_types.add(self.document_type) + + response = self.client.get( + reverse( + 'rest_api:documenttype-workflow-list', + args=(self.document_type.pk,) + ), + ) + + self.assertEqual(response.data['results'][0]['label'], workflow.label) + + +@override_settings(OCR_AUTO_OCR=False) +class WorkflowStatesAPITestCase(BaseAPITestCase): + def setUp(self): + super(WorkflowStatesAPITestCase, self).setUp() + + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + super(WorkflowStatesAPITestCase, self).tearDown() + + def _create_workflow(self): + self.workflow = Workflow.objects.create( + label=TEST_WORKFLOW_LABEL, + internal_name=TEST_WORKFLOW_INTERNAL_NAME + ) + + def _create_workflow_state(self): + self._create_workflow() + self.workflow_state = self.workflow.states.create( + completion=TEST_WORKFLOW_STATE_COMPLETION, + label=TEST_WORKFLOW_STATE_LABEL + ) + + def test_workflow_state_create_view(self): + self._create_workflow() + + self.client.post( + reverse( + 'rest_api:workflowstate-list', args=(self.workflow.pk,) + ), data={ + 'completion': TEST_WORKFLOW_STATE_COMPLETION, + 'label': TEST_WORKFLOW_STATE_LABEL + } + ) + + self.workflow.refresh_from_db() + + self.assertEqual( + self.workflow.states.first().label, TEST_WORKFLOW_STATE_LABEL + ) + + def test_workflow_state_delete_view(self): + self._create_workflow_state() + + self.client.delete( + reverse( + 'rest_api:workflowstate-detail', + args=(self.workflow.pk, self.workflow_state.pk) + ), + ) + + self.workflow.refresh_from_db() + + self.assertEqual(self.workflow.states.count(), 0) + + def test_workflow_state_detail_view(self): + self._create_workflow_state() + + response = self.client.get( + reverse( + 'rest_api:workflowstate-detail', + args=(self.workflow.pk, self.workflow_state.pk) + ), + ) + + self.assertEqual( + response.data['label'], TEST_WORKFLOW_STATE_LABEL + ) + + def test_workflow_state_list_view(self): + self._create_workflow_state() + + response = self.client.get( + reverse('rest_api:workflowstate-list', args=(self.workflow.pk,)), + ) + + self.assertEqual( + response.data['results'][0]['label'], TEST_WORKFLOW_STATE_LABEL + ) + + def test_workflow_state_patch_view(self): + self._create_workflow_state() + + self.client.patch( + reverse( + 'rest_api:workflowstate-detail', + args=(self.workflow.pk, self.workflow_state.pk) + ), + data={'label': TEST_WORKFLOW_STATE_LABEL_EDITED} + ) + + self.workflow_state.refresh_from_db() + + self.assertEqual( + self.workflow_state.label, + TEST_WORKFLOW_STATE_LABEL_EDITED + ) + + def test_workflow_state_put_view(self): + self._create_workflow_state() + + self.client.put( + reverse( + 'rest_api:workflowstate-detail', + args=(self.workflow.pk, self.workflow_state.pk) + ), + data={'label': TEST_WORKFLOW_STATE_LABEL_EDITED} + ) + + self.workflow_state.refresh_from_db() + + self.assertEqual( + self.workflow_state.label, + TEST_WORKFLOW_STATE_LABEL_EDITED + ) + + +@override_settings(OCR_AUTO_OCR=False) +class WorkflowTransitionsAPITestCase(BaseAPITestCase): + def setUp(self): + super(WorkflowTransitionsAPITestCase, self).setUp() + + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + super(WorkflowTransitionsAPITestCase, self).tearDown() + + def _create_workflow(self): + self.workflow = Workflow.objects.create( + label=TEST_WORKFLOW_LABEL, + internal_name=TEST_WORKFLOW_INTERNAL_NAME + ) + + def _create_workflow_states(self): + self._create_workflow() + self.workflow_state_1 = self.workflow.states.create( + completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, + label=TEST_WORKFLOW_INITIAL_STATE_LABEL + ) + self.workflow_state_2 = self.workflow.states.create( + completion=TEST_WORKFLOW_STATE_COMPLETION, + label=TEST_WORKFLOW_STATE_LABEL + ) + + def _create_workflow_transition(self): + self._create_workflow_states() + self.workflow_transition = self.workflow.transitions.create( + label=TEST_WORKFLOW_TRANSITION_LABEL, + origin_state=self.workflow_state_1, + destination_state=self.workflow_state_2, + ) + + def test_workflow_transition_create_view(self): + self._create_workflow_states() + + self.client.post( + reverse( + 'rest_api:workflowtransition-list', args=(self.workflow.pk,) + ), data={ + 'label': TEST_WORKFLOW_TRANSITION_LABEL, + 'origin_state_pk': self.workflow_state_1.pk, + 'destination_state_pk': self.workflow_state_2.pk, + } + ) + + self.workflow.refresh_from_db() + + self.assertEqual( + self.workflow.transitions.first().label, + TEST_WORKFLOW_TRANSITION_LABEL + ) + + def test_workflow_transition_delete_view(self): + self._create_workflow_transition() + + self.client.delete( + reverse( + 'rest_api:workflowtransition-detail', + args=(self.workflow.pk, self.workflow_transition.pk) + ), + ) + + self.workflow.refresh_from_db() + + self.assertEqual(self.workflow.transitions.count(), 0) + + def test_workflow_transition_detail_view(self): + self._create_workflow_transition() + + response = self.client.get( + reverse( + 'rest_api:workflowtransition-detail', + args=(self.workflow.pk, self.workflow_transition.pk) + ), + ) + + self.assertEqual( + response.data['label'], TEST_WORKFLOW_TRANSITION_LABEL + ) + + def test_workflow_transition_list_view(self): + self._create_workflow_transition() + + response = self.client.get( + reverse( + 'rest_api:workflowtransition-list', args=(self.workflow.pk,) + ), + ) + + self.assertEqual( + response.data['results'][0]['label'], + TEST_WORKFLOW_TRANSITION_LABEL + ) + + def test_workflow_transition_patch_view(self): + self._create_workflow_transition() + + self.client.patch( + reverse( + 'rest_api:workflowtransition-detail', + args=(self.workflow.pk, self.workflow_transition.pk) + ), + data={ + 'label': TEST_WORKFLOW_TRANSITION_LABEL_EDITED, + 'origin_state_pk': self.workflow_state_2.pk, + 'destination_state_pk': self.workflow_state_1.pk, + } + ) + + self.workflow_transition.refresh_from_db() + + self.assertEqual( + self.workflow_transition.label, + TEST_WORKFLOW_TRANSITION_LABEL_EDITED + ) + self.assertEqual( + self.workflow_transition.origin_state, + self.workflow_state_2 + ) + self.assertEqual( + self.workflow_transition.destination_state, + self.workflow_state_1 + ) + + def test_workflow_transition_put_view(self): + self._create_workflow_transition() + + self.client.put( + reverse( + 'rest_api:workflowtransition-detail', + args=(self.workflow.pk, self.workflow_transition.pk) + ), + data={ + 'label': TEST_WORKFLOW_TRANSITION_LABEL_EDITED, + 'origin_state_pk': self.workflow_state_2.pk, + 'destination_state_pk': self.workflow_state_1.pk, + } + ) + + self.workflow_transition.refresh_from_db() + + self.assertEqual( + self.workflow_transition.label, + TEST_WORKFLOW_TRANSITION_LABEL_EDITED + ) + self.assertEqual( + self.workflow_transition.origin_state, + self.workflow_state_2 + ) + self.assertEqual( + self.workflow_transition.destination_state, + self.workflow_state_1 + ) + + +@override_settings(OCR_AUTO_OCR=False) +class DocumentWorkflowsAPITestCase(BaseAPITestCase): + def setUp(self): + super(DocumentWorkflowsAPITestCase, self).setUp() + + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + super(DocumentWorkflowsAPITestCase, self).tearDown() + + def _create_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def _create_workflow(self): + self.workflow = Workflow.objects.create( + label=TEST_WORKFLOW_LABEL, + internal_name=TEST_WORKFLOW_INTERNAL_NAME + ) + self.workflow.document_types.add(self.document_type) + + def _create_workflow_states(self): + self._create_workflow() + self.workflow_state_1 = self.workflow.states.create( + completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, + initial=True, label=TEST_WORKFLOW_INITIAL_STATE_LABEL + ) + self.workflow_state_2 = self.workflow.states.create( + completion=TEST_WORKFLOW_STATE_COMPLETION, + label=TEST_WORKFLOW_STATE_LABEL + ) + + def _create_workflow_transition(self): + self._create_workflow_states() + self.workflow_transition = self.workflow.transitions.create( + label=TEST_WORKFLOW_TRANSITION_LABEL, + origin_state=self.workflow_state_1, + destination_state=self.workflow_state_2, + ) + + def _create_workflow_instance_log_entry(self): + self.document.workflows.first().log_entries.create( + comment=TEST_WORKFLOW_INSTANCE_LOG_ENTRY_COMMENT, transition=self.workflow_transition, + user=self.admin_user + ) + + def test_workflow_instance_detail_view(self): + self._create_workflow_transition() + self._create_document() + + response = self.client.get( + reverse( + 'rest_api:workflowinstance-detail', args=( + self.document.pk, self.document.workflows.first().pk + ) + ), + ) + + self.assertEqual( + response.data['workflow']['label'], + TEST_WORKFLOW_LABEL + ) + + def test_workflow_instance_list_view(self): + self._create_workflow_transition() + self._create_document() + + response = self.client.get( + reverse( + 'rest_api:workflowinstance-list', args=(self.document.pk,) + ), + ) + + self.assertEqual( + response.data['results'][0]['workflow']['label'], + TEST_WORKFLOW_LABEL + ) + + def test_workflow_instance_log_entries_create_view(self): + self._create_workflow_transition() + self._create_document() + + workflow_instance = self.document.workflows.first() + + self.client.post( + reverse( + 'rest_api:workflowinstancelogentry-list', args=( + self.document.pk, workflow_instance.pk + ), + ), data={'transition_pk': self.workflow_transition.pk} + ) + + workflow_instance.refresh_from_db() + + self.assertEqual( + workflow_instance.log_entries.first().transition.label, + TEST_WORKFLOW_TRANSITION_LABEL + ) + + def test_workflow_instance_log_entries_list_view(self): + self._create_workflow_transition() + self._create_document() + self._create_workflow_instance_log_entry() + + response = self.client.get( + reverse( + 'rest_api:workflowinstancelogentry-list', args=( + self.document.pk, self.document.workflows.first().pk + ) + ), + ) + + self.assertEqual( + response.data['results'][0]['transition']['label'], + TEST_WORKFLOW_TRANSITION_LABEL + ) + + +@override_settings(OCR_AUTO_OCR=False) +class DocumentWorkflowsTransitionACLsAPITestCase(APITestCase): + def setUp(self): + self.user = get_user_model().objects.create_user( + username=TEST_USER_USERNAME, email=TEST_USER_EMAIL, + password=TEST_USER_PASSWORD + ) + + self.client.login( + username=TEST_USER_USERNAME, password=TEST_USER_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + self.group = Group.objects.create(name=TEST_GROUP_NAME) + self.role = Role.objects.create(label=TEST_ROLE_LABEL) + self.group.user_set.add(self.user) + self.role.groups.add(self.group) + Permission.invalidate_cache() + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + + def _create_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def _create_workflow(self): + self.workflow = Workflow.objects.create( + label=TEST_WORKFLOW_LABEL, + internal_name=TEST_WORKFLOW_INTERNAL_NAME + ) + self.workflow.document_types.add(self.document_type) + + def _create_workflow_states(self): + self._create_workflow() + self.workflow_state_1 = self.workflow.states.create( + completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, + initial=True, label=TEST_WORKFLOW_INITIAL_STATE_LABEL + ) + self.workflow_state_2 = self.workflow.states.create( + completion=TEST_WORKFLOW_STATE_COMPLETION, + label=TEST_WORKFLOW_STATE_LABEL + ) + + def _create_workflow_transition(self): + self._create_workflow_states() + self.workflow_transition = self.workflow.transitions.create( + label=TEST_WORKFLOW_TRANSITION_LABEL, + origin_state=self.workflow_state_1, + destination_state=self.workflow_state_2, + ) + + def test_workflow_transition_view_no_permission(self): + self._create_workflow_transition() + self._create_document() + + workflow_instance = self.document.workflows.first() + + self.client.post( + reverse( + 'rest_api:workflowinstancelogentry-list', args=( + self.document.pk, workflow_instance.pk + ), + ), data={'transition_pk': self.workflow_transition.pk} + ) + + workflow_instance.refresh_from_db() + + self.assertEqual(workflow_instance.log_entries.count(), 0) + + def test_workflow_transition_view_with_permission(self): + self._create_workflow_transition() + self._create_document() + + workflow_instance = self.document.workflows.first() + + self.role.permissions.add( + permission_workflow_transition.stored_permission + ) + + self.client.post( + reverse( + 'rest_api:workflowinstancelogentry-list', args=( + self.document.pk, workflow_instance.pk + ), + ), data={'transition_pk': self.workflow_transition.pk} + ) + + workflow_instance.refresh_from_db() + + self.assertEqual( + workflow_instance.log_entries.first().transition.label, + TEST_WORKFLOW_TRANSITION_LABEL + ) + + def test_workflow_transition_view_with_workflow_acl(self): + self._create_workflow_transition() + self._create_document() + + workflow_instance = self.document.workflows.first() + + acl = AccessControlList.objects.create( + content_object=self.workflow, role=self.role + ) + acl.permissions.add(permission_workflow_transition.stored_permission) + + self.client.post( + reverse( + 'rest_api:workflowinstancelogentry-list', args=( + self.document.pk, workflow_instance.pk + ), + ), data={'transition_pk': self.workflow_transition.pk} + ) + + workflow_instance.refresh_from_db() + + self.assertEqual( + workflow_instance.log_entries.first().transition.label, + TEST_WORKFLOW_TRANSITION_LABEL + ) + + def test_workflow_transition_view_transition_acl(self): + self._create_workflow_transition() + self._create_document() + + workflow_instance = self.document.workflows.first() + + acl = AccessControlList.objects.create( + content_object=self.workflow_transition, role=self.role + ) + acl.permissions.add(permission_workflow_transition.stored_permission) + + self.client.post( + reverse( + 'rest_api:workflowinstancelogentry-list', args=( + self.document.pk, workflow_instance.pk + ), + ), data={'transition_pk': self.workflow_transition.pk} + ) + + workflow_instance.refresh_from_db() + + self.assertEqual( + workflow_instance.log_entries.first().transition.label, + TEST_WORKFLOW_TRANSITION_LABEL + ) diff --git a/mayan/apps/document_states/tests/test_models.py b/mayan/apps/document_states/tests/test_models.py new file mode 100644 index 0000000000..f753c0a755 --- /dev/null +++ b/mayan/apps/document_states/tests/test_models.py @@ -0,0 +1,125 @@ +from __future__ import unicode_literals + +from django.test import override_settings + +from common.tests import BaseTestCase +from common.tests.mixins import UserMixin +from documents.models import DocumentType +from documents.tests import TEST_SMALL_DOCUMENT_PATH, TEST_DOCUMENT_TYPE +from document_indexing.models import Index, IndexInstanceNode + +from ..models import Workflow + +from .literals import ( + TEST_INDEX_LABEL, TEST_INDEX_TEMPLATE_METADATA_EXPRESSION, + TEST_WORKFLOW_INTERNAL_NAME, TEST_WORKFLOW_INITIAL_STATE_LABEL, + TEST_WORKFLOW_INITIAL_STATE_COMPLETION, TEST_WORKFLOW_LABEL, + TEST_WORKFLOW_STATE_LABEL, TEST_WORKFLOW_STATE_COMPLETION, + TEST_WORKFLOW_TRANSITION_LABEL +) + + +@override_settings(OCR_AUTO_OCR=False) +class DocumentStateIndexingTestCase(UserMixin, BaseTestCase): + def tearDown(self): + self.document_type.delete() + super(DocumentStateIndexingTestCase, self).tearDown() + + def _create_document_type(self): + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + def _create_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def _create_workflow(self): + self.workflow = Workflow.objects.create( + label=TEST_WORKFLOW_LABEL, + internal_name=TEST_WORKFLOW_INTERNAL_NAME + ) + self.workflow.document_types.add(self.document_type) + + def _create_workflow_states(self): + self._create_workflow() + self.workflow_state_1 = self.workflow.states.create( + completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, + initial=True, label=TEST_WORKFLOW_INITIAL_STATE_LABEL + ) + self.workflow_state_2 = self.workflow.states.create( + completion=TEST_WORKFLOW_STATE_COMPLETION, + label=TEST_WORKFLOW_STATE_LABEL + ) + + def _create_workflow_transition(self): + self._create_workflow_states() + self.workflow_transition = self.workflow.transitions.create( + label=TEST_WORKFLOW_TRANSITION_LABEL, + origin_state=self.workflow_state_1, + destination_state=self.workflow_state_2, + ) + + def _create_index(self): + # Create empty index + index = Index.objects.create(label=TEST_INDEX_LABEL) + + # Add our document type to the new index + index.document_types.add(self.document_type) + + # Create simple index template + root = index.template_root + index.node_templates.create( + parent=root, expression=TEST_INDEX_TEMPLATE_METADATA_EXPRESSION, + link_documents=True + ) + + def test_workflow_indexing_initial_state(self): + self._create_document_type() + self._create_workflow_transition() + self._create_index() + self._create_document() + + self.assertEqual( + list( + IndexInstanceNode.objects.values_list('value', flat=True) + ), ['', TEST_WORKFLOW_INITIAL_STATE_LABEL] + ) + + def test_workflow_indexing_transition(self): + self._create_document_type() + self._create_workflow_transition() + self._create_index() + self._create_document() + + self.document.workflows.first().do_transition( + transition=self.workflow_transition, + user=self.admin_user + ) + + self.assertEqual( + list( + IndexInstanceNode.objects.values_list('value', flat=True) + ), ['', TEST_WORKFLOW_STATE_LABEL] + ) + + def test_workflow_indexing_document_delete(self): + self._create_document_type() + self._create_workflow_transition() + self._create_index() + self._create_document() + + self.document.workflows.first().do_transition( + transition=self.workflow_transition, + user=self.admin_user + ) + + self.document.delete(to_trash=False) + + self.assertEqual( + list( + IndexInstanceNode.objects.values_list('value', flat=True) + ), [''] + ) diff --git a/mayan/apps/document_states/tests/test_views.py b/mayan/apps/document_states/tests/test_views.py index 251f127f21..04fdac14bc 100644 --- a/mayan/apps/document_states/tests/test_views.py +++ b/mayan/apps/document_states/tests/test_views.py @@ -1,13 +1,20 @@ from __future__ import unicode_literals +from acls.models import AccessControlList from common.tests.test_views import GenericViewTestCase +from documents.tests.literals import TEST_SMALL_DOCUMENT_PATH +from documents.tests.test_views import GenericDocumentViewTestCase from ..models import Workflow, WorkflowState, WorkflowTransition +from ..permissions import ( + permission_workflow_tools, permission_workflow_transition +) from .literals import ( - TEST_WORKFLOW_LABEL, TEST_WORKFLOW_INITIAL_STATE_LABEL, - TEST_WORKFLOW_INITIAL_STATE_COMPLETION, TEST_WORKFLOW_STATE_LABEL, - TEST_WORKFLOW_STATE_COMPLETION, TEST_WORKFLOW_TRANSITION_LABEL + TEST_WORKFLOW_INITIAL_STATE_LABEL, TEST_WORKFLOW_INITIAL_STATE_COMPLETION, + TEST_WORKFLOW_INTERNAL_NAME, TEST_WORKFLOW_LABEL, + TEST_WORKFLOW_STATE_LABEL, TEST_WORKFLOW_STATE_COMPLETION, + TEST_WORKFLOW_TRANSITION_LABEL, TEST_WORKFLOW_TRANSITION_LABEL_2 ) @@ -17,11 +24,35 @@ class DocumentStateViewTestCase(GenericViewTestCase): self.login_admin_user() + def _create_workflow(self): + self.workflow = Workflow.objects.create( + label=TEST_WORKFLOW_LABEL, + internal_name=TEST_WORKFLOW_INTERNAL_NAME + ) + + def _create_workflow_states(self): + self.workflow_initial_state = WorkflowState.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_INITIAL_STATE_LABEL, + completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, initial=True + ) + self.workflow_state = WorkflowState.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_STATE_LABEL, + completion=TEST_WORKFLOW_STATE_COMPLETION + ) + + def _create_workflow_transition(self): + self.workflow_transition = WorkflowTransition.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL, + origin_state=self.workflow_initial_state, + destination_state=self.workflow_state + ) + def test_creating_workflow(self): response = self.post( 'document_states:setup_workflow_create', data={ 'label': TEST_WORKFLOW_LABEL, + 'internal_name': TEST_WORKFLOW_INTERNAL_NAME, }, follow=True ) @@ -31,13 +62,10 @@ class DocumentStateViewTestCase(GenericViewTestCase): self.assertEquals(Workflow.objects.all()[0].label, TEST_WORKFLOW_LABEL) def test_delete_workflow(self): - workflow = Workflow.objects.create(label=TEST_WORKFLOW_LABEL) - - self.assertEquals(Workflow.objects.count(), 1) - self.assertEquals(Workflow.objects.all()[0].label, TEST_WORKFLOW_LABEL) + self._create_workflow() response = self.post( - 'document_states:setup_workflow_delete', args=(workflow.pk,), + 'document_states:setup_workflow_delete', args=(self.workflow.pk,), follow=True ) @@ -46,11 +74,11 @@ class DocumentStateViewTestCase(GenericViewTestCase): self.assertEquals(Workflow.objects.count(), 0) def test_create_workflow_state(self): - workflow = Workflow.objects.create(label=TEST_WORKFLOW_LABEL) + self._create_workflow() response = self.post( 'document_states:setup_workflow_state_create', - args=(workflow.pk,), + args=(self.workflow.pk,), data={ 'label': TEST_WORKFLOW_STATE_LABEL, 'completion': TEST_WORKFLOW_STATE_COMPLETION, @@ -69,39 +97,29 @@ class DocumentStateViewTestCase(GenericViewTestCase): ) def test_delete_workflow_state(self): - workflow = Workflow.objects.create(label=TEST_WORKFLOW_LABEL) - workflow_state = WorkflowState.objects.create( - workflow=workflow, label=TEST_WORKFLOW_STATE_LABEL, - completion=TEST_WORKFLOW_STATE_COMPLETION - ) + self._create_workflow() + self._create_workflow_states() response = self.post( 'document_states:setup_workflow_state_delete', - args=(workflow_state.pk,), follow=True + args=(self.workflow_state.pk,), follow=True ) self.assertEquals(response.status_code, 200) - self.assertEquals(WorkflowState.objects.count(), 0) + self.assertEquals(WorkflowState.objects.count(), 1) self.assertEquals(Workflow.objects.count(), 1) def test_create_workflow_transition(self): - workflow = Workflow.objects.create(label=TEST_WORKFLOW_LABEL) - workflow_initial_state = WorkflowState.objects.create( - workflow=workflow, label=TEST_WORKFLOW_INITIAL_STATE_LABEL, - completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, initial=True - ) - workflow_state = WorkflowState.objects.create( - workflow=workflow, label=TEST_WORKFLOW_STATE_LABEL, - completion=TEST_WORKFLOW_STATE_COMPLETION - ) + self._create_workflow() + self._create_workflow_states() response = self.post( 'document_states:setup_workflow_transition_create', - args=(workflow.pk,), data={ + args=(self.workflow.pk,), data={ 'label': TEST_WORKFLOW_TRANSITION_LABEL, - 'origin_state': workflow_initial_state.pk, - 'destination_state': workflow_state.pk, + 'origin_state': self.workflow_initial_state.pk, + 'destination_state': self.workflow_state.pk, }, follow=True ) @@ -114,34 +132,21 @@ class DocumentStateViewTestCase(GenericViewTestCase): ) self.assertEquals( WorkflowTransition.objects.all()[0].origin_state, - workflow_initial_state + self.workflow_initial_state ) self.assertEquals( WorkflowTransition.objects.all()[0].destination_state, - workflow_state + self.workflow_state ) def test_delete_workflow_transition(self): - workflow = Workflow.objects.create(label=TEST_WORKFLOW_LABEL) - workflow_initial_state = WorkflowState.objects.create( - workflow=workflow, label=TEST_WORKFLOW_INITIAL_STATE_LABEL, - completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, initial=True - ) - workflow_state = WorkflowState.objects.create( - workflow=workflow, label=TEST_WORKFLOW_STATE_LABEL, - completion=TEST_WORKFLOW_STATE_COMPLETION - ) - workflow_transition = WorkflowTransition.objects.create( - workflow=workflow, label=TEST_WORKFLOW_TRANSITION_LABEL, - origin_state=workflow_initial_state, - destination_state=workflow_state - ) - - self.assertEquals(WorkflowTransition.objects.count(), 1) + self._create_workflow() + self._create_workflow_states() + self._create_workflow_transition() response = self.post( 'document_states:setup_workflow_transition_delete', - args=(workflow_transition.pk,), follow=True + args=(self.workflow_transition.pk,), follow=True ) self.assertEquals(response.status_code, 200) @@ -149,3 +154,207 @@ class DocumentStateViewTestCase(GenericViewTestCase): self.assertEquals(WorkflowState.objects.count(), 2) self.assertEquals(Workflow.objects.count(), 1) self.assertEquals(WorkflowTransition.objects.count(), 0) + + +class DocumentStateToolViewTestCase(GenericDocumentViewTestCase): + def _create_workflow(self): + self.workflow = Workflow.objects.create(label=TEST_WORKFLOW_LABEL) + self.workflow.document_types.add(self.document_type) + + def _create_workflow_states(self): + self._create_workflow() + self.workflow_state_1 = self.workflow.states.create( + completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, + initial=True, label=TEST_WORKFLOW_INITIAL_STATE_LABEL + ) + self.workflow_state_2 = self.workflow.states.create( + completion=TEST_WORKFLOW_STATE_COMPLETION, + label=TEST_WORKFLOW_STATE_LABEL + ) + + def _create_workflow_transition(self): + self._create_workflow_states() + self.workflow_transition = self.workflow.transitions.create( + label=TEST_WORKFLOW_TRANSITION_LABEL, + origin_state=self.workflow_state_1, + destination_state=self.workflow_state_2, + ) + + def test_tool_launch_all_workflows_view_no_permission(self): + self._create_workflow_transition() + + self.login_user() + + self.assertEqual(self.document.workflows.count(), 0) + + response = self.post( + 'document_states:tool_launch_all_workflows', + ) + self.assertEqual(response.status_code, 403) + self.assertEqual(self.document.workflows.count(), 0) + + def test_tool_launch_all_workflows_view_with_permission(self): + self._create_workflow_transition() + + self.login_user() + self.grant(permission_workflow_tools) + + self.assertEqual(self.document.workflows.count(), 0) + + response = self.post( + 'document_states:tool_launch_all_workflows', + ) + self.assertEqual(response.status_code, 302) + + self.assertEqual( + self.document.workflows.first().workflow, self.workflow + ) + + +class DocumentStateTransitionViewTestCase(GenericDocumentViewTestCase): + def _create_workflow(self): + self.workflow = Workflow.objects.create(label=TEST_WORKFLOW_LABEL) + self.workflow.document_types.add(self.document_type) + + def _create_workflow_states(self): + self.workflow_initial_state = WorkflowState.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_INITIAL_STATE_LABEL, + completion=TEST_WORKFLOW_INITIAL_STATE_COMPLETION, initial=True + ) + self.workflow_state = WorkflowState.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_STATE_LABEL, + completion=TEST_WORKFLOW_STATE_COMPLETION + ) + + def _create_workflow_transitions(self): + self.workflow_transition = WorkflowTransition.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL, + origin_state=self.workflow_initial_state, + destination_state=self.workflow_state + ) + + self.workflow_transition_2 = WorkflowTransition.objects.create( + workflow=self.workflow, label=TEST_WORKFLOW_TRANSITION_LABEL_2, + origin_state=self.workflow_initial_state, + destination_state=self.workflow_state + ) + + def _create_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document_2 = self.document_type.new_document( + file_object=file_object + ) + + def _request_workflow_transition(self, workflow_instance): + return self.post( + 'document_states:workflow_instance_transition', + args=(workflow_instance.pk,), data={ + 'transition': self.workflow_transition.pk, + } + ) + + def test_transition_workflow_no_permission(self): + self.login_user() + self._create_workflow() + self._create_workflow_states() + self._create_workflow_transitions() + self._create_document() + + workflow_instance = self.document_2.workflows.first() + + response = self._request_workflow_transition( + workflow_instance=workflow_instance + ) + + self.assertEqual(response.status_code, 200) + + # Workflow should remain in the same initial state + self.assertEqual( + workflow_instance.get_current_state(), self.workflow_initial_state + ) + + def test_transition_workflow_with_permission(self): + """ + Test transitioning a workflow by granting the transition workflow + permission to the role. + """ + + self.login_user() + self._create_workflow() + self._create_workflow_states() + self._create_workflow_transitions() + self._create_document() + + workflow_instance = self.document_2.workflows.first() + + self.grant(permission_workflow_transition) + response = self._request_workflow_transition( + workflow_instance=workflow_instance + ) + + self.assertEqual(response.status_code, 302) + + # Workflow should remain in the same initial state + self.assertEqual( + workflow_instance.get_current_state(), self.workflow_state + ) + + def test_transition_workflow_with_workflow_acl(self): + """ + Test transitioning a workflow by granting the transition workflow + permission to the workflow itself via ACL. + """ + + self.login_user() + self._create_workflow() + self._create_workflow_states() + self._create_workflow_transitions() + self._create_document() + + workflow_instance = self.document_2.workflows.first() + + acl = AccessControlList.objects.create( + content_object=self.workflow, role=self.role + ) + acl.permissions.add(permission_workflow_transition.stored_permission) + + response = self._request_workflow_transition( + workflow_instance=workflow_instance + ) + + self.assertEqual(response.status_code, 302) + + # Workflow should remain in the same initial state + self.assertEqual( + workflow_instance.get_current_state(), self.workflow_state + ) + + def test_transition_workflow_with_transition_acl(self): + """ + Test transitioning a workflow by granting the transition workflow + permission to the transition via ACL. + """ + + self.login_user() + self._create_workflow() + self._create_workflow_states() + self._create_workflow_transitions() + self._create_document() + + workflow_instance = self.document_2.workflows.first() + + acl = AccessControlList.objects.create( + content_object=self.workflow_transition, role=self.role + ) + acl.permissions.add(permission_workflow_transition.stored_permission) + + response = self._request_workflow_transition( + workflow_instance=workflow_instance + ) + + self.assertEqual(response.status_code, 302) + + # Workflow should remain in the same initial state + self.assertEqual( + workflow_instance.get_current_state(), self.workflow_state + ) diff --git a/mayan/apps/document_states/urls.py b/mayan/apps/document_states/urls.py index a8b30e460e..e6217a66cf 100644 --- a/mayan/apps/document_states/urls.py +++ b/mayan/apps/document_states/urls.py @@ -2,6 +2,13 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import ( + APIDocumentTypeWorkflowListView, APIWorkflowDocumentTypeList, + APIWorkflowDocumentTypeView, APIWorkflowInstanceListView, + APIWorkflowInstanceView, APIWorkflowInstanceLogEntryListView, + APIWorkflowListView, APIWorkflowStateListView, APIWorkflowStateView, + APIWorkflowTransitionListView, APIWorkflowTransitionView, APIWorkflowView +) from .views import ( DocumentWorkflowInstanceListView, SetupWorkflowCreateView, SetupWorkflowDeleteView, SetupWorkflowDocumentTypesView, @@ -10,8 +17,9 @@ from .views import ( SetupWorkflowStateEditView, SetupWorkflowStateListView, SetupWorkflowTransitionListView, SetupWorkflowTransitionCreateView, SetupWorkflowTransitionDeleteView, SetupWorkflowTransitionEditView, - WorkflowDocumentListView, WorkflowInstanceDetailView, - WorkflowInstanceTransitionView + ToolLaunchAllWorkflows, WorkflowDocumentListView, + WorkflowInstanceDetailView, WorkflowInstanceTransitionView, + WorkflowListView, WorkflowStateDocumentListView, WorkflowStateListView ) urlpatterns = [ @@ -95,4 +103,82 @@ urlpatterns = [ SetupWorkflowTransitionEditView.as_view(), name='setup_workflow_transition_edit' ), + url( + r'^tools/workflow/all/launch/$', + ToolLaunchAllWorkflows.as_view(), + name='tool_launch_all_workflows' + ), + url( + r'all/$', + WorkflowListView.as_view(), + name='workflow_list' + ), + url( + r'^(?P\d+)/documents/$', + WorkflowDocumentListView.as_view(), + name='workflow_document_list' + ), + + url( + r'^(?P\d+)/states/$', + WorkflowStateListView.as_view(), + name='workflow_state_list' + ), + url( + r'^state/(?P\d+)/documents/$', + WorkflowStateDocumentListView.as_view(), + name='workflow_state_document_list' + ), +] + +api_urls = [ + url(r'^workflows/$', APIWorkflowListView.as_view(), name='workflow-list'), + url( + r'^workflows/(?P[0-9]+)/$', APIWorkflowView.as_view(), + name='workflow-detail' + ), + url( + r'^workflows/(?P[0-9]+)/document_types/$', + APIWorkflowDocumentTypeList.as_view(), + name='workflow-document-type-list' + ), + url( + r'^workflows/(?P[0-9]+)/document_types/(?P[0-9]+)/$', + APIWorkflowDocumentTypeView.as_view(), + name='workflow-document-type-detail' + ), + url( + r'^workflows/(?P[0-9]+)/states/$', + APIWorkflowStateListView.as_view(), name='workflowstate-list' + ), + url( + r'^workflows/(?P[0-9]+)/states/(?P[0-9]+)/$', + APIWorkflowStateView.as_view(), name='workflowstate-detail' + ), + url( + r'^workflows/(?P[0-9]+)/transitions/$', + APIWorkflowTransitionListView.as_view(), name='workflowtransition-list' + ), + url( + r'^workflows/(?P[0-9]+)/transitions/(?P[0-9]+)/$', + APIWorkflowTransitionView.as_view(), name='workflowtransition-detail' + ), + url( + r'^document/(?P[0-9]+)/workflows/$', + APIWorkflowInstanceListView.as_view(), name='workflowinstance-list' + ), + url( + r'^document/(?P[0-9]+)/workflows/(?P[0-9]+)/$', + APIWorkflowInstanceView.as_view(), name='workflowinstance-detail' + ), + url( + r'^document/(?P[0-9]+)/workflows/(?P[0-9]+)/log_entries/$', + APIWorkflowInstanceLogEntryListView.as_view(), + name='workflowinstancelogentry-list' + ), + url( + r'^document_type/(?P[0-9]+)/workflows/$', + APIDocumentTypeWorkflowListView.as_view(), + name='documenttype-workflow-list' + ), ] diff --git a/mayan/apps/document_states/views.py b/mayan/apps/document_states/views.py index c63ac0f777..c77d77d538 100644 --- a/mayan/apps/document_states/views.py +++ b/mayan/apps/document_states/views.py @@ -2,16 +2,16 @@ from __future__ import absolute_import, unicode_literals from django.contrib import messages from django.core.urlresolvers import reverse, reverse_lazy +from django.db.models import F, Max from django.db.utils import IntegrityError from django.http import HttpResponseRedirect from django.shortcuts import get_object_or_404 from django.utils.translation import ugettext_lazy as _ -from django.views.generic import FormView from acls.models import AccessControlList from common.views import ( - AssignRemoveView, SingleObjectCreateView, SingleObjectDeleteView, - SingleObjectEditView, SingleObjectListView + AssignRemoveView, ConfirmView, FormView, SingleObjectCreateView, + SingleObjectDeleteView, SingleObjectEditView, SingleObjectListView ) from documents.models import Document from documents.views import DocumentListView @@ -20,12 +20,16 @@ from .forms import ( WorkflowForm, WorkflowInstanceTransitionForm, WorkflowStateForm, WorkflowTransitionForm ) -from .models import Workflow, WorkflowInstance, WorkflowState, WorkflowTransition +from .models import ( + Workflow, WorkflowInstance, WorkflowInstanceLogEntry, WorkflowState, + WorkflowTransition, WorkflowRuntimeProxy, WorkflowStateRuntimeProxy +) from .permissions import ( permission_workflow_create, permission_workflow_delete, - permission_workflow_edit, permission_workflow_transition, + permission_workflow_edit, permission_workflow_tools, permission_workflow_view, ) +from .tasks import task_launch_all_workflows class DocumentWorkflowInstanceListView(SingleObjectListView): @@ -55,36 +59,10 @@ class DocumentWorkflowInstanceListView(SingleObjectListView): return self.get_document().workflows.all() -class WorkflowDocumentListView(DocumentListView): - def dispatch(self, request, *args, **kwargs): - self.workflow = get_object_or_404(Workflow, pk=self.kwargs['pk']) - - AccessControlList.objects.check_access( - permissions=permission_workflow_view, user=request.user, - obj=self.workflow - ) - - return super( - WorkflowDocumentListView, self - ).dispatch(request, *args, **kwargs) - - def get_document_queryset(self): - return Document.objects.filter( - document_type__in=self.workflow.document_types.all() - ) - - def get_extra_context(self): - return { - 'hide_links': True, - 'object': self.workflow, - 'title': _('Documents with the workflow: %s') % self.workflow - } - - class WorkflowInstanceDetailView(SingleObjectListView): def dispatch(self, request, *args, **kwargs): AccessControlList.objects.check_access( - permissions=permission_workflow_view, users=request.user, + permissions=permission_workflow_view, user=request.user, obj=self.get_workflow_instance().document ) @@ -114,23 +92,10 @@ class WorkflowInstanceTransitionView(FormView): form_class = WorkflowInstanceTransitionForm template_name = 'appearance/generic_form.html' - def dispatch(self, request, *args, **kwargs): - AccessControlList.objects.check_access( - permissions=permission_workflow_transition, user=request.user, - obj=self.get_workflow_instance().document - ) - - return super( - WorkflowInstanceTransitionView, self - ).dispatch(request, *args, **kwargs) - def form_valid(self, form): - transition = self.get_workflow_instance().workflow.transitions.get( - pk=form.cleaned_data['transition'] - ) self.get_workflow_instance().do_transition( - comment=form.cleaned_data['comment'], transition=transition, - user=self.request.user + comment=form.cleaned_data['comment'], + transition=form.cleaned_data['transition'], user=self.request.user ) return HttpResponseRedirect(self.get_success_url()) @@ -145,10 +110,11 @@ class WorkflowInstanceTransitionView(FormView): 'workflow_instance': self.get_workflow_instance(), } - def get_form_kwargs(self): - kwargs = super(WorkflowInstanceTransitionView, self).get_form_kwargs() - kwargs['workflow'] = self.get_workflow_instance() - return kwargs + def get_form_extra_kwargs(self): + return { + 'user': self.request.user, + 'workflow_instance': self.get_workflow_instance() + } def get_success_url(self): return self.get_workflow_instance().get_absolute_url() @@ -162,7 +128,7 @@ class WorkflowInstanceTransitionView(FormView): class SetupWorkflowListView(SingleObjectListView): extra_context = { 'title': _('Workflows'), - 'hide_link': True, + 'hide_object': True, } model = Workflow view_permission = permission_workflow_view @@ -429,3 +395,131 @@ class SetupWorkflowTransitionEditView(SingleObjectEditView): 'document_states:setup_workflow_transitions', args=(self.get_object().workflow.pk,) ) + + +class WorkflowListView(SingleObjectListView): + view_permission = permission_workflow_view + + def get_queryset(self): + return WorkflowRuntimeProxy.objects.all() + + def get_extra_context(self): + return { + 'hide_link': True, + 'title': _('Workflows') + } + + +class WorkflowDocumentListView(DocumentListView): + def dispatch(self, request, *args, **kwargs): + self.workflow = get_object_or_404( + WorkflowRuntimeProxy, pk=self.kwargs['pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=request.user, + obj=self.workflow + ) + + return super( + WorkflowDocumentListView, self + ).dispatch(request, *args, **kwargs) + + def get_document_queryset(self): + return Document.objects.filter(workflows__workflow=self.workflow) + + def get_extra_context(self): + return { + 'hide_links': True, + 'object': self.workflow, + 'title': _('Documents with the workflow: %s') % self.workflow + } + + +class WorkflowStateDocumentListView(DocumentListView): + def dispatch(self, request, *args, **kwargs): + self.workflow_state = get_object_or_404( + WorkflowStateRuntimeProxy, pk=self.kwargs['pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=request.user, + obj=self.workflow_state.workflow + ) + + return super( + WorkflowStateDocumentListView, self + ).dispatch(request, *args, **kwargs) + + def get_document_queryset(self): + latest_entries = WorkflowInstanceLogEntry.objects.annotate( + max_datetime=Max( + 'workflow_instance__log_entries__datetime' + ) + ).filter( + datetime=F('max_datetime') + ) + + state_latest_entries = latest_entries.filter( + transition__destination_state=self.workflow_state + ) + + return Document.objects.filter( + workflows__pk__in=state_latest_entries.values_list( + 'workflow_instance', flat=True + ) + ) + + def get_extra_context(self): + return { + 'hide_links': True, + 'object': self.workflow_state, + 'navigation_object_list': ('object', 'workflow'), + 'workflow': WorkflowRuntimeProxy.objects.get( + pk=self.workflow_state.workflow.pk + ), + 'title': _( + 'Documents in the workflow "%s", state "%s"' + ) % (self.workflow_state.workflow, self.workflow_state) + } + + +class WorkflowStateListView(SingleObjectListView): + def dispatch(self, request, *args, **kwargs): + AccessControlList.objects.check_access( + permissions=permission_workflow_view, user=request.user, + obj=self.get_workflow() + ) + + return super( + WorkflowStateListView, self + ).dispatch(request, *args, **kwargs) + + def get_extra_context(self): + return { + 'hide_columns': True, + 'hide_link': True, + 'object': self.get_workflow(), + 'title': _('States of workflow: %s') % self.get_workflow() + } + + def get_queryset(self): + return WorkflowStateRuntimeProxy.objects.filter( + workflow=self.get_workflow() + ) + + def get_workflow(self): + return get_object_or_404(WorkflowRuntimeProxy, pk=self.kwargs['pk']) + + +class ToolLaunchAllWorkflows(ConfirmView): + extra_context = { + 'title': _('Launch all workflows?') + } + view_permission = permission_workflow_tools + + def view_action(self): + task_launch_all_workflows.apply_async() + messages.success( + self.request, _('Workflow launch queued successfully.') + ) diff --git a/mayan/apps/documents/api_views.py b/mayan/apps/documents/api_views.py index 92d66c6c27..99d2d90d1e 100644 --- a/mayan/apps/documents/api_views.py +++ b/mayan/apps/documents/api_views.py @@ -15,23 +15,24 @@ from rest_api.permissions import MayanPermission from .literals import DOCUMENT_IMAGE_TASK_TIMEOUT from .models import ( - Document, DocumentPage, DocumentType, DocumentVersion, RecentDocument + Document, DocumentType, RecentDocument ) from .permissions import ( permission_document_create, permission_document_delete, permission_document_download, permission_document_edit, permission_document_new_version, permission_document_properties_edit, permission_document_restore, permission_document_trash, - permission_document_version_revert, permission_document_view, - permission_document_type_create, permission_document_type_delete, - permission_document_type_edit, permission_document_type_view + permission_document_view, permission_document_type_create, + permission_document_type_delete, permission_document_type_edit, + permission_document_type_view ) from .runtime import cache_storage_backend from .serializers import ( DeletedDocumentSerializer, DocumentPageSerializer, DocumentSerializer, DocumentTypeSerializer, DocumentVersionSerializer, - DocumentVersionRevertSerializer, NewDocumentSerializer, - NewDocumentVersionSerializer, RecentDocumentSerializer + NewDocumentSerializer, NewDocumentVersionSerializer, + RecentDocumentSerializer, WritableDocumentSerializer, + WritableDocumentTypeSerializer, WritableDocumentVersionSerializer ) from .tasks import task_generate_document_page_image @@ -78,10 +79,11 @@ class APIDeletedDocumentRestoreView(generics.GenericAPIView): mayan_object_permissions = { 'POST': (permission_document_restore,) } - permission_classes = (MayanPermission,) queryset = Document.trash.all() - serializer_class = DeletedDocumentSerializer + + def get_serializer_class(self): + return None def post(self, *args, **kwargs): self.get_object().restore() @@ -156,12 +158,15 @@ class APIDocumentVersionDownloadView(DownloadMixin, generics.RetrieveAPIView): paramType: path type: number """ + lookup_url_kwarg = 'version_pk' - mayan_object_permissions = { - 'GET': (permission_document_download,) - } - permission_classes = (MayanPermission,) - queryset = DocumentVersion.objects.all() + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_document_view, self.request.user, document + ) + return document def get_file(self): instance = self.get_object() @@ -170,6 +175,9 @@ class APIDocumentVersionDownloadView(DownloadMixin, generics.RetrieveAPIView): def get_serializer_class(self): return None + def get_queryset(self): + return self.get_document().versions.all() + def retrieve(self, request, *args, **kwargs): return self.render_to_response() @@ -187,7 +195,6 @@ class APIDocumentView(generics.RetrieveUpdateDestroyAPIView): } permission_classes = (MayanPermission,) queryset = Document.objects.all() - serializer_class = DocumentSerializer def delete(self, *args, **kwargs): """ @@ -203,6 +210,19 @@ class APIDocumentView(generics.RetrieveUpdateDestroyAPIView): return super(APIDocumentView, self).get(*args, **kwargs) + def get_serializer_context(self): + return { + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentSerializer + else: + return WritableDocumentSerializer + def patch(self, *args, **kwargs): """ Edit the properties of the selected document. @@ -235,12 +255,28 @@ class APIDocumentPageImageView(generics.RetrieveAPIView): type: number """ - mayan_object_permissions = { - 'GET': (permission_document_view,), - } - mayan_permission_attribute_check = 'document' - permission_classes = (MayanPermission,) - queryset = DocumentPage.objects.all() + lookup_url_kwarg = 'page_pk' + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_document_view + else: + permission_required = permission_document_edit + + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + return document + + def get_document_version(self): + return get_object_or_404( + self.get_document().versions.all(), pk=self.kwargs['version_pk'] + ) + + def get_queryset(self): + return self.get_document_version().pages.all() def get_serializer_class(self): return None @@ -259,7 +295,7 @@ class APIDocumentPageImageView(generics.RetrieveAPIView): task = task_generate_document_page_image.apply_async( kwargs=dict( - document_page_id=self.kwargs['pk'], size=size, zoom=zoom, + document_page_id=self.kwargs['page_pk'], size=size, zoom=zoom, rotation=rotation ) ) @@ -274,14 +310,7 @@ class APIDocumentPageView(generics.RetrieveUpdateAPIView): Returns the selected document page details. """ - mayan_object_permissions = { - 'GET': (permission_document_view,), - 'PUT': (permission_document_edit,), - 'PATCH': (permission_document_edit,) - } - mayan_permission_attribute_check = 'document' - permission_classes = (MayanPermission,) - queryset = DocumentPage.objects.all() + lookup_url_kwarg = 'page_pk' serializer_class = DocumentPageSerializer def get(self, *args, **kwargs): @@ -291,6 +320,27 @@ class APIDocumentPageView(generics.RetrieveUpdateAPIView): return super(APIDocumentPageView, self).get(*args, **kwargs) + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_document_view + else: + permission_required = permission_document_edit + + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + return document + + def get_document_version(self): + return get_object_or_404( + self.get_document().versions.all(), pk=self.kwargs['version_pk'] + ) + + def get_queryset(self): + return self.get_document_version().pages.all() + def patch(self, *args, **kwargs): """ Edit the selected document page. @@ -321,6 +371,12 @@ class APIDocumentTypeListView(generics.ListCreateAPIView): return super(APIDocumentTypeListView, self).get(*args, **kwargs) + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentTypeSerializer + else: + return WritableDocumentTypeSerializer + def post(self, *args, **kwargs): """ Create a new document type. @@ -342,7 +398,6 @@ class APIDocumentTypeView(generics.RetrieveUpdateDestroyAPIView): } permission_classes = (MayanPermission,) queryset = DocumentType.objects.all() - serializer_class = DocumentTypeSerializer def delete(self, *args, **kwargs): """ @@ -358,6 +413,12 @@ class APIDocumentTypeView(generics.RetrieveUpdateDestroyAPIView): return super(APIDocumentTypeView, self).get(*args, **kwargs) + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentTypeSerializer + else: + return WritableDocumentTypeSerializer + def patch(self, *args, **kwargs): """ Edit the properties of the selected document type. @@ -406,6 +467,33 @@ class APIRecentDocumentListView(generics.ListAPIView): return super(APIRecentDocumentListView, self).get(*args, **kwargs) +class APIDocumentVersionPageListView(generics.ListAPIView): + serializer_class = DocumentPageSerializer + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_document_view, self.request.user, document + ) + return document + + def get_document_version(self): + return get_object_or_404( + self.get_document().versions.all(), pk=self.kwargs['version_pk'] + ) + + def get_queryset(self): + return self.get_document_version().pages.all() + + def get_serializer_context(self): + return { + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + class APIDocumentVersionsListView(generics.ListCreateAPIView): """ Return a list of the selected document's versions. @@ -450,20 +538,48 @@ class APIDocumentVersionsListView(generics.ListCreateAPIView): return Response(status=status.HTTP_202_ACCEPTED, headers=headers) -class APIDocumentVersionView(generics.RetrieveUpdateAPIView): +class APIDocumentVersionView(generics.RetrieveUpdateDestroyAPIView): """ Returns the selected document version details. """ - mayan_object_permissions = { - 'GET': (permission_document_view,), - 'PATCH': (permission_document_edit,), - 'PUT': (permission_document_edit,), - } - mayan_permission_attribute_check = 'document' - permission_classes = (MayanPermission,) - queryset = DocumentVersion.objects.all() - serializer_class = DocumentVersionSerializer + lookup_url_kwarg = 'version_pk' + + def delete(self, *args, **kwargs): + """ + Delete the selected document version. + """ + + return super(APIDocumentVersionView, self).delete(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_document_view + else: + permission_required = permission_document_edit + + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permission_required, self.request.user, document + ) + return document + + def get_queryset(self): + return self.get_document().versions.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentVersionSerializer + else: + return WritableDocumentVersionSerializer + + def get_serializer_context(self): + return { + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } def patch(self, *args, **kwargs): """ @@ -478,21 +594,3 @@ class APIDocumentVersionView(generics.RetrieveUpdateAPIView): """ return super(APIDocumentVersionView, self).put(*args, **kwargs) - - -class APIDocumentVersionRevertView(generics.GenericAPIView): - """ - Revert to an earlier document version. - """ - - mayan_object_permissions = { - 'POST': (permission_document_version_revert,) - } - mayan_permission_attribute_check = 'document' - permission_classes = (MayanPermission,) - queryset = DocumentVersion.objects.all() - serializer_class = DocumentVersionRevertSerializer - - def post(self, *args, **kwargs): - self.get_object().revert(_user=self.request.user) - return Response(status=status.HTTP_200_OK) diff --git a/mayan/apps/documents/apps.py b/mayan/apps/documents/apps.py index 25e6e96884..8e0468f6a8 100644 --- a/mayan/apps/documents/apps.py +++ b/mayan/apps/documents/apps.py @@ -82,8 +82,8 @@ from .widgets import DocumentThumbnailWidget, DocumentPageThumbnailWidget class DocumentsApp(MayanAppConfig): + has_tests = True name = 'documents' - test = True verbose_name = _('Documents') def ready(self): @@ -105,6 +105,42 @@ class DocumentsApp(MayanAppConfig): serializer_class='documents.serializers.DocumentSerializer' ) + DashboardWidget( + func=new_document_pages_this_month, icon='fa fa-calendar', + label=_('New pages this month'), + link=reverse_lazy( + 'statistics:statistic_detail', + args=('new-document-pages-per-month',) + ) + ) + + DashboardWidget( + func=new_documents_this_month, icon='fa fa-calendar', + label=_('New documents this month'), + link=reverse_lazy( + 'statistics:statistic_detail', + args=('new-documents-per-month',) + ) + ) + + DashboardWidget( + icon='fa fa-file', queryset=Document.objects.all(), + label=_('Total documents'), + link=reverse_lazy('documents:document_list') + ) + + DashboardWidget( + icon='fa fa-book', queryset=DocumentType.objects.all(), + label=_('Document types'), + link=reverse_lazy('documents:document_type_list') + ) + + DashboardWidget( + icon='fa fa-trash', queryset=DeletedDocument.objects.all(), + label=_('Documents in trash'), + link=reverse_lazy('documents:document_list_deleted') + ) + MissingItem( label=_('Create a document type'), description=_( diff --git a/mayan/apps/documents/links.py b/mayan/apps/documents/links.py index 436273eab8..351a1b04ad 100644 --- a/mayan/apps/documents/links.py +++ b/mayan/apps/documents/links.py @@ -20,7 +20,14 @@ from .settings import setting_zoom_max_level, setting_zoom_min_level def is_not_current_version(context): - return context['resolved_object'].document.latest_version.timestamp != context['resolved_object'].timestamp + # Use the 'object' key when the document version is an object in a list, + # such as when showing the version list view and use the 'resolved_object' + # when the document version is the context object, such as when showing the + # signatures list of a documern version. This can be fixed by updating + # the navigations app object resolution logic to use 'resolved_object' even + # for objects in a list. + document_version = context.get('object', context['resolved_object']) + return document_version.document.latest_version.timestamp != document_version.timestamp def is_first_page(context): diff --git a/mayan/apps/documents/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/ar/LC_MESSAGES/django.mo index 3de7470a47..050a6bfe8c 100644 Binary files a/mayan/apps/documents/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/ar/LC_MESSAGES/django.po b/mayan/apps/documents/locale/ar/LC_MESSAGES/django.po index 8bb4bc416e..44c949b1d6 100644 --- a/mayan/apps/documents/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/ar/LC_MESSAGES/django.po @@ -1,102 +1,122 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "الوثائق" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "نوع الملف" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "تعليق" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +137,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +148,258 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "صورة الصفحة" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "إعادة تسمية الوثيقة بسرعة" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "تاريخ الاضافة" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "Unknown" + +#: forms.py:130 msgid "File mimetype" msgstr "نوع الملف" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "لا شيء" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "حجم الملف" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "موجود في التخزين" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "مسار الملف في التخزين" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "صفحات" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "نوع الوثيقة" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "ضغط" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "اسم الملف المضغوط" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "اسم الملف المضغوط سيحتوي الوثائق التي سيتم تحويلها، اذا تم اختيار الخيار السابق" +msgstr "" +"اسم الملف المضغوط سيحتوي الوثائق التي سيتم تحويلها، اذا تم اختيار الخيار " +"السابق" -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "نطاق الصفحات" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "تحميل" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." msgstr "مسح بيانات الرسومات المستخدمة لتسريع عرض الوثائق و نتائج التحويلات." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "تحرير" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Default" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +417,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +428,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Description" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "ملف" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "صفحة %(page_num)d من أصل %(total_pages)d للوثيقة %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "اسم الملف" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "مستخدم" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +530,10 @@ msgid "Delete documents" msgstr "حذف الوثائق" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "تحميل الوثائق" @@ -528,12 +550,10 @@ msgid "Edit document properties" msgstr "تحرير خصائص الوثيقة" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,212 +589,155 @@ msgstr "تحرير أنواع الوثائق" msgid "View document types" msgstr "عرض أنواع الوثائق" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." msgstr "أكبر عدد من الوثائق الحديثة للتذكر لكل مستخدم." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "النسبة المئوية لتكبير أو تصغير في صفحة الوثيقة لكل مستخدم." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "أكبر نسبة مئوية (%) للسماح بالتكبير داخل الوثيقة لكل مستخدم." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "أقل نسبة مئوية (%) للسماح بالتكبير داخل الوثيقة لكل مستخدم." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "الدرجة المسموح بها لتدوير الوثيقة لكل مستخدم." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "لا توجد صفحات أخرى بهذه الوثيقة" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "أنت بالفعل في الصفحة الأولى من هذه الوثيقة" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "سيتم حذف جميع الإصدارات اللاحقة بعد هذا الإصدار أيضا." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "تم ارجاع اصدار الوثيقة بنجاح" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "خطأ بارجاع اصدار الوثيقة %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "" - -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "يجب أن توفر ما لا يقل عن وثيقة واحدة." - -#: views.py:704 +#: views/document_views.py:120 #, python-format -msgid "Document type for \"%s\" changed successfully." +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "ارسال" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -782,32 +745,77 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:164 +#, python-format +msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:964 +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "" + +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" @@ -817,23 +825,24 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:1023 +#: views/document_views.py:541 #, python-format -msgid "" -"Error deleting the page transformations for document: %(document)s; " -"%(error)s." -msgstr "خطأ بمسح التحويلات الخاصة بالوثيقة: %(document)s; %(error)s." +msgid "Recalculate the page count of the document: %s?" +msgstr "" -#: views.py:1032 +#: views/document_views.py:558 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "كل التحويلات الخاصة بالوثيقة: %s, تم مسحها بنجاح." +msgid "Transformation clear request processed for %(count)d document" +msgstr "" -#: views.py:1044 +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" +msgid_plural "Clear all the page transformations for the selected document?" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -841,28 +850,82 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "لا توجد صفحات أخرى بهذه الوثيقة" +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "أنت بالفعل في الصفحة الأولى من هذه الوثيقة" +#: views/document_views.py:595 views/document_views.py:623 +#, python-format +msgid "" +"Error deleting the page transformations for document: %(document)s; " +"%(error)s." +msgstr "خطأ بمسح التحويلات الخاصة بالوثيقة: %(document)s; %(error)s." -#: views.py:1225 views.py:1234 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "ارسال" + +#: views/document_views.py:648 +#, python-format +msgid "Clone page transformations for document: %s" +msgstr "" + +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -926,9 +989,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -939,11 +999,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1076,10 +1136,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1093,11 +1151,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1120,11 +1178,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1141,15 +1199,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1206,11 +1268,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1234,11 +1296,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1259,9 +1321,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1291,11 +1355,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1352,15 +1416,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/bg/LC_MESSAGES/django.mo index e1c7a6fc8d..06b4e94587 100644 Binary files a/mayan/apps/documents/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/bg/LC_MESSAGES/django.po b/mayan/apps/documents/locale/bg/LC_MESSAGES/django.po index f1fcd219b3..514838bfa7 100644 --- a/mayan/apps/documents/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/bg/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Документи" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Коментар" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Изображение на страница" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Бързо преименуване на документ" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Дата на добавяне" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "Неизвестен" + +#: forms.py:130 msgid "File mimetype" msgstr "mimetype на файла" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Няма" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Размер на файла" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Съществува в склада" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Файлов път до склада" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Контролна сума" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Страници" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Вид на документа" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Компресиране" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Име на компресирания архив" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Името на компресирания архив, съдържащ документите за сваляне, ако предишната опция е избрана." +msgstr "" +"Името на компресирания архив, съдържащ документите за сваляне, ако " +"предишната опция е избрана." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Поредица от страници" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Сваляне" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Изчистване на графичното представяне, използвано да ускори изобразяването на документите и интерактивните промени." +msgstr "" +"Изчистване на графичното представяне, използвано да ускори изобразяването на " +"документите и интерактивните промени." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Редактиране" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "По подразбиране" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +418,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +429,98 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Описание" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Файл" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" -msgstr "Страница %(page_num)d от общо %(total_pages)d страници от %(document)s документи." +msgstr "" +"Страница %(page_num)d от общо %(total_pages)d страници от %(document)s " +"документи." -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Име на файл" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Потребител" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +533,10 @@ msgid "Delete documents" msgstr "Изтриване на документи" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Изтегляне на документи" @@ -528,12 +553,10 @@ msgid "Edit document properties" msgstr "Редактиране на свойства на документа" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,288 +592,342 @@ msgstr "Редактиране на вида документи" msgid "View document types" msgstr "Преглед на типовете документи" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Максимален брой от скорошни (създадени, редактирани, прегледани) документи, които да се показват на потребителя" +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Максимален брой от скорошни (създадени, редактирани, прегледани) документи, " +"които да се показват на потребителя" -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Процент приближавани или отдалечаване на страницата на документа, приложен за потребителя" +msgstr "" +"Процент приближавани или отдалечаване на страницата на документа, приложен " +"за потребителя" -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Максимален процент (%) допустим за интерактивно увеличаване страницата от потребителя" +msgstr "" +"Максимален процент (%) допустим за интерактивно увеличаване страницата от " +"потребителя" -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Минимален процент (%) допустим за интерактивно смаляване страницата от потребителя" +msgstr "" +"Минимален процент (%) допустим за интерактивно смаляване страницата от " +"потребителя" -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Градуси на завъртане на страница от документ, при потребителско действие" +msgstr "" +"Градуси на завъртане на страница от документ, при потребителско действие" -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Няма повече страници в този документ" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Вече сте на първа страница на този документ" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Всички версии, следващи тази, ще бъдат изтрити." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Документа е върнат успешно към предна версия" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Грешка при връщане на версията на документа; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Подаване" - -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" -msgstr[1] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:964 +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Грешка при изтриването на преобразования на страница на документ %(document)s, %(error)s." +msgstr "" +"Грешка при изтриването на преобразования на страница на документ " +"%(document)s, %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Подаване" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Всички преобразования на страницата на документ %s бяха изтрити успешно." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Няма повече страници в този документ" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Вече сте на първа страница на този документ" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -914,9 +991,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -927,11 +1001,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1060,10 +1134,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1077,11 +1149,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1104,11 +1176,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1125,15 +1197,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1190,11 +1266,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1218,11 +1294,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1243,9 +1319,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1275,11 +1353,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1336,15 +1414,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.mo index 5e1d760b00..fc36d15792 100644 Binary files a/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.po index 6d13f3082b..32a3300cc6 100644 --- a/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/bs_BA/LC_MESSAGES/django.po @@ -1,102 +1,122 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumenti" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME tip" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Komentar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +137,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +148,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Slika za stranicu" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Brzo preimenuj dokument" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Datum dodavanja" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "Nepoznat" + +#: forms.py:130 msgid "File mimetype" msgstr "Mimetype datoteke" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nijedno" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Veličina datoteke" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Postoji u pohrani" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Putanja dokumenta u pohrani" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Stranice" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tip dokumenta" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Kompresuj" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Naziv kompresovane datoteke" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Naziv kompresovane datoteke koji sadrži dokumente koji su za download, ako je ova opcija odabrana." +msgstr "" +"Naziv kompresovane datoteke koji sadrži dokumente koji su za download, ako " +"je ova opcija odabrana." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Opseg stranice" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Download" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Obriši grafičku prezentaciju korištenu za ubrzanje prikaza dokumenata i interaktivnu transformaciju rezultata." +msgstr "" +"Obriši grafičku prezentaciju korištenu za ubrzanje prikaza dokumenata i " +"interaktivnu transformaciju rezultata." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Urediti" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "default" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +419,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +430,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Opis" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Datoteka" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Stranica %(page_num)d od ukupno %(total_pages)d u %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Naziv datoteke" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Korisnik" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +532,10 @@ msgid "Delete documents" msgstr "Obriši dokumente" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Download dokumenata" @@ -528,12 +552,10 @@ msgid "Edit document properties" msgstr "Izmijeni osobine dokumenta" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,291 +591,340 @@ msgstr "Izmijeni tipove dokumenata" msgid "View document types" msgstr "Pregledaj tipove dokumenata" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Maksimalni broj nedavnih (kreiran, izmijenjen, pregledan) dokumenata za pamćenje po korisniku." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Maksimalni broj nedavnih (kreiran, izmijenjen, pregledan) dokumenata za " +"pamćenje po korisniku." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Iznos u procentima zumiranja stranice dokumenta po korisničkoj sesiji." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Maksimalni dozvoljeni iznos u procentima (%) korisniku da zumira stranicu dokumenta." +msgstr "" +"Maksimalni dozvoljeni iznos u procentima (%) korisniku da zumira stranicu " +"dokumenta." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Minimalni dozvoljeni iznos u procentima (%) po korisniku da zumira stranicu dokumenta." +msgstr "" +"Minimalni dozvoljeni iznos u procentima (%) po korisniku da zumira stranicu " +"dokumenta." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Iznos u stepenima za rotaciju stranice dokumenta po korisniku." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Ovaj dokument nema više stranica." + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Već ste na prvoj stranici ovog dokumenta" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Sve naknadne verzije nakon ove će također biti obrisane." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Verzija dokumenta uspješno vraćena" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Greška pri vraćanju verzije dokumenta; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "" - -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Mora biti barem jedan dokument." - -#: views.py:704 +#: views/document_views.py:120 #, python-format -msgid "Document type for \"%s\" changed successfully." +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Podnijeti" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:164 +#, python-format +msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:964 +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "" + +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "Greška brisanja transformacija za dokument: %(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Podnijeti" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Sve transformacije stranica za dokument: %s, su uspješno obrisane." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Ovaj dokument nema više stranica." - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Već ste na prvoj stranici ovog dokumenta" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -917,9 +988,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -930,11 +998,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1064,10 +1132,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1081,11 +1147,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1108,11 +1174,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1129,15 +1195,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1194,11 +1264,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1222,11 +1292,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1247,9 +1317,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1279,11 +1351,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1340,15 +1412,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/da/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/da/LC_MESSAGES/django.mo index 4e86032127..eb8c8020ae 100644 Binary files a/mayan/apps/documents/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/da/LC_MESSAGES/django.po b/mayan/apps/documents/locale/da/LC_MESSAGES/django.po index cb82180756..2115adb996 100644 --- a/mayan/apps/documents/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/da/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumenter" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME type" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Kommentar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Side billede" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Hurtig dokument omdøbning" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Dato tilføjet" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "File MIME-type" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Ingen" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Fil størrelse" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Eksisterer i opbevaring" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Filsti i opbevaring" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Sider" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Dokumenttype" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Komprimér" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Pakket filnavn" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Filnavnet for den pakkede fil, der vil indeholde dokumenterne til download. Dette hvis den tidligere mulighed er valg." +msgstr "" +"Filnavnet for den pakkede fil, der vil indeholde dokumenterne til download. " +"Dette hvis den tidligere mulighed er valg." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Sideinterval" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Hent" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Fjern grafiske repræsentationer brugt til at fremskynde visning af de dokumenter og interaktivt transformerede resultater." +msgstr "" +"Fjern grafiske repræsentationer brugt til at fremskynde visning af de " +"dokumenter og interaktivt transformerede resultater." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Standard" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +418,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +429,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Beskrivelse" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Fil" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Side %(page_num)d ud af %(total_pages)d i %(document)s " -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Filnavn" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Bruger" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +531,10 @@ msgid "Delete documents" msgstr "Slet dokumenter" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Hent dokumenter" @@ -528,12 +551,10 @@ msgid "Edit document properties" msgstr "Redigér dokumentegenskaber" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,288 +590,339 @@ msgstr "Redigér dokumenttyper" msgid "View document types" msgstr "Vis dokumenttyper" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Maksimalt antal seneste (oprettet, redigeret, set) dokumenter der huskes per bruger." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Maksimalt antal seneste (oprettet, redigeret, set) dokumenter der huskes per " +"bruger." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Procent zoom ind eller ud af en dokument side pr brugerinteraktion." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Maksimal mængde i procent (%) en bruger kan zoome i et dokuments side interaktivt." +msgstr "" +"Maksimal mængde i procent (%) en bruger kan zoome i et dokuments side " +"interaktivt." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Minimum procent (%) en brugeren er tilladt at zoome ud af en dokumentside interaktivt." +msgstr "" +"Minimum procent (%) en brugeren er tilladt at zoome ud af en dokumentside " +"interaktivt." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Antal grader en dokumentside roterer pr brugerinteraktion." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Der er ikke flere sider i dette dokument" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Du er allerede på den første side af dette dokument" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Alle senere versioner af denne vil også blive slettet." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Tidligere dokumentversion genskabt" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Fejl ved genskabelse af dokumentversion; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Angiv mindst ét ​​dokument." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" -msgstr[1] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." msgstr "" -#: views.py:964 +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Fejl ved sletning af sidens transformationer for dokument: %(document)s ; %(error)s ." +msgstr "" +"Fejl ved sletning af sidens transformationer for dokument: %(document)s ; " +"%(error)s ." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Alle side transformationer for dokument: %s, er blevet slettet." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Der er ikke flere sider i dette dokument" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Du er allerede på den første side af dette dokument" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -914,9 +986,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -927,11 +996,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1060,10 +1129,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1077,11 +1144,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1104,11 +1171,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1125,15 +1192,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1190,11 +1261,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1218,11 +1289,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1243,9 +1314,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1275,11 +1348,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1336,15 +1409,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.mo index 7e472a896e..8ddb15f6c2 100644 Binary files a/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.po index 1bd46e69a1..9b9ae44f8f 100644 --- a/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/de_DE/LC_MESSAGES/django.po @@ -1,105 +1,127 @@ # 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 , 2015-2016 +# Jesaja Everling , 2017 # Mathias Behrle , 2015 # Tobias Paepke , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-31 19:06+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 22:24+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumente" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "Neue Seiten in diesem Monat" + +#: apps.py:119 +msgid "New documents this month" +msgstr "Neue Dokumente in diesem Monat" + +#: apps.py:128 +msgid "Total documents" +msgstr "Alle Dokumente" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Dokumententypen" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Dokumente im Papierkorb" + +#: apps.py:145 msgid "Create a document type" msgstr "Dokumententyp erstellen" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Jedes hochgeladene Dokument muss einen Dokumententyp zugewiesen bekommen, da Mayan EDMS Dokumente auf der Grundlage von Dokumententypen kategorisiert. " +msgstr "" +"Jedes hochgeladene Dokument muss einen Dokumententyp zugewiesen bekommen, da " +"Mayan EDMS Dokumente auf der Grundlage von Dokumententypen kategorisiert. " -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Bezeichner" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "Der MIME-Typ der jeweiligen Dokumentenversion" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME Typ" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Miniaturbild" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Typ" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Aktiviert" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Zeitpunkt der Löschung" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Zeit und Datum" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Kodierung" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Kommentar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Neue Dokumente pro Monat" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Neue Dokumentenversionen pro Monat" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Neue Dokumentenseiten pro Monat" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Summe der Dokumente im Monat" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Summe der Dokumentenversionen im Monat" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Summe der Dokumentenseiten im Monat" @@ -120,12 +142,10 @@ msgid "Document type changed" msgstr "Dokumententyp geändert" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Neue Dokumentenversion hochgeladen." #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Dokumentenversion wurde erfolgreich wiederhergestellt" @@ -133,249 +153,266 @@ msgstr "Dokumentenversion wurde erfolgreich wiederhergestellt" msgid "Document viewed" msgstr "Dokument angezeigt" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Seitenbild" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Dokumentseiten (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Dokument schnell umbenennen" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Hinzugefügt am" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Sprache" + #: forms.py:122 +msgid "Unknown" +msgstr "Unbekannt" + +#: forms.py:130 msgid "File mimetype" msgstr "Datei MIME Type" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Keine" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Dateikodierung" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Dateigröße" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Im Dateispeicher" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Pfad im Dateispeicher" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Prüfsumme" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Seiten" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Dokumententyp" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Komprimieren" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Datei im Originalformat oder als komprimiertes Archiv herunterladen. Diese Option ist nur wählbar, wenn ein einzelnes Dokument heruntergeladen wird. Mehrere Dateien werden immer als komprimiertes Archiv heruntergeladen." +msgstr "" +"Datei im Originalformat oder als komprimiertes Archiv herunterladen. Diese " +"Option ist nur wählbar, wenn ein einzelnes Dokument heruntergeladen wird. " +"Mehrere Dateien werden immer als komprimiertes Archiv heruntergeladen." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Name der komprimierten Datei" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Name der komprimierten Datei, die die Dokumente zum Download beeinhaltet, wenn die vorherige Option gewählt wurde." +msgstr "" +"Name der komprimierten Datei, die die Dokumente zum Download beeinhaltet, " +"wenn die vorherige Option gewählt wurde." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Seitenbereich" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Vorschau" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Eigenschaften" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versionen" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Transformationen löschen" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Löschen" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "In den Papierkorb verschieben" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Eigenschaften bearbeiten" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Typ ändern" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Herunterladen" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Drucken" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Seitenzählung korrigieren" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Wiederherstellen" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Version herunterladen" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Alle Dokumente" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Letzte Dokumente" -#: links.py:144 -msgid "Trash" -msgstr "Papierkorb" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Grafiken löschen, die benutzt werden um die Dokumentendarstellung und interaktive Transformationsausgabe zu beschleunigen." +msgstr "" +"Grafiken löschen, die benutzt werden um die Dokumentendarstellung und " +"interaktive Transformationsausgabe zu beschleunigen." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Dokumentenbildercache löschen" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Papierkorb leeren" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Erste Seite" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Letzte Seite" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Vorherige Seite" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Nächste Seite" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Dokument" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Nach links drehen" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Nach rechts drehen" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Ansicht zurücksetzen" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Ansicht vergößern" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Ansicht verkleinern" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Wiederherstellen" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Dokumententypen erstellen" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Bearbeiten" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Schnellbezeichner zu Dokumententyp hinzufügen" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Schnellbezeichner" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Dokumententypen" - #: literals.py:14 msgid "Default" msgstr "Standard" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Alle Seiten" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Zeitspanne nach der Dokumente dieses Typs in den Papierkorb verschoben werden." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Zeitspanne nach der Dokumente dieses Typs in den Papierkorb verschoben " +"werden." #: models.py:71 msgid "Trash time period" @@ -389,15 +426,15 @@ msgstr "Einheit (Papierkorb)" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Zeitspanne nach der Dokumente dieses Typs die sich im Papierkorb befinden endgültig gelöscht werden." +msgstr "" +"Zeitspanne nach der Dokumente dieses Typs die sich im Papierkorb befinden " +"endgültig gelöscht werden." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Endgültig löschen nach" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Einheit (Löschen)" @@ -405,99 +442,99 @@ msgstr "Einheit (Löschen)" msgid "Documents types" msgstr "Dokumententypen" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "Name des Dokuments" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Beschreibung" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Hinzugefügt" -#: models.py:169 -msgid "Language" -msgstr "Sprache" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "Im Papierkorb?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Zeitpunkt der Löschung" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Ein Fragment ist ein Dokument mit einem Eintrag in der Datenbank, für das keine Datei hochgeladen wurde. Die Ursache könnte ein fehlgeschlagener Uploadvorgang sein oder ein verzögerter Upload über die API-Schnittstelle." +msgstr "" +"Ein Fragment ist ein Dokument mit einem Eintrag in der Datenbank, für das " +"keine Datei hochgeladen wurde. Die Ursache könnte ein fehlgeschlagener " +"Uploadvorgang sein oder ein verzögerter Upload über die API-Schnittstelle." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "Inkomplett" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Fragment, ID: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Zeitstempel" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Datei" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Dokumentenversion" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Schnellbezeichner" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Seitennummer" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Seite %(page_num)d von %(total_pages)d des Dokuments %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Dokumentenseite" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Dokumentenseiten" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Akutialisierungsschutz" +#: models.py:822 +msgid "Filename" +msgstr "Dateiname" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Aktualisierungsschutz" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Benutzer" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Letzter Zugriff" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Letztes Dokument" @@ -510,11 +547,10 @@ msgid "Delete documents" msgstr "Dokumente löschen" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Dokumente in den Papierkorb verschieben" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Dokumente herunterladen" @@ -531,12 +567,10 @@ msgid "Edit document properties" msgstr "Dokumenteneigenschaften bearbeiten" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Dukumente drucken" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "Dokument aus Papierkorb wiederherstellen" @@ -572,288 +606,338 @@ msgstr "Dokumententypen bearbeiten" msgid "View document types" msgstr "Dokumententypen anzeigen" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Maximale Anzahl der letzten Dokumente (erstellt, bearbeitet, angezeigt) pro Benutzer." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Maximale Anzahl der letzten Dokumente (erstellt, bearbeitet, angezeigt) pro " +"Benutzer." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Betrag in Prozent für Ansicht vergrößern/verkleinern pro Benutzer Aktion." +msgstr "" +"Betrag in Prozent für Ansicht vergrößern/verkleinern pro Benutzer Aktion." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "Maximaler erlaubter Zoom in %, den Benutzer interaktiv wählen können." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "Minimaler erlaubter Zoom in %, den Benutzer interaktiv wählen können." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Gradzahl, die ein Dokument pro Benutzer Aktion gedreht wird." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Standarddokumentensprache (im ISO639-2 Format)" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Liste der unterstützen Dokumentensprachen" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Dokumentenbildercache löschen?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Löschung des Dokumentenbildcaches erfolgreich eingereiht." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Dokumente im Papierkorb" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Das ausgwählte Dokument löschen?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Dokument %(document)s gelöscht." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Die ausgwählten Dokumente löschen?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Eigenschaften von Dokument \"%s\" bearbeiten" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Das ausgwählte Dokument wiederherstellen?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Dokument %(document)s wiederhergestellt" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Die ausgwählten Dokumente wiederherstellen?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Seiten des Dokuments: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Keine weiteren Seiten in diesem Dokument" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Sie sind bereits auf der ersten Seite dieses Dokuments" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Seitenbild für %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Vorschau von Dokument %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "\"%s\" in den Papierkorb verschieben?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Dokument \"%(document)s\" erfolgreich in den Papierkorb verschoben." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Die ausgewählten Dokumente in den Papierkorb verschieben?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Dokumente des Typs: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Alle Dokumente dieses Typs werden auch gelöscht." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Dokumententyp %s löschen?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Dokumententyp %s bearbeiten" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Schnellbezeichner erstellen für Dokumentenyp %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Schnellbezeichner \"%(filename)s\" von Dokumententyp \"%(document_type)s\" bearbeiten" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Schnellbezeichner \"%(filename)s\" von Dokumententyp \"%(document_type)s\" " +"bearbeiten" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" -msgstr "Schnellbezeichner %(label)s von Dokumententyp \"%(document_type)s\" löschen?" +msgstr "" +"Schnellbezeichner %(label)s von Dokumententyp \"%(document_type)s\" löschen?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Schnellbezeichner für Dokumententyp %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versionen von Dokument %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Alle späteren Versionen dieses Dokuments werden ebenfalls gelöscht." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Diese Dokumentenversion wiederherstellen?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Dokument wurde erfolgreich wiederhergestellt" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Fehler beim Wiederherstellen der Dokumentenversion %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Das ausgwählte Dokument löschen?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Eigenschaften von Dokument %s" +msgid "Document: %(document)s deleted." +msgstr "Dokument %(document)s gelöscht." -#: views.py:639 -msgid "Empty trash?" -msgstr "Papierkorb leeren" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Die ausgwählten Dokumente löschen?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Papierkorb erfolgreich gelöscht." +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Dokumententyp für \"%s\" erfolgreich geändert" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Ändern" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Eigenschaften von Dokument \"%s\" bearbeiten" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Den Typ des ausgewählten Dokuments ändern." -msgstr[1] "Den Typ der ausgewählten Dokumente ändern." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Das ausgwählte Dokument wiederherstellen?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Es muss mindestens eine Dokumentenversion angegeben werden." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Dokument %(document)s wiederhergestellt" -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Herunterzuladende Dokumente" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Die ausgwählten Dokumente wiederherstellen?" -#: views.py:828 -msgid "Date and time" -msgstr "Datum und Zeit" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Vorschau von Dokument %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Es muss mindestens ein Dokument ausgewählt werden." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "\"%s\" in den Papierkorb verschieben?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Dokument eingereiht für Neuberechnung der Seitenzahl" +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Dokument \"%(document)s\" erfolgreich in den Papierkorb verschoben." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Dokumente eingereiht für Neuberechnung der Seitenzahlen." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "Die ausgewählten Dokumente in den Papierkorb verschieben?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Eigenschaften von Dokument %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Papierkorb leeren" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Papierkorb erfolgreich gelöscht." + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "Seitenzahl des ausgewählten Dokuments neu berechnen?" msgstr[1] "Seitenzahl der ausgewählten Dokumente neu berechnen?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Fehler beim Löschen der Seitentransformation von %(document)s; %(error)s" +msgstr "" +"Fehler beim Löschen der Seitentransformation von %(document)s; %(error)s" -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Ändern" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Alle Seitentransformationen für Dokument %s wurden erfolgreich gelöscht." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Sind Sie sicher, dass Sie die Transformationen des ausgewählten Dokuments zurücksetzen wollen?" -msgstr[1] "Sind Sie sicher, dass Sie die Transformationen der ausgewählten Dokumente zurücksetzen wollen?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Keine weiteren Seiten in diesem Dokument" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Sie sind bereits auf der ersten Seite dieses Dokuments" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "%s drucken" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Dokumentenbildercache löschen?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Löschung des Dokumentenbildcaches erfolgreich eingereiht." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Seite %(page_number)d von %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Dokumentenseitenbild" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -917,9 +1001,6 @@ msgstr "Dokumentenseitenbild" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -930,11 +1011,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1063,10 +1144,8 @@ msgstr "Dokumentenseitenbild" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1080,11 +1159,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1107,11 +1186,11 @@ msgstr "Dokumentenseitenbild" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1128,15 +1207,19 @@ msgstr "Dokumentenseitenbild" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1193,11 +1276,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1221,11 +1304,11 @@ msgstr "Dokumentenseitenbild" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1246,9 +1329,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1278,11 +1363,11 @@ msgstr "Dokumentenseitenbild" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1339,15 +1424,17 @@ msgstr "Dokumentenseitenbild" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/en/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/en/LC_MESSAGES/django.mo index c26d0a4fd7..7f9f0deeec 100644 Binary files a/mayan/apps/documents/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/en/LC_MESSAGES/django.po b/mayan/apps/documents/locale/en/LC_MESSAGES/django.po index 48cc22a2d2..0f33809efa 100644 --- a/mayan/apps/documents/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2013-11-20 11:36+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,94 +18,124 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documents" -#: apps.py:98 +#: apps.py:110 +#, fuzzy +#| msgid "View document types" +msgid "New pages this month" +msgstr "View document types" + +#: apps.py:119 +#, fuzzy +#| msgid "New document filename" +msgid "New documents this month" +msgstr "New document filename" + +#: apps.py:128 +#, fuzzy +#| msgid "Transform documents" +msgid "Total documents" +msgstr "Transform documents" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +#, fuzzy +msgid "Document types" +msgstr "Document type" + +#: apps.py:140 views/document_views.py:69 +#, fuzzy +#| msgid "Documents in storage: %d" +msgid "Documents in trash" +msgstr "Documents in storage: %d" + +#: apps.py:145 #, fuzzy msgid "Create a document type" msgstr "Create document types" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME type" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 #, fuzzy msgid "Thumbnail" msgstr "thumbnail" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 #, fuzzy msgid "Enabled" msgstr "enabled" -#: apps.py:188 +#: apps.py:253 #, fuzzy msgid "Date time trashed" msgstr "Date added" -#: apps.py:193 +#: apps.py:258 #, fuzzy msgid "Time and date" msgstr "time and date" -#: apps.py:201 views.py:830 +#: apps.py:266 #, fuzzy msgid "Encoding" msgstr "encoding" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Comment" -#: apps.py:387 +#: apps.py:456 #, fuzzy #| msgid "New document filename" msgid "New documents per month" msgstr "New document filename" -#: apps.py:394 +#: apps.py:463 #, fuzzy #| msgid "Document version reverted successfully" msgid "New document versions per month" msgstr "Document version reverted successfully" -#: apps.py:401 +#: apps.py:470 #, fuzzy #| msgid "View document types" msgid "New document pages per month" msgstr "View document types" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -146,69 +176,78 @@ msgstr "Document version reverted successfully" msgid "Document viewed" msgstr "Document edited" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Page image" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, fuzzy, python-format msgid "Document pages (%d)" msgstr "Document pages (%s)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Quick document rename" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Date added" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "File mimetype" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "None" -#: forms.py:126 +#: forms.py:134 #, fuzzy msgid "File encoding" msgstr "File mime encoding" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "File size" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Exists in storage" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "File path in storage" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Pages" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Document type" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Compress" -#: forms.py:192 +#: forms.py:197 #, fuzzy #| msgid "" #| "Download the document in the original format or in a compressed manner. " @@ -224,11 +263,11 @@ msgstr "" "This option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Compressed filename" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." @@ -236,86 +275,99 @@ msgstr "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Page range" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 #, fuzzy msgid "Preview" msgstr "preview" -#: links.py:48 +#: links.py:57 #, fuzzy msgid "Properties" msgstr "properties" -#: links.py:53 +#: links.py:62 #, fuzzy msgid "Versions" msgstr "versions" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 #, fuzzy msgid "Clear transformations" msgstr "clear transformations" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +#, fuzzy +msgid "Clone transformations" +msgstr "clear transformations" + +#: links.py:83 links.py:127 links.py:254 links.py:268 #, fuzzy msgid "Delete" msgstr "delete" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 #, fuzzy msgid "Edit properties" msgstr "Edit document properties" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 #, fuzzy msgid "Change type" msgstr "page text" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Download" -#: links.py:91 +#: links.py:105 #, fuzzy msgid "Print" msgstr "print" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 #, fuzzy msgid "Download version" msgstr "document version" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 #, fuzzy msgid "All documents" msgstr "all documents" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 #, fuzzy msgid "Recent documents" msgstr "recent documents" -#: links.py:144 -msgid "Trash" -msgstr "" +#: links.py:158 +#, fuzzy +#| msgid "Transform documents" +msgid "Trash can" +msgstr "Transform documents" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." @@ -323,100 +375,94 @@ msgstr "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -#: links.py:155 +#: links.py:169 #, fuzzy #| msgid "Clear the document image cache" msgid "Clear document image cache" msgstr "Clear the document image cache" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 #, fuzzy msgid "First page" msgstr "first page" -#: links.py:172 +#: links.py:186 #, fuzzy msgid "Last page" msgstr "last page" -#: links.py:179 +#: links.py:193 #, fuzzy msgid "Previous page" msgstr "previous page" -#: links.py:185 +#: links.py:199 #, fuzzy msgid "Next page" msgstr "next page" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 #, fuzzy msgid "Document" msgstr "Documents" -#: links.py:196 +#: links.py:210 #, fuzzy msgid "Rotate left" msgstr "rotate left" -#: links.py:201 +#: links.py:215 #, fuzzy msgid "Rotate right" msgstr "rotate right" -#: links.py:209 +#: links.py:223 #, fuzzy msgid "Reset view" msgstr "reset view" -#: links.py:214 +#: links.py:228 #, fuzzy msgid "Zoom in" msgstr "zoom in" -#: links.py:219 +#: links.py:234 #, fuzzy msgid "Zoom out" msgstr "zoom out" -#: links.py:227 +#: links.py:243 #, fuzzy msgid "Revert" msgstr "revert" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 #, fuzzy msgid "Create document type" msgstr "Create document types" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "" -#: links.py:247 +#: links.py:263 #, fuzzy msgid "Add quick label to document type" msgstr "add filename to document type" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -#, fuzzy -msgid "Document types" -msgstr "Document type" - #: literals.py:14 msgid "Default" msgstr "" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" @@ -458,111 +504,109 @@ msgstr "Delete documents" msgid "Documents types" msgstr "documents types" -#: models.py:158 +#: models.py:157 #, fuzzy msgid "The name of the document" msgstr "Create documents" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Description" -#: models.py:164 +#: models.py:163 #, fuzzy msgid "Added" msgstr "added" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 #, fuzzy msgid "Date and time trashed" msgstr "Date added" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, fuzzy, python-format #| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Document types: %d" -#: models.py:354 +#: models.py:364 #, fuzzy msgid "Timestamp" msgstr "timestamp" -#: models.py:363 +#: models.py:373 #, fuzzy msgid "File" msgstr "Filename" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 #, fuzzy msgid "Document version" msgstr "document version" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 #, fuzzy msgid "Page number" msgstr "page number" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Page %(page_num)d out of %(total_pages)d of %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 #, fuzzy msgid "Document page" msgstr "document page" -#: models.py:673 +#: models.py:686 models.py:838 #, fuzzy msgid "Document pages" msgstr "document pages" -#: models.py:783 -#, fuzzy -#| msgid "Version update" -msgid "New version block" -msgstr "Version update" +#: models.py:822 +msgid "Filename" +msgstr "Filename" -#: models.py:784 +#: models.py:825 #, fuzzy -#| msgid "Version update" -msgid "New version blocks" -msgstr "Version update" +msgid "Document page cached image" +msgstr "document page image" -#: models.py:794 +#: models.py:826 +#, fuzzy +msgid "Document page cached images" +msgstr "document page image" + +#: models.py:848 msgid "User" msgstr "" -#: models.py:800 +#: models.py:854 #, fuzzy msgid "Accessed" msgstr "accessed" -#: models.py:814 +#: models.py:868 #, fuzzy msgid "Recent document" msgstr "recent document" @@ -581,7 +625,7 @@ msgstr "Delete documents" msgid "Trash documents" msgstr "Transform documents" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Download documents" @@ -641,7 +685,7 @@ msgstr "Edit document types" msgid "View document types" msgstr "View document types" -#: settings.py:37 +#: settings.py:29 msgid "" "Maximum number of recent (created, edited, viewed) documents to remember per " "user." @@ -649,11 +693,11 @@ msgstr "" "Maximum number of recent (created, edited, viewed) documents to remember per " "user." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Amount in percent zoom in or out a document page per user interaction." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." @@ -661,7 +705,7 @@ msgstr "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." @@ -669,238 +713,226 @@ msgstr "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Amount in degrees to rotate a document page per user interaction." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#, fuzzy -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Clear the document image cache" - -#: views.py:75 -#, fuzzy -msgid "Document cache clearing queued successfully." -msgstr "Document image cache cleared successfully" - -#: views.py:100 -#, fuzzy -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Documents in storage: %d" - -#: views.py:122 -#, fuzzy -msgid "Delete the selected document?" -msgstr "Create documents" - -#: views.py:145 -#, fuzzy, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Document \"%(document)s\" deleted by %(fullname)s." - -#: views.py:153 -#, fuzzy -msgid "Delete the selected documents?" -msgstr "Create documents" - -#: views.py:175 -#, fuzzy, python-format -msgid "Edit properties of document: %s" -msgstr "document properties for: %s" - -#: views.py:191 -#, fuzzy -msgid "Restore the selected document?" -msgstr "Create documents" - -#: views.py:216 -#, fuzzy, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Document: %(document)s delete error: %(error)s" - -#: views.py:224 -#, fuzzy -msgid "Restore the selected documents?" -msgstr "Create documents" - -#: views.py:256 +#: views/document_page_views.py:49 #, fuzzy, python-format msgid "Pages for document: %s" msgstr "versions for document: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "There are no more pages in this document" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "You are already at the first page of this document" + +#: views/document_page_views.py:178 #, fuzzy, python-format msgid "Image of: %s" msgstr "duplicates of: %s" -#: views.py:330 -#, fuzzy, python-format -msgid "Preview of document: %s" -msgstr "versions for document: %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, fuzzy, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Document deleted successfully." - -#: views.py:378 -#, fuzzy -msgid "Move the selected documents to the trash?" -msgstr "Create documents" - -#: views.py:393 +#: views/document_type_views.py:38 #, fuzzy, python-format #| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "documents of type \"%s\"" -#: views.py:430 +#: views/document_type_views.py:75 #, fuzzy msgid "All documents of this type will be deleted too." msgstr "All later version after this one will be deleted too." -#: views.py:432 +#: views/document_type_views.py:77 #, fuzzy, python-format #| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Delete document types" -#: views.py:448 +#: views/document_type_views.py:93 #, fuzzy, python-format msgid "Edit document type: %s" msgstr "edit document type: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, fuzzy, python-format msgid "Create quick label for document type: %s" msgstr "create filename for document type: %s" -#: views.py:499 +#: views/document_type_views.py:139 #, fuzzy, python-format msgid "" "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" "edit filename \"%(filename)s\" from document type \"%(document_type)s\"" -#: views.py:524 +#: views/document_type_views.py:164 #, fuzzy, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" "edit filename \"%(filename)s\" from document type \"%(document_type)s\"" -#: views.py:552 +#: views/document_type_views.py:192 #, fuzzy, python-format msgid "Quick labels for document type: %s" msgstr "filenames for document type: %s" -#: views.py:583 +#: views/document_version_views.py:42 #, fuzzy, python-format msgid "Versions of document: %s" msgstr "versions for document: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "All later version after this one will be deleted too." -#: views.py:600 +#: views/document_version_views.py:59 #, fuzzy #| msgid "Revert documents to a previous version" msgid "Revert to this version?" msgstr "Revert documents to a previous version" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Document version reverted successfully" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Error reverting document version; %s" -#: views.py:633 +#: views/document_views.py:81 +#, fuzzy +msgid "Delete the selected document?" +msgstr "Create documents" + +#: views/document_views.py:100 +#, fuzzy, python-format +#| msgid "Document \"%(document)s\" deleted by %(fullname)s." +msgid "Document: %(document)s deleted." +msgstr "Document \"%(document)s\" deleted by %(fullname)s." + +#: views/document_views.py:108 +#, fuzzy +msgid "Delete the selected documents?" +msgstr "Create documents" + +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" + +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" + +#: views/document_views.py:130 +#, fuzzy +msgid "Change" +msgstr "page text" + +#: views/document_views.py:132 +#, fuzzy +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "Create documents" +msgstr[1] "Create documents" + +#: views/document_views.py:143 +#, fuzzy, python-format +msgid "Change the type of the document: %s" +msgstr "Create documents" + +#: views/document_views.py:164 +#, fuzzy, python-format +msgid "Document type for \"%s\" changed successfully." +msgstr "Document type: %s deleted successfully." + +#: views/document_views.py:184 +#, fuzzy, python-format +msgid "Edit properties of document: %s" +msgstr "document properties for: %s" + +#: views/document_views.py:200 +#, fuzzy +msgid "Restore the selected document?" +msgstr "Create documents" + +#: views/document_views.py:221 +#, fuzzy, python-format +#| msgid "Document: %(document)s delete error: %(error)s" +msgid "Document: %(document)s restored." +msgstr "Document: %(document)s delete error: %(error)s" + +#: views/document_views.py:229 +#, fuzzy +msgid "Restore the selected documents?" +msgstr "Create documents" + +#: views/document_views.py:256 +#, fuzzy, python-format +msgid "Preview of document: %s" +msgstr "versions for document: %s" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "" + +#: views/document_views.py:287 +#, fuzzy, python-format +#| msgid "Document deleted successfully." +msgid "Document: %(document)s moved to trash successfully." +msgstr "Document deleted successfully." + +#: views/document_views.py:300 +#, fuzzy +msgid "Move the selected documents to the trash?" +msgstr "Create documents" + +#: views/document_views.py:318 #, fuzzy, python-format msgid "Properties for document: %s" msgstr "versions for document: %s" -#: views.py:639 +#: views/document_views.py:324 msgid "Empty trash?" msgstr "" -#: views.py:650 +#: views/document_views.py:335 #, fuzzy #| msgid "Document deleted successfully." msgid "Trash emptied successfully" msgstr "Document deleted successfully." -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Must provide at least one document." - -#: views.py:704 +#: views/document_views.py:519 #, fuzzy, python-format -msgid "Document type for \"%s\" changed successfully." -msgstr "Document type: %s deleted successfully." - -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "" - -#: views.py:720 -#, fuzzy -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Create documents" -msgstr[1] "Create documents" - -#: views.py:799 -#, fuzzy -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Must provide at least one document." - -#: views.py:819 -#, fuzzy -msgid "Documents to be downloaded" -msgstr "documents to be downloaded" - -#: views.py:828 -#, fuzzy -msgid "Date and time" -msgstr "Date added" - -#: views.py:931 -msgid "At least one document must be selected." -msgstr "" - -#: views.py:954 -#, fuzzy -msgid "Document queued for page count recalculation." +msgid "%(count)d document queued for page count recalculation" msgstr "document page transformation" -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "" +#: views/document_views.py:522 +#, fuzzy, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "document page transformation" -#: views.py:964 +#: views/document_views.py:530 #, fuzzy msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" @@ -909,56 +941,127 @@ msgstr[0] "" msgstr[1] "" "Are you sure you wish to update the page count for the office documents (%d)?" -#: views.py:1023 -#, python-format -msgid "" -"Error deleting the page transformations for document: %(document)s; " -"%(error)s." +#: views/document_views.py:541 +#, fuzzy, python-format +msgid "Recalculate the page count of the document: %s?" msgstr "" -"Error deleting the page transformations for document: %(document)s; " -"%(error)s." +"Are you sure you wish to update the page count for the office documents (%d)?" -#: views.py:1032 +#: views/document_views.py:558 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." +msgid "Transformation clear request processed for %(count)d document" msgstr "" -"All the page transformations for document: %s, have been deleted " -"successfully." -#: views.py:1044 +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 #, fuzzy msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" +msgid_plural "Clear all the page transformations for the selected document?" msgstr[0] "" "Are you sure you wish to clear all the page transformations for document: %s?" msgstr[1] "" "Are you sure you wish to clear all the page transformations for document: %s?" -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "There are no more pages in this document" +#: views/document_views.py:580 +#, fuzzy, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" +"Are you sure you wish to clear all the page transformations for document: %s?" -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "You are already at the first page of this document" +#: views/document_views.py:595 views/document_views.py:623 +#, python-format +msgid "" +"Error deleting the page transformations for document: %(document)s; " +"%(error)s." +msgstr "" +"Error deleting the page transformations for document: %(document)s; " +"%(error)s." -#: views.py:1225 views.py:1234 +#: views/document_views.py:631 +#, fuzzy +#| msgid "Document page transformation created successfully." +msgid "Transformations cloned successfully." +msgstr "Document page transformation created successfully." + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "" + +#: views/document_views.py:648 +#, fuzzy, python-format +msgid "Clone page transformations for document: %s" +msgstr "" +"Are you sure you wish to clear all the page transformations for document: %s?" + +#: views/document_views.py:702 #, fuzzy, python-format msgid "Print: %s" msgstr "print: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +#, fuzzy +#| msgid "Clear the document image cache" +msgid "Clear the document image cache?" +msgstr "Clear the document image cache" + +#: views/misc_views.py:25 +#, fuzzy +msgid "Document cache clearing queued successfully." +msgstr "Document image cache cleared successfully" + +#: widgets.py:64 #, fuzzy, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Page %(page_num)d out of %(total_pages)d of %(document)s" -#: widgets.py:100 +#: widgets.py:87 +#, fuzzy +#| msgid "Page image" +msgid "Clickable image" +msgstr "Page image" + +#: widgets.py:242 #, fuzzy msgid "Document page image" msgstr "document page image" +#, fuzzy +#~| msgid "Version update" +#~ msgid "New version block" +#~ msgstr "Version update" + +#, fuzzy +#~| msgid "Version update" +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#, fuzzy +#~| msgid "Must provide at least one document." +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#, fuzzy +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#, fuzzy +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #, fuzzy #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -1041,9 +1144,6 @@ msgstr "document page image" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #, fuzzy #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -1208,9 +1308,6 @@ msgstr "document page image" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - #~ msgid "" #~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" diff --git a/mayan/apps/documents/locale/es/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/es/LC_MESSAGES/django.mo index 6eb718ec36..72651b6849 100644 Binary files a/mayan/apps/documents/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/es/LC_MESSAGES/django.po b/mayan/apps/documents/locale/es/LC_MESSAGES/django.po index 3706bc5f8f..6349b1cbf8 100644 --- a/mayan/apps/documents/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/es/LC_MESSAGES/django.po @@ -1,103 +1,122 @@ # 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: -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-23 06:45+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 17:56+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documentos" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "Nuevas páginas este mes" + +#: apps.py:119 +msgid "New documents this month" +msgstr "Nuevos documentos este mes" + +#: apps.py:128 +msgid "Total documents" +msgstr "Total de documentos" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Tipos de documentos" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Documentos en la papelera" + +#: apps.py:145 msgid "Create a document type" msgstr "Crear tipo un tipo de documento" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Etiqueta" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tipo MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Foto miniatura" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Tipo" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Activado" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Fecha y hora de envío a papelera " -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Hora y fecha" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Codificación" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Comentario" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nuevos documentos por mes" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nuevas versiones de documentos por mes" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nuevas páginas de documentos por mes" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Total de documentos cada mes" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Total de versiones de documentos cada mes" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Total de páginas de documentos cada mes" @@ -118,12 +137,10 @@ msgid "Document type changed" msgstr "Tipo de documento ha sido cambiado" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nueva versión subida" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Versión de documento revertida" @@ -131,249 +148,268 @@ msgstr "Versión de documento revertida" msgid "Document viewed" msgstr "Documento visualizado" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Imagen de la página" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Páginas del documento (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Cambio rápido de nombre" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Fecha en que se agregó" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Lenguaje" + #: forms.py:122 +msgid "Unknown" +msgstr "Desconocido" + +#: forms.py:130 msgid "File mimetype" msgstr "Tipo MIME del archivo" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Ninguno" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Codificación de archivo" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Tamaño del archivo" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Existe en el almacenamiento" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Ruta de archivo en el almacenamiento" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Suma de comprobación" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Páginas" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tipo de documento" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimir" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Descargue el documento en el formato original o en una forma comprimida. Esta opción se puede seleccionar sólo cuando se descarga un documento. Para múltiples documentos, el paquete será siempre descargado en un archivo comprimido." +msgstr "" +"Descargue el documento en el formato original o en una forma comprimida. " +"Esta opción se puede seleccionar sólo cuando se descarga un documento. Para " +"múltiples documentos, el paquete será siempre descargado en un archivo " +"comprimido." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nombre de archivo comprimido" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "El nombre del archivo comprimido que va a contener los documentos a descargar, si la opción anterior está activada." +msgstr "" +"El nombre del archivo comprimido que va a contener los documentos a " +"descargar, si la opción anterior está activada." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Rango de páginas" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Muestra" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Propiedades" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versiones" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Borrar transformaciones" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "Clonar transformaciones" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Borrar" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Mover a la papelera" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Editar propiedades" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Cambiar tipo" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Descargar" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Imprimir" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Recalcular el conteo de páginas" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Resturar" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Descarga de versión" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Todos los documentos" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Documentos recientes" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "Papelera" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Borrar las representaciones gráficas utilizadas para acelerar la presentación de los documentos y resultados de las transformaciones interactivas." +msgstr "" +"Borrar las representaciones gráficas utilizadas para acelerar la " +"presentación de los documentos y resultados de las transformaciones " +"interactivas." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Borrar la caché de imágenes de documentos" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Vaciar papelera" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Primera página" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Última página" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Página previa" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Próxima página" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Documento" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Rotar a la izquierda" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Rotar a la derecha" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Reestablecer vista" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Acercar imagen" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Alejar imagen" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Revertir" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Crear tipo de documento" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Editar" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Añadir nombre típico al tipo de documento" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Nombres típicos " -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Tipos de documentos" - #: literals.py:14 msgid "Default" msgstr "Por defecto" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Todas las páginas" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Cantidad de tiempo tras el cual se enviaran los documentos de este tipo a la papelera." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Cantidad de tiempo tras el cual se enviaran los documentos de este tipo a la " +"papelera." #: models.py:71 msgid "Trash time period" @@ -387,15 +423,15 @@ msgstr "Unidad de tiempo de envío a papelera" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Cantidad de tiempo tras el cual se eliminarán los documentos de este tipo de la papelera." +msgstr "" +"Cantidad de tiempo tras el cual se eliminarán los documentos de este tipo de " +"la papelera." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Período de tiempo de eliminación" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Unidad de tiempo de eliminación" @@ -403,99 +439,96 @@ msgstr "Unidad de tiempo de eliminación" msgid "Documents types" msgstr "Tipos de documentos" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "El nombre del documento" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descripción" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Añadido" -#: models.py:169 -msgid "Language" -msgstr "Lenguaje" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "¿En la papelera?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Fecha y hora de envío a papelera" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "¿Es un recibo?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Recibo de documento, id: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Marca de tiempo" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Archivo" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Versión de documento" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Etiqueta rapida" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Número de página" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Página %(page_num)d de %(total_pages)d de %(document)s " -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Página de documento" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Páginas de documento" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Bloquear nueva version" +#: models.py:822 +msgid "Filename" +msgstr "Nombre del archivo" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Bloquear nuevas versiones" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Usuario" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Accedido" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Documento reciente" @@ -508,11 +541,10 @@ msgid "Delete documents" msgstr "Eliminar documentos" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Enivar documentos a la papelera" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Descargar documentos" @@ -529,12 +561,10 @@ msgid "Edit document properties" msgstr "Editar propiedades del documento" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Imprimir documentos" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "Restaurar documento de la papelera" @@ -570,288 +600,343 @@ msgstr "Editar tipos de documentos" msgid "View document types" msgstr "Ver los tipos de documentos" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "El número máximo de documentos recientes (creados, editados, vistos) a recordar por usuario." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"El número máximo de documentos recientes (creados, editados, vistos) a " +"recordar por usuario." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Cantidad en porcentaje a acercar o alejar una página de documento por cada interacción del usuario." +msgstr "" +"Cantidad en porcentaje a acercar o alejar una página de documento por cada " +"interacción del usuario." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Cantidad máxima en porcentaje (%) a permitir al usuario aumentar la página del documento de forma interactiva." +msgstr "" +"Cantidad máxima en porcentaje (%) a permitir al usuario aumentar la página " +"del documento de forma interactiva." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Cantidad mínima en porcentaje (%) a permitir al usuario disminuir la página del documento de forma interactiva." +msgstr "" +"Cantidad mínima en porcentaje (%) a permitir al usuario disminuir la página " +"del documento de forma interactiva." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Cantidad de grados que se va a girar una página de documento por cada acción del usuario." +msgstr "" +"Cantidad de grados que se va a girar una página de documento por cada acción " +"del usuario." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Idioma por defecto para documentos (en formato ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Lista de idiomas de documento apoyados." -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "¿Borrar la caché de imágenes de documentos?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Caché de documentos borrara con éxito." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Documentos en la papelera" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "¿Eliminar el documento seleccionado?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Documento: %(document)s eliminado." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "¿Eliminar los documentos seleccionados?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Editar propiedades del documento: %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "¿Restaurar el documento seleccionado?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Documento: %(document)s restaurado." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "¿Restaurar los documentos seleccionados?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Pagínas para documento: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "No hay más páginas en este documento" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Usted ya está en la primera página de este documento" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Imágen de: %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Visualización del documento: %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "¿Mover \"%s\" a la papelera?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Documento: %(document)s movido a la papelera." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "¿Mover los documentos seleccionados a la papelera?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Documentos de tipo: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Todos los documentos de este tipo serán borrados también" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "¿Eliminar el tipo de documento: %s?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Editar tipo de documento: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Nombre típicos para el tipo de documento: %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versiones del documento: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "También se borrarán todas las versiones más recientes a esta." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "¿Revertir a esta versión?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versión de documento revertida con éxito." -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Error revirtiendo la versión del documento; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "¿Eliminar el documento seleccionado?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Propiedades para el documento: %s" +msgid "Document: %(document)s deleted." +msgstr "Documento: %(document)s eliminado." -#: views.py:639 -msgid "Empty trash?" -msgstr "¿Vaciar papelera?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "¿Eliminar los documentos seleccionados?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Papelera vaciada con éxito" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Debe proveer al menos un documento" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "Cambiar" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Tipo de documento para \"%s\" cambiado con éxito." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Enviar" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Editar propiedades del documento: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Cambiar el tipo del documento seleccionado." -msgstr[1] "Cambiar el tipo de los documentos seleccionados." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "¿Restaurar el documento seleccionado?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Debe proveer al menos una versión de documento." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Documento: %(document)s restaurado." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documentos a descargar" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "¿Restaurar los documentos seleccionados?" -#: views.py:828 -msgid "Date and time" -msgstr "Fecha y hora" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Visualización del documento: %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Al menos un documento debe ser seleccionado." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "¿Mover \"%s\" a la papelera?" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Documento: %(document)s movido a la papelera." + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "¿Mover los documentos seleccionados a la papelera?" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Propiedades para el documento: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "¿Vaciar papelera?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Papelera vaciada con éxito" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" msgstr "" -#: views.py:964 +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Error al eliminar las transformaciones de página para el documento: %(document)s; %(error)s." +msgstr "" +"Error al eliminar las transformaciones de página para el documento: " +"%(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Enviar" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Todas las transformaciones de la página del documento: %s, se han eliminado con éxito." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "¿Borrar todas las transformaciones para el documento seleccionado?" -msgstr[1] "¿Borrar todas las transformaciones para los documentos seleccionados?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "No hay más páginas en este documento" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Usted ya está en la primera página de este documento" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Imprimir: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "¿Borrar la caché de imágenes de documentos?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Caché de documentos borrara con éxito." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Página %(page_number)d de %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Imagen de página de documento" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -915,9 +1000,6 @@ msgstr "Imagen de página de documento" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -928,11 +1010,11 @@ msgstr "Imagen de página de documento" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1061,10 +1143,8 @@ msgstr "Imagen de página de documento" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1078,11 +1158,11 @@ msgstr "Imagen de página de documento" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1105,11 +1185,11 @@ msgstr "Imagen de página de documento" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1126,15 +1206,19 @@ msgstr "Imagen de página de documento" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1191,11 +1275,11 @@ msgstr "Imagen de página de documento" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1219,11 +1303,11 @@ msgstr "Imagen de página de documento" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1244,9 +1328,11 @@ msgstr "Imagen de página de documento" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1276,11 +1362,11 @@ msgstr "Imagen de página de documento" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1337,15 +1423,17 @@ msgstr "Imagen de página de documento" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/fa/LC_MESSAGES/django.mo index 670f98d5e2..62c9ab0af4 100644 Binary files a/mayan/apps/documents/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/fa/LC_MESSAGES/django.po b/mayan/apps/documents/locale/fa/LC_MESSAGES/django.po index 5b583d8e16..fb0b747e35 100644 --- a/mayan/apps/documents/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/fa/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "اسناد" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "انواع سند" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "برچسب" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "نوع MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "اندازه کوچک" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "نوع" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "فعال شده" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "تاریخ و زمان" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Encoding" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "شرح" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "نوع سند تغییر کرد" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "تصویر صفحه" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "تعداد صفحات سند (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "نامگذاری سریع سند " -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "تاریخ اضافه شدن" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "زبان" + #: forms.py:122 +msgid "Unknown" +msgstr "ناشناخته" + +#: forms.py:130 msgid "File mimetype" msgstr "File mimetype" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "هیچکدام." -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "فایل Encoding" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "اندازه فایل" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "موجود در مخزن" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "آدرس فایل در مخزن" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "چک سام" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "صفحات" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "نوع سند" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "فشرده سازی" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "نام فایل فشرده شده" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "اگر انتخاب قبلی انجام شده، نام فایل فشرده شده که شامل کلیه فایلهای که قراراست که دانلود شوند." +msgstr "" +"اگر انتخاب قبلی انجام شده، نام فایل فشرده شده که شامل کلیه فایلهای که " +"قراراست که دانلود شوند." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "محدوده صفحات" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "پیش دید ویا دیدن" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "خصوصیات" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "نسخه ها" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "پاک کردن تبدیلات" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "حذف" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "ویرایش خصوصیات" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "تغییر نوع" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "دانلود" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "چاپ" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "کلیه اسناد" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "اسناد تازه" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "پاک کردن نحوه نمایش اسناد که در زمان سرعت بخشی به نمایش اسناد مورد استفاده قرار میگیرد." +msgstr "" +"پاک کردن نحوه نمایش اسناد که در زمان سرعت بخشی به نمایش اسناد مورد استفاده " +"قرار میگیرد." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "اولین صفحه" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "آخرین صفحه" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "صفحه قبلی" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "صفحه بعدی" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "سند" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "چرخش به چپ" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "چرجش به راست" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "ریست ویو Reset View" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "بزرگنمایی" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "کوچک نمایی" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "بازگرداندن" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "ایجاد نوع سند" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "ویرایش" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "انواع سند" - #: literals.py:14 msgid "Default" msgstr "پیش فرض" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +418,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +429,96 @@ msgstr "" msgid "Documents types" msgstr "انواع اسناد" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "نام سند" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "توضیحات" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "اضافه شده" -#: models.py:169 -msgid "Language" -msgstr "زبان" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "علامت زمان" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "فایل" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "نسخه سند" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "شماره صفحه" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "صفحه شماره%(page_num)d از%(total_pages)d از سند %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "صفحه سند" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "صفحات سند" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "نام فایل" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "کاربر" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "دسترسی یافته" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "سند تازه" @@ -507,11 +531,10 @@ msgid "Delete documents" msgstr "حذف سند" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "دانلود اسناد" @@ -528,12 +551,10 @@ msgid "Edit document properties" msgstr "ویرایش خصوصیات سند" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,285 +590,334 @@ msgstr "ویرایش انواع سند" msgid "View document types" msgstr "بازدید انواع سند" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "حداکثر تعداد اسناد تازه (ایجاد، ویرایش و بازبینی) که جهت هرکاربر بوسیله سیستم نگهداری شود." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"حداکثر تعداد اسناد تازه (ایجاد، ویرایش و بازبینی) که جهت هرکاربر بوسیله " +"سیستم نگهداری شود." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "اندازه بزرگنمایی/کوچک نمایی یک صفحه از سند جهت تعامل با هرکاربر" -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "حداکثر درصد(%) اندازه بزرگنمایی بوسیله کاربر برروی یک صفحه از سند بصورت تعاملی" +msgstr "" +"حداکثر درصد(%) اندازه بزرگنمایی بوسیله کاربر برروی یک صفحه از سند بصورت " +"تعاملی" -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "حداکثر درصد(%) اندازه کوچک نمایی بوسیله کاربر برروی یک صفحه از سند بصورت تعاملی" +msgstr "" +"حداکثر درصد(%) اندازه کوچک نمایی بوسیله کاربر برروی یک صفحه از سند بصورت " +"تعاملی" -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "مقدار درچه چرخش یک صفحه از سند به ازای هر کاربر" -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "زبان پیش فرض اسناد (in ISO639-2) میباشد." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "لیست زبانهای پشتیبانی سند" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "ویرایش خصوصیات سند : %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "پایان صفحات سند" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "شما در حال حاضر برروی اولین صفحه این سند میباشید." + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "پیش نمایش سند : %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "کلیه اسناد از این نوع حذف خواهند شد." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "ویرایش نوع سند : %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "نسخ سند : %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "همجنین کلیه نسخه های بعد از این نسخه حذف خواهند گردید." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "بازگشت موفق نسخه سند." -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "خطا در بازگشت نسخه سند: %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "خصوصیات سند : %s" - -#: views.py:639 -msgid "Empty trash?" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "حداقل یک سند باید ارایه شود." +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:704 +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" + +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "ارسال" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "ویرایش خصوصیات سند : %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "اسنادی که قرار است دانلود شوند." - -#: views.py:828 -msgid "Date and time" -msgstr "تاریخ و زمان" - -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "پیش نمایش سند : %s" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:964 +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "خصوصیات سند : %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "خطا %(error)s در زمان حذف تبدیلات سند %(document)s" -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "ارسال" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "حذف کامل کلیه تبدیلات سند %s" +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "پایان صفحات سند" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "شما در حال حاضر برروی اولین صفحه این سند میباشید." - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "چاپ : %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "صفحه%(page_number)d از %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "عکس صفحه سند" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -911,9 +981,6 @@ msgstr "عکس صفحه سند" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -924,11 +991,11 @@ msgstr "عکس صفحه سند" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1056,10 +1123,8 @@ msgstr "عکس صفحه سند" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1073,11 +1138,11 @@ msgstr "عکس صفحه سند" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1100,11 +1165,11 @@ msgstr "عکس صفحه سند" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1121,15 +1186,19 @@ msgstr "عکس صفحه سند" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1186,11 +1255,11 @@ msgstr "عکس صفحه سند" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1214,11 +1283,11 @@ msgstr "عکس صفحه سند" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1239,9 +1308,11 @@ msgstr "عکس صفحه سند" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1271,11 +1342,11 @@ msgstr "عکس صفحه سند" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1332,15 +1403,17 @@ msgstr "عکس صفحه سند" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/fr/LC_MESSAGES/django.mo index 4f8ca0d1a0..4def638b34 100644 Binary files a/mayan/apps/documents/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/fr/LC_MESSAGES/django.po b/mayan/apps/documents/locale/fr/LC_MESSAGES/django.po index d688a7ab21..aa6c96a48a 100644 --- a/mayan/apps/documents/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/fr/LC_MESSAGES/django.po @@ -1,104 +1,126 @@ # 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: # Bruno CAPELETO , 2016 +# Christophe CHAUVET , 2016 # Thierry Schott , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documents" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Types de documents" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Documents dans la corbeille" + +#: apps.py:145 msgid "Create a document type" msgstr "Créer un type de document" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Chaque document téléchargé doit être associé à un type de document, cela permet à Mayan EDMS de catégoriser les documents." +msgstr "" +"Chaque document téléchargé doit être associé à un type de document, cela " +"permet à Mayan EDMS de catégoriser les documents." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Libellé" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "Type MIME d'une version quelconque d'un document" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Type MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Vignette" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Type" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Activé" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Date et heure d'envoi à la corbeille" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Heure et date" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Encodage" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Commentaire" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nouveaux documents par mois" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nouvelles versions de document par mois" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nouvelles pages de document par mois" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Nombre total de documents chaque mois" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Nombre total de versions de documents chaque mois" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Nombre total de pages de documents chaque mois" @@ -119,12 +141,10 @@ msgid "Document type changed" msgstr "Type de document modifié" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nouvelle version téléchargée" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Retour à la version précédente du document" @@ -132,249 +152,267 @@ msgstr "Retour à la version précédente du document" msgid "Document viewed" msgstr "Document consulté" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Image de la page" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Pages (%d) du document" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Renommage rapide du document" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Date d'ajout" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Langue" + #: forms.py:122 +msgid "Unknown" +msgstr "Inconnu" + +#: forms.py:130 msgid "File mimetype" msgstr "Type MIME du fichier" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Aucun" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Encodage du fichier" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Taille du fichier" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Présent dans le stockage local" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Chemin du fichier dans le stockage local" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Somme de contrôle" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Pages" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Type de document" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Compresser" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Télécharger le document dans son format original ou sous forme d'archive compressée. Cette option est uniquement disponible lors du téléchargement d'un document, lors du téléchargement d'un groupe de documents, ce dernier sera toujours téléchargé en tant qu'archive compressée." +msgstr "" +"Télécharger le document dans son format original ou sous forme d'archive " +"compressée. Cette option est uniquement disponible lors du téléchargement " +"d'un document, lors du téléchargement d'un groupe de documents, ce dernier " +"sera toujours téléchargé en tant qu'archive compressée." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nom du fichier compressé" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Le nom de fichier du fichier compressé qui contiendra les documents à importer, si l'option précédente est sélectionnée." +msgstr "" +"Le nom de fichier du fichier compressé qui contiendra les documents à " +"importer, si l'option précédente est sélectionnée." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Ensemble de pages" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Prévisualiser" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Propriétés" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versions" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Effacer les transformations" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Supprimer" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Envoyer à la corbeille" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Modifier les propriétés" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Changer le type" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Télécharger" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Imprimer" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Réinitialiser le comptage de page" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Restaurer" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Télécharger cette version" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Tous les documents" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Documents récents" -#: links.py:144 -msgid "Trash" -msgstr "Corbeille" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Effacer les représentations graphiques utilisées pour accélérer l'affichage du document et le résultat des transformations interactives." +msgstr "" +"Effacer les représentations graphiques utilisées pour accélérer l'affichage " +"du document et le résultat des transformations interactives." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Effacer les documents du cache" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Vider la corbeille" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Première page" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Dernière page" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Page précédente" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Page suivante" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Document" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Rotation à gauche" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Rotation à droite" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Réinitialiser la vue" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Zoom avant" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Zoom arrière" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Rétablir" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Créer un type de document" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Modifier" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Ajouter une étiquette rapide au document" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Etiquettes rapides" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Types de documents" - #: literals.py:14 msgid "Default" msgstr "Défaut" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Toutes les pages" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Temps après lequel les documents de ce type seront déplacés vers la corbeille." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Temps après lequel les documents de ce type seront déplacés vers la " +"corbeille." #: models.py:71 msgid "Trash time period" @@ -388,15 +426,15 @@ msgstr "Unité de temps du déplacement vers la corbeille" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Temps après lequel les documents de ce type présents dans la corbeille seront supprimés." +msgstr "" +"Temps après lequel les documents de ce type présents dans la corbeille " +"seront supprimés." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Temps avant suppression" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Unité de temps avant suppression" @@ -404,99 +442,99 @@ msgstr "Unité de temps avant suppression" msgid "Documents types" msgstr "Types de documents" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "Le nom du document" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Description" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Ajouté" -#: models.py:169 -msgid "Language" -msgstr "Langue" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "Présent dans la corbeille ?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Date et heure d'envoi à la corbeille" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Un document parcellaire est un document avec une entrée en base de données mais aucun fichier téléchargé. Cela peut correspondre à un téléchargement interrompu ou à un téléchargement retardé par l'API." +msgstr "" +"Un document parcellaire est un document avec une entrée en base de données " +"mais aucun fichier téléchargé. Cela peut correspondre à un téléchargement " +"interrompu ou à un téléchargement retardé par l'API." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "Parcellaire ?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Parcelle de document, id : %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Horodatage" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Fichier" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Version du document" -#: models.py:633 +#: models.py:646 msgid "Quick label" -msgstr "Renommage rapide" +msgstr "Étiquetage rapide" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Numéro de page" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Page %(page_num)d sur %(total_pages)d de %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Page du document" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Pages du document" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Bloc de la nouvelle version" +#: models.py:822 +msgid "Filename" +msgstr "Nom de fichier" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Blocs de la nouvelle version" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Utilisateur" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Consulté" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Document récent" @@ -509,11 +547,10 @@ msgid "Delete documents" msgstr "Supprimer les documents" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Envoyer les documents à la corbeille" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Télécharger les documents" @@ -530,14 +567,12 @@ msgid "Edit document properties" msgstr "Modifier les propriétés du document" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Imprimer les documents" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" -msgstr "" +msgstr "Restaurer le document mis à la corbeille" #: permissions.py:37 msgid "Execute document modifying tools" @@ -571,288 +606,354 @@ msgstr "Modifier les types de documents" msgid "View document types" msgstr "Afficher les types de documents" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Nombre maximum de documents récents (créés, modifiés, visualisés) à mémoriser par utilisateur." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Nombre maximum de documents récents (créés, modifiés, visualisés) à " +"mémoriser par utilisateur." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Valeur en pourcentage du zoom avant ou arrière pour une page de document pour les utilisateurs." +msgstr "" +"Valeur en pourcentage du zoom avant ou arrière pour une page de document " +"pour les utilisateurs." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Maximum en pourcents (%) de la valeur du zoom avant interactif autorisé pour l'utilisateur." +msgstr "" +"Maximum en pourcents (%) de la valeur du zoom avant interactif autorisé pour " +"l'utilisateur." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Minimum en pourcents (%) de la valeur du zoom arrière interactif autorisé pour l'utilisateur." +msgstr "" +"Minimum en pourcents (%) de la valeur du zoom arrière interactif autorisé " +"pour l'utilisateur." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Valeur en degrés pour la rotation d'une page de document par l'utilisateur." +msgstr "" +"Valeur en degrés pour la rotation d'une page de document par l'utilisateur." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Langue des documents par défaut (au format ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Liste des langues supportées du document." -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Vider l'image en cache du document" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Demande de nettoyage du cache de documents mise en file d'attente avec succès." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Documents dans la corbeille" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Êtes vous sûr de vouloir supprimer le document sélectionné ?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Document %(document)s supprimé." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Êtes vous sûr de vouloir supprimer les documents sélectionnés ?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Modifier les propriétés du document : %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Êtes vous sûr de vouloir rétablir le document sélectionné ?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Document %(document)s rétabli." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Êtes vous sûr de vouloir rétablir les documents sélectionnés ?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Pages du document : %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Il n'y a pas d'autres pages dans ce document" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Vous êtes déjà sur la première page du document" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Image de : %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Aperçu du document : %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "Etes-vous sûr de vouloir envoyer \"%s\" à la corbeille ?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Document : %(document)s envoyé à la corbeille avec succès." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Êtes vous sûr de vouloir envoyer les documents sélectionnés à la corbeille ?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Documents du type : %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Tous les documents de ce type seront également effacés." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Êtes-vous sûr de vouloir supprimer le type de document : %s ?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Modifier le type de document : %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Créer une étiquette rapide pour le type de document : %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Modifier l'étiquette rapide \"%(filename)s\" du type de document \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Modifier l'étiquette rapide \"%(filename)s\" du type de document " +"\"%(document_type)s\"" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" -msgstr "Etes-vous sûr de vouloir supprimer l'étiquette rapide %(label)s du type de document \"%(document_type)s\" ?" +msgstr "" +"Etes-vous sûr de vouloir supprimer l'étiquette rapide %(label)s du type de " +"document \"%(document_type)s\" ?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Etiquettes rapides pour le type de document : %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versions du document : %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." -msgstr "Toutes les versions postérieures à celle-ci seront également supprimées." +msgstr "" +"Toutes les versions postérieures à celle-ci seront également supprimées." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Êtes vous certain de vouloir revenir à cette version ?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Retour à la version précédente du document effectuée avec succès" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Erreur lors du retour à une version précédente du document : %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Êtes vous sûr de vouloir supprimer le document sélectionné ?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Propriétés du document : %s" +msgid "Document: %(document)s deleted." +msgstr "Document %(document)s supprimé." -#: views.py:639 -msgid "Empty trash?" -msgstr "Vider la corbeille ?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Êtes vous sûr de vouloir supprimer les documents sélectionnés ?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Corbeille vidée avec succès" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Au moins un document est requis." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Type de document pour \"%s\" changé." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Soumettre" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Modifier les propriétés du document : %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Modifier le type du document sélectionné." -msgstr[1] "Modifier le type des documents sélectionnés." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Êtes vous sûr de vouloir rétablir le document sélectionné ?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Vous devez fournir au moins un document ou une version" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Document %(document)s rétabli." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documents à télécharger" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Êtes vous sûr de vouloir rétablir les documents sélectionnés ?" -#: views.py:828 -msgid "Date and time" -msgstr "Date et heure" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Aperçu du document : %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Au moins un document doit être sélectionné" +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "Etes-vous sûr de vouloir envoyer \"%s\" à la corbeille ?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Document en file d'attente pour recomptage du nombre de pages." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Document : %(document)s envoyé à la corbeille avec succès." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Documents en file d'attente pour recalcul du nombre de pages." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" +"Êtes vous sûr de vouloir envoyer les documents sélectionnés à la corbeille ?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Propriétés du document : %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Vider la corbeille ?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Corbeille vidée avec succès" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" -msgstr[0] "Êtes vous sûr de vouloir recalculer le nombre de pages du document sélectionné ?" -msgstr[1] "Êtes vous sûr de vouloir recalculer le nombre de pages des documents sélectionnés ?" +msgstr[0] "" +"Êtes vous sûr de vouloir recalculer le nombre de pages du document " +"sélectionné ?" +msgstr[1] "" +"Êtes vous sûr de vouloir recalculer le nombre de pages des documents " +"sélectionnés ?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Erreur lors de la suppression des transformations de page pour le document : %(document)s; %(error)s." +msgstr "" +"Erreur lors de la suppression des transformations de page pour le document : " +"%(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Soumettre" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Toutes les transformations de page pour le document : %s ont été supprimées avec succès." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Êtes-vous sûr de vouloir supprimer toutes les transformations de page pour le document sélectionné ?" -msgstr[1] "Êtes-vous sûr de vouloir supprimer toutes les transformations de page pour les documents sélectionnés ?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Il n'y a pas d'autres pages dans ce document" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Vous êtes déjà sur la première page du document" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Imprimer : %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Vider l'image en cache du document" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" +"Demande de nettoyage du cache de documents mise en file d'attente avec " +"succès." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Page %(page_number)d sur %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Image de la page du document" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -916,9 +1017,6 @@ msgstr "Image de la page du document" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -929,11 +1027,11 @@ msgstr "Image de la page du document" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1062,10 +1160,8 @@ msgstr "Image de la page du document" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1079,11 +1175,11 @@ msgstr "Image de la page du document" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1106,11 +1202,11 @@ msgstr "Image de la page du document" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1127,15 +1223,19 @@ msgstr "Image de la page du document" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1192,11 +1292,11 @@ msgstr "Image de la page du document" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1220,11 +1320,11 @@ msgstr "Image de la page du document" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1245,9 +1345,11 @@ msgstr "Image de la page du document" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1277,11 +1379,11 @@ msgstr "Image de la page du document" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1338,15 +1440,17 @@ msgstr "Image de la page du document" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/hu/LC_MESSAGES/django.mo index 9dace9aa6a..985b45e5c0 100644 Binary files a/mayan/apps/documents/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/hu/LC_MESSAGES/django.po b/mayan/apps/documents/locale/hu/LC_MESSAGES/django.po index 30c0efa323..63039e9452 100644 --- a/mayan/apps/documents/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/hu/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "dokumentumok" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME típus" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Megjegyzés" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Oldal kép" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Dokumentum gyors átnevezése" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Dátum megadása" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "Fájl MIME-típusa" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Semmi" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Fájl mérete" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Létezik a tárolóban" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "A fájl elérési útja a tárolóban" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Ellenőrző összeg" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Lapok" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Dokumentum típus" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Tömörítés" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Tömörített fájlnév" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "A tömörített fájl neve, amely a letöltött dokumentumokat tartalmazni fogja, ha az előző opció van kiválasztva." +msgstr "" +"A tömörített fájl neve, amely a letöltött dokumentumokat tartalmazni fogja, " +"ha az előző opció van kiválasztva." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Oldal tartomány" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Letöltés" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Törölje a grafikus ábrázolásokat, hogy felgyorsítsa a dokumentum megjelenítését és az interaktív átalakításokat." +msgstr "" +"Törölje a grafikus ábrázolásokat, hogy felgyorsítsa a dokumentum " +"megjelenítését és az interaktív átalakításokat." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +418,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +429,98 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Leírás" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" -msgstr "Az oldalak száma %(page_num)d nagyobb mint a %(document)s oldalainak száma: %(total_pages)d " +msgstr "" +"Az oldalak száma %(page_num)d nagyobb mint a %(document)s oldalainak " +"száma: %(total_pages)d " -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Fájlnév" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Felhasználó" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +533,10 @@ msgid "Delete documents" msgstr "Dokumentum törlése" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Dokumentum letöltése" @@ -528,12 +553,10 @@ msgid "Edit document properties" msgstr "Dokumentum tulajdonságok szerkesztése" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,288 +592,339 @@ msgstr "Dokumentum típus szerkesztése" msgid "View document types" msgstr "Dokumentum típus megtekintése" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "A felhasználónként megjegyzendő dokumentumok maximális száma amit az utóbbi időben (létrehozott, szerkesztett, a megtekintett)." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"A felhasználónként megjegyzendő dokumentumok maximális száma amit az utóbbi " +"időben (létrehozott, szerkesztett, a megtekintett)." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Egy dokumentum oldal százalékos nagyításának vagy kicsinyítésének aránya egy lépésben." +msgstr "" +"Egy dokumentum oldal százalékos nagyításának vagy kicsinyítésének aránya egy " +"lépésben." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "Egy dokumentum oldal százalékos (%) nagyításának aránya egy lépésben." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Egy dokumentum oldal százalékos (%) kicsinyítésének aránya egy lépésben." +msgstr "" +"Egy dokumentum oldal százalékos (%) kicsinyítésének aránya egy lépésben." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "A felhasználó ennyi fokkal lesz képes elforgatni a dokumentumot oldalt egy lépésben." +msgstr "" +"A felhasználó ennyi fokkal lesz képes elforgatni a dokumentumot oldalt egy " +"lépésben." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "a dokumentumnak nincs több oldala" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Ez már a dokumentum első oldala" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Minden ezután következő verzió is törölve lesz." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Dokumentum verzió sikeresen visszaállt" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Hiba a dokumentum verzió visszaállítása közben; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Adjon meg legalább egy dokumentumot." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" -msgstr[1] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." msgstr "" -#: views.py:964 +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Hiba %(error)s a dokumentum %(document)s oldal átalakítójának törlése közben." +msgstr "" +"Hiba %(error)s a dokumentum %(document)s oldal átalakítójának törlése közben." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "A dokumentum:% s minden oldal átalakítójának törlése sikeres." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "a dokumentumnak nincs több oldala" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Ez már a dokumentum első oldala" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -914,9 +988,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -927,11 +998,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1060,10 +1131,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1077,11 +1146,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1104,11 +1173,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1125,15 +1194,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1190,11 +1263,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1218,11 +1291,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1243,9 +1316,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1275,11 +1350,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1336,15 +1411,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/id/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/id/LC_MESSAGES/django.mo index c9959a928b..fbde464755 100644 Binary files a/mayan/apps/documents/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/id/LC_MESSAGES/django.po b/mayan/apps/documents/locale/id/LC_MESSAGES/django.po index 5596ae00b7..4f34303d37 100644 --- a/mayan/apps/documents/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/id/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumen" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Komentar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Gambar halaman" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Cara cepat mengganti nama dokumen" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Tanggal ditambahkan" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Bahasa" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "Jenis mime berkas" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Ukuran berkas" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Ada di penyimpanan" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Halaman-halaman" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Jenis dokumen" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Kompresi" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nama berkas terkompresi" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Nama berkas dari berkas terkompresi yang mengandung dokumen-dokumen yang akan diunduh, bila pilihan sebelumnya terpilih." +msgstr "" +"Nama berkas dari berkas terkompresi yang mengandung dokumen-dokumen yang " +"akan diunduh, bila pilihan sebelumnya terpilih." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Jangkauan halaman" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Unduh" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Bersihkan representasi gambar-gambar yang dipergunakan untuk mempercepat menampilkan dokumen dan hasil transformasi interaktif." +msgstr "" +"Bersihkan representasi gambar-gambar yang dipergunakan untuk mempercepat " +"menampilkan dokumen dan hasil transformasi interaktif." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +418,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +429,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Deskripsi" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "Bahasa" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "File" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Halaman %(page_num)d dari %(total_pages)d untuk %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "namafile" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Pengguna" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +531,10 @@ msgid "Delete documents" msgstr "Hapus dokumen" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Unduh dokumen" @@ -528,12 +551,10 @@ msgid "Edit document properties" msgstr "" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,285 +590,339 @@ msgstr "Sunting jenis dokumen" msgid "View document types" msgstr "Lihat jenis-jenis dokumen" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Jumlah maksimal dokumen-dokumen (dibuat, disunting, dilihat) baru-baru ini per pengguna." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Jumlah maksimal dokumen-dokumen (dibuat, disunting, dilihat) baru-baru ini " +"per pengguna." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Satuan dalam persen untuk memperbesar atau memperkecil tampilan halaman dokumen per interaksi pengguna." +msgstr "" +"Satuan dalam persen untuk memperbesar atau memperkecil tampilan halaman " +"dokumen per interaksi pengguna." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Jumlah maksimal dalam persen (%) yang diperbolehkan bagi pengguna untuk memperbesar tampilan halaman dokumen secara interaktif" +msgstr "" +"Jumlah maksimal dalam persen (%) yang diperbolehkan bagi pengguna untuk " +"memperbesar tampilan halaman dokumen secara interaktif" -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Jumlah minimal dalam persen (%) yang diperbolehkan bagi pengguna untuk memperkecil tampilan halaman dokumen secara interaktif." +msgstr "" +"Jumlah minimal dalam persen (%) yang diperbolehkan bagi pengguna untuk " +"memperkecil tampilan halaman dokumen secara interaktif." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Jumlah dalam derajat untuk memutar halaman dokumen per interaksi pengguna." +msgstr "" +"Jumlah dalam derajat untuk memutar halaman dokumen per interaksi pengguna." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Tidak ada halaman lagi dalam dokumen ini" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Anda telah berada pada halaman pertama dari dokumen ini" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Semua versi sebelum versi yang ini akan ikut dihapus juga." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versi dokumen berhasil dikembalikan." -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Masalah dalam mengembalikan versi dokumen; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." msgstr "" -#: views.py:964 +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Masalah dalam menghapus transformasi-transformasi untuk halaman: %(document)s; %(error)s." +msgstr "" +"Masalah dalam menghapus transformasi-transformasi untuk halaman: " +"%(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Semua transformasi-transformasi halaman untuk dokumen: %s, telah berhasil dihapus." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Tidak ada halaman lagi dalam dokumen ini" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Anda telah berada pada halaman pertama dari dokumen ini" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -911,9 +986,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -924,11 +996,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1056,10 +1128,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1073,11 +1143,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1100,11 +1170,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1121,15 +1191,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1186,11 +1260,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1214,11 +1288,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1239,9 +1313,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1271,11 +1347,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1332,15 +1408,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/it/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/it/LC_MESSAGES/django.mo index cb45cbbf75..77f04b7c0c 100644 Binary files a/mayan/apps/documents/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/it/LC_MESSAGES/django.po b/mayan/apps/documents/locale/it/LC_MESSAGES/django.po index c3aaaa3e6e..3e504d1519 100644 --- a/mayan/apps/documents/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -10,95 +10,116 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documenti" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Tipi di documento" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Documenti nel cestino" + +#: apps.py:145 msgid "Create a document type" msgstr "Creare un tipo di documento" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Ad ogni documento caricato deve essere assegnato un tipo documento, questa è la via più semplice per categorizzare i documenti in Mayan EDMS." +msgstr "" +"Ad ogni documento caricato deve essere assegnato un tipo documento, questa " +"è la via più semplice per categorizzare i documenti in Mayan EDMS." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Etichetta" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "Il MIME Type di qualsiasi delle versioni del documento" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tipo MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Miniatura" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Tipo" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Abilitato" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Data e ora di spostamento nel cestino" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Ora e data" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Codifica" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Commento" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nuovi documenti per mese" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nuove versioni dei documenti per mese" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nuove pagine di documento per mese" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Totale documenti per ogni mese" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Totale versioni di documento documento per ogni mese" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Totale pagine documento per ogni mese" @@ -119,12 +140,10 @@ msgid "Document type changed" msgstr "Cambiamenti al tipo di documento" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nuove versioni caricate" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Versioni di documento recuperate" @@ -132,249 +151,266 @@ msgstr "Versioni di documento recuperate" msgid "Document viewed" msgstr "Documenti visualizzati" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Immagine della pagina" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Pagine del documento (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Rinomina del documento veloce" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Data inserimento" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Lingua" + #: forms.py:122 +msgid "Unknown" +msgstr "Sconosciuto" + +#: forms.py:130 msgid "File mimetype" msgstr "File mimetype" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nessuna " -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "File encoding" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Dimensioni del file" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Esiste nello storage" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "File path in storage" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Pagine" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tipo documento " -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimere" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Scarica il documento nel formato originale oppure compresso. Questa opzione è selezionabile quando scarichi un singolo documento, per documenti multipli, il pacchetto sarà sempre scaricato in formato compresso." +msgstr "" +"Scarica il documento nel formato originale oppure compresso. Questa opzione " +"è selezionabile quando scarichi un singolo documento, per documenti " +"multipli, il pacchetto sarà sempre scaricato in formato compresso." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nome file compresso " -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Il nome file del file compresso che conterrà il documento da scaricare, se l'opzione precedente è selezionata." +msgstr "" +"Il nome file del file compresso che conterrà il documento da scaricare, se " +"l'opzione precedente è selezionata." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Intervallo pagina" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Anteprima " -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Proprietà" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versioni" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Cancella trasformazioni" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Cancella" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Sposta nel cestino" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Modifica proprietà" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Cambia tipo" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Scarica" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Stampa" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Ricalcola numero pagine" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Ripristina" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Scarica versione" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Tutti i documenti" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Documenti recenti" -#: links.py:144 -msgid "Trash" -msgstr "Cestino" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Cancella le rappresentazioni grafiche utilizzate per accellerare la visualizzazione dei documenti e dei risultati interattivi trasformazioni." +msgstr "" +"Cancella le rappresentazioni grafiche utilizzate per accellerare la " +"visualizzazione dei documenti e dei risultati interattivi trasformazioni." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Pulisci la cache delle immagini dei documenti" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Svuota cestino" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Prima pagina" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Ultima pagina" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Pagina precedente" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Pagina successiva" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Documento" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Ruota a sinistra" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Ruota a destra" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Reset visualizzazione" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Zoom in" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Zoom out" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Ritornare" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Crea tipo di documento" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Modifica" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Aggiungi un'etichetta rapida al tipo documento" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Etichette rapide" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Tipi di documento" - #: literals.py:14 msgid "Default" msgstr "Default" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Tutte le pagine" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Quantità di tempo dopo il quale i documenti di questo tipo saranno spostati nel cestino." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Quantità di tempo dopo il quale i documenti di questo tipo saranno spostati " +"nel cestino." #: models.py:71 msgid "Trash time period" @@ -388,15 +424,15 @@ msgstr "Unità di tempo per cestinare" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Quantità di tempo dopo il quale i documenti di questo tipo nel cestino saranno cancellati." +msgstr "" +"Quantità di tempo dopo il quale i documenti di questo tipo nel cestino " +"saranno cancellati." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Tempo per cancellare" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Unità di tempo per cancellare" @@ -404,99 +440,99 @@ msgstr "Unità di tempo per cancellare" msgid "Documents types" msgstr "Tipi di documenti" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "Il nome del documento" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descrizione " -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Aggiunto" -#: models.py:169 -msgid "Language" -msgstr "Lingua" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "Nel cestino?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Data e ora di spostamento nel cestino" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Un documento troncato è un documento presente sul database che non ha un file scaricato. Potrebbe essere dovuto ad un upload interrotto oppure rimandato per caricarlo via API." +msgstr "" +"Un documento troncato è un documento presente sul database che non ha un " +"file scaricato. Potrebbe essere dovuto ad un upload interrotto oppure " +"rimandato per caricarlo via API." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "Documento troncato?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Documento troncato, ID: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Timestamp" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "File" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Versione documento" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Etichetta rapida" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Numero di pagina" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Pagina %(page_num)d di %(total_pages)d del %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Pagina del documento" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Le pagine del documento" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Nuovo blocco versione" +#: models.py:822 +msgid "Filename" +msgstr "Nome file" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Nuovi blocchi versione" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Utente" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Acceduto" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Documento recente " @@ -509,11 +545,10 @@ msgid "Delete documents" msgstr "Cancella documenti" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Cestina documenti" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Scarica documenti" @@ -530,12 +565,10 @@ msgid "Edit document properties" msgstr "Modifica proprietà documento" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Stampa documenti" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "Ripristina il documento cancellato" @@ -571,288 +604,344 @@ msgstr "Modifica il tipo di documento" msgid "View document types" msgstr "Visualizza i tipi di documento" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Numero massimo di documenti recenti da ricordare per utente (creazione, modifica, visualizzazione)." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Numero massimo di documenti recenti da ricordare per utente (creazione, " +"modifica, visualizzazione)." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Percentuale dello zoom di una pagina del documento per l'interazione dell'utente." +msgstr "" +"Percentuale dello zoom di una pagina del documento per l'interazione " +"dell'utente." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Ingrandimento massimo in percentuale (%) da consentire all'utente per una pagina del documento in modo interattivo." +msgstr "" +"Ingrandimento massimo in percentuale (%) da consentire all'utente per una " +"pagina del documento in modo interattivo." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Quantità minima in percentuale (%) per consentire all'utente di ingrandire una pagina di documento in modo interattivo." +msgstr "" +"Quantità minima in percentuale (%) per consentire all'utente di ingrandire " +"una pagina di documento in modo interattivo." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Quantità di gradi per la rotazione della pagina del documento" -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Lingua predefinita per idocumenti (in formato ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Elenco delle lingue supportate nei documenti." -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Cancellare la cache delle immagini documento?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Pulizia della cache documenti in coda completata con successo." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Documenti nel cestino" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Cancellare il documento selezionato?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Documento: %(document)s cancellato." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Cancellare i documenti selezionati?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Modifica le proprietà del documento: %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Ripristinare i documenti selezionati?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Documento: %(document)s rispristinato." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Ripristinare i documenti selezionati?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Pagine del documento: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Non ci sono più pagine in questo documento" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Sei già alla prima pagina del documento" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Immagine di: %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Anteprima del documento: %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "Spostare \"%s\" nel cestino?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Documento: %(document)s spostato nel cestino con successo.." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Spostare i documenti selezionati nel cestino?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Documento di tipo: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Tutti i documenti di questo tipo saranno cancellati ." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Cancellare il tipo documento: %s?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Modifica il tipo di documento: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Crea etichetta rapida per il tipo documento: %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Modifica etichetta rapida \"%(filename)s\" dal tipo documento \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Modifica etichetta rapida \"%(filename)s\" dal tipo documento " +"\"%(document_type)s\"" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" -msgstr "Cancellare l'etichetta: %(label)s, dal tipo documento \"%(document_type)s\"?" +msgstr "" +"Cancellare l'etichetta: %(label)s, dal tipo documento \"%(document_type)s\"?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Etichette rapide per il tipo documento: %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versione del documento: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Tutte le versioni precedenti a questa verranno cancellate." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Ripristinare questa versione?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versione del documento ripristinato con successo" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Errore restituito, al ripristino del documento; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Cancellare il documento selezionato?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Proprietà del documento: %s" +msgid "Document: %(document)s deleted." +msgstr "Documento: %(document)s cancellato." -#: views.py:639 -msgid "Empty trash?" -msgstr "Cancellare il cestino?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Cancellare i documenti selezionati?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Svuotamento cestino completato" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Fornire almeno un documento " +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Tipo documento per \"%s\" cambiato con successo." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Invia" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Modifica le proprietà del documento: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Cambia il tipo del documento selezionato." -msgstr[1] "Cambia il tipo dei documenti selezionati." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Ripristinare i documenti selezionati?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Deve fornire almeno un documento o una versione." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Documento: %(document)s rispristinato." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documenti da scaricare" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Ripristinare i documenti selezionati?" -#: views.py:828 -msgid "Date and time" -msgstr "Data e ora" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Anteprima del documento: %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Almeno un documento deve essere selezionato." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "Spostare \"%s\" nel cestino?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Documento messo in coda per ricalcolo delle pagine." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Documento: %(document)s spostato nel cestino con successo.." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Documenti messi in coda per ricalcolo delle pagine." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "Spostare i documenti selezionati nel cestino?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Proprietà del documento: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Cancellare il cestino?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Svuotamento cestino completato" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "Ricalcolare il conteggio delle pagine del documento selezionato?" msgstr[1] "Ricalcolare il conteggio delle pagine dei documenti selezionati?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Errore nella cancellazione della trasformazione della pagina per il documento:%(document)s; %(error)s." +msgstr "" +"Errore nella cancellazione della trasformazione della pagina per il " +"documento:%(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Invia" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Tutte le trasformazioni alle pagine del documento:%s, sono state cancellate con successo." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Cancellare le trasformazioni per il documento selezionato?" -msgstr[1] "Cancellare le trasformazioni per i documenti selezionati?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Non ci sono più pagine in questo documento" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Sei già alla prima pagina del documento" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Stampa: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Cancellare la cache delle immagini documento?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Pulizia della cache documenti in coda completata con successo." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Pagina %(page_number)d di %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Immagine pagina documento" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -916,9 +1005,6 @@ msgstr "Immagine pagina documento" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -929,11 +1015,11 @@ msgstr "Immagine pagina documento" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1062,10 +1148,8 @@ msgstr "Immagine pagina documento" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1079,11 +1163,11 @@ msgstr "Immagine pagina documento" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1106,11 +1190,11 @@ msgstr "Immagine pagina documento" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1127,15 +1211,19 @@ msgstr "Immagine pagina documento" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1192,11 +1280,11 @@ msgstr "Immagine pagina documento" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1220,11 +1308,11 @@ msgstr "Immagine pagina documento" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1245,9 +1333,11 @@ msgstr "Immagine pagina documento" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1277,11 +1367,11 @@ msgstr "Immagine pagina documento" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1338,15 +1428,17 @@ msgstr "Immagine pagina documento" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.mo index 5b18c65369..8ba897d593 100644 Binary files a/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.po index 1745966c75..de143ee4f4 100644 --- a/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/nl_NL/LC_MESSAGES/django.po @@ -1,103 +1,123 @@ # 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 , 2016 +# Johan Braeken, 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-09 15:56+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" +"Last-Translator: Johan Braeken\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documenten" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Documentsoorten" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "Een documentsoort aanmaken" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Label" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME type" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Thumbnail" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Type" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Ingeschakeld" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Tijd en datum" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Commentaar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nieuwe documenten per maand" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nieuwe documentversies per maand" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nieuwe documentpagina's per maand" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -118,261 +138,272 @@ msgid "Document type changed" msgstr "Documentsoort veranderd" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nieuwe versie geüpload" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Documentversie teruggedraaid" #: events.py:29 msgid "Document viewed" -msgstr "" +msgstr "Document bekeken" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Pagina afbeelding" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Documentpagina's (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Snel document hernoemen" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Datum toegevoegd" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Taal" + #: forms.py:122 +msgid "Unknown" +msgstr "Onbekent" + +#: forms.py:130 msgid "File mimetype" msgstr "MIME-type bestand" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Geen" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Bestand encoderen" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Bestandgrootte" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Aanwezig in opslag" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Bestandspad in opslag" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Checksum" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Pagina's" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Documentsoort" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimeren" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Bestandsnaam gecomprimeerde archiefbestand" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "De bestandsnaam van het gecomprimeerde archiefbestand dat alle documenten bevat die dienen te worden gedownload, als de voorgaande optie is geselecteerd." +msgstr "" +"De bestandsnaam van het gecomprimeerde archiefbestand dat alle documenten " +"bevat die dienen te worden gedownload, als de voorgaande optie is " +"geselecteerd." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Pagina bereik" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Preview" -#: links.py:48 +#: links.py:57 msgid "Properties" -msgstr "Eigenschappe" +msgstr "Eigenschappen" -#: links.py:53 +#: links.py:62 msgid "Versions" -msgstr "" +msgstr "Versies" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Verwijder" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" -msgstr "" +msgstr "Verplaats naar trash" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Bewerk eigenschappen" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Verander soort" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Download" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Printe" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" -msgstr "" +msgstr "Aantal bladzijden herberekenen" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Alle documenten" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Recente documenten" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Opschonen van de grafische afbeeldingen, die gebuikt worden bij het versnellen van de documentweergave en interactive transformatie resultaten." +msgstr "" +"Opschonen van de grafische afbeeldingen, die gebuikt worden bij het " +"versnellen van de documentweergave en interactive transformatie resultaten." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" -msgstr "" +msgstr "Eerste bladzijde" -#: links.py:172 +#: links.py:186 msgid "Last page" -msgstr "" +msgstr "Laatste bladzijde" -#: links.py:179 +#: links.py:193 msgid "Previous page" -msgstr "" +msgstr "Vorige bladzijde" -#: links.py:185 +#: links.py:199 msgid "Next page" -msgstr "" +msgstr "Volgende bladzijde" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Document" -#: links.py:196 +#: links.py:210 msgid "Rotate left" -msgstr "" +msgstr "Daai linksom" -#: links.py:201 +#: links.py:215 msgid "Rotate right" -msgstr "" +msgstr "Draai rechtsom" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" -msgstr "" +msgstr "Inzoomen" -#: links.py:219 +#: links.py:234 msgid "Zoom out" -msgstr "" +msgstr "Uitzoomen" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "bewerken" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Documentsoorten" - #: literals.py:14 msgid "Default" msgstr "Verstekwaarde" -#: literals.py:24 +#: literals.py:23 msgid "All pages" -msgstr "" +msgstr "Alle bladzijden" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -390,112 +421,107 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" #: models.py:106 msgid "Documents types" -msgstr "" +msgstr "Documenttypes" -#: models.py:158 +#: models.py:157 msgid "The name of the document" -msgstr "" +msgstr "De naam van het document" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Omschrijving" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Toegevoegd" -#: models.py:169 -msgid "Language" -msgstr "Taal" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Timestamp" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Bestand" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Documentversie" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" -msgstr "" +msgstr "Paginanummer" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Pagina %(page_num)d van %(total_pages)d in %(document)s " -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Documentpagina" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Bestandsnaam" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Gebruiker" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -508,11 +534,10 @@ msgid "Delete documents" msgstr "Documenten verwijderen" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Documenten downloaden" @@ -529,12 +554,10 @@ msgid "Edit document properties" msgstr "Documenteigenschappen bewerken" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" -msgstr "" +msgstr "Druk documenten af" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -570,288 +593,337 @@ msgstr "Documentsoorten bewerken" msgid "View document types" msgstr "Bekijk de documentsoorten" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Maximum aantal recente docmenten (aangemaakt, bewerkt, bekeken), te onthouden per gebruiker." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Maximum aantal recente docmenten (aangemaakt, bewerkt, bekeken), te " +"onthouden per gebruiker." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Percentage in- of uitzoomen voor documentpagina per gebruikeractie." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Maximaal toegestane documentpagina zoom percentage (%) per gebruikeractie." +msgstr "" +"Maximaal toegestane documentpagina zoom percentage (%) per gebruikeractie." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Minimaal toegestane documentpagina zoom percentage (%) per gebruikeractie. " +msgstr "" +"Minimaal toegestane documentpagina zoom percentage (%) per gebruikeractie. " -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Aantal graden documentpagina rotatie per gebruikeractie." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Er zijn verder geen pagina's meer in dit document" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "U bent al op de eerste pagina in dit document" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Alle documenten van dit type zullen ook worden verwijderd." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Bewerk documenttype: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versies van document: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Alle recentere versies na deze zullen ook worden verwijderd." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" -msgstr "" +msgstr "Deze versie terugzetten?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Documentversie succesvol teruggevoerd" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Fout bij het terugvoeren van de documentversie. Foutmelding: %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Het geselecteerde document verwijderen?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Eigenschappen voor document: %s" +msgid "Document: %(document)s deleted." +msgstr "" -#: views.py:639 -msgid "Empty trash?" -msgstr "Prullenbak legen?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Prullenbak succesvol geleegd" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Documenttype voor \"%s\" succesvol veranderd." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Verstuur" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Bewerk eigenschappen van document: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Verander het type van het geselecteerde document." -msgstr[1] "Verander het type van de geselecteerde documenten." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Het geselecteerde document terugzetten?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documenten om te downloaden" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "De geselecteerde documenten terugzetten?" -#: views.py:828 -msgid "Date and time" -msgstr "Datum en tijd" - -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." msgstr "" -#: views.py:964 +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Eigenschappen voor document: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Prullenbak legen?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Prullenbak succesvol geleegd" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Fout bij verwijderen van de pagina transformaties voor document: %(document)s ; %(error)s ." +msgstr "" +"Fout bij verwijderen van de pagina transformaties voor document: " +"%(document)s ; %(error)s ." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Verstuur" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Alle paginatransformaties voor document: %s, zijn succesvol verwijderd." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Er zijn verder geen pagina's meer in dit document" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "U bent al op de eerste pagina in dit document" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Afdrukken: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Pagina %(page_number)d van %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -915,9 +987,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -928,11 +997,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1061,10 +1130,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1078,11 +1145,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1105,11 +1172,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1126,15 +1193,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1191,11 +1262,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1219,11 +1290,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1244,9 +1315,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1276,11 +1349,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1337,15 +1410,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/pl/LC_MESSAGES/django.mo index e0db89c20e..5850cc535e 100644 Binary files a/mayan/apps/documents/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/pl/LC_MESSAGES/django.po b/mayan/apps/documents/locale/pl/LC_MESSAGES/django.po index 049202eff3..b67047c488 100644 --- a/mayan/apps/documents/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/pl/LC_MESSAGES/django.po @@ -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: # Wojtek Warczakowski , 2016 @@ -10,95 +10,118 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumenty" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Typy dokumentów" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "Utwórz typ dokumentu" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Każdy przesłany dokument musi mieć przypisany typ dokumentu, ponieważ jest to podstawowy sposób kategoryzacji dokumentów w Mayan EDMS." +msgstr "" +"Każdy przesłany dokument musi mieć przypisany typ dokumentu, ponieważ jest " +"to podstawowy sposób kategoryzacji dokumentów w Mayan EDMS." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Etykieta" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "Typ MIME każdej wersji dokumentu" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Typ MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Miniaturka" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Typ" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Włączone" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Data i czas umieszczenia w koszu" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Czas i data" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Kodowanie" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Komentarz" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Nowe dokumenty miesięcznie" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Nowe wersje dokumentów miesięcznie" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Nowe strony dokumentów miesięcznie" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Liczba dokumentów w każdym miesiącu" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Liczba wersji dokumentów w każdym miesiącu" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Liczba stron dokumentów w każdym miesiącu" @@ -119,12 +142,10 @@ msgid "Document type changed" msgstr "Właściwości dokumentu zostały zmodyfikowane" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nowa wersja została przesłana" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Wersja dokumentu została przywrócona" @@ -132,248 +153,262 @@ msgstr "Wersja dokumentu została przywrócona" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Obraz strony" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Strony dokumentu (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Szybka zmiana nazwy dokumentu" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Data dodania" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Język" + #: forms.py:122 +msgid "Unknown" +msgstr "Nieznany" + +#: forms.py:130 msgid "File mimetype" msgstr "Typ MIME pliku" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Brak" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Kodowanie pliku" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Rozmiar pliku" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Istnieje w systemie" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Ścieżka pliku w systemie" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Suma kontrolna" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Strony" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Typ dokumentów" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Kompresuj" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Pobierz dokument w formacie oryginalnym lub w formie skompresowanej. Powyższa opcja ma zastosowanie jedynie w przypadku pobierania pojedynczego pliku. W przypadku wielu dokumentów zostaną one pobrane w formie skompresowanego archiwum." +msgstr "" +"Pobierz dokument w formacie oryginalnym lub w formie skompresowanej. " +"Powyższa opcja ma zastosowanie jedynie w przypadku pobierania pojedynczego " +"pliku. W przypadku wielu dokumentów zostaną one pobrane w formie " +"skompresowanego archiwum." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nazwa pliku skompresowanego" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Nazwa pliku zawierającego gotowe do pobrania dokumenty w formie skompresowanej, jeśli poprzednio wybrano opcję kompresji." +msgstr "" +"Nazwa pliku zawierającego gotowe do pobrania dokumenty w formie " +"skompresowanej, jeśli poprzednio wybrano opcję kompresji." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Zakres stron" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Podgląd" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Właściwości" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Wersje" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Wyczyść transformacje" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Usuń" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Przenieś do kosza" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Edytuj właściwości" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Zmień typ" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Pobierz" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Drukuj" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Przelicz liczbę stron" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Wszystkie dokumenty" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Ostatnio przeglądane" -#: links.py:144 -msgid "Trash" -msgstr "Kosz" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." msgstr "" -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Pierwsza strona" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Ostatnia strona" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Poprzednia strona" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Następna strona" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Dokument" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Obrót w lewo" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Obrót w prawo" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Resetuj widok" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Powiększ" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Pomniejszyć" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Przywróć" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Tworzenie typów dokumentów" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Edytuj" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Typy dokumentów" - #: literals.py:14 msgid "Default" msgstr "Domyślne" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Wszystkie strony" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -391,12 +426,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -404,99 +437,96 @@ msgstr "" msgid "Documents types" msgstr "Typy dokumentów" -#: models.py:158 +#: models.py:157 msgid "The name of the document" -msgstr "" +msgstr "Nazwa dokumentu" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Opis" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Dodano" -#: models.py:169 -msgid "Language" -msgstr "Język" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Pieczęć czasu" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Plik" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Wersja dokumentu" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Numer strony" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Strona %(page_num)d z %(total_pages)d stron dokumentu %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Strona dokumentu" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Strony dokumentu" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Nazwa" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Użytkownik" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Dostępne" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Ostatni dokument" @@ -509,11 +539,10 @@ msgid "Delete documents" msgstr "Usuwanie dokumentów" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Pobieranie dokumentów" @@ -530,12 +559,10 @@ msgid "Edit document properties" msgstr "Edytuj właściwości dokumentu" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -571,291 +598,337 @@ msgstr "Edytuj typy dokumentów" msgid "View document types" msgstr "Zobacz typy dokumentów" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." msgstr "" -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "" -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "" -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "" -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "" -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Strony dokumentu: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Jesteś już na pierwszej stronie tego dokumentu" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Podgląd dokumentu: %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Wersje dokumentu: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "" -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Właściwości dokumentu: %s" - -#: views.py:639 -msgid "Empty trash?" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Musisz dodać co najmniej jeden dokument." +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:704 +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" + +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Wykonaj" - -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:828 -msgid "Date and time" -msgstr "Data i godzina" - -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Podgląd dokumentu: %s" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:964 +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Właściwości dokumentu: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" msgstr[2] "" +msgstr[3] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "" -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Wykonaj" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." +msgid "Clone page transformations for document: %s" msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Jesteś już na pierwszej stronie tego dokumentu" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Wydruk: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Strona %(page_number)d of %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -919,9 +992,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -932,11 +1002,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1019,6 +1089,7 @@ msgstr "" #~ msgstr[0] "ee02f3189246f97d6734a407f6f9040b_pl_0" #~ msgstr[1] "ee02f3189246f97d6734a407f6f9040b_pl_1" #~ msgstr[2] "ee02f3189246f97d6734a407f6f9040b_pl_2" +#~ msgstr[3] "ee02f3189246f97d6734a407f6f9040b_pl_3" #~ msgid "Document page edited successfully." #~ msgstr "Document page edited successfully." @@ -1066,10 +1137,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1083,11 +1152,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1110,11 +1179,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1131,15 +1200,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1196,11 +1269,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1224,11 +1297,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1249,9 +1322,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1281,11 +1356,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1342,15 +1417,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/pt/LC_MESSAGES/django.mo index 11695cce6b..bfb38d61a8 100644 Binary files a/mayan/apps/documents/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/pt/LC_MESSAGES/django.po b/mayan/apps/documents/locale/pt/LC_MESSAGES/django.po index 669b1ffc55..048bf253c8 100644 --- a/mayan/apps/documents/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/pt/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documentos" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Nome" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tipo MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Comentário" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,258 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Imagem da página" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Renomeação rápida de documento" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Data de adição" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "Tipo MIME do ficheiro" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nenhum" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Tamanho do ficheiro" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Existe no armazenamento" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Caminho do ficheiro no armazenamento" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Soma de verificação" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Páginas" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tipo de documento" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimir" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." msgstr "" -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Intervalo de páginas" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Eliminar" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Descarregar" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Limpar as representações gráficas usadas para acelerar a exibição e transformações interativas de documentos." +msgstr "" +"Limpar as representações gráficas usadas para acelerar a exibição e " +"transformações interativas de documentos." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Editar" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Padrão" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +416,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +427,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descrição" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Ficheiro" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Página %(page_num)d de %(total_pages)d de %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Nome do ficheiro" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Utilizador" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +529,10 @@ msgid "Delete documents" msgstr "Excluir documentos" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Descarregar documentos" @@ -528,12 +549,10 @@ msgid "Edit document properties" msgstr "Editar propriedades de documento" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,288 +588,341 @@ msgstr "Editar tipos de documentos" msgid "View document types" msgstr "Ver tipos de documento" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Número máximo de documentos recentes (criados, editados, visualizados) a recordar, por utilizador." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Número máximo de documentos recentes (criados, editados, visualizados) a " +"recordar, por utilizador." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Percentagem de zoom in/out por interação do utilizador." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Percentagem (%) máxima para o utilizador aumentar o zoom de uma página de documento de forma interativa." +msgstr "" +"Percentagem (%) máxima para o utilizador aumentar o zoom de uma página de " +"documento de forma interativa." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Percentagem (%) mínima para o utilizador diminuir o zoom de uma página de documento de forma interativa." +msgstr "" +"Percentagem (%) mínima para o utilizador diminuir o zoom de uma página de " +"documento de forma interativa." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Valor em graus para rodar uma página de documento por interação do utilizador." +msgstr "" +"Valor em graus para rodar uma página de documento por interação do " +"utilizador." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Não há mais páginas neste documento" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Já está na primeira página deste documento" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Todas as versões posteriores a esta também serão eliminadas." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versão do documento revertida com sucesso" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Erro ao reverter versão do documento; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Submeter" - -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" -msgstr[1] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:964 +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Erro ao excluir as transformações de página para o documento: %(document)s; %(error)s ." +msgstr "" +"Erro ao excluir as transformações de página para o documento: %(document)s; " +"%(error)s ." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Submeter" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Todas as transformações de página para o documento: %s, foram excluídas com sucesso." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Não há mais páginas neste documento" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Já está na primeira página deste documento" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -914,9 +986,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -927,11 +996,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1060,10 +1129,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1077,11 +1144,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1104,11 +1171,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1125,15 +1192,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1190,11 +1261,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1218,11 +1289,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1243,9 +1314,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1275,11 +1348,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1336,15 +1409,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.mo index cf5d0e3cdd..e38bae312d 100644 Binary files a/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.po index 6ff0313c62..1d9708e313 100644 --- a/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -9,95 +9,116 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+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" "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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documento" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Tipos de Documentos" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Documentos na lixeira" + +#: apps.py:145 msgid "Create a document type" msgstr "Criar tipo de documento" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Cada documento carregado deve ser atribuído um tipo de documento, é a forma básica que o Mayan EDMS categoriza os documentos." +msgstr "" +"Cada documento carregado deve ser atribuído um tipo de documento, é a forma " +"básica que o Mayan EDMS categoriza os documentos." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Label" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "O tipo MIME de qualquer uma das versões de um documento" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tipo MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" -msgstr "miniatura" +msgstr "Miniatura" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Tipo" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" -msgstr "habilitado" +msgstr "Habilitado" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Data e hora do envio para a lixeira" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Hora e Data" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Codificação" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Comentário" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Novos documentos por mês" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Novas versões de documentos por mês" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Novas páginas de documentos por mês" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Total de documentos por mês" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Total de versões de documentos por mês" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Total de páginas de documentos por mês" @@ -118,12 +139,10 @@ msgid "Document type changed" msgstr "Tipo de Documento mudado" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Nova versão carregada" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Versão de documento revertida" @@ -131,249 +150,266 @@ msgstr "Versão de documento revertida" msgid "Document viewed" msgstr "Documento visualizado" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Imagem da página" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "As páginas do documento (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Renomear documento rápido" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Data de adição" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Linguagem" + #: forms.py:122 +msgid "Unknown" +msgstr "desconhecido" + +#: forms.py:130 msgid "File mimetype" msgstr "Mimetype do arquivo" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nenhum" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" -msgstr "codificação de arquivo" +msgstr "Codificação de arquivo" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Tamanho do arquivo" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Existe no armazenamento" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Caminho do arquivo no armazenamento" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Verificação" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Páginas" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tipo de Documento" -#: forms.py:190 +#: forms.py:195 msgid "Compress" -msgstr "comprimir" +msgstr "Comprimir" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Faça o download do documento no formato original ou de forma comprimida. Esta opção só pode ser selecionada quando o download de um documento, para vários documentos. O pacote sempre será baixado como um arquivo compactado." +msgstr "" +"Faça o download do documento no formato original ou de forma comprimida. " +"Esta opção só pode ser selecionada quando o download de um documento, para " +"vários documentos. O pacote sempre será baixado como um arquivo compactado." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Comprimido o filename " -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "O nome do arquivo do arquivo compactado que vai conter os documentos a serem baixados, se a opção anterior é selecionado." +msgstr "" +"O nome do arquivo do arquivo compactado que vai conter os documentos a serem " +"baixados, se a opção anterior é selecionado." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Intervalo de páginas" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Visualizar" -#: links.py:48 +#: links.py:57 msgid "Properties" -msgstr "propriedades" +msgstr "Propriedades" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Versão" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" -msgstr "remover transformações" +msgstr "Remover transformações" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Excluir" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Mover para a lixeira" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Editar propriedades" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Mudar o tipo" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Baixar" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Imprimir" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Recalcular a contagem de páginas" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Restaurar" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Baixar a versão" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Todos os Documentos" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Documentos recentes" -#: links.py:144 -msgid "Trash" -msgstr "Lixeira" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Desmarque as representações gráficas utilizadas para acelerar a exibição e transformações interativas resultados dos documentos." +msgstr "" +"Desmarque as representações gráficas utilizadas para acelerar a exibição e " +"transformações interativas resultados dos documentos." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Apagar o cache de imagens de documentos" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Esvaziar a lixeira" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Primeira página" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Última pagina" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Página anterior" -#: links.py:185 +#: links.py:199 msgid "Next page" -msgstr "próxima pagina" +msgstr "Próxima pagina" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Documento" -#: links.py:196 +#: links.py:210 msgid "Rotate left" -msgstr "girar para a esquerda" +msgstr "Girar para a esquerda" -#: links.py:201 +#: links.py:215 msgid "Rotate right" -msgstr "girar para a direita" +msgstr "Girar para a direita" -#: links.py:209 +#: links.py:223 msgid "Reset view" -msgstr "redefinir visão" +msgstr "Redefinir visão" -#: links.py:214 +#: links.py:228 msgid "Zoom in" -msgstr "mais zoom" +msgstr "Mais zoom" -#: links.py:219 +#: links.py:234 msgid "Zoom out" -msgstr "menos zoom" +msgstr "Menos zoom" -#: links.py:227 +#: links.py:243 msgid "Revert" -msgstr "reverter" +msgstr "Reverter" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Criar Tipo de documento" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Editar" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Adicionar etiqueta rápida ao tipo de documento" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Etiquetas rápidas" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Tipos de Documentos" - #: literals.py:14 msgid "Default" msgstr "Padrão" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Todas as páginas" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Quantidade de tempo após a qual se enviará documentos deste tipo para a lixeira." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Quantidade de tempo após a qual se enviará documentos deste tipo para a " +"lixeira." #: models.py:71 msgid "Trash time period" @@ -387,15 +423,14 @@ msgstr "Unidade de tempo de envio para a lixeira" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Quantidade de tempo após a qual documentos deste tipo serão eliminados." +msgstr "" +"Quantidade de tempo após a qual documentos deste tipo serão eliminados." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Período de tempo de eliminação" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Unidade de tempo de eliminação" @@ -403,99 +438,99 @@ msgstr "Unidade de tempo de eliminação" msgid "Documents types" msgstr "Tipos de Documentos" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "O nome do documento" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descrição" -#: models.py:164 +#: models.py:163 msgid "Added" -msgstr "adicionado" +msgstr "Adicionado" -#: models.py:169 -msgid "Language" -msgstr "Lingua" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "Na lixeira?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Data e hora de envio à lixeira" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Um rascunho de documento é um documento com uma entrada no banco de dados, mas nenhum arquivo carregado. Isso pode ser um envio interrompido ou um envio diferido por meio da API." +msgstr "" +"Um rascunho de documento é um documento com uma entrada no banco de dados, " +"mas nenhum arquivo carregado. Isso pode ser um envio interrompido ou um " +"envio diferido por meio da API." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "É um rascunho?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Documento rascunho, id: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "Timestamp" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Arquivo" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Versão do Documento" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Etiqueta rápida" -#: models.py:651 +#: models.py:664 msgid "Page number" -msgstr "página número" +msgstr "Página número" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Pagina %(page_num)d de %(total_pages)d em %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" -msgstr "página do documento" +msgstr "Página do documento" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" -msgstr "páginas do documento" +msgstr "Páginas do documento" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Bloqueio de nova versão" +#: models.py:822 +msgid "Filename" +msgstr "Nome do arquivo" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Bloqueios de nova versão" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Usuário" -#: models.py:800 +#: models.py:854 msgid "Accessed" -msgstr "acessado" +msgstr "Acessado" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Documentos recentes" @@ -508,11 +543,10 @@ msgid "Delete documents" msgstr "Excluir documentos" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Mover documentos para a lixeira" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Baixar documentos" @@ -529,12 +563,10 @@ msgid "Edit document properties" msgstr "Editar propriedades de documento" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Imprimir documentos" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "Restaurar documento da lixeira" @@ -570,288 +602,345 @@ msgstr "Editar tipos de documentos" msgid "View document types" msgstr "Ver tipos de documentos" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Número máximo de documentos recentes (criado, editado, visualizado) à ser lembrado, por usuário." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Número máximo de documentos recentes (criado, editado, visualizado) à ser " +"lembrado, por usuário." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Quantidade em porcentagem de zoom em uma página ou documento por interação do usuário." +msgstr "" +"Quantidade em porcentagem de zoom em uma página ou documento por interação " +"do usuário." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Valor máximo em porcentagem (%) para permitir ao usuário aumentar o zoom em uma página do documento de forma interativa." +msgstr "" +"Valor máximo em porcentagem (%) para permitir ao usuário aumentar o zoom em " +"uma página do documento de forma interativa." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Valor mínimo em porcentagem (%) para permitir ao usuário diminuir o zoom em uma página do documento de forma interativa." +msgstr "" +"Valor mínimo em porcentagem (%) para permitir ao usuário diminuir o zoom em " +"uma página do documento de forma interativa." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Valor em graus para girar uma página do documento por interação do usuário." +msgstr "" +"Valor em graus para girar uma página do documento por interação do usuário." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Os documentos padrão linguagem (em formato ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Lista de idiomas de documentos suportados." -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Apagar do cache a imagem do documento?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Cache do documento apagado com sucesso." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Documentos na lixeira" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Remover o documento selecionado?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Documento: %(document)s removido." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Remover os documentos selecionados?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Editar propriedades de documento: %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Restaurar os documentos selecionados?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Documentq: %(document)s restaurado." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Restaurar os documentos selecionados?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Páginas por documento: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Não há mais páginas neste documento" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Você já está na primeira página deste documento" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Imagem de: %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Pré-visualização do documento:%s " - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "Mover \"%s\" para a lixeira?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Documento: %(document)s movido para a lixeira com sucesso." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Mover os documentos selecionados para a lixeira?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Documentos do tipo: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Todos os documentos deste tipo serão excluídos também." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Remove o documento do tipo: %s?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Editar o tipo de documento: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Criar uma etiqueta rápida para o documento tipo: %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Editar etiqueta rápida \"%(filename)s\" para documento do tipo \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Editar etiqueta rápida \"%(filename)s\" para documento do tipo " +"\"%(document_type)s\"" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" -msgstr "Apagar a etiqueta rápida: %(label)s, do documento tipo \"%(document_type)s\"?" +msgstr "" +"Apagar a etiqueta rápida: %(label)s, do documento tipo \"%(document_type)s\"?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Etiquetas rápidas para documento do tipo: %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Versões do documento: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Tudo versão posterior após este será excluído também." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Reverter para esta versão?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versão do documento revertidos com sucesso" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Erro ao reverter versão do documento; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Remover o documento selecionado?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Pré-visualização do documento:%s" +msgid "Document: %(document)s deleted." +msgstr "Documento: %(document)s removido." -#: views.py:639 -msgid "Empty trash?" -msgstr "Esvaziar a lixeira?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Remover os documentos selecionados?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Lixeira esvaziada com sucesso" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Deve fornecer, pelo menos, um documento." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Tipo de documento para \"%s\" alterado com sucesso." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Submeter" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Editar propriedades de documento: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Alterar o tipo do documento selecionado." -msgstr[1] "Alterar o tipo dos documentos selecionados." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Restaurar os documentos selecionados?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Deve fornecer ao menos um documento ou versão." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Documentq: %(document)s restaurado." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Documentos a serem baixados" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Restaurar os documentos selecionados?" -#: views.py:828 -msgid "Date and time" -msgstr "data e hora" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Pré-visualização do documento:%s " -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Ao menos um documento precisa ser selecionado." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "Mover \"%s\" para a lixeira?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Documento em fila para recalcular quantidade de páginas." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Documento: %(document)s movido para a lixeira com sucesso." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Documentos em fila para recalcular contagem de páginas." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "Mover os documentos selecionados para a lixeira?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Pré-visualização do documento:%s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Esvaziar a lixeira?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Lixeira esvaziada com sucesso" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "Recalcular a contagem de páginas do documento selecionado?" msgstr[1] "Recalcular a contagem de páginas dos documentos selecionados?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Erro ao excluir as transformações de página para o documento: %(document)s; %(error)s ." +msgstr "" +"Erro ao excluir as transformações de página para o documento: %(document)s; " +"%(error)s ." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Submeter" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Todas as transformações de página para o documento: %s, foram excluídas com sucesso." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Limpar todas as transformações de páginas para o documento selecionado?" -msgstr[1] "Limpar todas as transformações de páginas para os documentos selecionados?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Não há mais páginas neste documento" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Você já está na primeira página deste documento" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Imprimir: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Apagar do cache a imagem do documento?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Cache do documento apagado com sucesso." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Página %(page_number)d de %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Imagem da página do documento" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -915,9 +1004,6 @@ msgstr "Imagem da página do documento" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -928,11 +1014,11 @@ msgstr "Imagem da página do documento" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1061,10 +1147,8 @@ msgstr "Imagem da página do documento" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1078,11 +1162,11 @@ msgstr "Imagem da página do documento" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1105,11 +1189,11 @@ msgstr "Imagem da página do documento" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1126,15 +1210,19 @@ msgstr "Imagem da página do documento" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1191,11 +1279,11 @@ msgstr "Imagem da página do documento" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1219,11 +1307,11 @@ msgstr "Imagem da página do documento" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1244,9 +1332,11 @@ msgstr "Imagem da página do documento" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1276,11 +1366,11 @@ msgstr "Imagem da página do documento" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1337,15 +1427,17 @@ msgstr "Imagem da página do documento" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.mo index b865e5a243..3d2184c2db 100644 Binary files a/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.po index 875a5d31c3..c679f590aa 100644 --- a/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Stefaniu Criste , 2016 @@ -9,95 +9,115 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Documente" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Etichetă" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "Tip MIME" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Iconiță" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Tip" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Encodare" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Comentariu" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -118,12 +138,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -131,248 +149,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Imaginea paginii" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Redenumire rapidă" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Dată adaugată" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "Necunoscut" + +#: forms.py:130 msgid "File mimetype" msgstr "Tip fişier " -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Nici unul" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Marime fişier" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Există în arhivă" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Cale fisier in arhiva" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Suma de control" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Pagini" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tip document" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Comprimă" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Nume fişier comprimat" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Nume fișier comprimat, care va conține documentele ce urmează să fie descărcate, în cazul în care această opțiunea a fost selectată anterior." +msgstr "" +"Nume fișier comprimat, care va conține documentele ce urmează să fie " +"descărcate, în cazul în care această opțiunea a fost selectată anterior." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Pagini" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Șterge" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Descarcă" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Goliți reprezentările grafice folosite pentru a accelera afișarea documentelor și rezultatele interactive de transformari." +msgstr "" +"Goliți reprezentările grafice folosite pentru a accelera afișarea " +"documentelor și rezultatele interactive de transformari." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Editează" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Iniţial" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -390,12 +420,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -403,99 +431,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Descriere" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Fișier" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Versiune document" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Numarul paginii" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Pag %(page_num)d din %(total_pages)d din %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Pagini document" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Nume fişier" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "utilizator" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Accesat" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -508,11 +533,10 @@ msgid "Delete documents" msgstr "Şterge" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Descarcă" @@ -529,12 +553,10 @@ msgid "Edit document properties" msgstr "Editează proprietăţile" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Tipărește documente" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -570,291 +592,344 @@ msgstr "Editează tipuri" msgid "View document types" msgstr "Vezi tipuri de documente" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Numărul maxim de documente (create, editate, vizualizate) reţinute per utilizator." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Numărul maxim de documente (create, editate, vizualizate) reţinute per " +"utilizator." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Suma în procente folosită pentru a mării sau micşora un document interactiv cu utilizatorul." +msgstr "" +"Suma în procente folosită pentru a mării sau micşora un document interactiv " +"cu utilizatorul." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Suma maximă în procente (%), permisă utilizatorilor pentru mărirea interactiv a unei pagini ." +msgstr "" +"Suma maximă în procente (%), permisă utilizatorilor pentru mărirea " +"interactiv a unei pagini ." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Suma minimă în procente (%), permisă utilizatorului pentru micșorarea interactivă a unei pagini ." +msgstr "" +"Suma minimă în procente (%), permisă utilizatorului pentru micșorarea " +"interactivă a unei pagini ." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Ce rotaţie pentru pagină (în grade) este folosită în interacțiunea cu utilizatorul." +msgstr "" +"Ce rotaţie pentru pagină (în grade) este folosită în interacțiunea cu " +"utilizatorul." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Nu mai sunt pagini în acest document." + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Sunteți deja la prima pagină a acestui document" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Toate versiune de dupa aceasta, vor fi şterse de asemenea." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Versiunea documentului refacută cu succes" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Eroare la revenirea la versiunea documentului; %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "" - -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Trebuie selectat cel puțin un document." - -#: views.py:704 +#: views/document_views.py:120 #, python-format -msgid "Document type for \"%s\" changed successfully." +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Trimiteţi" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:164 +#, python-format +msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:964 +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "" + +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "Eroare la ștergerea transformări : %(document)s; %(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Trimiteţi" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Toate paginile transformate pentru document: %s , au fost șterse cu succes." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Nu mai sunt pagini în acest document." - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Sunteți deja la prima pagină a acestui document" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Tipărește: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -918,9 +993,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -931,11 +1003,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1065,10 +1137,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1082,11 +1152,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1109,11 +1179,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1130,15 +1200,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1195,11 +1269,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1223,11 +1297,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1248,9 +1322,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1280,11 +1356,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1341,15 +1417,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/ru/LC_MESSAGES/django.mo index 736eed4315..68b6e0a165 100644 Binary files a/mayan/apps/documents/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/ru/LC_MESSAGES/django.po b/mayan/apps/documents/locale/ru/LC_MESSAGES/django.po index 6d6710be91..06cdbd42dd 100644 --- a/mayan/apps/documents/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,95 +9,118 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Документы" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "Типы документов" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "Документы в корзине" + +#: apps.py:145 msgid "Create a document type" msgstr "Создать тип документа" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." -msgstr "Каждому загруженому документу должен быть присвоен тип документа, - это основной способ, которым Mayan EDMS распределяет документы по категориям." +msgstr "" +"Каждому загруженому документу должен быть присвоен тип документа, - это " +"основной способ, которым Mayan EDMS распределяет документы по категориям." -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Надпись" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "MIME-тип любых версий документа" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME type" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "Миниатюра" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "Тип" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "Доступно" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "Время и дата удаления" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "Время и дата" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "Кодировка" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Комментарий" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "Новых документов в месяц" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "Новых версий документов в месяц" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "Новых страниц документов в месяц" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "Всего документов в месяц" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "Новых версий документов в месяц" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "Всего страниц документов в месяц" @@ -118,12 +141,10 @@ msgid "Document type changed" msgstr "Тип документа был изменен" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "Новая версия была загружена" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "Версия документа была восстановлена" @@ -131,249 +152,266 @@ msgstr "Версия документа была восстановлена" msgid "Document viewed" msgstr "Документ просмотрен" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Изображение страницы" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "Страницы документа (%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Быстро переименовать документ" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Дата добавления" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "Язык" + #: forms.py:122 +msgid "Unknown" +msgstr "Неизвестно" + +#: forms.py:130 msgid "File mimetype" msgstr "Mime тип файла" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Ни один" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "Кодировка файла" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Размер" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Существует в хранилище" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Путь к файлу в хранилище" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Контрольная сумма" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Страницы" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Тип документа" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Сжать" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." -msgstr "Скачать документ в исходном, или в сжатом формате. Этот вариант доступен только при загрузке одного документа, для нескольких документов будет использован сжатый файл." +msgstr "" +"Скачать документ в исходном, или в сжатом формате. Этот вариант доступен " +"только при загрузке одного документа, для нескольких документов будет " +"использован сжатый файл." -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Имя сжатого файла" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Имя файла сжатого файла, который будет содержать загружаемые документы, если выбран предыдущий параметр." +msgstr "" +"Имя файла сжатого файла, который будет содержать загружаемые документы, если " +"выбран предыдущий параметр." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Диапазон страниц" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "Предварительный просмотр" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "Свойства" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "Версии" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "Очистить преобразования" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "Удалить" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "Переместить в корзину" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "Редактировать свойства" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "Изменить тип" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Скачать" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "Печать" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "Пересчитать количество страниц" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "Восстановить" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "Скачать версию" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "Все документы" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "Последние документы" -#: links.py:144 -msgid "Trash" -msgstr "Корзина" +#: links.py:158 +msgid "Trash can" +msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Очистить графику для ускорения отображения документов и интерактивных преобразований." +msgstr "" +"Очистить графику для ускорения отображения документов и интерактивных " +"преобразований." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "Очистить кэш изображений документа" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "Очистить корзину" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "Первая страница" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "Последняя страница" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "Предыдущая страница" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "Следующая страница" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "Документ" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "Повернуть влево" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "Повернуть вправо" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "Вернуть вид" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "Увеличить" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "Уменьшить" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "Возврат" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "Создать тип документа" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Редактировать" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "Добавить быструю метку к документу" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "Быстрые метки" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "Типы документов" - #: literals.py:14 msgid "Default" msgstr "Умолчание" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "Все страницы" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." -msgstr "Сколько должно пройти времени, прежде чем документы этого типа будут перемещены в корзину." +"Amount of time after which documents of this type will be moved to the trash." +msgstr "" +"Сколько должно пройти времени, прежде чем документы этого типа будут " +"перемещены в корзину." #: models.py:71 msgid "Trash time period" @@ -387,15 +425,15 @@ msgstr "Единица измерения периода жизни" msgid "" "Amount of time after which documents of this type in the trash will be " "deleted." -msgstr "Сколько должно пройти времени, прежде чем документы этого типа будут удалены из корзины." +msgstr "" +"Сколько должно пройти времени, прежде чем документы этого типа будут удалены " +"из корзины." #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "Период удаления" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "Единица измерения периода удаления" @@ -403,99 +441,99 @@ msgstr "Единица измерения периода удаления" msgid "Documents types" msgstr "Типы документов" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "Название документа" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Описание" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "Добавлено" -#: models.py:169 -msgid "Language" -msgstr "Язык" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "В корзине?" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "Время и дата удаления" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." -msgstr "Заглушка документа - это запись в базе данных без самого документа. Документ может оказатсья заглушкой, если его загрузка оборвалась, или выполняется его отложенная загрузка через API." +msgstr "" +"Заглушка документа - это запись в базе данных без самого документа. Документ " +"может оказатсья заглушкой, если его загрузка оборвалась, или выполняется его " +"отложенная загрузка через API." -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "Является заглушкой?" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "Заглушка документа, ид: %d" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "временная метка" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "Файл" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "Версия документа" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "Быстрая метка" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "Номер страницы" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Страница %(page_num)d из %(total_pages)d %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "Страница документа" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "Страницы документа" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" -msgstr "Блокировка добавления новых версий" +#: models.py:822 +msgid "Filename" +msgstr "Имя файла" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" -msgstr "Блокировки добавления новых версий" +#: models.py:825 +msgid "Document page cached image" +msgstr "" -#: models.py:794 +#: models.py:826 +msgid "Document page cached images" +msgstr "" + +#: models.py:848 msgid "User" msgstr "Пользователь" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "Допущен" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "Недавние документы" @@ -508,11 +546,10 @@ msgid "Delete documents" msgstr "Удаление документов" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "Переместить документы в корзину" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Загрузка документов" @@ -529,12 +566,10 @@ msgid "Edit document properties" msgstr "Редактирование свойств документа" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "Печать документов" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -570,243 +605,235 @@ msgstr "Редактировать типы документов" msgid "View document types" msgstr "Просмотр типов документов" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Максимальное количество последних (созданных, измененных, просмотренных) документов, запоминаемых для каждого пользователя." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Максимальное количество последних (созданных, измененных, просмотренных) " +"документов, запоминаемых для каждого пользователя." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "Процент увеличения страницы документа пользователем." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "Максимальный процент увеличения страницы документа пользователем." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "Процент уменьшения масштаба страницы документа в интерактивном режиме." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Градус поворота страницы документа в интерактивном режиме." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "Язык документов по умолчанию (в формате ISO639-2)." -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "Список поддерживаемых языков документов" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "Очистить кэш изображений документа?" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "Очистка кэша документов успешно помещена в очередь." - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "Документы в корзине" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "Удалить выбранный документ?" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "Документ: %(document)s удалён." - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "Удалить выбранные документы?" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "Правка свойств документа: %s" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "Восстановить выбранный документ?" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "Документ %(document)s восстановлен." - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "Восстановить выбранные документы?" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "Страницы документа: %s" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr " Нет более страниц в этом документе" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Вы уже на первой странице этого документа" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "Изображение для: %s" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "Предпросмотр документа: %s" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "Перместить \"%s\" в корзину?" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "Документ %(document)s успешно перемещён в корзину." - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "Переместить выделенные документы в корзину?" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "Документы с типом: %s" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "Все документы этого типа будут также удалены." -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "Удалить тип документа: %s?" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "Редактировать тип документа: %s" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "Создать быструю метку для типа документа: %s" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" -msgstr "Редактировать быструю метку %(filename)s\" с типа документов \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgstr "" +"Редактировать быструю метку %(filename)s\" с типа документов " +"\"%(document_type)s\"" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "Снять быструю метку %(label)s с типа документа \"%(document_type)s\"?" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "Быстрые метки для типа документа: %s" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "Версии документа: %s" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Все более поздние версии после этого будут удалены" -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "Вернуться к этой версии?" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Версия документа восстановлена" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Ошибка получения версии документа %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "Удалить выбранный документ?" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" -msgstr "Свойства документа: %s" +msgid "Document: %(document)s deleted." +msgstr "Документ: %(document)s удалён." -#: views.py:639 -msgid "Empty trash?" -msgstr "Очистить корзину?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" +msgstr "Удалить выбранные документы?" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "Корзина успешно очищена" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" +msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Необходимо указатьть хотя бы один документ." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "Тип документа для \"%s\" успешно изменён." -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "Подтвердить" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" +msgstr "Правка свойств документа: %s" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "Изменить тип выбранного документа." -msgstr[1] "Изменить тип выбранных документов." -msgstr[2] "Изменить тип выбранных документов." -msgstr[3] "Изменить тип выбранных документов." +#: views/document_views.py:200 +msgid "Restore the selected document?" +msgstr "Восстановить выбранный документ?" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." -msgstr "Должен быть хотя бы один документ или версия." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." +msgstr "Документ %(document)s восстановлен." -#: views.py:819 -msgid "Documents to be downloaded" -msgstr "Документы для загрузки" +#: views/document_views.py:229 +msgid "Restore the selected documents?" +msgstr "Восстановить выбранные документы?" -#: views.py:828 -msgid "Date and time" -msgstr "Дата и время" +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "Предпросмотр документа: %s" -#: views.py:931 -msgid "At least one document must be selected." -msgstr "Хотя бы один документ должен быть выбран." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "Перместить \"%s\" в корзину?" -#: views.py:954 -msgid "Document queued for page count recalculation." -msgstr "Документ отправлен в очередь на обновление количества страниц." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "Документ %(document)s успешно перемещён в корзину." -#: views.py:955 -msgid "Documents queued for page count recalculation." -msgstr "Документы отправлены в очередь на обновление количества страниц." +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "Переместить выделенные документы в корзину?" -#: views.py:964 +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "Свойства документа: %s" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "Очистить корзину?" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "Корзина успешно очищена" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "Пересчитать количество страниц для выбранного документа?" @@ -814,50 +841,107 @@ msgstr[1] "Пересчитать количество страниц для в msgstr[2] "Пересчитать количество страниц для выбранных документов?" msgstr[3] "Пересчитать количество страниц для выбранных документов?" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." -msgstr "Ошибка при удалении страницы для преобразования документов: %(document)s; %(error)s." +msgstr "" +"Ошибка при удалении страницы для преобразования документов: %(document)s; " +"%(error)s." -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "Подтвердить" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Все преобразования страницы для документа: %s успешно удалены." +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "Очистить все преобразования страниц для выделенных документов?" -msgstr[1] "Очистить все преобразования страниц для выделенных документов?" -msgstr[2] "Очистить все преобразования страниц для выделенных документов?" -msgstr[3] "Очистить все преобразования страниц для выделенных документов?" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr " Нет более страниц в этом документе" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Вы уже на первой странице этого документа" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "Печать: %s" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "Очистить кэш изображений документа?" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "Очистка кэша документов успешно помещена в очередь." + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "Страница %(page_number)d из %(total_pages)d" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "Изображение страницы документа" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -921,9 +1005,6 @@ msgstr "Изображение страницы документа" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -934,11 +1015,11 @@ msgstr "Изображение страницы документа" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1069,10 +1150,8 @@ msgstr "Изображение страницы документа" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1086,11 +1165,11 @@ msgstr "Изображение страницы документа" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1113,11 +1192,11 @@ msgstr "Изображение страницы документа" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1134,15 +1213,19 @@ msgstr "Изображение страницы документа" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1199,11 +1282,11 @@ msgstr "Изображение страницы документа" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1227,11 +1310,11 @@ msgstr "Изображение страницы документа" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1252,9 +1335,11 @@ msgstr "Изображение страницы документа" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1284,11 +1369,11 @@ msgstr "Изображение страницы документа" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1345,15 +1430,17 @@ msgstr "Изображение страницы документа" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.mo index 2a47c9c84e..8e7bf419d8 100644 Binary files a/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.po index 4a08190f3b..c8db2a0771 100644 --- a/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/sl_SI/LC_MESSAGES/django.po @@ -1,102 +1,122 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-23 16:43+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Dokumenti" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "Oznaka" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME tip" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Komentar" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +137,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +148,260 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "Slika strani" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Hitro preimenovanje dokumenta" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Dodano datum" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "MIME vrsta datoteke" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "Brez" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Velikost datoteke" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "Obstaja v shrambi" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "Pot datoteke v shrambi" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "Nadzorna vsota" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Strani" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Tip dokumenta" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Stisni" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "Ime stisnjene datoteke" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." -msgstr "Ime skrčene datotteke, ki do vsebovala datoteke za prenos, če je bila prejšnja opcija izbrana." +msgstr "" +"Ime skrčene datotteke, ki do vsebovala datoteke za prenos, če je bila " +"prejšnja opcija izbrana." -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Obseg strani" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "Prenos" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." -msgstr "Počistite grafične predstavitve, ki se uporabljajo za pospešitev prikaza dokumentov in rezultatov interaktivnih transformacij." +msgstr "" +"Počistite grafične predstavitve, ki se uporabljajo za pospešitev prikaza " +"dokumentov in rezultatov interaktivnih transformacij." -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" -msgstr "" +msgstr "Dokument" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +419,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +430,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Opis" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Stran %(page_num)d od %(total_pages)d dokumenta %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Ime datoteke" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +532,10 @@ msgid "Delete documents" msgstr "Izbiši dokumente" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Prenesi dokumente" @@ -528,12 +552,10 @@ msgid "Edit document properties" msgstr "Uredi lastnosti dokumenta" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,243 +591,240 @@ msgstr "Uredi tipe dokumentov" msgid "View document types" msgstr "Poglej tip dokumenta" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Največje število zadnjih (kreiranih, urejenih, pogledanih) dokumentov za prikaz po uporabniku." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Največje število zadnjih (kreiranih, urejenih, pogledanih) dokumentov za " +"prikaz po uporabniku." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Znesek v procentih za približane oziroma oddaljene strani na dokument v uporabniškem vmesniku." +msgstr "" +"Znesek v procentih za približane oziroma oddaljene strani na dokument v " +"uporabniškem vmesniku." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Največji znesek v procentih (%), ki je dovoljen uporabniku za približevanje strani v dokumentu." +msgstr "" +"Največji znesek v procentih (%), ki je dovoljen uporabniku za približevanje " +"strani v dokumentu." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." -msgstr "Naamanjši znesek v procentih (%), ki je dovoljen uporabniku za približevanje strani v dokumentu." +msgstr "" +"Naamanjši znesek v procentih (%), ki je dovoljen uporabniku za približevanje " +"strani v dokumentu." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." -msgstr "Število v stopinjah za rotiranje strani dokumenta ob uporabniški interakciji." +msgstr "" +"Število v stopinjah za rotiranje strani dokumenta ob uporabniški interakciji." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "Ni več strani v tem dokumentu" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "Ste že na prvi strani dokumenta" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "Vse prejšnje verzije bodo tudi izbrisane." -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "Povrnitev verzije dokumenta je bila uspešna" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "Napaka v povrnitvi dokumenta verzija: %s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" -msgstr "" - -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Potrebno je podati vsaj en dokument" - -#: views.py:704 +#: views/document_views.py:120 #, python-format -msgid "Document type for \"%s\" changed successfully." +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:164 +#, python-format +msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:964 +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" +msgstr "" + +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" +msgstr "" + +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" @@ -813,50 +832,106 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:1023 +#: views/document_views.py:541 #, python-format -msgid "" -"Error deleting the page transformations for document: %(document)s; " -"%(error)s." -msgstr "Napaka v izbrisu preoblikovanj strani za dokument: %(document)s; %(error)s." +msgid "Recalculate the page count of the document: %s?" +msgstr "" -#: views.py:1032 +#: views/document_views.py:558 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "Vsa preoblikovanja strani dokumenta: %s, so bila uspešno izbrisana." +msgid "Transformation clear request processed for %(count)d document" +msgstr "" -#: views.py:1044 +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" +msgid_plural "Clear all the page transformations for the selected document?" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "Ni več strani v tem dokumentu" +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "Ste že na prvi strani dokumenta" +#: views/document_views.py:595 views/document_views.py:623 +#, python-format +msgid "" +"Error deleting the page transformations for document: %(document)s; " +"%(error)s." +msgstr "" +"Napaka v izbrisu preoblikovanj strani za dokument: %(document)s; %(error)s." -#: views.py:1225 views.py:1234 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "" + +#: views/document_views.py:648 +#, python-format +msgid "Clone page transformations for document: %s" +msgstr "" + +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -920,9 +995,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -933,11 +1005,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1068,10 +1140,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1085,11 +1155,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1112,11 +1182,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1133,15 +1203,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1198,11 +1272,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1226,11 +1300,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1251,9 +1325,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1283,11 +1359,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1344,15 +1420,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.mo index b27e5d7071..4031756d6b 100644 Binary files a/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.po index ef1d4d0f27..b2b97bc907 100644 --- a/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/vi_VN/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "Tài liệu" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME type" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "Chú thích" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,256 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "Sửa nhanh tên tài liệu" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "Ngày thêm vào" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "Kiểu file" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "None" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "Kích thước file" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "Trang" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "Kiểu tài liệu" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "Nén" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." msgstr "" -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "Dãy trang" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." msgstr "" -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "Sửa" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "Mặc định" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +414,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +425,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "Mô tả" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "File" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "Trang %(page_num)d ngoài phạm vi của %(total_pages)d của %(document)s" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "Tên file" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "Người dùng" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +527,10 @@ msgid "Delete documents" msgstr "Xóa tài liệu" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "Tải xuống tài liệu" @@ -528,12 +547,10 @@ msgid "Edit document properties" msgstr "" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,285 +586,332 @@ msgstr "Sửa kiểu tài liệu" msgid "View document types" msgstr "" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." -msgstr "Số lượng lớn nhất gần nhất (tạo, sửa, xem) số tài liệu để nhớ mỗi người dùng." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." +msgstr "" +"Số lượng lớn nhất gần nhất (tạo, sửa, xem) số tài liệu để nhớ mỗi người dùng." -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." -msgstr "Số phần trăm phóng to hoặc thu nhỏ một trang tài liệu mỗi tác động của người dùng." +msgstr "" +"Số phần trăm phóng to hoặc thu nhỏ một trang tài liệu mỗi tác động của người " +"dùng." -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." -msgstr "Số phần trăm lớn nhất (%) cho phép người dùng phóng to một trang tài liệu." +msgstr "" +"Số phần trăm lớn nhất (%) cho phép người dùng phóng to một trang tài liệu." -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "Số phần trăm nhỏ nhất (%) cho phép người dùng thu nhỏ trang tài liệu." -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "Gái trị góc quay trang tài liệu mỗi lần tác động." -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "" -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu." +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." msgstr "" -#: views.py:964 +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "" -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." +msgid "Clone page transformations for document: %s" msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -911,9 +975,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -924,11 +985,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1056,10 +1117,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1073,11 +1132,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1100,11 +1159,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1121,15 +1180,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1186,11 +1249,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1214,11 +1277,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1239,9 +1302,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1271,11 +1336,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1332,15 +1397,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.mo index 366bed20c6..66772a2a8d 100644 Binary files a/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.po index 3681148ca4..109f3b2bc2 100644 --- a/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/documents/locale/zh_CN/LC_MESSAGES/django.po @@ -1,102 +1,121 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-10-28 07:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:25+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:83 apps.py:163 apps.py:384 models.py:231 permissions.py:7 -#: settings.py:17 +#: apps.py:87 apps.py:231 apps.py:453 menus.py:8 models.py:229 permissions.py:7 +#: settings.py:13 msgid "Documents" msgstr "文档" -#: apps.py:98 +#: apps.py:110 +msgid "New pages this month" +msgstr "" + +#: apps.py:119 +msgid "New documents this month" +msgstr "" + +#: apps.py:128 +msgid "Total documents" +msgstr "" + +#: apps.py:134 links.py:280 links.py:285 views/document_type_views.py:49 +msgid "Document types" +msgstr "" + +#: apps.py:140 views/document_views.py:69 +msgid "Documents in trash" +msgstr "" + +#: apps.py:145 msgid "Create a document type" msgstr "" -#: apps.py:100 +#: apps.py:147 msgid "" "Every uploaded document must be assigned a document type, it is the basic " "way Mayan EDMS categorizes documents." msgstr "" -#: apps.py:107 models.py:65 models.py:158 models.py:626 search.py:20 +#: apps.py:154 models.py:65 models.py:157 models.py:639 search.py:21 +#: search.py:39 msgid "Label" msgstr "" -#: apps.py:112 +#: apps.py:159 msgid "The MIME type of any of the versions of a document" msgstr "" -#: apps.py:113 apps.py:197 search.py:18 views.py:829 +#: apps.py:160 apps.py:262 search.py:19 search.py:36 msgid "MIME type" msgstr "MIME类型" -#: apps.py:151 apps.py:175 +#: apps.py:202 apps.py:212 apps.py:219 apps.py:243 msgid "Thumbnail" msgstr "" -#: apps.py:159 apps.py:185 +#: apps.py:208 apps.py:226 apps.py:250 msgid "Type" msgstr "" -#: apps.py:170 models.py:628 +#: apps.py:238 models.py:641 msgid "Enabled" msgstr "" -#: apps.py:188 +#: apps.py:253 msgid "Date time trashed" msgstr "" -#: apps.py:193 +#: apps.py:258 msgid "Time and date" msgstr "" -#: apps.py:201 views.py:830 +#: apps.py:266 msgid "Encoding" msgstr "" -#: apps.py:205 models.py:357 +#: apps.py:270 models.py:367 msgid "Comment" msgstr "评论" -#: apps.py:387 -#| msgid "New document filename" +#: apps.py:456 msgid "New documents per month" msgstr "" -#: apps.py:394 -#| msgid "Document version reverted successfully" +#: apps.py:463 msgid "New document versions per month" msgstr "" -#: apps.py:401 -#| msgid "View document types" +#: apps.py:470 msgid "New document pages per month" msgstr "" -#: apps.py:408 +#: apps.py:477 msgid "Total documents at each month" msgstr "" -#: apps.py:415 +#: apps.py:484 msgid "Total document versions at each month" msgstr "" -#: apps.py:422 +#: apps.py:491 msgid "Total document pages at each month" msgstr "" @@ -117,12 +136,10 @@ msgid "Document type changed" msgstr "" #: events.py:21 -#| msgid "Version update" msgid "New version uploaded" msgstr "" #: events.py:25 -#| msgid "Document version reverted successfully" msgid "Document version reverted" msgstr "" @@ -130,248 +147,256 @@ msgstr "" msgid "Document viewed" msgstr "" -#: forms.py:42 links.py:205 +#: forms.py:39 links.py:219 msgid "Page image" msgstr "页面图片" -#: forms.py:56 forms.py:59 +#: forms.py:51 forms.py:54 #, python-format msgid "Document pages (%d)" msgstr "文档页(%d)" -#: forms.py:90 +#: forms.py:92 msgid "Quick document rename" msgstr "快速文档重命名" -#: forms.py:112 +#: forms.py:114 msgid "Date added" msgstr "添加日期" -#: forms.py:116 +#: forms.py:118 msgid "UUID" msgstr "UUID" +#: forms.py:120 models.py:167 +msgid "Language" +msgstr "" + #: forms.py:122 +msgid "Unknown" +msgstr "" + +#: forms.py:130 msgid "File mimetype" msgstr "文件mimetype" -#: forms.py:123 forms.py:128 +#: forms.py:131 forms.py:136 msgid "None" msgstr "无" -#: forms.py:126 +#: forms.py:134 msgid "File encoding" msgstr "" -#: forms.py:132 +#: forms.py:140 msgid "File size" msgstr "文件大小" -#: forms.py:137 +#: forms.py:145 msgid "Exists in storage" msgstr "在存储中存在" -#: forms.py:139 +#: forms.py:147 msgid "File path in storage" msgstr "在存储中的文件路径" -#: forms.py:142 models.py:372 +#: forms.py:150 models.py:382 msgid "Checksum" msgstr "校验码" -#: forms.py:143 links.py:58 +#: forms.py:151 links.py:67 msgid "Pages" msgstr "页面" -#: forms.py:174 models.py:105 models.py:154 models.py:623 search.py:15 +#: forms.py:179 models.py:105 models.py:153 models.py:636 search.py:16 +#: search.py:32 msgid "Document type" msgstr "文档类型" -#: forms.py:190 +#: forms.py:195 msgid "Compress" msgstr "压缩" -#: forms.py:192 -#| msgid "" -#| "ad the document in the original format or in a compressed manner. s ion is " -#| "selectable only when downloading one document, for tiple uments, the bundle " -#| "will always be downloads as a compressed e." +#: forms.py:197 msgid "" -"Download the document in the original format or in a compressed manner. This" -" option is selectable only when downloading one document, for multiple " +"Download the document in the original format or in a compressed manner. This " +"option is selectable only when downloading one document, for multiple " "documents, the bundle will always be downloads as a compressed file." msgstr "" -#: forms.py:199 +#: forms.py:204 msgid "Compressed filename" msgstr "压缩的文件名" -#: forms.py:202 +#: forms.py:207 msgid "" "The filename of the compressed file that will contain the documents to be " "downloaded, if the previous option is selected." msgstr "如果选择了前面选项,压缩文件的文件名将包含要下载的文档" -#: forms.py:219 literals.py:24 +#: forms.py:225 literals.py:23 msgid "Page range" msgstr "页范围" -#: links.py:43 +#: forms.py:231 +msgid "" +"Page number from which all the transformation will be cloned. Existing " +"transformations will be lost." +msgstr "" + +#: links.py:52 msgid "Preview" msgstr "" -#: links.py:48 +#: links.py:57 msgid "Properties" msgstr "" -#: links.py:53 +#: links.py:62 msgid "Versions" msgstr "" -#: links.py:64 links.py:105 +#: links.py:73 links.py:119 msgid "Clear transformations" msgstr "" -#: links.py:69 links.py:113 links.py:238 links.py:252 +#: links.py:78 +msgid "Clone transformations" +msgstr "" + +#: links.py:83 links.py:127 links.py:254 links.py:268 msgid "Delete" msgstr "" -#: links.py:74 links.py:109 +#: links.py:88 links.py:123 msgid "Move to trash" msgstr "" -#: links.py:79 +#: links.py:93 msgid "Edit properties" msgstr "" -#: links.py:83 links.py:117 +#: links.py:97 links.py:131 msgid "Change type" msgstr "" -#: links.py:87 links.py:121 views.py:901 +#: links.py:101 links.py:135 views/document_views.py:380 msgid "Download" msgstr "下载" -#: links.py:91 +#: links.py:105 msgid "Print" msgstr "" -#: links.py:96 links.py:124 +#: links.py:110 links.py:138 msgid "Recalculate page count" msgstr "" -#: links.py:100 links.py:128 +#: links.py:114 links.py:142 msgid "Restore" msgstr "" -#: links.py:132 +#: links.py:146 msgid "Download version" msgstr "" -#: links.py:137 views.py:82 +#: links.py:151 views/document_views.py:51 msgid "All documents" msgstr "" -#: links.py:140 models.py:815 views.py:656 +#: links.py:154 models.py:869 views/document_views.py:341 msgid "Recent documents" msgstr "" -#: links.py:144 -msgid "Trash" +#: links.py:158 +msgid "Trash can" msgstr "" -#: links.py:152 +#: links.py:166 msgid "" "Clear the graphics representations used to speed up the documents' display " "and interactive transformations results." msgstr "清除图像信息有助于加速文档显示和变换结果交互。" -#: links.py:155 -#| msgid "Clear the document image cache" +#: links.py:169 msgid "Clear document image cache" msgstr "" -#: links.py:159 permissions.py:47 +#: links.py:173 permissions.py:47 msgid "Empty trash" msgstr "" -#: links.py:167 +#: links.py:181 msgid "First page" msgstr "" -#: links.py:172 +#: links.py:186 msgid "Last page" msgstr "" -#: links.py:179 +#: links.py:193 msgid "Previous page" msgstr "" -#: links.py:185 +#: links.py:199 msgid "Next page" msgstr "" -#: links.py:191 models.py:230 models.py:351 models.py:778 models.py:797 -#: views.py:827 +#: links.py:205 models.py:228 models.py:361 models.py:851 msgid "Document" msgstr "" -#: links.py:196 +#: links.py:210 msgid "Rotate left" msgstr "" -#: links.py:201 +#: links.py:215 msgid "Rotate right" msgstr "" -#: links.py:209 +#: links.py:223 msgid "Reset view" msgstr "" -#: links.py:214 +#: links.py:228 msgid "Zoom in" msgstr "" -#: links.py:219 +#: links.py:234 msgid "Zoom out" msgstr "" -#: links.py:227 +#: links.py:243 msgid "Revert" msgstr "" -#: links.py:234 views.py:419 +#: links.py:250 views/document_type_views.py:64 msgid "Create document type" msgstr "" -#: links.py:242 links.py:256 +#: links.py:258 links.py:272 msgid "Edit" msgstr "" -#: links.py:247 +#: links.py:263 msgid "Add quick label to document type" msgstr "" -#: links.py:260 models.py:634 +#: links.py:276 models.py:647 msgid "Quick labels" msgstr "" -#: links.py:264 links.py:269 views.py:404 -msgid "Document types" -msgstr "" - #: literals.py:14 msgid "Default" msgstr "" -#: literals.py:24 +#: literals.py:23 msgid "All pages" msgstr "" #: models.py:69 msgid "" -"Amount of time after which documents of this type will be moved to the " -"trash." +"Amount of time after which documents of this type will be moved to the trash." msgstr "" #: models.py:71 @@ -389,12 +414,10 @@ msgid "" msgstr "" #: models.py:81 -#| msgid "Delete document types" msgid "Delete time period" msgstr "" #: models.py:86 -#| msgid "Delete documents" msgid "Delete time unit" msgstr "" @@ -402,99 +425,96 @@ msgstr "" msgid "Documents types" msgstr "" -#: models.py:158 +#: models.py:157 msgid "The name of the document" msgstr "" -#: models.py:161 search.py:21 +#: models.py:160 search.py:22 search.py:42 msgid "Description" msgstr "描述" -#: models.py:164 +#: models.py:163 msgid "Added" msgstr "" -#: models.py:169 -msgid "Language" -msgstr "" - -#: models.py:173 +#: models.py:171 msgid "In trash?" msgstr "" -#: models.py:178 +#: models.py:176 msgid "Date and time trashed" msgstr "" -#: models.py:182 +#: models.py:180 msgid "" "A document stub is a document with an entry on the database but no file " "uploaded. This could be an interrupted upload or a deferred upload via the " "API." msgstr "" -#: models.py:185 +#: models.py:183 msgid "Is stub?" msgstr "" -#: models.py:193 +#: models.py:191 #, python-format -#| msgid "Document types: %d" msgid "Document stub, id: %d" msgstr "" -#: models.py:354 +#: models.py:364 msgid "Timestamp" msgstr "" -#: models.py:363 +#: models.py:373 msgid "File" msgstr "文件" -#: models.py:445 models.py:446 models.py:647 +#: models.py:453 models.py:454 models.py:660 msgid "Document version" msgstr "" -#: models.py:633 +#: models.py:646 msgid "Quick label" msgstr "" -#: models.py:651 +#: models.py:664 msgid "Page number" msgstr "" -#: models.py:656 +#: models.py:669 #, python-format msgid "Page %(page_num)d out of %(total_pages)d of %(document)s" msgstr "文档%(document)s页%(page_num)d超出%(total_pages)d" -#: models.py:672 +#: models.py:685 models.py:820 models.py:837 msgid "Document page" msgstr "" -#: models.py:673 +#: models.py:686 models.py:838 msgid "Document pages" msgstr "" -#: models.py:783 -#| msgid "Version update" -msgid "New version block" +#: models.py:822 +msgid "Filename" +msgstr "文件名" + +#: models.py:825 +msgid "Document page cached image" msgstr "" -#: models.py:784 -#| msgid "Version update" -msgid "New version blocks" +#: models.py:826 +msgid "Document page cached images" msgstr "" -#: models.py:794 +#: models.py:848 msgid "User" msgstr "用户" -#: models.py:800 +#: models.py:854 msgid "Accessed" msgstr "" -#: models.py:814 +#: models.py:868 msgid "Recent document" msgstr "" @@ -507,11 +527,10 @@ msgid "Delete documents" msgstr "删除文档" #: permissions.py:16 -#| msgid "Transform documents" msgid "Trash documents" msgstr "" -#: permissions.py:19 views.py:903 +#: permissions.py:19 views/document_views.py:382 msgid "Download documents" msgstr "下载文档" @@ -528,12 +547,10 @@ msgid "Edit document properties" msgstr "编辑文档属性" #: permissions.py:31 -#| msgid "Edit documents" msgid "Print documents" msgstr "" #: permissions.py:34 -#| msgid "Delete documents" msgid "Restore trashed document" msgstr "" @@ -569,285 +586,328 @@ msgstr "编辑文档类型" msgid "View document types" msgstr "查看文档类型" -#: settings.py:37 +#: settings.py:29 msgid "" -"Maximum number of recent (created, edited, viewed) documents to remember per" -" user." +"Maximum number of recent (created, edited, viewed) documents to remember per " +"user." msgstr "记住每个用户近期文档的最大数(新建, 编辑, 查看)" -#: settings.py:44 +#: settings.py:40 msgid "Amount in percent zoom in or out a document page per user interaction." msgstr "每个交互用户文档页的放大或缩小百分比" -#: settings.py:51 +#: settings.py:47 msgid "" "Maximum amount in percent (%) to allow user to zoom in a document page " "interactively." msgstr "文档交互页中允许用户放大的最大百分比(%)" -#: settings.py:58 +#: settings.py:54 msgid "" "Minimum amount in percent (%) to allow user to zoom out a document page " "interactively." msgstr "文档交互页中允许用户缩小的最小百分比(%)" -#: settings.py:65 +#: settings.py:61 msgid "Amount in degrees to rotate a document page per user interaction." msgstr "每个交互用户中文档页的旋转度数" -#: settings.py:74 +#: settings.py:70 msgid "Default documents language (in ISO639-2 format)." msgstr "" -#: settings.py:78 +#: settings.py:74 msgid "List of supported document languages." msgstr "" -#: views.py:68 -#| msgid "Clear the document image cache" -msgid "Clear the document image cache?" -msgstr "" - -#: views.py:75 -msgid "Document cache clearing queued successfully." -msgstr "" - -#: views.py:100 -#| msgid "Documents in storage: %d" -msgid "Documents in trash" -msgstr "" - -#: views.py:122 -msgid "Delete the selected document?" -msgstr "" - -#: views.py:145 -#, python-format -#| msgid "Document \"%(document)s\" deleted by %(fullname)s." -msgid "Document: %(document)s deleted." -msgstr "" - -#: views.py:153 -msgid "Delete the selected documents?" -msgstr "" - -#: views.py:175 -#, python-format -msgid "Edit properties of document: %s" -msgstr "" - -#: views.py:191 -msgid "Restore the selected document?" -msgstr "" - -#: views.py:216 -#, python-format -#| msgid "Document: %(document)s delete error: %(error)s" -msgid "Document: %(document)s restored." -msgstr "" - -#: views.py:224 -msgid "Restore the selected documents?" -msgstr "" - -#: views.py:256 +#: views/document_page_views.py:49 #, python-format msgid "Pages for document: %s" msgstr "" -#: views.py:284 +#: views/document_page_views.py:101 +msgid "Unknown view keyword argument schema, unable to redirect." +msgstr "" + +#: views/document_page_views.py:133 +msgid "There are no more pages in this document" +msgstr "此文档中无更多页" + +#: views/document_page_views.py:150 +msgid "You are already at the first page of this document" +msgstr "你已经在此文档的第一页了" + +#: views/document_page_views.py:178 #, python-format msgid "Image of: %s" msgstr "" -#: views.py:330 +#: views/document_type_views.py:38 #, python-format -msgid "Preview of document: %s" -msgstr "" - -#: views.py:338 -#, python-format -msgid "Move \"%s\" to the trash?" -msgstr "" - -#: views.py:365 -#, python-format -#| msgid "Document deleted successfully." -msgid "Document: %(document)s moved to trash successfully." -msgstr "" - -#: views.py:378 -msgid "Move the selected documents to the trash?" -msgstr "" - -#: views.py:393 -#, python-format -#| msgid "documents of type \"%s\"" msgid "Documents of type: %s" msgstr "" -#: views.py:430 +#: views/document_type_views.py:75 msgid "All documents of this type will be deleted too." msgstr "" -#: views.py:432 +#: views/document_type_views.py:77 #, python-format -#| msgid "Delete document types" msgid "Delete the document type: %s?" msgstr "" -#: views.py:448 +#: views/document_type_views.py:93 #, python-format msgid "Edit document type: %s" msgstr "" -#: views.py:478 +#: views/document_type_views.py:118 #, python-format msgid "Create quick label for document type: %s" msgstr "" -#: views.py:499 +#: views/document_type_views.py:139 #, python-format -msgid "Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" +msgid "" +"Edit quick label \"%(filename)s\" from document type \"%(document_type)s\"" msgstr "" -#: views.py:524 +#: views/document_type_views.py:164 #, python-format msgid "" "Delete the quick label: %(label)s, from document type \"%(document_type)s\"?" msgstr "" -#: views.py:552 +#: views/document_type_views.py:192 #, python-format msgid "Quick labels for document type: %s" msgstr "" -#: views.py:583 +#: views/document_version_views.py:42 #, python-format msgid "Versions of document: %s" msgstr "" -#: views.py:597 +#: views/document_version_views.py:56 msgid "All later version after this one will be deleted too." msgstr "此版本以后的所有版本将被删除" -#: views.py:600 -#| msgid "Revert documents to a previous version" +#: views/document_version_views.py:59 msgid "Revert to this version?" msgstr "" -#: views.py:610 +#: views/document_version_views.py:69 msgid "Document version reverted successfully" msgstr "文档版本恢复成功" -#: views.py:615 +#: views/document_version_views.py:74 #, python-format msgid "Error reverting document version; %s" msgstr "恢复文档版本失败%s" -#: views.py:633 +#: views/document_views.py:81 +msgid "Delete the selected document?" +msgstr "" + +#: views/document_views.py:100 #, python-format -msgid "Properties for document: %s" +msgid "Document: %(document)s deleted." msgstr "" -#: views.py:639 -msgid "Empty trash?" +#: views/document_views.py:108 +msgid "Delete the selected documents?" msgstr "" -#: views.py:650 -#| msgid "Document deleted successfully." -msgid "Trash emptied successfully" +#: views/document_views.py:120 +#, python-format +msgid "Document type change request performed on %(count)d document" msgstr "" -#: views.py:685 views.py:996 -msgid "Must provide at least one document." -msgstr "至少要有一个文档" +#: views/document_views.py:123 +#, python-format +msgid "Document type change request performed on %(count)d documents" +msgstr "" -#: views.py:704 +#: views/document_views.py:130 +msgid "Change" +msgstr "" + +#: views/document_views.py:132 +msgid "Change the type of the selected document" +msgid_plural "Change the type of the selected documents" +msgstr[0] "" + +#: views/document_views.py:143 +#, python-format +msgid "Change the type of the document: %s" +msgstr "" + +#: views/document_views.py:164 #, python-format msgid "Document type for \"%s\" changed successfully." msgstr "" -#: views.py:716 views.py:1235 -msgid "Submit" -msgstr "提交" - -#: views.py:720 -msgid "Change the type of the selected document." -msgid_plural "Change the type of the selected documents." -msgstr[0] "" - -#: views.py:799 -#| msgid "Must provide at least one document." -msgid "Must provide at least one document or version." +#: views/document_views.py:184 +#, python-format +msgid "Edit properties of document: %s" msgstr "" -#: views.py:819 -msgid "Documents to be downloaded" +#: views/document_views.py:200 +msgid "Restore the selected document?" msgstr "" -#: views.py:828 -msgid "Date and time" +#: views/document_views.py:221 +#, python-format +msgid "Document: %(document)s restored." msgstr "" -#: views.py:931 -msgid "At least one document must be selected." +#: views/document_views.py:229 +msgid "Restore the selected documents?" msgstr "" -#: views.py:954 -msgid "Document queued for page count recalculation." +#: views/document_views.py:256 +#, python-format +msgid "Preview of document: %s" msgstr "" -#: views.py:955 -msgid "Documents queued for page count recalculation." +#: views/document_views.py:264 +#, python-format +msgid "Move \"%s\" to the trash?" msgstr "" -#: views.py:964 +#: views/document_views.py:287 +#, python-format +msgid "Document: %(document)s moved to trash successfully." +msgstr "" + +#: views/document_views.py:300 +msgid "Move the selected documents to the trash?" +msgstr "" + +#: views/document_views.py:318 +#, python-format +msgid "Properties for document: %s" +msgstr "" + +#: views/document_views.py:324 +msgid "Empty trash?" +msgstr "" + +#: views/document_views.py:335 +msgid "Trash emptied successfully" +msgstr "" + +#: views/document_views.py:519 +#, python-format +msgid "%(count)d document queued for page count recalculation" +msgstr "" + +#: views/document_views.py:522 +#, python-format +msgid "%(count)d documents queued for page count recalculation" +msgstr "" + +#: views/document_views.py:530 msgid "Recalculate the page count of the selected document?" msgid_plural "Recalculate the page count of the selected documents?" msgstr[0] "" -#: views.py:1023 +#: views/document_views.py:541 +#, python-format +msgid "Recalculate the page count of the document: %s?" +msgstr "" + +#: views/document_views.py:558 +#, python-format +msgid "Transformation clear request processed for %(count)d document" +msgstr "" + +#: views/document_views.py:561 +#, python-format +msgid "Transformation clear request processed for %(count)d documents" +msgstr "" + +#: views/document_views.py:569 +msgid "Clear all the page transformations for the selected document?" +msgid_plural "Clear all the page transformations for the selected document?" +msgstr[0] "" + +#: views/document_views.py:580 +#, python-format +msgid "Clear all the page transformations for the document: %s?" +msgstr "" + +#: views/document_views.py:595 views/document_views.py:623 #, python-format msgid "" "Error deleting the page transformations for document: %(document)s; " "%(error)s." msgstr "删除文档: %(document)s变换页数失败%(error)s" -#: views.py:1032 +#: views/document_views.py:631 +msgid "Transformations cloned successfully." +msgstr "" + +#: views/document_views.py:646 views/document_views.py:701 +msgid "Submit" +msgstr "提交" + +#: views/document_views.py:648 #, python-format -msgid "" -"All the page transformations for document: %s, have been deleted " -"successfully." -msgstr "文档: %s的变换页数已经成功删除" +msgid "Clone page transformations for document: %s" +msgstr "" -#: views.py:1044 -msgid "Clear all the page transformations for the selected document?" -msgid_plural "Clear all the page transformations for the selected documents?" -msgstr[0] "" - -#: views.py:1078 -msgid "There are no more pages in this document" -msgstr "此文档中无更多页" - -#: views.py:1096 -msgid "You are already at the first page of this document" -msgstr "你已经在此文档的第一页了" - -#: views.py:1225 views.py:1234 +#: views/document_views.py:702 #, python-format msgid "Print: %s" msgstr "" -#: widgets.py:71 +#: views/misc_views.py:18 +msgid "Clear the document image cache?" +msgstr "" + +#: views/misc_views.py:25 +msgid "Document cache clearing queued successfully." +msgstr "" + +#: widgets.py:64 #, python-format msgid "Page %(page_number)d of %(total_pages)d" msgstr "" -#: widgets.py:100 +#: widgets.py:87 +msgid "Clickable image" +msgstr "" + +#: widgets.py:242 msgid "Document page image" msgstr "" +#~ msgid "New version block" +#~ msgstr "Version update" + +#~ msgid "New version blocks" +#~ msgstr "Version update" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Must provide at least one document or version." +#~ msgstr "Must provide at least one document." + +#~ msgid "Documents to be downloaded" +#~ msgstr "documents to be downloaded" + +#~ msgid "Date and time" +#~ msgstr "Date added" + +#~ msgid "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." +#~ msgstr "" +#~ "All the page transformations for document: %s, have been deleted " +#~ "successfully." + #~ msgid "Document type changed successfully." #~ msgstr "Document type created successfully" @@ -911,9 +971,6 @@ msgstr "" #~ msgid "Filenames" #~ msgstr "Filename" -#~ msgid "Filename" -#~ msgstr "Filename" - #~ msgid "Document type quick rename filename" #~ msgstr "document type quick rename filename" @@ -924,11 +981,11 @@ msgstr "" #~ msgstr "Create documents" #~ msgid "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgstr "" -#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), %(bytes)d" -#~ " bytes" +#~ "Space used in storage: %(base_2)s (base 2), %(base_10)s (base 10), " +#~ "%(bytes)d bytes" #~ msgid "Time added" #~ msgstr "Time added" @@ -1056,10 +1113,8 @@ msgstr "" #~ msgid "Transformations for: %s" #~ msgstr "transformations for: %s" -#~ msgid "Document page transformation created successfully." -#~ msgstr "Document page transformation created successfully." - -#~ msgid "Create new transformation for page: %(page)s of document: %(document)s" +#~ msgid "" +#~ "Create new transformation for page: %(page)s of document: %(document)s" #~ msgstr "" #~ "Create new transformation for page: %(page)s of document: %(document)s" @@ -1073,11 +1128,11 @@ msgstr "" #~ msgstr "Document page transformation deleted successfully." #~ msgid "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgstr "" -#~ "Are you sure you wish to delete transformation \"%(transformation)s\" for: " -#~ "%(document_page)s" +#~ "Are you sure you wish to delete transformation \"%(transformation)s\" " +#~ "for: %(document_page)s" #~ msgid "Document properties" #~ msgstr "Edit document properties" @@ -1100,11 +1155,11 @@ msgstr "" #~ "(%d)?" #~ msgid "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgstr "" -#~ "Are you sure you wish to clear all the page transformations for documents: " -#~ "%s?" +#~ "Are you sure you wish to clear all the page transformations for " +#~ "documents: %s?" #~ msgid "Document edited" #~ msgstr "Document edited" @@ -1121,15 +1176,19 @@ msgstr "" #~ msgid "Document \"%(content_object)s\" created by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" created by %(fullname)s." -#~ msgid "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgid "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgstr "Document \"%(content_object)s\" edited by %(fullname)s." #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ msgstr "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s." +#~ msgstr "" +#~ "Document \"%(content_object)s\" created on %(datetime)s by %(fullname)s." #~ msgid "Document deleted" #~ msgstr "Document deleted" @@ -1186,11 +1245,11 @@ msgstr "" #~ msgstr "Click on the image for full size preview" #~ msgid "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgstr "" -#~ "Document \"%(content_object)s\" was edited on %(datetime)s by %(fullname)s." -#~ " The following changes took place: %(changes)s." +#~ "Document \"%(content_object)s\" was edited on %(datetime)s by " +#~ "%(fullname)s. The following changes took place: %(changes)s." #~ msgid "document" #~ msgstr "document" @@ -1214,11 +1273,11 @@ msgstr "" #~ "documents in the database." #~ msgid "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgstr "" -#~ "Page count update complete. Documents processed: %(total)d, documents with " -#~ "changed page count: %(change)d" +#~ "Page count update complete. Documents processed: %(total)d, documents " +#~ "with changed page count: %(change)d" #~ msgid "Error clearing document image cache; %s" #~ msgstr "Error clearing document image cache; %s" @@ -1239,9 +1298,11 @@ msgstr "" #~ msgstr "find all duplicates" #~ msgid "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgstr "" -#~ "Search all the documents' checksums and return a list of the exact matches." +#~ "Search all the documents' checksums and return a list of the exact " +#~ "matches." #~ msgid "Document type list" #~ msgstr "document type list" @@ -1271,11 +1332,11 @@ msgstr "" #~ msgstr "duplicated documents" #~ msgid "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgstr "" -#~ "The document type of all documents using this document type will be set to " -#~ "none." +#~ "The document type of all documents using this document type will be set " +#~ "to none." #~ msgid "details" #~ msgstr "details" @@ -1332,15 +1393,17 @@ msgstr "" #~ msgstr "What are document types?" #~ msgid "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgstr "" -#~ "Document types define a class that represents a broard group of documents, " -#~ "such as: invoices, regulations or manuals. The advantage of using document " -#~ "types are: assigning a list of typical filenames for quick renaming during " -#~ "creation, as well as assigning default metadata types and sets to it." +#~ "Document types define a class that represents a broard group of " +#~ "documents, such as: invoices, regulations or manuals. The advantage of " +#~ "using document types are: assigning a list of typical filenames for quick " +#~ "renaming during creation, as well as assigning default metadata types and " +#~ "sets to it." #~ msgid "What are recent documents?" #~ msgstr "What are recent documents?" diff --git a/mayan/apps/documents/models.py b/mayan/apps/documents/models.py index 2461e89c64..c0c02a3136 100644 --- a/mayan/apps/documents/models.py +++ b/mayan/apps/documents/models.py @@ -141,6 +141,10 @@ class DocumentType(models.Model): class Document(models.Model): """ Defines a single document with it's fields and properties + Fields: + * uuid - UUID of a document, universally Unique ID. An unique identifier + generated for each document. No two documents can ever have the same UUID. + This ID is generated automatically. """ uuid = models.UUIDField(default=uuid.uuid4, editable=False) @@ -315,7 +319,7 @@ class Document(models.Model): return self.latest_version.pages except AttributeError: # Document has no version yet - return 0 + return DocumentPage.objects.none() class DeletedDocument(Document): @@ -329,6 +333,18 @@ class DeletedDocument(Document): class DocumentVersion(models.Model): """ Model that describes a document version and its properties + Fields: + * mimetype - File mimetype. MIME types are a standard way to describe the + format of a file, in this case the file format of the document. + Some examples: "text/plain" or "image/jpeg". Mayan uses this to determine + how to render a document's file. More information: + http://www.freeformatter.com/mime-types-list.html + * encoding - File Encoding. The filesystem encoding of the document's + file: binary 7-bit, binary 8-bit, text, base64, etc. + * checksum - A hash/checkdigit/fingerprint generated from the document's + binary data. Only identical documents will have the same checksum. If a + document is modified after upload it's checksum will not match, used for + detecting file tampering among other things. """ _pre_open_hooks = {} _post_save_hooks = {} @@ -444,7 +460,9 @@ class DocumentVersion(models.Model): def exists(self): """ Returns a boolean value that indicates if the document's file - exists in storage + exists in storage. Returns True if the document's file is verified to + be in the document storage. This is a diagnostic flag to help users + detect if the storage has desynchronized (ie: Amazon's S3). """ return self.file.storage.exists(self.file.name) @@ -502,6 +520,9 @@ class DocumentVersion(models.Model): @property def page_count(self): + """ + The number of pages that the document posses. + """ return self.pages.count() def revert(self, _user=None): diff --git a/mayan/apps/documents/serializers.py b/mayan/apps/documents/serializers.py index 82b13cb8b4..77a5fcf08d 100644 --- a/mayan/apps/documents/serializers.py +++ b/mayan/apps/documents/serializers.py @@ -1,71 +1,195 @@ from __future__ import unicode_literals from rest_framework import serializers +from rest_framework.reverse import reverse from common.models import SharedUploadedFile from .models import ( - Document, DocumentVersion, DocumentPage, DocumentType, RecentDocument + Document, DocumentVersion, DocumentPage, DocumentType, + DocumentTypeFilename, RecentDocument ) from .settings import setting_language from .tasks import task_upload_new_version class DocumentPageSerializer(serializers.HyperlinkedModelSerializer): - image = serializers.HyperlinkedIdentityField( - view_name='rest_api:documentpage-image' - ) + document_version_url = serializers.SerializerMethodField() + image_url = serializers.SerializerMethodField() + url = serializers.SerializerMethodField() class Meta: - extra_kwargs = { - 'url': {'view_name': 'rest_api:documentpage-detail'}, - 'document_version': { - 'view_name': 'rest_api:documentversion-detail' - } - } + fields = ('document_version_url', 'image_url', 'page_number', 'url') model = DocumentPage + def get_document_version_url(self, instance): + return reverse( + 'rest_api:documentversion-detail', args=( + instance.document.pk, instance.document_version.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_image_url(self, instance): + return reverse( + 'rest_api:documentpage-image', args=( + instance.document.pk, instance.document_version.pk, + instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:documentpage-detail', args=( + instance.document.pk, instance.document_version.pk, + instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + +class DocumentTypeFilenameSerializer(serializers.ModelSerializer): + class Meta: + model = DocumentTypeFilename + fields = ('filename',) + class DocumentTypeSerializer(serializers.HyperlinkedModelSerializer): - documents = serializers.HyperlinkedIdentityField( + documents_url = serializers.HyperlinkedIdentityField( view_name='rest_api:documenttype-document-list', ) documents_count = serializers.SerializerMethodField() - - def get_documents_count(self, obj): - return obj.documents.count() + filenames = DocumentTypeFilenameSerializer(many=True, read_only=True) class Meta: extra_kwargs = { 'url': {'view_name': 'rest_api:documenttype-detail'}, } fields = ( - 'delete_time_period', 'delete_time_unit', 'documents', + 'delete_time_period', 'delete_time_unit', 'documents_url', + 'documents_count', 'id', 'label', 'filenames', 'trash_time_period', + 'trash_time_unit', 'url' + ) + model = DocumentType + + def get_documents_count(self, obj): + return obj.documents.count() + + +class WritableDocumentTypeSerializer(serializers.ModelSerializer): + documents_url = serializers.HyperlinkedIdentityField( + view_name='rest_api:documenttype-document-list', + ) + documents_count = serializers.SerializerMethodField() + + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:documenttype-detail'}, + } + fields = ( + 'delete_time_period', 'delete_time_unit', 'documents_url', 'documents_count', 'id', 'label', 'trash_time_period', 'trash_time_unit', 'url' ) model = DocumentType + def get_documents_count(self, obj): + return obj.documents.count() + class DocumentVersionSerializer(serializers.HyperlinkedModelSerializer): - pages = DocumentPageSerializer(many=True, required=False, read_only=True) - revert = serializers.HyperlinkedIdentityField( - view_name='rest_api:documentversion-revert' - ) + document_url = serializers.SerializerMethodField() + download_url = serializers.SerializerMethodField() + pages_url = serializers.SerializerMethodField() + size = serializers.SerializerMethodField() + url = serializers.SerializerMethodField() class Meta: extra_kwargs = { 'document': {'view_name': 'rest_api:document-detail'}, 'file': {'use_url': False}, - 'url': {'view_name': 'rest_api:documentversion-detail'}, } + fields = ( + 'checksum', 'comment', 'document_url', 'download_url', 'encoding', + 'file', 'mimetype', 'pages_url', 'size', 'timestamp', 'url' + ) + model = DocumentVersion + read_only_fields = ('document', 'file', 'size') + + def get_size(self, instance): + return instance.size + + def get_document_url(self, instance): + return reverse( + 'rest_api:document-detail', args=( + instance.document.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_download_url(self, instance): + return reverse( + 'rest_api:documentversion-download', args=( + instance.document.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_pages_url(self, instance): + return reverse( + 'rest_api:documentversion-page-list', args=( + instance.document.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:documentversion-detail', args=( + instance.document.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + +class WritableDocumentVersionSerializer(serializers.ModelSerializer): + document_url = serializers.SerializerMethodField() + download_url = serializers.SerializerMethodField() + pages_url = serializers.SerializerMethodField() + url = serializers.SerializerMethodField() + + class Meta: + extra_kwargs = { + 'file': {'use_url': False}, + } + fields = ( + 'checksum', 'comment', 'document_url', 'download_url', 'encoding', + 'file', 'mimetype', 'pages_url', 'timestamp', 'url' + ) model = DocumentVersion read_only_fields = ('document', 'file') + def get_document_url(self, instance): + return reverse( + 'rest_api:document-detail', args=( + instance.document.pk, + ), request=self.context['request'], format=self.context['format'] + ) -class DocumentVersionRevertSerializer(DocumentVersionSerializer): - class Meta(DocumentVersionSerializer.Meta): - read_only_fields = ('comment', 'document',) + def get_download_url(self, instance): + return reverse( + 'rest_api:documentversion-download', args=( + instance.document.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_pages_url(self, instance): + return reverse( + 'rest_api:documentversion-page-list', args=( + instance.document.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:documentversion-detail', args=( + instance.document.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) class NewDocumentVersionSerializer(serializers.Serializer): @@ -87,16 +211,13 @@ class NewDocumentVersionSerializer(serializers.Serializer): class DeletedDocumentSerializer(serializers.HyperlinkedModelSerializer): document_type_label = serializers.SerializerMethodField() restore = serializers.HyperlinkedIdentityField( - view_name='rest_api:deleteddocument-restore' + view_name='rest_api:trasheddocument-restore' ) - def get_document_type_label(self, instance): - return instance.document_type.label - class Meta: extra_kwargs = { 'document_type': {'view_name': 'rest_api:documenttype-detail'}, - 'url': {'view_name': 'rest_api:deleteddocument-detail'} + 'url': {'view_name': 'rest_api:trasheddocument-detail'} } fields = ( 'date_added', 'deleted_date_time', 'description', 'document_type', @@ -109,26 +230,44 @@ class DeletedDocumentSerializer(serializers.HyperlinkedModelSerializer): 'language' ) - -class DocumentSerializer(serializers.HyperlinkedModelSerializer): - document_type_label = serializers.SerializerMethodField() - latest_version = DocumentVersionSerializer(many=False, read_only=True) - versions = serializers.HyperlinkedIdentityField( - view_name='rest_api:document-version-list', - ) - def get_document_type_label(self, instance): return instance.document_type.label + +class DocumentSerializer(serializers.HyperlinkedModelSerializer): + document_type = DocumentTypeSerializer() + latest_version = DocumentVersionSerializer(many=False, read_only=True) + versions_url = serializers.HyperlinkedIdentityField( + view_name='rest_api:document-version-list', + ) + class Meta: extra_kwargs = { 'document_type': {'view_name': 'rest_api:documenttype-detail'}, 'url': {'view_name': 'rest_api:document-detail'} } fields = ( - 'date_added', 'description', 'document_type', - 'document_type_label', 'id', 'label', 'language', - 'latest_version', 'url', 'uuid', 'versions', + 'date_added', 'description', 'document_type', 'id', 'label', + 'language', 'latest_version', 'url', 'uuid', 'versions_url', + ) + model = Document + read_only_fields = ('document_type',) + + +class WritableDocumentSerializer(serializers.ModelSerializer): + document_type = DocumentTypeSerializer(read_only=True) + latest_version = DocumentVersionSerializer(many=False, read_only=True) + versions = serializers.HyperlinkedIdentityField( + view_name='rest_api:document-version-list', + ) + url = serializers.HyperlinkedIdentityField( + view_name='rest_api:document-detail', + ) + + class Meta: + fields = ( + 'date_added', 'description', 'document_type', 'id', 'label', + 'language', 'latest_version', 'url', 'uuid', 'versions', ) model = Document read_only_fields = ('document_type',) diff --git a/mayan/apps/documents/tests/test_api.py b/mayan/apps/documents/tests/test_api.py index 9abb7c561b..f30ebf7f2c 100644 --- a/mayan/apps/documents/tests/test_api.py +++ b/mayan/apps/documents/tests/test_api.py @@ -9,11 +9,12 @@ from json import loads from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings +from django.utils.encoding import force_text from django_downloadview import assert_download_response from rest_framework import status -from rest_framework.test import APITestCase +from rest_api.tests import BaseAPITestCase from user_management.tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) @@ -27,12 +28,9 @@ from .literals import ( from ..models import Document, DocumentType -class DocumentTypeAPITestCase(APITestCase): - """ - Test the document type API endpoints - """ - +class DocumentTypeAPITestCase(BaseAPITestCase): def setUp(self): + super(DocumentTypeAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -44,16 +42,18 @@ class DocumentTypeAPITestCase(APITestCase): def tearDown(self): self.admin_user.delete() + super(DocumentTypeAPITestCase, self).tearDown() def test_document_type_create(self): self.assertEqual(DocumentType.objects.all().count(), 0) - self.client.post( + response = self.client.post( reverse('rest_api:documenttype-list'), data={ 'label': TEST_DOCUMENT_TYPE } ) + self.assertEqual(response.status_code, 201) self.assertEqual(DocumentType.objects.all().count(), 1) self.assertEqual( DocumentType.objects.all().first().label, TEST_DOCUMENT_TYPE @@ -92,12 +92,9 @@ class DocumentTypeAPITestCase(APITestCase): @override_settings(OCR_AUTO_OCR=False) -class DocumentAPITestCase(APITestCase): - """ - Test document API endpoints - """ - +class DocumentAPITestCase(BaseAPITestCase): def setUp(self): + super(DocumentAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -114,6 +111,7 @@ class DocumentAPITestCase(APITestCase): def tearDown(self): self.admin_user.delete() self.document_type.delete() + super(DocumentAPITestCase, self).tearDown() def _upload_document(self): with open(TEST_SMALL_DOCUMENT_PATH) as file_object: @@ -155,51 +153,6 @@ class DocumentAPITestCase(APITestCase): ) self.assertEqual(document.page_count, 47) - def test_document_move_to_trash(self): - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = self.document_type.new_document( - file_object=file_object, - ) - - self.client.delete( - reverse('rest_api:document-detail', args=(document.pk,)) - ) - - self.assertEqual(Document.objects.count(), 0) - self.assertEqual(Document.trash.count(), 1) - - def test_deleted_document_delete_from_trash(self): - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = self.document_type.new_document( - file_object=file_object, - ) - - document.delete() - - self.assertEqual(Document.objects.count(), 0) - self.assertEqual(Document.trash.count(), 1) - - self.client.delete( - reverse('rest_api:trasheddocument-detail', args=(document.pk,)) - ) - - self.assertEqual(Document.trash.count(), 0) - - def test_deleted_document_restore(self): - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = self.document_type.new_document( - file_object=file_object, - ) - - document.delete() - - self.client.post( - reverse('rest_api:trasheddocument-restore', args=(document.pk,)) - ) - - self.assertEqual(Document.trash.count(), 0) - self.assertEqual(Document.objects.count(), 1) - def test_document_new_version_upload(self): with open(TEST_SMALL_DOCUMENT_PATH) as file_object: document = self.document_type.new_document( @@ -247,17 +200,18 @@ class DocumentAPITestCase(APITestCase): self.assertEqual(document.versions.count(), 2) - document_version = document.versions.first() + last_version = document.versions.last() - self.client.post( + self.client.delete( reverse( - 'rest_api:documentversion-revert', args=(document_version.pk,) + 'rest_api:documentversion-detail', + args=(document.pk, last_version.pk,) ) ) self.assertEqual(document.versions.count(), 1) - self.assertEqual(document_version, document.latest_version) + self.assertEqual(document.versions.first(), document.latest_version) def test_document_download(self): with open(TEST_SMALL_DOCUMENT_PATH) as file_object: @@ -288,7 +242,7 @@ class DocumentAPITestCase(APITestCase): response = self.client.get( reverse( 'rest_api:documentversion-download', - args=(latest_version.pk,) + args=(document.pk, latest_version.pk,) ) ) @@ -306,7 +260,7 @@ class DocumentAPITestCase(APITestCase): response = self.client.patch( reverse( 'rest_api:documentversion-detail', - args=(self.document.latest_version.pk,) + args=(self.document.pk, self.document.latest_version.pk,) ), data={'comment': TEST_DOCUMENT_VERSION_COMMENT_EDITED} ) @@ -323,7 +277,7 @@ class DocumentAPITestCase(APITestCase): response = self.client.put( reverse( 'rest_api:documentversion-detail', - args=(self.document.latest_version.pk,) + args=(self.document.pk, self.document.latest_version.pk,) ), data={'comment': TEST_DOCUMENT_VERSION_COMMENT_EDITED} ) @@ -359,7 +313,6 @@ class DocumentAPITestCase(APITestCase): args=(self.document.pk,) ), data={'description': TEST_DOCUMENT_DESCRIPTION_EDITED} ) - self.assertEqual(response.status_code, 200) self.document.refresh_from_db() self.assertEqual( @@ -367,5 +320,90 @@ class DocumentAPITestCase(APITestCase): TEST_DOCUMENT_DESCRIPTION_EDITED ) + +@override_settings(OCR_AUTO_OCR=False) +class TrashedDocumentAPITestCase(BaseAPITestCase): + def setUp(self): + super(TrashedDocumentAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + def tearDown(self): + self.admin_user.delete() + self.document_type.delete() + super(TrashedDocumentAPITestCase, self).tearDown() + + def _upload_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + document = self.document_type.new_document( + file_object=file_object, + ) + + return document + + def test_document_move_to_trash(self): + document = self._upload_document() + + self.client.delete( + reverse('rest_api:document-detail', args=(document.pk,)) + ) + + self.assertEqual(Document.objects.count(), 0) + self.assertEqual(Document.trash.count(), 1) + + def test_trashed_document_delete_from_trash(self): + document = self._upload_document() + document.delete() + + self.assertEqual(Document.objects.count(), 0) + self.assertEqual(Document.trash.count(), 1) + + self.client.delete( + reverse('rest_api:trasheddocument-detail', args=(document.pk,)) + ) + + self.assertEqual(Document.trash.count(), 0) + + def test_trashed_document_detail_view(self): + document = self._upload_document() + document.delete() + + response = self.client.get( + reverse('rest_api:trasheddocument-detail', args=(document.pk,)) + ) + + self.assertEqual(response.data['uuid'], force_text(document.uuid)) + + def test_trashed_document_list_view(self): + document = self._upload_document() + document.delete() + + response = self.client.get( + reverse('rest_api:trasheddocument-list') + ) + + self.assertEqual(response.data['results'][0]['uuid'], force_text(document.uuid)) + + def test_trashed_document_restore(self): + document = self._upload_document() + document.delete() + + self.client.post( + reverse('rest_api:trasheddocument-restore', args=(document.pk,)) + ) + + self.assertEqual(Document.trash.count(), 0) + self.assertEqual(Document.objects.count(), 1) + # TODO: def test_document_set_document_type(self): # pass diff --git a/mayan/apps/documents/tests/test_models.py b/mayan/apps/documents/tests/test_models.py index 32d4465d8f..cbcf1345c9 100644 --- a/mayan/apps/documents/tests/test_models.py +++ b/mayan/apps/documents/tests/test_models.py @@ -15,6 +15,25 @@ from .literals import ( ) +@override_settings(OCR_AUTO_OCR=False) +class GenericDocumentTestCase(BaseTestCase): + def setUp(self): + super(GenericDocumentTestCase, self).setUp() + + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def tearDown(self): + self.document_type.delete() + super(GenericDocumentTestCase, self).tearDown() + + @override_settings(OCR_AUTO_OCR=False) class DocumentTestCase(BaseTestCase): def setUp(self): @@ -194,23 +213,7 @@ class MultiPageTiffTestCase(BaseTestCase): self.assertEqual(self.document.page_count, 2) -@override_settings(OCR_AUTO_OCR=False) -class DocumentVersionTestCase(BaseTestCase): - def setUp(self): - super(DocumentVersionTestCase, self).setUp() - self.document_type = DocumentType.objects.create( - label=TEST_DOCUMENT_TYPE - ) - - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - self.document = self.document_type.new_document( - file_object=file_object - ) - - def tearDown(self): - self.document_type.delete() - super(DocumentVersionTestCase, self).setUp() - +class DocumentVersionTestCase(GenericDocumentTestCase): def test_add_new_version(self): self.assertEqual(self.document.versions.count(), 1) diff --git a/mayan/apps/documents/tests/test_views.py b/mayan/apps/documents/tests/test_views.py index 98c47c47d5..a40ea03bf4 100644 --- a/mayan/apps/documents/tests/test_views.py +++ b/mayan/apps/documents/tests/test_views.py @@ -84,7 +84,7 @@ class DocumentsViewsTestCase(GenericDocumentViewTestCase): def test_document_list_view_with_permissions(self): self.grant(permission=permission_document_view) response = self.get('documents:document_list') - self.assertContains(response, 'Total: 1', status_code=200) + self.assertContains(response, self.document.label, status_code=200) def _edit_document_type(self, document_type): return self.post( diff --git a/mayan/apps/documents/tests/test_widgets.py b/mayan/apps/documents/tests/test_widgets.py new file mode 100644 index 0000000000..36af3c2f34 --- /dev/null +++ b/mayan/apps/documents/tests/test_widgets.py @@ -0,0 +1,14 @@ +from __future__ import unicode_literals + +from ..widgets import DocumentThumbnailWidget + +from .test_models import GenericDocumentTestCase + + +class DocumentWidgetTestCase(GenericDocumentTestCase): + def test_document_list_view_document_with_no_pages(self): + document_thumbnail_widget = DocumentThumbnailWidget() + self.document.pages.all().delete() + result = document_thumbnail_widget.render(instance=self.document) + + self.assertTrue(self.document.get_absolute_url() in result) diff --git a/mayan/apps/documents/urls.py b/mayan/apps/documents/urls.py index 39f1cd4ba2..c81fb12461 100644 --- a/mayan/apps/documents/urls.py +++ b/mayan/apps/documents/urls.py @@ -9,7 +9,7 @@ from .api_views import ( APIDocumentPageImageView, APIDocumentPageView, APIDocumentTypeDocumentListView, APIDocumentTypeListView, APIDocumentTypeView, APIDocumentVersionsListView, - APIDocumentVersionRevertView, APIDocumentVersionView, + APIDocumentVersionPageListView, APIDocumentVersionView, APIRecentDocumentListView ) from .views import ( @@ -258,18 +258,6 @@ urlpatterns = [ ] api_urls = [ - url( - r'^trashed_documents/$', APIDeletedDocumentListView.as_view(), - name='trasheddocument-list' - ), - url( - r'^trashed_documents/(?P[0-9]+)/$', - APIDeletedDocumentView.as_view(), name='trasheddocument-detail' - ), - url( - r'^trashed_documents/(?P[0-9]+)/restore/$', - APIDeletedDocumentRestoreView.as_view(), name='trasheddocument-restore' - ), url(r'^documents/$', APIDocumentListView.as_view(), name='document-list'), url( r'^documents/recent/$', APIRecentDocumentListView.as_view(), @@ -279,32 +267,33 @@ api_urls = [ r'^documents/(?P[0-9]+)/$', APIDocumentView.as_view(), name='document-detail' ), - url( - r'^documents/(?P[0-9]+)/versions/$', - APIDocumentVersionsListView.as_view(), name='document-version-list' - ), url( r'^documents/(?P[0-9]+)/download/$', APIDocumentDownloadView.as_view(), name='document-download' ), url( - r'^document_version/(?P[0-9]+)/$', + r'^documents/(?P[0-9]+)/versions/$', + APIDocumentVersionsListView.as_view(), name='document-version-list' + ), + url( + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/$', APIDocumentVersionView.as_view(), name='documentversion-detail' ), url( - r'^document_version/(?P[0-9]+)/revert/$', - APIDocumentVersionRevertView.as_view(), name='documentversion-revert' + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/pages/$', + APIDocumentVersionPageListView.as_view(), name='documentversion-page-list' ), url( - r'^document_version/(?P[0-9]+)/download/$', - APIDocumentVersionDownloadView.as_view(), name='documentversion-download' + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/download/$', + APIDocumentVersionDownloadView.as_view(), + name='documentversion-download' ), url( - r'^document_page/(?P[0-9]+)/$', APIDocumentPageView.as_view(), - name='documentpage-detail' + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/pages/(?P[0-9]+)$', + APIDocumentPageView.as_view(), name='documentpage-detail' ), url( - r'^document_page/(?P[0-9]+)/image/$', + r'^documents/(?P[0-9]+)/versions/(?P[0-9]+)/pages/(?P[0-9]+)/image/$', APIDocumentPageImageView.as_view(), name='documentpage-image' ), url( @@ -320,4 +309,16 @@ api_urls = [ r'^document_types/$', APIDocumentTypeListView.as_view(), name='documenttype-list' ), + url( + r'^trashed_documents/$', APIDeletedDocumentListView.as_view(), + name='trasheddocument-list' + ), + url( + r'^trashed_documents/(?P[0-9]+)/$', + APIDeletedDocumentView.as_view(), name='trasheddocument-detail' + ), + url( + r'^trashed_documents/(?P[0-9]+)/restore/$', + APIDeletedDocumentRestoreView.as_view(), name='trasheddocument-restore' + ), ] diff --git a/mayan/apps/documents/views/document_page_views.py b/mayan/apps/documents/views/document_page_views.py index 45de60424b..4ab01dadb1 100644 --- a/mayan/apps/documents/views/document_page_views.py +++ b/mayan/apps/documents/views/document_page_views.py @@ -5,7 +5,7 @@ import urlparse from django.conf import settings from django.contrib import messages -from django.core.urlresolvers import resolve, reverse +from django.core.urlresolvers import reverse from django.shortcuts import get_object_or_404 from django.utils.http import urlencode from django.utils.translation import ugettext_lazy as _ @@ -13,6 +13,7 @@ from django.views.generic import RedirectView from acls.models import AccessControlList from common.generics import SimpleView, SingleObjectListView +from common.utils import resolve from converter.literals import DEFAULT_ROTATION, DEFAULT_ZOOM_LEVEL from ..forms import DocumentPageForm @@ -103,7 +104,7 @@ class DocumentPageNavigationBase(RedirectView): ) ) - return '{}?{}'.format(url, urlencode(query_dict)) + return '{}?{}'.format(url, urlencode(query_dict, doseq=True)) class DocumentPageNavigationFirst(DocumentPageNavigationBase): diff --git a/mayan/apps/documents/widgets.py b/mayan/apps/documents/widgets.py index 31a9dd0eef..9c6f3f1d4b 100644 --- a/mayan/apps/documents/widgets.py +++ b/mayan/apps/documents/widgets.py @@ -101,9 +101,21 @@ class InstanceImageWidget(object): # Click view def get_click_view_kwargs(self, instance): - return { - 'pk': instance.pk - } + """ + Determine if the view is a template or API view and vary the view + keyword arguments + """ + + if self.click_view_name.startswith('rest_api'): + return { + 'pk': instance.document.pk, + 'version_pk': instance.document_version.pk, + 'page_pk': instance.pk + } + else: + return { + 'pk': instance.pk, + } def get_click_view_query_dict(self, instance): return self.click_view_query_dict @@ -141,7 +153,9 @@ class InstanceImageWidget(object): # Preview view def get_preview_view_kwargs(self, instance): return { - 'pk': instance.pk + 'pk': instance.document.pk, + 'version_pk': instance.document_version.pk, + 'page_pk': instance.pk } def get_preview_view_query_dict(self, instance): @@ -254,20 +268,46 @@ class CarouselDocumentPageThumbnailWidget(BaseDocumentThumbnailWidget): class DocumentThumbnailWidget(BaseDocumentThumbnailWidget): def get_click_view_kwargs(self, instance): + #first_page = instance.pages.first() + #if first_page: return { - 'pk': instance.latest_version.pages.first().pk + 'pk': instance.pk, + 'version_pk': instance.latest_version.pk, + 'page_pk': instance.pages.first().pk } + def get_click_view_url(self, instance): + first_page = instance.pages.first() + if first_page: + return super(DocumentThumbnailWidget, self).get_click_view_url( + instance=instance + ) + else: + return '#' + def get_preview_view_kwargs(self, instance): + #first_page = instance.pages.first() + #if first_page: return { - 'pk': instance.latest_version.pages.first().pk + 'pk': instance.pk, + 'version_pk': instance.latest_version.pk, + 'page_pk': instance.pages.first().pk } + def get_preview_view_url(self, instance): + first_page = instance.pages.first() + if first_page: + return super(DocumentThumbnailWidget, self).get_preview_view_url( + instance=instance + ) + else: + return '' + def get_title(self, instance): return getattr(instance, 'label', None) def is_valid(self, instance): - return instance.latest_version.pages.all() + return instance.pages class DocumentPageThumbnailWidget(BaseDocumentThumbnailWidget): diff --git a/mayan/apps/dynamic_search/api_views.py b/mayan/apps/dynamic_search/api_views.py index a592a411c4..0932b046e9 100644 --- a/mayan/apps/dynamic_search/api_views.py +++ b/mayan/apps/dynamic_search/api_views.py @@ -5,7 +5,9 @@ from rest_framework.exceptions import ParseError from rest_api.filters import MayanObjectPermissionsFilter +from .classes import SearchModel from .mixins import SearchModelMixin +from .serializers import SearchModelSerializer class APISearchView(SearchModelMixin, generics.ListAPIView): @@ -15,11 +17,6 @@ class APISearchView(SearchModelMixin, generics.ListAPIView): GET: omit_serializer: true parameters: - - name: search_model - paramType: path - type: string - required: true - description: Possible values are "documents.Document" or "document.DocumentPageResult" - name: q paramType: query type: string @@ -55,11 +52,6 @@ class APIAdvancedSearchView(SearchModelMixin, generics.ListAPIView): GET: omit_serializer: true parameters: - - name: search_model - paramType: path - type: string - required: true - description: Possible values are "documents.Document" or "document.DocumentPageResult" - name: _match_all paramType: query type: string @@ -94,3 +86,15 @@ class APIAdvancedSearchView(SearchModelMixin, generics.ListAPIView): raise ParseError(unicode(exception)) return queryset + + +class APISearchModelList(generics.ListAPIView): + serializer_class = SearchModelSerializer + queryset = SearchModel.all() + + def get(self, *args, **kwargs): + """ + Returns a list of all the available search models. + """ + + return super(APISearchModelList, self).get(*args, **kwargs) diff --git a/mayan/apps/dynamic_search/apps.py b/mayan/apps/dynamic_search/apps.py index 4a3fc58685..44f2495171 100644 --- a/mayan/apps/dynamic_search/apps.py +++ b/mayan/apps/dynamic_search/apps.py @@ -11,8 +11,8 @@ from .links import link_search, link_search_advanced, link_search_again class DynamicSearchApp(MayanAppConfig): app_namespace = 'search' app_url = 'search' + has_tests = True name = 'dynamic_search' - test = True verbose_name = _('Dynamic search') def ready(self): diff --git a/mayan/apps/dynamic_search/classes.py b/mayan/apps/dynamic_search/classes.py index ea4635a103..bc706fd8bf 100644 --- a/mayan/apps/dynamic_search/classes.py +++ b/mayan/apps/dynamic_search/classes.py @@ -47,6 +47,10 @@ class SearchModel(object): self.permission = permission self.__class__.registry[self.get_full_name()] = self + @property + def pk(self): + return self.get_full_name() + @property def model(self): if not self._model: diff --git a/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.mo index f7441269ba..edcf06c875 100644 Binary files a/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.po index cdb266ecdf..2f749cbbbf 100644 --- a/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,76 +9,81 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "مصطلحات البحث" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "البحث" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "مستخدم" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "أقصى عدد لجلب وعرض نتائج البحث." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "الحد الأقصى لعدد طلبات البحث ليتم تذكرها لكل مستخدم." - -#: views.py:25 -msgid "Search results" -msgstr "نتائج البحث" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +93,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +119,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.mo index 1867534291..3d35259102 100644 Binary files a/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.po index 5e21019253..896de13f0a 100644 --- a/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/bg/LC_MESSAGES/django.po @@ -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: # Pavlin Koldamov , 2012 @@ -9,76 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Термини на търсене" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Търсене" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Потребител" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Максимален брой резултати от търсене за показване." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Максимален брой заявки за търсене на потребител" - -#: views.py:25 -msgid "Search results" -msgstr "Резултати от търсенето" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.mo index 41865c3849..c635e865ba 100644 Binary files a/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.po index e413cc0158..a903bad2c2 100644 --- a/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,76 +9,81 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Pojmovi pretrage" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Pretraga" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Korisnik" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Maksimalni broj pretražnih hitova da se rezultati prikažu." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Maksimalni broj po korisniku upita u pretrazi koji će biti zapamćeni." - -#: views.py:25 -msgid "Search results" -msgstr "Rezultati pretrage" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +93,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +119,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.mo index 14864216a3..0225b08c39 100644 Binary files a/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.po index 615dbb0ab5..533a419ab9 100644 --- a/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/da/LC_MESSAGES/django.po @@ -1,82 +1,86 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2015-08-20 19:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Bruger" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" -#: views.py:25 -msgid "Search results" +#: views.py:64 +#, python-format +msgid "Search for: %s" msgstr "" -#: views.py:32 -msgid "Type" -msgstr "" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -87,7 +91,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -112,6 +117,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.mo index 04eb54cd7b..ca6bea0ce9 100644 Binary files a/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po index 85563090fa..141577476c 100644 --- a/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po @@ -1,9 +1,10 @@ # 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: +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # tetjarediske , 2012 # Tobias Paepke , 2014 @@ -11,75 +12,82 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-24 22:45+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:16 msgid "Dynamic search" msgstr "Dynamische Suche" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "Kein passendes Such-Model gefunden" + +#: forms.py:9 +msgid "Match all" +msgstr "Alle Felder" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" +"Wenn aktiviert, werden nur Ergebnisse angezeigt bei denen alle Felder " +"zutreffen. Ohne diese Option werden Ergebnisse mit mindestens einem Feld " +"angezeigt." + +#: forms.py:29 msgid "Search terms" msgstr "Suchbegriffe" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Suche" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Erweiterte Suche" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Suche wiederholen" -#: models.py:24 -msgid "User" -msgstr "Benutzer" - -#: models.py:26 -msgid "Query" -msgstr "Abfrage" - -#: models.py:28 -msgid "Datetime created" -msgstr "Erstellungszeitpunkt" - -#: models.py:30 -msgid "Hits" -msgstr "Treffer" - -#: models.py:74 -msgid "Recent search" -msgstr "Letzte Suche" - -#: models.py:75 -msgid "Recent searches" -msgstr "Letzte Suchen" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Maximale Anzahl an Treffern, die angezeigt werden soll" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Maximale Anzahl an Suchabfragen, die pro Benutzer gespeichert werden sollen" +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "Suchergebnisse für: %s" -#: views.py:25 -msgid "Search results" -msgstr "Suchergebnisse" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "Suche nach: %s" -#: views.py:32 -msgid "Type" -msgstr "Typ" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -90,7 +98,8 @@ msgstr "Typ" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -115,6 +124,3 @@ msgstr "Typ" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.mo index 02525e9a90..202bb92ec9 100644 Binary files a/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po index e0bf116c3c..afc167ef41 100644 --- a/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -23,67 +23,72 @@ msgstr "" msgid "Dynamic search" msgstr "advanced search" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Search terms" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Search" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 #, fuzzy msgid "Advanced search" msgstr "advanced search" -#: links.py:11 +#: links.py:15 #, fuzzy msgid "Search again" msgstr "search again" -#: models.py:24 -msgid "User" -msgstr "" - -#: models.py:26 -#, fuzzy -msgid "Query" -msgstr "query" - -#: models.py:28 -#, fuzzy -msgid "Datetime created" -msgstr "datetime created" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -#, fuzzy -msgid "Recent search" -msgstr "recent search" - -#: models.py:75 -#, fuzzy -msgid "Recent searches" -msgstr "recent searches" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Maximum amount search hits to fetch and display." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Maximum number of search queries to remember per user." - -#: views.py:25 -msgid "Search results" +#: views.py:24 +#, fuzzy, python-format +#| msgid "Search results" +msgid "Search results for: %s" msgstr "Search results" -#: views.py:32 -msgid "Type" -msgstr "" +#: views.py:64 +#, fuzzy, python-format +#| msgid "Search error: %s" +msgid "Search for: %s" +msgstr "Search error: %s" + +#, fuzzy +#~ msgid "Query" +#~ msgstr "query" + +#, fuzzy +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#, fuzzy +#~ msgid "Recent search" +#~ msgstr "recent search" + +#, fuzzy +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #, fuzzy #~ msgid "Results" @@ -123,6 +128,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.mo index 71a6b1a99d..e43eec8f78 100644 Binary files a/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.po index 06c3519e43..b114132206 100644 --- a/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/es/LC_MESSAGES/django.po @@ -7,13 +7,13 @@ # jmcainzos , 2014 # Lory977 , 2015 # Roberto Rosario, 2011,2013 -# Roberto Rosario, 2015 +# Roberto Rosario, 2015,2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-05-28 19:55+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" @@ -26,61 +26,66 @@ msgstr "" msgid "Dynamic search" msgstr "Búsqueda dinámica " -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "Ningún modelo de búsqueda que coincida con la consulta" + +#: forms.py:9 +msgid "Match all" +msgstr "Parear todos" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "Cuando se selecciona, sólo se devolverán los resultados que coincidan con todos los campos. Si no se selecciona los resultados que coincidan con al menos un campo se devolverá." + +#: forms.py:29 msgid "Search terms" msgstr "Términos de búsqueda" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Búsqueda" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Búsqueda avanzada" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Volver a buscar" -#: models.py:24 -msgid "User" -msgstr "Usuario" - -#: models.py:26 -msgid "Query" -msgstr "Consulta" - -#: models.py:28 -msgid "Datetime created" -msgstr "fecha y hora creados" - -#: models.py:30 -msgid "Hits" -msgstr "accesos" - -#: models.py:74 -msgid "Recent search" -msgstr "Búsqueda reciente" - -#: models.py:75 -msgid "Recent searches" -msgstr "Búsquedas recientes." - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "La cantidad máxima de resultados de búsqueda a recabar y mostrar." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "El número máximo de consultas de búsqueda para recordar por usuario." +#: views.py:24 +#, python-format +#| msgid "Search results" +msgid "Search results for: %s" +msgstr "Resultados de la búsqueda para: %s" -#: views.py:25 -msgid "Search results" -msgstr "Resultados de la búsqueda" +#: views.py:64 +#, python-format +#| msgid "Search error: %s" +msgid "Search for: %s" +msgstr "Búsqueda para: %s" -#: views.py:32 -msgid "Type" -msgstr "Tipo" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -116,6 +121,3 @@ msgstr "Tipo" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.mo index ca67602f60..33608af513 100644 Binary files a/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.po index 2d1008cca1..34365bbeb6 100644 --- a/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/fa/LC_MESSAGES/django.po @@ -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: # Mehdi Amani , 2014 @@ -9,75 +9,79 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "عبارات جستجو" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "جستجو" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "جستجوی پیشرفته" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "جستجوی دوباره" -#: models.py:24 -msgid "User" -msgstr "کاربر" - -#: models.py:26 -msgid "Query" -msgstr "پرس و جو" - -#: models.py:28 -msgid "Datetime created" -msgstr "تاریخ زمان ایجاد" - -#: models.py:30 -msgid "Hits" -msgstr "برخورد" - -#: models.py:74 -msgid "Recent search" -msgstr "جستجوی اخیر" - -#: models.py:75 -msgid "Recent searches" -msgstr "جستجوهای اخیر" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "جداکثر نتایج قابل نمایش" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "حداکثر تعداد پرس و جو های هرکاربر که بوسیله سیستم نگهداری میشود." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "نتایج جستجو" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "نوع" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "نوع" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "نوع" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.mo index 48d5db55ae..bff8cca607 100644 Binary files a/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.po index 5f7d8ea9c9..af92a22a87 100644 --- a/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/fr/LC_MESSAGES/django.po @@ -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 , 2014-2015 @@ -11,75 +11,79 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:16 msgid "Dynamic search" msgstr "Recherche dynamique" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Termes de recherche" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Recherche" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Recherche avancée" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Rechercher à nouveau" -#: models.py:24 -msgid "User" -msgstr "Utilisateur" - -#: models.py:26 -msgid "Query" -msgstr "Requête" - -#: models.py:28 -msgid "Datetime created" -msgstr "Date et heure de création" - -#: models.py:30 -msgid "Hits" -msgstr "Nombre de vues" - -#: models.py:74 -msgid "Recent search" -msgstr "Recherche récente" - -#: models.py:75 -msgid "Recent searches" -msgstr "Recherches récentes" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Nombre maximum de résultats de recherche à traiter et afficher." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Nombre maximal de recherches à mémoriser par utilisateur" +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Résultats de la recherche" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Type" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -90,7 +94,8 @@ msgstr "Type" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -115,6 +120,3 @@ msgstr "Type" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.mo index 3c0ca9262a..0996de828e 100644 Binary files a/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.po index 40a344f0eb..6f7f97a483 100644 --- a/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/hu/LC_MESSAGES/django.po @@ -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: # Dezső József , 2013 @@ -9,76 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:49-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "keresési feltételek" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Keresés" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Felhasználó" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "A letölthető és megjeleníthető keresési találatok maximális száma." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "A keresési előzmények maximális száma felhasználónként." - -#: views.py:25 -msgid "Search results" -msgstr "A keresés eredményei" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.mo index a679fe5e4b..d83ca56697 100644 Binary files a/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.po index 0a3a985b77..0707891a0e 100644 --- a/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/id/LC_MESSAGES/django.po @@ -1,82 +1,86 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2015-08-20 19:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Pengguna" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" -#: views.py:25 -msgid "Search results" +#: views.py:64 +#, python-format +msgid "Search for: %s" msgstr "" -#: views.py:32 -msgid "Type" -msgstr "" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -87,7 +91,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -112,6 +117,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.mo index 7192986575..3f71b186f7 100644 Binary files a/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.po index 2b7025be3d..6676f8384a 100644 --- a/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/it/LC_MESSAGES/django.po @@ -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: # Carlo Zanatto <>, 2012 @@ -12,75 +12,79 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-09-24 09:51+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:16 msgid "Dynamic search" msgstr "Ricerca dinamica" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Cerca termini " -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Cerca" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Ricerca avanzata" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Cerca ancora" -#: models.py:24 -msgid "User" -msgstr "Utente" - -#: models.py:26 -msgid "Query" -msgstr "Interrogazione" - -#: models.py:28 -msgid "Datetime created" -msgstr "Data e ora di creazione" - -#: models.py:30 -msgid "Hits" -msgstr "Risultati" - -#: models.py:74 -msgid "Recent search" -msgstr "Ricerca recente" - -#: models.py:75 -msgid "Recent searches" -msgstr "Ricerche recenti" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Massimo numero ricerca risultati da recuperare e visualizzare. " -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Numero massimo di query di ricerca da ricordare per utente." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Risultati della ricerca" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Tipo" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -91,7 +95,8 @@ msgstr "Tipo" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -116,6 +121,3 @@ msgstr "Tipo" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.mo index 3a0ac8dea5..d27a718e54 100644 Binary files a/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.po index 3c4f4a3bcc..d656d7032b 100644 --- a/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.po @@ -1,84 +1,89 @@ # 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 , 2016 +# Johan Braeken, 2017 # Lucas Weel , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-09 15:49+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:16 msgid "Dynamic search" msgstr "Dynamisch zoeken" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Zoektermen" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Zoek" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Geavanceerd zoeken" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Zoek nog een keer" -#: models.py:24 -msgid "User" -msgstr "Gebruiker" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "Datumtijd aangemaakt" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "Recente zoekopdracht" - -#: models.py:75 -msgid "Recent searches" -msgstr "Recente zoekopdrachten" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Het maximum aantal zoekresultaten." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Het maximum aantal zoek-opdrachten dat per gebruiker wordt opgeslagen" +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Zoekresultaten" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Type" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -89,7 +94,8 @@ msgstr "Type" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -114,6 +120,3 @@ msgstr "Type" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.mo index 3d15ba3e62..f354348c04 100644 Binary files a/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.po index 5000f72507..18c6cf7978 100644 --- a/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/pl/LC_MESSAGES/django.po @@ -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: # Annunnaky , 2015 @@ -12,75 +12,81 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: apps.py:16 msgid "Dynamic search" msgstr "Dynamiczne wyszukiwanie" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Słowa do wyszukania" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Szukaj" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Zaawansowane wyszukiwanie" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "Wyszukać ponownie" -#: models.py:24 -msgid "User" -msgstr "Użytkownik" - -#: models.py:26 -msgid "Query" -msgstr "Zapytanie" - -#: models.py:28 -msgid "Datetime created" -msgstr "Data utworzenia" - -#: models.py:30 -msgid "Hits" -msgstr "Trafienia" - -#: models.py:74 -msgid "Recent search" -msgstr "Ostatnie wyszukiwanie" - -#: models.py:75 -msgid "Recent searches" -msgstr "Ostatnie wyszukiwania" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Maksymalna liczba trafień do wyświetlenia na ekranie." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Maksymalna liczba wyszukań do zapamiętania na 1 użytkownika." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Wynik wyszukiwania" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Typ" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -91,7 +97,8 @@ msgstr "Typ" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -116,6 +123,3 @@ msgstr "Typ" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.mo index 976debfc74..f29d67338c 100644 Binary files a/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.po index de9de3e71c..d4efd4b619 100644 --- a/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/pt/LC_MESSAGES/django.po @@ -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: # Emerson Soares , 2011 @@ -10,76 +10,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Termos de pesquisa" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Pesquisa" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "Procura Avançada" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Utilizador" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Número máximo de resultados a buscar e mostrar." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Número máximo de consultas a recordar por utilizador." - -#: views.py:25 -msgid "Search results" -msgstr "Resultados da pesquisa" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -89,7 +93,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -114,6 +119,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.mo index 1a206e2250..4a31952d75 100644 Binary files a/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.po index 17a50622c0..622de32313 100644 --- a/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -11,75 +11,79 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-17 22:28+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:16 msgid "Dynamic search" msgstr "Busca dinâmica" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Termos de pesquisa" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Pesquisa" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "pesquisa avançada" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "pesquisar novamente" -#: models.py:24 -msgid "User" -msgstr "Usuário" - -#: models.py:26 -msgid "Query" -msgstr "pergunta" - -#: models.py:28 -msgid "Datetime created" -msgstr "Hora e data criada" - -#: models.py:30 -msgid "Hits" -msgstr "visitas" - -#: models.py:74 -msgid "Recent search" -msgstr "pesquisa recente" - -#: models.py:75 -msgid "Recent searches" -msgstr "pesquisas recentes" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Quantidade máxima acessos para a pesquisa buscar e mostrar." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Número máximo de consultas de pesquisa para se lembrar por usuário." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Resultados da pesquisa" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Tipo" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -90,7 +94,8 @@ msgstr "Tipo" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -115,6 +120,3 @@ msgstr "Tipo" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.mo index 088aa8c54a..c14c8cf775 100644 Binary files a/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.po index 0ed1fba0ba..68764412af 100644 --- a/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,75 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-04-17 13:16+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Caută termeni" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Căută" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "utilizator" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Căutare suma maximă hit-uri pentru a prelua și afișa." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Numărul maxim de interogări de căutare per utilizator." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Rezultatele căutării" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Tip" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -88,7 +93,8 @@ msgstr "Tip" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +119,3 @@ msgstr "Tip" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.mo index d73434dd4c..f9ef60ec85 100644 Binary files a/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.po index a5a53b29bd..94b98432d0 100644 --- a/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/ru/LC_MESSAGES/django.po @@ -1,82 +1,88 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-23 01:14+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "Условия поиска" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Поиск" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Пользователь" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "Максимальное количество отображаемых документов из результатов поиска." -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Максимальное количество поисковых запросов запоминаемых для каждого пользователя." +#: views.py:24 +#, python-format +msgid "Search results for: %s" +msgstr "" -#: views.py:25 -msgid "Search results" -msgstr "Результаты поиска" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" -#: views.py:32 -msgid "Type" -msgstr "Тип" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -87,7 +93,8 @@ msgstr "Тип" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -112,6 +119,3 @@ msgstr "Тип" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.mo index a38aad3181..b6a481b423 100644 Binary files a/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.po index d7f1f67e7c..958c21f9d4 100644 --- a/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/sl_SI/LC_MESSAGES/django.po @@ -1,82 +1,87 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2015-08-20 19:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" -#: views.py:25 -msgid "Search results" +#: views.py:64 +#, python-format +msgid "Search for: %s" msgstr "" -#: views.py:32 -msgid "Type" -msgstr "" +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." #~ msgid "Results" #~ msgstr "results" @@ -87,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -112,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.mo index 39ab23e396..7af83bc5d3 100644 Binary files a/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.po index 7737c0f1bd..416192858d 100644 --- a/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,76 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "Tìm kiếm" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "Người dùng" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "Số truy vấn lớn nhất cần nhớ cho mỗi người dùng" - -#: views.py:25 -msgid "Search results" -msgstr "Kết quả tìm kiếm" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.mo index c375b730c5..063cf8b60c 100644 Binary files a/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.po index 3f85dc8990..45d50e9d4e 100644 --- a/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/dynamic_search/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,76 +9,80 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:16 msgid "Dynamic search" msgstr "" -#: forms.py:21 +#: classes.py:26 +msgid "No search model matching the query" +msgstr "" + +#: forms.py:9 +msgid "Match all" +msgstr "" + +#: forms.py:10 +msgid "" +"When checked, only results that match all fields will be returned. When " +"unchecked results that match at least one field will be returned." +msgstr "" + +#: forms.py:29 msgid "Search terms" msgstr "搜索项" -#: links.py:7 settings.py:8 views.py:56 views.py:70 +#: links.py:8 settings.py:8 views.py:51 views.py:62 msgid "Search" msgstr "搜索" -#: links.py:9 views.py:77 +#: links.py:11 views.py:76 msgid "Advanced search" msgstr "" -#: links.py:11 +#: links.py:15 msgid "Search again" msgstr "" -#: models.py:24 -msgid "User" -msgstr "用户" - -#: models.py:26 -msgid "Query" -msgstr "" - -#: models.py:28 -msgid "Datetime created" -msgstr "" - -#: models.py:30 -msgid "Hits" -msgstr "" - -#: models.py:74 -msgid "Recent search" -msgstr "" - -#: models.py:75 -msgid "Recent searches" -msgstr "" - -#: settings.py:14 +#: settings.py:11 msgid "Maximum amount search hits to fetch and display." msgstr "搜索的最大查询和显示数量" -#: settings.py:18 -msgid "Maximum number of search queries to remember per user." -msgstr "每一个用户所能保存的最大查询数" - -#: views.py:25 -msgid "Search results" -msgstr "搜索结果" - -#: views.py:32 -msgid "Type" +#: views.py:24 +#, python-format +msgid "Search results for: %s" msgstr "" +#: views.py:64 +#, python-format +msgid "Search for: %s" +msgstr "" + +#~ msgid "Query" +#~ msgstr "query" + +#~ msgid "Datetime created" +#~ msgstr "datetime created" + +#~ msgid "Recent search" +#~ msgstr "recent search" + +#~ msgid "Recent searches" +#~ msgstr "recent searches" + +#~ msgid "Maximum number of search queries to remember per user." +#~ msgstr "Maximum number of search queries to remember per user." + #~ msgid "Results" #~ msgstr "results" @@ -88,7 +92,8 @@ msgstr "" #~ msgid "Recent searches (maximum of %d)" #~ msgstr "recent searches (maximum of %d)" -#~ msgid "Results, (showing only %(shown_result_count)s out of %(result_count)s)" +#~ msgid "" +#~ "Results, (showing only %(shown_result_count)s out of %(result_count)s)" #~ msgstr "" #~ "results, (showing only %(shown_result_count)s out of %(result_count)s)" @@ -113,6 +118,3 @@ msgstr "" #~ msgstr "" #~ "Enter the desired search keywords separated by space. Only the top " #~ "%(search_results_limit)s results will be available." - -#~ msgid "Search error: %s" -#~ msgstr "Search error: %s" diff --git a/mayan/apps/dynamic_search/serializers.py b/mayan/apps/dynamic_search/serializers.py new file mode 100644 index 0000000000..91e60ad6a1 --- /dev/null +++ b/mayan/apps/dynamic_search/serializers.py @@ -0,0 +1,11 @@ +from __future__ import unicode_literals + +from rest_framework import serializers + +from .classes import SearchModel + + +class SearchModelSerializer(serializers.Serializer): + app_label = serializers.CharField(read_only=True) + model_name = serializers.CharField(read_only=True) + pk = serializers.CharField(read_only=True) diff --git a/mayan/apps/dynamic_search/tests/test_api.py b/mayan/apps/dynamic_search/tests/test_api.py index e8483a90a4..9c5fdf24a3 100644 --- a/mayan/apps/dynamic_search/tests/test_api.py +++ b/mayan/apps/dynamic_search/tests/test_api.py @@ -6,23 +6,22 @@ from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings -from rest_framework.test import APITestCase - from documents.models import DocumentType from documents.search import document_search from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) +from ..classes import SearchModel + @override_settings(OCR_AUTO_OCR=False) -class SearchAPITestCase(APITestCase): - """ - Test the search API endpoints - """ - +class SearchAPITestCase(BaseAPITestCase): def setUp(self): + super(SearchAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -55,3 +54,13 @@ class SearchAPITestCase(APITestCase): content = loads(response.content) self.assertEqual(content['results'][0]['label'], document.label) self.assertEqual(content['count'], 1) + + def test_search_models_view(self): + response = self.client.get( + reverse('rest_api:searchmodel-list') + ) + + self.assertEqual( + [search_model['pk'] for search_model in response.data['results']], + [search_model.pk for search_model in SearchModel.all()] + ) diff --git a/mayan/apps/dynamic_search/urls.py b/mayan/apps/dynamic_search/urls.py index 1300f2fa61..3c78896e71 100644 --- a/mayan/apps/dynamic_search/urls.py +++ b/mayan/apps/dynamic_search/urls.py @@ -2,7 +2,9 @@ from __future__ import unicode_literals from django.conf.urls import url -from .api_views import APIAdvancedSearchView, APISearchView +from .api_views import ( + APIAdvancedSearchView, APISearchModelList, APISearchView +) from .views import ( AdvancedSearchView, ResultsView, SearchAgainView, SearchView ) @@ -24,6 +26,10 @@ urlpatterns = [ ] api_urls = [ + url( + r'^search_models/$', APISearchModelList.as_view(), + name='searchmodel-list' + ), url( r'^search/(?P[\.\w]+)/$', APISearchView.as_view(), name='search-view' diff --git a/mayan/apps/events/api_views.py b/mayan/apps/events/api_views.py index 37c56e6054..35cc03c14c 100644 --- a/mayan/apps/events/api_views.py +++ b/mayan/apps/events/api_views.py @@ -1,7 +1,6 @@ from __future__ import absolute_import, unicode_literals from django.contrib.contenttypes.models import ContentType -from django.core.exceptions import PermissionDenied from django.http import Http404 from django.shortcuts import get_object_or_404 @@ -9,7 +8,6 @@ from actstream.models import Action, any_stream from rest_framework import generics from acls.models import AccessControlList -from permissions import Permission from rest_api.permissions import MayanPermission from .classes import Event @@ -38,18 +36,14 @@ class APIObjectEventListView(generics.ListAPIView): raise Http404 def get_queryset(self): - object = self.get_object() + obj = self.get_object() - try: - Permission.check_permissions( - self.request.user, permissions=(permission_events_view,) - ) - except PermissionDenied: - AccessControlList.objects.check_access( - permission_events_view, self.request.user, object - ) + AccessControlList.objects.check_access( + permissions=permission_events_view, user=self.request.user, + obj=obj + ) - return any_stream(object) + return any_stream(obj) class APIEventTypeListView(generics.ListAPIView): diff --git a/mayan/apps/events/apps.py b/mayan/apps/events/apps.py index 620171d205..b866d0d459 100644 --- a/mayan/apps/events/apps.py +++ b/mayan/apps/events/apps.py @@ -13,8 +13,8 @@ from .widgets import event_type_link class EventsApp(MayanAppConfig): + has_tests = True name = 'events' - test = True verbose_name = _('Events') def ready(self): diff --git a/mayan/apps/events/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/events/locale/ar/LC_MESSAGES/django.mo index 638915ddaa..1778eb79f0 100644 Binary files a/mayan/apps/events/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/ar/LC_MESSAGES/django.po b/mayan/apps/events/locale/ar/LC_MESSAGES/django.po index e17cb63370..52fe12aed4 100644 --- a/mayan/apps/events/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/ar/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +44,11 @@ msgstr "" msgid "Name" msgstr "اسم" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Event type" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +56,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/events/locale/bg/LC_MESSAGES/django.mo index 1919fbabde..ccc56cb932 100644 Binary files a/mayan/apps/events/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/bg/LC_MESSAGES/django.po b/mayan/apps/events/locale/bg/LC_MESSAGES/django.po index 26fa55de49..5adf16f2b8 100644 --- a/mayan/apps/events/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/bg/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "Име" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Тип на събитието" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.mo index 54b4822e9c..4fb824e09c 100644 Binary files a/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.po index 6f9f8ec008..ffd581dc22 100644 --- a/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/bs_BA/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +44,11 @@ msgstr "" msgid "Name" msgstr "Ime" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tip događaja" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +56,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/da/LC_MESSAGES/django.mo b/mayan/apps/events/locale/da/LC_MESSAGES/django.mo index 6adf76f67b..35d7ea9ca1 100644 Binary files a/mayan/apps/events/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/da/LC_MESSAGES/django.po b/mayan/apps/events/locale/da/LC_MESSAGES/django.po index a3aeca4fa5..2ea7b79a2a 100644 --- a/mayan/apps/events/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/da/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "Navn" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Hændelsestype" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.mo index 2da539b583..84e80f5a10 100644 Binary files a/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.po index 6d89566f11..682aa9c65d 100644 --- a/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/de_DE/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Ereignisse" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Zeitstempel" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Akteur" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verb" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Unbekannter oder obsoleter Ereignistyp: {0}" @@ -42,11 +43,11 @@ msgstr "Unbekannter oder obsoleter Ereignistyp: {0}" msgid "Name" msgstr "Name" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Ereignistyp" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Ereignistypen" @@ -54,16 +55,16 @@ msgstr "Ereignistypen" msgid "Access the events of an object" msgstr "Auf Ereignisse eines Objekts zugreifen" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Ziel" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Ereignisse für %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Ereignisse des Typs %s" diff --git a/mayan/apps/events/locale/en/LC_MESSAGES/django.mo b/mayan/apps/events/locale/en/LC_MESSAGES/django.mo index d15d45deda..a67c07abb0 100644 Binary files a/mayan/apps/events/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/en/LC_MESSAGES/django.po b/mayan/apps/events/locale/en/LC_MESSAGES/django.po index acbdaffa05..7b6e961f79 100644 --- a/mayan/apps/events/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,23 +17,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +42,11 @@ msgstr "" msgid "Name" msgstr "" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +54,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/es/LC_MESSAGES/django.mo b/mayan/apps/events/locale/es/LC_MESSAGES/django.mo index b18574b7e9..86adf84f31 100644 Binary files a/mayan/apps/events/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/es/LC_MESSAGES/django.po b/mayan/apps/events/locale/es/LC_MESSAGES/django.po index 57148077aa..c121ee38dd 100644 --- a/mayan/apps/events/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/es/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Eventos" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Marca de tiempo" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Actor" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Tipo de evento desconocido u obsoleto: {0}" @@ -43,11 +44,11 @@ msgstr "Tipo de evento desconocido u obsoleto: {0}" msgid "Name" msgstr "Nombre" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tipo de evento" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Tipos de eventos" @@ -55,16 +56,16 @@ msgstr "Tipos de eventos" msgid "Access the events of an object" msgstr "Acceder a los eventos de un objeto" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Objetivo" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Eventos para: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Eventos de tipo: %s" diff --git a/mayan/apps/events/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/events/locale/fa/LC_MESSAGES/django.mo index 1986fe5661..cac92a7fac 100644 Binary files a/mayan/apps/events/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/fa/LC_MESSAGES/django.po b/mayan/apps/events/locale/fa/LC_MESSAGES/django.po index fdbecdb7c0..d6e62b0780 100644 --- a/mayan/apps/events/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/fa/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mehdi Amani , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "رویداد" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "علامت زمان" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "فعال" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "فعل" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "نوع رخداد ناشناخته :{0}" @@ -43,11 +44,11 @@ msgstr "نوع رخداد ناشناخته :{0}" msgid "Name" msgstr "نام" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "نوع رویداد" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "انواع رخدادها" @@ -55,16 +56,16 @@ msgstr "انواع رخدادها" msgid "Access the events of an object" msgstr "دسترسی به رخدادهای یک شی" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "هدف" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "رخدادها برای : %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "نوع رخداد ها: %s" diff --git a/mayan/apps/events/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/events/locale/fr/LC_MESSAGES/django.mo index 77337e1915..12e1dcbe6d 100644 Binary files a/mayan/apps/events/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/fr/LC_MESSAGES/django.po b/mayan/apps/events/locale/fr/LC_MESSAGES/django.po index c78acee5ab..f58be34d7b 100644 --- a/mayan/apps/events/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/fr/LC_MESSAGES/django.po @@ -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: # Christophe CHAUVET , 2015 # Thierry Schott , 2016 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Événements" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Horodatage" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Acteur" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbe" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Type d'évènement inconnu ou obsolète: {0}" @@ -44,11 +45,11 @@ msgstr "Type d'évènement inconnu ou obsolète: {0}" msgid "Name" msgstr "Nom" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Type d'évènement" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Types d'évènement" @@ -56,16 +57,16 @@ msgstr "Types d'évènement" msgid "Access the events of an object" msgstr "Accéder aux évènements de cet objet" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Cible" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Évènements pour: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Évènements de type: %s" diff --git a/mayan/apps/events/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/events/locale/hu/LC_MESSAGES/django.mo index 57aedc7ac1..9ed93d2a90 100644 Binary files a/mayan/apps/events/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/hu/LC_MESSAGES/django.po b/mayan/apps/events/locale/hu/LC_MESSAGES/django.po index 4e89537548..0af102f610 100644 --- a/mayan/apps/events/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/hu/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/id/LC_MESSAGES/django.mo b/mayan/apps/events/locale/id/LC_MESSAGES/django.mo index 4e637dac22..fc681bab0a 100644 Binary files a/mayan/apps/events/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/id/LC_MESSAGES/django.po b/mayan/apps/events/locale/id/LC_MESSAGES/django.po index 0848f551e6..8787eba9e1 100644 --- a/mayan/apps/events/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/id/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/it/LC_MESSAGES/django.mo b/mayan/apps/events/locale/it/LC_MESSAGES/django.mo index 1829b98383..3442d52647 100644 Binary files a/mayan/apps/events/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/it/LC_MESSAGES/django.po b/mayan/apps/events/locale/it/LC_MESSAGES/django.po index f0aa989ff6..fbc0d414d1 100644 --- a/mayan/apps/events/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/it/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-09-24 09:51+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Eventi" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Timestamp" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Attore" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Tipo di evento obsoleto o sconosciuto: {0}" @@ -43,11 +44,11 @@ msgstr "Tipo di evento obsoleto o sconosciuto: {0}" msgid "Name" msgstr "Nome " -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tipo evento" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Tipi evento" @@ -55,16 +56,16 @@ msgstr "Tipi evento" msgid "Access the events of an object" msgstr "Accedere agli eventi di un oggetto" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Destinazione" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Eventi per: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Eventi di tipo: %s" diff --git a/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.mo index 5b66b50636..643eee3741 100644 Binary files a/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.po index 22e933bec6..afc428905d 100644 --- a/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/nl_NL/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-10-28 12:33+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Evenementen" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Timestamp" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Acteur" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Werkwoord" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Onbekende of verouderde evenementsoort: {0}" @@ -43,11 +44,11 @@ msgstr "Onbekende of verouderde evenementsoort: {0}" msgid "Name" msgstr "Naam" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Evenementsoort" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Evenementsoorten" @@ -55,16 +56,16 @@ msgstr "Evenementsoorten" msgid "Access the events of an object" msgstr "Benader de evenementen van een object" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Doel" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Evenementen voor: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Evenementen van soort: %s" diff --git a/mayan/apps/events/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/events/locale/pl/LC_MESSAGES/django.mo index e9c0269e7b..db5eccc22b 100644 Binary files a/mayan/apps/events/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/pl/LC_MESSAGES/django.po b/mayan/apps/events/locale/pl/LC_MESSAGES/django.po index 0c12c03059..37d17594fe 100644 --- a/mayan/apps/events/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/pl/LC_MESSAGES/django.po @@ -1,40 +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: # Annunnaky , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Zdarzenia" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Pieczęć czasu" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Czynnik" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Słowo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Nieznany, bądź przestarzały typ zdarzenia: {0}" @@ -43,11 +45,11 @@ msgstr "Nieznany, bądź przestarzały typ zdarzenia: {0}" msgid "Name" msgstr "Nazwa" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Typ zdarzenia" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Typy zdarzeń" @@ -55,16 +57,16 @@ msgstr "Typy zdarzeń" msgid "Access the events of an object" msgstr "Dostęp do zdarzeń obiektu" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Cel" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Zdarzenia dla: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Zdarzenia typu: %s" diff --git a/mayan/apps/events/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/events/locale/pt/LC_MESSAGES/django.mo index cd38e9345c..d4755b5fd3 100644 Binary files a/mayan/apps/events/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/pt/LC_MESSAGES/django.po b/mayan/apps/events/locale/pt/LC_MESSAGES/django.po index fde6da4894..31f07dbfb2 100644 --- a/mayan/apps/events/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/pt/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Events" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Actor" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Tipo de evento obsoleto ou desconhecido: {0}" @@ -42,11 +43,11 @@ msgstr "Tipo de evento obsoleto ou desconhecido: {0}" msgid "Name" msgstr "Nome" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tipo de evento" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Tipo de eventos" @@ -54,16 +55,16 @@ msgstr "Tipo de eventos" msgid "Access the events of an object" msgstr "Aceder aos eventos de um objeto" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Destino" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Eventos para: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Tipo de eventos: %s" diff --git a/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.mo index 4bcc7bdbf1..7742fe96d9 100644 Binary files a/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.po index aa020a2ac5..a2f19eb158 100644 --- a/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Roberto Rosario, 2015 # Rogerio Falcone , 2015 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "Eventos" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "Timestamp" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Ator" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Verbo" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Desconhecido ou obsoletos tipo de evento: {0}" @@ -44,11 +45,11 @@ msgstr "Desconhecido ou obsoletos tipo de evento: {0}" msgid "Name" msgstr "Nome" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tipo de Evento" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Tipos de Eventos" @@ -56,16 +57,16 @@ msgstr "Tipos de Eventos" msgid "Access the events of an object" msgstr "Acesse os eventos de um objeto" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Destino" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "Eventos para: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "Eventos do Tipo: %s" diff --git a/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.mo index be7128e4d1..119b89e1f6 100644 Binary files a/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.po index 01cfb63d8c..c8e7d0b151 100644 --- a/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/ro_RO/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +44,11 @@ msgstr "" msgid "Name" msgstr "Nume" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Tip eveniment" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +56,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/events/locale/ru/LC_MESSAGES/django.mo index ee66c977d9..547366a0cc 100644 Binary files a/mayan/apps/events/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/ru/LC_MESSAGES/django.po b/mayan/apps/events/locale/ru/LC_MESSAGES/django.po index d812db1fa8..4cf29eade6 100644 --- a/mayan/apps/events/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/ru/LC_MESSAGES/django.po @@ -1,40 +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: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-07-19 20:01+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "События" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "временная метка" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "Субъект" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "Глагол" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "Неизвестный или устаревший тип события: {0}" @@ -43,11 +46,11 @@ msgstr "Неизвестный или устаревший тип события msgid "Name" msgstr "Название" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Тип события" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "Типы событий" @@ -55,16 +58,16 @@ msgstr "Типы событий" msgid "Access the events of an object" msgstr "Доступ к событиям объекта" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "Объект" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "События для: %s" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "События с типом: %s" diff --git a/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.mo index d37939c3ed..3d73e2761e 100644 Binary files a/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.po index 7bd47d5b05..f4f59a7679 100644 --- a/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/sl_SI/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +44,11 @@ msgstr "" msgid "Name" msgstr "Ime" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +56,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.mo index 26f50e67a3..11afdfa3fb 100644 Binary files a/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.po index 228280c72f..d5f637a8fa 100644 --- a/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/vi_VN/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "Tên" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "Loại sự kiện" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.mo index f6bcb07fd9..b26565ae3f 100644 Binary files a/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.po index 9b71cf75b7..87c507adc4 100644 --- a/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/events/locale/zh_CN/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:07+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:19 links.py:27 links.py:31 permissions.py:7 views.py:38 +#: apps.py:18 links.py:31 links.py:35 permissions.py:7 views.py:36 msgid "Events" msgstr "" -#: apps.py:56 +#: apps.py:27 msgid "Timestamp" msgstr "" -#: apps.py:58 +#: apps.py:29 msgid "Actor" msgstr "" -#: apps.py:60 +#: apps.py:31 msgid "Verb" msgstr "" -#: classes.py:17 +#: classes.py:22 #, python-brace-format msgid "Unknown or obsolete event type: {0}" msgstr "" @@ -42,11 +43,11 @@ msgstr "" msgid "Name" msgstr "名称" -#: models.py:20 +#: models.py:17 msgid "Event type" msgstr "事件类型" -#: models.py:21 +#: models.py:18 msgid "Event types" msgstr "" @@ -54,16 +55,16 @@ msgstr "" msgid "Access the events of an object" msgstr "" -#: views.py:31 views.py:90 +#: views.py:29 views.py:84 msgid "Target" msgstr "" -#: views.py:75 +#: views.py:69 #, python-format msgid "Events for: %s" msgstr "" -#: views.py:98 +#: views.py:92 #, python-format msgid "Events of type: %s" msgstr "" diff --git a/mayan/apps/events/tests/test_api.py b/mayan/apps/events/tests/test_api.py index dadc0f531a..63cea28c6c 100644 --- a/mayan/apps/events/tests/test_api.py +++ b/mayan/apps/events/tests/test_api.py @@ -2,10 +2,10 @@ from __future__ import unicode_literals from django.core.urlresolvers import reverse -from rest_framework.test import APITestCase +from rest_api.tests import BaseAPITestCase -class EventAPITestCase(APITestCase): +class EventAPITestCase(BaseAPITestCase): def test_evet_type_list_view(self): response = self.client.get(reverse('rest_api:event-type-list')) self.assertEqual(response.status_code, 200) diff --git a/mayan/apps/folders/apps.py b/mayan/apps/folders/apps.py index 0d1a0eed95..8de30eb12b 100644 --- a/mayan/apps/folders/apps.py +++ b/mayan/apps/folders/apps.py @@ -28,8 +28,8 @@ from .permissions import ( class FoldersApp(MayanAppConfig): + has_tests = True name = 'folders' - test = True verbose_name = _('Folders') def ready(self): diff --git a/mayan/apps/folders/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/ar/LC_MESSAGES/django.mo index 00b45bf3bf..39909d5bde 100644 Binary files a/mayan/apps/folders/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/ar/LC_MESSAGES/django.po b/mayan/apps/folders/locale/ar/LC_MESSAGES/django.po index b858b60f3a..f7a478b115 100644 --- a/mayan/apps/folders/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,18 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "المجلدات" @@ -28,51 +30,55 @@ msgstr "المجلدات" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "الوثائق" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "مجلد" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "تحرير" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "مجلد" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +99,6 @@ msgid "Remove documents from folders" msgstr "إزالة وثائق من المجلدات" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,44 +110,86 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "يجب أن توفر ما لا يقل عن وثيقة واحدة." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "الوثيقة %(document)s تم اضافتها للمجلد %(folder)s بنجاح" +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "إضافة" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "الوثيقة %(document)s موجودة بالمجلد %(folder)s مسبقاً" -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "الوثيقة %(document)s تم اضافتها للمجلد %(folder)s بنجاح" + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "إزالة" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -151,30 +197,54 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "يجب أن توفر ما لا يقل عن مجلد واحد." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "الوثيقة %s أزيلت بنجاح" +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "خطأ بمسح الوثيقة %(document)s : %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" +#~ msgstr[3] "97c0d1f6a737e93c542fd20ae2682559_pl_3" +#~ msgstr[4] "97c0d1f6a737e93c542fd20ae2682559_pl_4" +#~ msgstr[5] "97c0d1f6a737e93c542fd20ae2682559_pl_5" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" +#~ msgstr[3] "81c6b0124b038e876c41a6794709629b_pl_3" +#~ msgstr[4] "81c6b0124b038e876c41a6794709629b_pl_4" +#~ msgstr[5] "81c6b0124b038e876c41a6794709629b_pl_5" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -222,11 +292,11 @@ msgstr[5] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -259,12 +329,12 @@ msgstr[5] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/bg/LC_MESSAGES/django.mo index f4126e9631..7bccdb201a 100644 Binary files a/mayan/apps/folders/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/bg/LC_MESSAGES/django.po b/mayan/apps/folders/locale/bg/LC_MESSAGES/django.po index c8e0310035..aba6e09643 100644 --- a/mayan/apps/folders/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/bg/LC_MESSAGES/django.po @@ -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: # Iliya Georgiev , 2012 @@ -10,18 +10,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Папки" @@ -29,51 +30,55 @@ msgstr "Папки" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Документи" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Папка" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Редактиране" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Папка" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -86,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -95,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Премахване на документи от папки" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -107,67 +110,125 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Документ: %(document)s е добавен в папка: %(folder)s успешно." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Добави" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Документ: %(document)s е вече в папка: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Документ: %(document)s е добавен в папка: %(folder)s успешно." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Премахнете" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Трябва да поставите поне един документ в папката." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Документ: %s премахнат успешно." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Документ: %(document)s грешка при изтриване: %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -215,11 +276,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -252,12 +313,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.mo index a84f5c0552..36cc2b70c4 100644 Binary files a/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.po index c25394f916..729c5c6971 100644 --- a/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,18 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Folderi" @@ -28,51 +30,55 @@ msgstr "Folderi" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumenti" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Folder" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Urediti" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Folder" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Ukloniti dokumente iz foldera" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,69 +110,129 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Mora biti barem jedan dokument." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Dokument: %(document)s uspješno dodan u folder: %(folder)s ." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Dodati" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Dokument: %(document)s je već u folderu: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Dokument: %(document)s uspješno dodan u folder: %(folder)s ." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Ukloniti" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Mora biti makar jedan folder dokumenata." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Dokument \"%s\" uspješno uklonjen." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Dokument: %(document)s greška brisanja: %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -216,11 +280,11 @@ msgstr[2] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -253,12 +317,12 @@ msgstr[2] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/da/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/da/LC_MESSAGES/django.mo index 2de6d19193..dde260b712 100644 Binary files a/mayan/apps/folders/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/da/LC_MESSAGES/django.po b/mayan/apps/folders/locale/da/LC_MESSAGES/django.po index c60daa7cf3..486512ec8e 100644 --- a/mayan/apps/folders/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/da/LC_MESSAGES/django.po @@ -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: # Mads L. Nielsen , 2012 @@ -9,18 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Mapper" @@ -28,51 +29,55 @@ msgstr "Mapper" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumenter" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Mappe" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Mappe" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +90,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +98,6 @@ msgid "Remove documents from folders" msgstr "Fjern dokumenter fra mapper" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,67 +109,125 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Angiv mindst ét ​​dokument." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Dokument: %(document)s føjet til mappen: %(folder)s med succes." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Dokument: %(document)s er allerede i mappen: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Dokument: %(document)s føjet til mappen: %(folder)s med succes." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Skal give mindst ét mappe dokument." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Dokument: %s blev slettet." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Dokument: %(document)s slettefejl: %(error)s " +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -214,11 +275,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -251,12 +312,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.mo index 749888c41c..20a54cf1f0 100644 Binary files a/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.po index 1b29f895de..3e2409cdef 100644 --- a/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/de_DE/LC_MESSAGES/django.po @@ -1,10 +1,11 @@ # 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 , 2015 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Roberto Rosario, 2012 # Stefan Lodders , 2012 @@ -13,18 +14,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" -"Last-Translator: Roberto Rosario\n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-24 22:43+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Ordner" @@ -32,51 +34,55 @@ msgstr "Ordner" msgid "Created" msgstr "Erstellt" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumente" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Ordner" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "Aus Ordner entfernen" -#: links.py:20 -msgid "Add to a folder" +#: links.py:27 +msgid "Add to a folders" msgstr "Zu Ordner hinzufügen" -#: links.py:24 -msgid "Add to folder" +#: links.py:31 +msgid "Add to folders" msgstr "Zu Ordner hinzufügen" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Ordner erstellen" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Löschen" -#: links.py:36 -msgid "Remove from folder" -msgstr "Aus Ordner entfernen" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Bearbeiten" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "Alle" + +#: models.py:18 msgid "Label" msgstr "Bezeichner" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Erstellungsdatum" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Ordner" + +#: models.py:56 msgid "Document folder" msgstr "Dokumentenordner" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Dokumentenordner" @@ -89,7 +95,6 @@ msgid "Edit folders" msgstr "Ordner bearbeiten" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Ordner löschen" @@ -98,7 +103,6 @@ msgid "Remove documents from folders" msgstr "Dokumente aus Ordnern entfernen" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Ordner anzeigen" @@ -110,67 +114,125 @@ msgstr "Dokumente zu Ordnern hinzufügen" msgid "Primary key of the document to be added." msgstr "Primärschlüssel des hinzuzufügenden Dokuments." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Ordner %s löschen?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Dokumente in Ordner %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Ordner %s bearbeiten" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Ordner mit Dokument %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Dokument %(document)s zu Ordner %(folder)s erfolgreich hinzugefügt" +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Hinzufügen" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Dokument %(document)s ist bereits im Ordner %(folder)s" -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Dokument zu Ordner hinzufügen" -msgstr[1] "Dokumente zu Ordner hinzufügen" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Es muss mindestens ein Ordnerdokument angegeben werden" - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Dokument \"%s\" erfolgreich entfernt" +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Dokument %(document)s zu Ordner %(folder)s erfolgreich hinzugefügt" -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Fehler beim Löschen von Dokument %(document)s: %(error)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Ausgewähltes Dokument aus Ordner %(folder)s entfernen?" -msgstr[1] "Ausgewählte Dokumente aus Ordner %(folder)s entfernen?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Entfernen" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -218,11 +280,11 @@ msgstr[1] "Ausgewählte Dokumente aus Ordner %(folder)s entfernen?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -255,12 +317,12 @@ msgstr[1] "Ausgewählte Dokumente aus Ordner %(folder)s entfernen?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/en/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/en/LC_MESSAGES/django.mo index 68442b990e..5383fad5ca 100644 Binary files a/mayan/apps/folders/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/en/LC_MESSAGES/django.po b/mayan/apps/folders/locale/en/LC_MESSAGES/django.po index 2ef17ac4f4..6c0cc5c5df 100644 --- a/mayan/apps/folders/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-12-12 06:05+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,8 +18,8 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Folders" @@ -28,59 +28,63 @@ msgstr "Folders" msgid "Created" msgstr "created" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 #, fuzzy msgid "Documents" msgstr "documents" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Folder" - -#: links.py:20 +#: links.py:24 links.py:34 #, fuzzy -msgid "Add to a folder" +msgid "Remove from folders" +msgstr "remove from folder" + +#: links.py:27 +#, fuzzy +msgid "Add to a folders" msgstr "add to a folder" -#: links.py:24 +#: links.py:31 #, fuzzy -msgid "Add to folder" +msgid "Add to folders" msgstr "add to folder" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 #, fuzzy msgid "Create folder" msgstr "create folder" -#: links.py:32 +#: links.py:46 #, fuzzy msgid "Delete" msgstr "delete" -#: links.py:36 -#, fuzzy -msgid "Remove from folder" -msgstr "remove from folder" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 #, fuzzy msgid "Datetime created" msgstr "datetime created" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Folder" + +#: models.py:56 #, fuzzy msgid "Document folder" msgstr "documents in folder: %s" -#: models.py:64 +#: models.py:57 #, fuzzy msgid "Document folders" msgstr "documents in folder: %s" @@ -120,72 +124,138 @@ msgstr "Add document to a folder" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, fuzzy, python-format #| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Delete new folders" -#: views.py:66 +#: views.py:61 #, fuzzy, python-format msgid "Documents in folder: %s" msgstr "documents in folder: %s" -#: views.py:93 +#: views.py:84 #, fuzzy, python-format msgid "Edit folder: %s" msgstr "edit folder: %s" -#: views.py:127 +#: views.py:116 #, fuzzy, python-format msgid "Folders containing document: %s" msgstr "folders containing: %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Must provide at least one document." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Document: %(document)s added to folder: %(folder)s successfully." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "" + +#: views.py:139 +#, fuzzy +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "Add document to a folder" +msgstr[1] "Add document to a folder" + +#: views.py:150 +#, fuzzy, python-format +msgid "Add document \"%s\" to folders" +msgstr "Add document to a folder" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Document: %(document)s is already in folder: %(folder)s." -#: views.py:205 +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Document: %(document)s added to folder: %(folder)s successfully." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "" + +#: views.py:224 #, fuzzy -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Add document to a folder" -msgstr[1] "Add document to a folder" +#| msgid "Remove documents from folders" +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "Remove documents from folders" +msgstr[1] "Remove documents from folders" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Must provide at least one folder document." - -#: views.py:248 -#, python-format -msgid "Document: %s removed successfully." -msgstr "Document: %s removed successfully." - -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Document: %(document)s delete error: %(error)s" - -#: views.py:267 +#: views.py:235 #, fuzzy, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -"Are you sure you wish to remove the document: %(document)s from the folder " -"\"%(folder)s\"?" -msgstr[1] "" -"Are you sure you wish to remove the document: %(document)s from the folder " -"\"%(folder)s\"?" +#| msgid "Remove documents from folders" +msgid "Remove document \"%s\" to folders" +msgstr "Remove documents from folders" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, fuzzy, python-format +#| msgid "Document: %(document)s is already in folder: %(folder)s." +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "Document: %(document)s is already in folder: %(folder)s." + +#: views.py:282 +#, fuzzy, python-format +#| msgid "Document: %(document)s is already in folder: %(folder)s." +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "Document: %(document)s is already in folder: %(folder)s." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#, fuzzy +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "Add document to a folder" +#~ msgstr[1] "Add document to a folder" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#, fuzzy +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "" +#~ "Are you sure you wish to remove the document: %(document)s from the " +#~ "folder \"%(folder)s\"?" +#~ msgstr[1] "" +#~ "Are you sure you wish to remove the document: %(document)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." diff --git a/mayan/apps/folders/locale/es/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/es/LC_MESSAGES/django.mo index ef6452098c..fdfd376d76 100644 Binary files a/mayan/apps/folders/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/es/LC_MESSAGES/django.po b/mayan/apps/folders/locale/es/LC_MESSAGES/django.po index acaa5a9978..5fb2b69aa8 100644 --- a/mayan/apps/folders/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/es/LC_MESSAGES/django.po @@ -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: # jmcainzos , 2014 @@ -12,18 +12,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-05-09 01:41+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 17:50+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Carpetas" @@ -31,51 +32,55 @@ msgstr "Carpetas" msgid "Created" msgstr "Creado" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documentos" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Carpeta" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Añadir a una carpeta" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Añadir a carpeta" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Crear carpetas" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Borrar" -#: links.py:36 -msgid "Remove from folder" -msgstr "Remover de la carpeta" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "Todos" + +#: models.py:18 msgid "Label" msgstr "Etiqueta" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Fecha y hora que fue creado" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Carpeta" + +#: models.py:56 msgid "Document folder" msgstr "Carpeta de documento" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Carpetas de documento" @@ -88,7 +93,6 @@ msgid "Edit folders" msgstr "Editar carpetas" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Borrar carpetas" @@ -97,7 +101,6 @@ msgid "Remove documents from folders" msgstr "Eliminar documentos de las carpetas" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Ver carpetas" @@ -109,67 +112,125 @@ msgstr "Agregar documentos a carpetas" msgid "Primary key of the document to be added." msgstr "Llave primaria del documento a ser agregado." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "¿Eliminar la carpeta: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documentos en la carpeta: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Editar carpeta: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Las carpetas que contienen el documento: %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Debe proporcionar al menos un documento." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documento: %(document)s agregado a la carpeta: %(folder)s con éxito." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Agregar" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documento: %(document)s ya está en la carpeta: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Añadir documento a la carpeta" -msgstr[1] "Añadir los documentos a la carpeta" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Debe proveer al menos un documento de carpeta." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Documento: %s eliminado con éxito." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Documento: %(document)s agregado a la carpeta: %(folder)s con éxito." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Documento: %(document)s error de eliminación: %(error)s " +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "¿Eliminar el documento seleccionado de la carpeta: %(folder)s?" -msgstr[1] "¿Eliminar los documentos seleccionados de la carpeta: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Eliminar" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -217,11 +278,11 @@ msgstr[1] "¿Eliminar los documentos seleccionados de la carpeta: %(folder)s?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -254,12 +315,12 @@ msgstr[1] "¿Eliminar los documentos seleccionados de la carpeta: %(folder)s?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/fa/LC_MESSAGES/django.mo index aa8f61db7d..ab910ffa60 100644 Binary files a/mayan/apps/folders/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/fa/LC_MESSAGES/django.po b/mayan/apps/folders/locale/fa/LC_MESSAGES/django.po index 1380366ecf..9be9867035 100644 --- a/mayan/apps/folders/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/fa/LC_MESSAGES/django.po @@ -1,25 +1,26 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "پرونده ها" @@ -27,51 +28,55 @@ msgstr "پرونده ها" msgid "Created" msgstr "ساخته‌شده" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "اسناد" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "پرونده" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "اضافه به پرونده" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "اضافه به پرونده" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "ایجاد پرونده" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "حذف" -#: links.py:36 -msgid "Remove from folder" -msgstr "حذف از پرونده" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "ویرایش" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "برچسب" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "تاریخ و زمان ایجاد" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "پرونده" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -84,7 +89,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -93,7 +97,6 @@ msgid "Remove documents from folders" msgstr "حذف اسناد از پرونده ها" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -105,66 +108,122 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "اسناد داحل پرونده:%s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "ویرایش پرونده: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "پوشه های شامل اسناد : %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "حداقل یک سند باید ارایه شود." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "سند%(document)s با موفقیت به پرونده%(folder)s اضافه شد." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "افزودن" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "سند%(document)s درون پرونده%(folder)s. میباشد." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "اسناد را به پوشه اضافه کنید" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "حداقل یک پرونده سند باید ارایه گردد." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "سند: %s با موفقیت حذف شد." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "سند%(document)s با موفقیت به پرونده%(folder)s اضافه شد." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "سند%(document)s خطای حذف%(error)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "حذف" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" + #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -211,11 +270,11 @@ msgstr[0] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -248,12 +307,12 @@ msgstr[0] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/fr/LC_MESSAGES/django.mo index 768c59ea0a..54c7c913b1 100644 Binary files a/mayan/apps/folders/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/fr/LC_MESSAGES/django.po b/mayan/apps/folders/locale/fr/LC_MESSAGES/django.po index 68ffc036d4..f624fc357c 100644 --- a/mayan/apps/folders/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/fr/LC_MESSAGES/django.po @@ -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: # Pierre Lhoste , 2012 @@ -11,18 +11,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Répertoires" @@ -30,51 +31,55 @@ msgstr "Répertoires" msgid "Created" msgstr "Créé" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documents" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Répertoire" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Ajouter à un dossier" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Ajouter au dossier" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Créer un dossier" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Supprimer" -#: links.py:36 -msgid "Remove from folder" -msgstr "Supprimer du dossier" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Modifier" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Libellé" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Date et heure de création" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Répertoire" + +#: models.py:56 msgid "Document folder" msgstr "Dossier du document" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Dossiers" @@ -87,7 +92,6 @@ msgid "Edit folders" msgstr "Modifier les dossiers" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Supprimer les dossiers" @@ -96,7 +100,6 @@ msgid "Remove documents from folders" msgstr "Retirer des documents des répertoires" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Afficher les dossiers" @@ -108,67 +111,126 @@ msgstr "Ajouter des documents aux dossiers" msgid "Primary key of the document to be added." msgstr "Clé primaire du document à ajouter." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Supprimer les dossier : %s ?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documents du dossier: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Modifier le répertoire: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Dossiers contenant le document: %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Il est nécessaire de fournir au moins un document." +#: views.py:127 +#, python-format +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:175 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Ajouter" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 +#, python-format +msgid "Document: %(document)s is already in folder: %(folder)s." +msgstr "" +"Document: %(document)s est déjà présent dans le répertoire: %(folder)s." + +#: views.py:200 #, python-format msgid "Document: %(document)s added to folder: %(folder)s successfully." msgstr "Document: %(document)s ajouté avec succès au répertoire: %(folder)s." -#: views.py:184 +#: views.py:212 #, python-format -msgid "Document: %(document)s is already in folder: %(folder)s." -msgstr "Document: %(document)s est déjà présent dans le répertoire: %(folder)s." +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Ajouter un document au répertoire" -msgstr[1] "Ajouter les documents au répertoire" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Vous devez fournir au moins un document pour le répertoire." - -#: views.py:248 +#: views.py:215 #, python-format -msgid "Document: %s removed successfully." -msgstr "Document: %s supprimé avec succès." +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Document: %(document)s erreur de suppression: %(error)s" +#: views.py:222 +msgid "Remove" +msgstr "Supprimer" -#: views.py:267 +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Êtes vous certain de vouloir supprimer le document sélectionné du dossier %(folder)s ?" -msgstr[1] "Êtes vous certain de vouloir supprimer les documents sélectionnés du dossier %(folder)s ?" +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -216,11 +278,11 @@ msgstr[1] "Êtes vous certain de vouloir supprimer les documents sélectionnés #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -253,12 +315,12 @@ msgstr[1] "Êtes vous certain de vouloir supprimer les documents sélectionnés #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/hu/LC_MESSAGES/django.mo index e6afc46599..fa6c9f9b6d 100644 Binary files a/mayan/apps/folders/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/hu/LC_MESSAGES/django.po b/mayan/apps/folders/locale/hu/LC_MESSAGES/django.po index f0af4349d8..f562bacbde 100644 --- a/mayan/apps/folders/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/hu/LC_MESSAGES/django.po @@ -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: # Dezső József , 2013 @@ -9,18 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Mappák" @@ -28,51 +29,55 @@ msgstr "Mappák" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "dokumentumok" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Mappa" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Mappa" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +90,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +98,6 @@ msgid "Remove documents from folders" msgstr "Dokumentumok eltávolítása a mappákból" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,67 +109,125 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Adjon meg legalább egy dokumentumot." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "A %(document)s dokumentum elhelyezése a %(folder)s mappában sikerült." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "A %(document)s nevű dokumentum már van a %(folder)s. mappában." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "A %(document)s dokumentum elhelyezése a %(folder)s mappában sikerült." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Legalább egy dokumentum mappa szükséges" - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "A %s dokumentum eltávolítása sikerült." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Hiba %(error)s a %(document)s dokumentum törlésekor." +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -214,11 +275,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -251,12 +312,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/id/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/id/LC_MESSAGES/django.mo index 902719afa1..d0417860ff 100644 Binary files a/mayan/apps/folders/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/id/LC_MESSAGES/django.po b/mayan/apps/folders/locale/id/LC_MESSAGES/django.po index aeaf59e46c..d587b927ed 100644 --- a/mayan/apps/folders/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/id/LC_MESSAGES/django.po @@ -1,25 +1,26 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "" @@ -27,51 +28,55 @@ msgstr "" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumen" -#: forms.py:34 models.py:44 -msgid "Folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:20 -msgid "Add to a folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:31 +msgid "Add to folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -84,7 +89,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -93,7 +97,6 @@ msgid "Remove documents from folders" msgstr "" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -105,66 +108,122 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgid "Add to folder request performed on %(count)d document" msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "tambah" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "" -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "" - -#: views.py:227 -msgid "Must provide at least one folder document." +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." msgstr "" -#: views.py:248 +#: views.py:212 #, python-format -msgid "Document: %s removed successfully." +msgid "Remove from folder request performed on %(count)d document" msgstr "" -#: views.py:254 +#: views.py:215 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Dokumen: %(document)s penghapusan bermasalah: %(error)s" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" -#: views.py:267 -#, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#: views.py:222 +msgid "Remove" +msgstr "hapus" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" + #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -211,11 +270,11 @@ msgstr[0] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -248,12 +307,12 @@ msgstr[0] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/it/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/it/LC_MESSAGES/django.mo index d1bfbbdc72..d00d914b02 100644 Binary files a/mayan/apps/folders/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/it/LC_MESSAGES/django.po b/mayan/apps/folders/locale/it/LC_MESSAGES/django.po index fa6fd9ff74..9af8f4389f 100644 --- a/mayan/apps/folders/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/it/LC_MESSAGES/django.po @@ -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: # Carlo Zanatto <>, 2012 @@ -13,18 +13,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Cartelle" @@ -32,51 +33,55 @@ msgstr "Cartelle" msgid "Created" msgstr "Creato" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documenti" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Cartella" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Aggiungi ad una cartella" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Aggiungi alla cartella" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Crea cartella" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Cancella" -#: links.py:36 -msgid "Remove from folder" -msgstr "Rimuovi dalla cartella" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Modifica" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etichetta" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Data e ora di creazione" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Cartella" + +#: models.py:56 msgid "Document folder" msgstr "Cartella documento" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Cartella documenti" @@ -89,7 +94,6 @@ msgid "Edit folders" msgstr "Modifica cartelle" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Cancella cartelle" @@ -98,7 +102,6 @@ msgid "Remove documents from folders" msgstr "Rimuovere i documenti da cartelle" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Vedi cartelle" @@ -110,67 +113,126 @@ msgstr "Aggiungi i documenti alle cartelle" msgid "Primary key of the document to be added." msgstr "Chiave primaria del documento da aggiungere" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Cancellare la cartella: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documenti nella cartella: %s?" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Modifica cartella: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Cartelle che contengono il documento: %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Bisogna fornire almeno un documento." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documento: %(document)s aggiunto alla cartella: %(folder)s successfully." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Aggiungi" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documento: %(document)s è già nella cartella: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Aggiungi documento alla cartella" -msgstr[1] "Aggiungi documenti alla cartella" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Devi almeno indicare una cartella documenti." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Documento: %s cancellato con successo." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "" +"Documento: %(document)s aggiunto alla cartella: %(folder)s successfully." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Documento: %(document)s errore di cancellazione: %(error)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Rimuovere il documento selezionato dalla cartella: %(folder)s?" -msgstr[1] "Rimuovere i documenti selezionati dalla cartella: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Rimuovi" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -218,11 +280,11 @@ msgstr[1] "Rimuovere i documenti selezionati dalla cartella: %(folder)s?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -255,12 +317,12 @@ msgstr[1] "Rimuovere i documenti selezionati dalla cartella: %(folder)s?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.mo index e66bca40b5..7eb3a18071 100644 Binary files a/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.po index bff47df7dd..f10c59d996 100644 --- a/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/nl_NL/LC_MESSAGES/django.po @@ -1,26 +1,28 @@ # 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 , 2016 +# Johan Braeken, 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-01 09:04+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Mappen" @@ -28,51 +30,55 @@ msgstr "Mappen" msgid "Created" msgstr "Aangemaakt" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documenten" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Map" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Voeg toe aan een map" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Voeg toe aan map" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Maak map" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Verwijder" -#: links.py:36 -msgid "Remove from folder" -msgstr "Verwijder uit map" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "bewerken" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Label" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Datumtijd aangemaakt" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Map" + +#: models.py:56 msgid "Document folder" msgstr "Documentmap" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Documentmappen" @@ -85,7 +91,6 @@ msgid "Edit folders" msgstr "Bewerk mappen" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Verwijder mappe" @@ -94,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Verwijder documenten van mappen" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Bekijk mappen" @@ -104,70 +108,128 @@ msgstr "Voeg documenten toe aan mappe" #: serializers.py:58 msgid "Primary key of the document to be added." -msgstr "" +msgstr "Primaire sleutel van het toe te voegen document." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Verwijder de map: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documenten in map: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Bewerk map: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Mappen die document %s bevatten" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Document: %(document)s succesvol toegevoegd aan map: %(folder)s." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Voeg toe" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Document: %(document)s bestaat al in map: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Voeg document toe aan map" -msgstr[1] "Voeg documenten toe aan map" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "U dient tenminste één mapdocument op te geven." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Document: %s succesvol verwijderd." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Document: %(document)s succesvol toegevoegd aan map: %(folder)s." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Fout bij verwijderen document: %(document)s. foutmelding: %(error)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Verwijder" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" + #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -214,11 +276,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -251,12 +313,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/pl/LC_MESSAGES/django.mo index d96133b64b..68d6f06531 100644 Binary files a/mayan/apps/folders/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/pl/LC_MESSAGES/django.po b/mayan/apps/folders/locale/pl/LC_MESSAGES/django.po index 64d57db613..c195434b0e 100644 --- a/mayan/apps/folders/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/pl/LC_MESSAGES/django.po @@ -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: # Annunnaky , 2015 @@ -11,18 +11,21 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Foldery" @@ -30,51 +33,55 @@ msgstr "Foldery" msgid "Created" msgstr "Utworzony" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumenty" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Dodaj do folderu" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Dodaj do folderu" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Utwórz folder" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Usuń" -#: links.py:36 -msgid "Remove from folder" -msgstr "Usuń z folderu" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Edytuj" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etykieta" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Data utworzenia" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Folder" + +#: models.py:56 msgid "Document folder" msgstr "Folder dokumentów" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Foldery dokumentów" @@ -87,7 +94,6 @@ msgid "Edit folders" msgstr "Edytuj foldery" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Usuń foldery" @@ -96,7 +102,6 @@ msgid "Remove documents from folders" msgstr "Usuń dokumenty z folderów" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Przeglądaj foldery" @@ -108,69 +113,133 @@ msgstr "Dodaj dokumenty do folderów" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Usunąć folder: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Dokumenty w folderze: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Edycja folderu: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Foldery zawierające dokument: %s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Musisz dodać co najmniej jeden dokument." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Dokument : %(document)s pomyślnie dodano do folderu: %(folder)s." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Dodaj" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Dokument: %(document)s jest już w folderze: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Dodaj dokument do folderu" -msgstr[1] "Dodaj dokumenty do folderu" -msgstr[2] "Dodaj dokumenty do folderu" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Musisz dodać co najmiej jeden katalog dokumentów." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Pomyślnie usunięto dokument: %s. " +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Dokument : %(document)s pomyślnie dodano do folderu: %(folder)s." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Błąd %(error)s podczas usuwania dokumentu %(document)s" +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Usunąć wybrany dokument z folderu: %(folder)s?" -msgstr[1] "Usunąć wybrane dokumenty z folderu: %(folder)s?" -msgstr[2] "Usunąć wybrane dokumenty z folderu: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Usuń" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" +#~ msgstr[3] "97c0d1f6a737e93c542fd20ae2682559_pl_3" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" +#~ msgstr[3] "81c6b0124b038e876c41a6794709629b_pl_3" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -218,11 +287,11 @@ msgstr[2] "Usunąć wybrane dokumenty z folderu: %(folder)s?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -255,12 +324,12 @@ msgstr[2] "Usunąć wybrane dokumenty z folderu: %(folder)s?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/pt/LC_MESSAGES/django.mo index 0f7ce74b79..cf40685cc4 100644 Binary files a/mayan/apps/folders/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/pt/LC_MESSAGES/django.po b/mayan/apps/folders/locale/pt/LC_MESSAGES/django.po index 5a8f74114e..ecb6f54e2c 100644 --- a/mayan/apps/folders/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/pt/LC_MESSAGES/django.po @@ -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: # Renata Oliveira , 2011 @@ -11,18 +11,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Pastas" @@ -30,51 +31,55 @@ msgstr "Pastas" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documentos" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Pasta" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Eliminar" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Nome" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Pasta" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -87,7 +92,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -96,7 +100,6 @@ msgid "Remove documents from folders" msgstr "Remover documentos das pastas" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -108,67 +111,125 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documento: %(document)s adicionados à pasta: %(folder)s com sucesso." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Adicionar" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documento: %(document)s já está na pasta: %(folder)s ." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Documento: %(document)s adicionados à pasta: %(folder)s com sucesso." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Remover" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Deve fornecer pelo menos um documento da pasta." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Documento: %s removido com sucesso." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Documento: %(document)s erro ao eliminar: %(error)s " +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -216,11 +277,11 @@ msgstr[1] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -253,12 +314,12 @@ msgstr[1] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.mo index 40124051ff..f602785537 100644 Binary files a/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.po index ec519ea5bb..d6baa4ce91 100644 --- a/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -13,18 +13,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Pastas" @@ -32,51 +33,55 @@ msgstr "Pastas" msgid "Created" msgstr "Criada" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documentos" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Pasta" +#: links.py:24 links.py:34 +msgid "Remove from folders" +msgstr "" -#: links.py:20 -msgid "Add to a folder" -msgstr "Adicionar a uma pasta" +#: links.py:27 +msgid "Add to a folders" +msgstr "" -#: links.py:24 -msgid "Add to folder" -msgstr "Adicione a pasta" +#: links.py:31 +msgid "Add to folders" +msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "Criar pasta" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Excluir" -#: links.py:36 -msgid "Remove from folder" -msgstr "Remover da pasta" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etiqueta" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "Data e hora de criação" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Pasta" + +#: models.py:56 msgid "Document folder" msgstr "Pasta de documento" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "Pastas de documentos" @@ -89,7 +94,6 @@ msgid "Edit folders" msgstr "Editar pastas" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "Apagar pastas" @@ -98,7 +102,6 @@ msgid "Remove documents from folders" msgstr "Remover documentos das pastas" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "Visualizar pastas" @@ -110,67 +113,125 @@ msgstr "Adicionar documentos para pastas" msgid "Primary key of the document to be added." msgstr "Chave primária do documento a ser adicionado." -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "Apagar a pasta: %s?" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "Documentos na pasta: %s" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "Editar pasta: %s" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "Pastas contendo documento:%s" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Deve fornecer, pelo menos, um documento." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documento: %(document)s adicionados à pasta: %(folder)s com sucesso." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Adicionar" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documento: %(document)s já está na pasta: %(folder)s ." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" -msgstr[0] "Adicionar documento para pasta" -msgstr[1] "Adicionar documentos para pasta" - -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Deve fornecer pelo menos um documento da pasta." - -#: views.py:248 +#: views.py:200 #, python-format -msgid "Document: %s removed successfully." -msgstr "Documento: %s removido com sucesso." +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Documento: %(document)s adicionados à pasta: %(folder)s com sucesso." -#: views.py:254 +#: views.py:212 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Documento: %(document)s erro ao deletar: %(error)s " +msgid "Remove from folder request performed on %(count)d document" +msgstr "" -#: views.py:267 +#: views.py:215 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "Remove o documento selecionado da pasta: %(folder)s?" -msgstr[1] "Remove os documentos selecionados da pasta: %(folder)s?" +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Remover" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" +msgstr[0] "" +msgstr[1] "" + +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" +msgstr "" + +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" + +#: views.py:273 +#, python-format +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -218,11 +279,11 @@ msgstr[1] "Remove os documentos selecionados da pasta: %(folder)s?" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -255,12 +316,12 @@ msgstr[1] "Remove os documentos selecionados da pasta: %(folder)s?" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.mo index 88ac90571e..425efcf398 100644 Binary files a/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.po index cecc58b1d8..3c8db9b0a2 100644 --- a/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,18 +9,20 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-04-17 09:43+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Directoare" @@ -28,51 +30,55 @@ msgstr "Directoare" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Documente" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Director" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Șterge" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Editează" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etichetă" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Director" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Scoateți documentele din directoare" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,69 +110,130 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Trebuie selectat cel puțin un document." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Documentul:%(document)s a fost adăugat la directorul :%(folder)s cu succes." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Adaugă" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Documentul: %(document)s este deja în directorul : %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "" +"Documentul:%(document)s a fost adăugat la directorul :%(folder)s cu succes." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Şterge" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Trebuie selectat cel puțin un director." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Document: % s eliminat cu succes." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Eroare %(error)s ştergere document %(document)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -216,11 +281,11 @@ msgstr[2] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -253,12 +318,12 @@ msgstr[2] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/ru/LC_MESSAGES/django.mo index 8f3c334adb..4d813aacf6 100644 Binary files a/mayan/apps/folders/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/ru/LC_MESSAGES/django.po b/mayan/apps/folders/locale/ru/LC_MESSAGES/django.po index 7b075a92c4..02c2ce58b1 100644 --- a/mayan/apps/folders/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/ru/LC_MESSAGES/django.po @@ -1,25 +1,28 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Папки" @@ -27,51 +30,55 @@ msgstr "Папки" msgid "Created" msgstr "Создано" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Документы" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Папка" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "Удалить" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Редактировать" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Надпись" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Папка" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -84,7 +91,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -93,7 +99,6 @@ msgid "Remove documents from folders" msgstr "Удаление документов из папок" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -105,71 +110,133 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Необходимо указатьть хотя бы один документ." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Документ: %(document)s добавлен в папку: %(folder)s успешно." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Добавить" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Документ: %(document)s is already in folder: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Документ: %(document)s добавлен в папку: %(folder)s успешно." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Удалить" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Должна быть хотя бы одна папка документов." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Документ: %s успешно удален." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Документ:%(document)s ошибка удаления: %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" +#~ msgstr[3] "97c0d1f6a737e93c542fd20ae2682559_pl_3" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" +#~ msgstr[3] "81c6b0124b038e876c41a6794709629b_pl_3" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -217,11 +284,11 @@ msgstr[3] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -254,12 +321,12 @@ msgstr[3] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.mo index bb1e3b162f..9f6cddc3f7 100644 Binary files a/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.po index dc98b876bb..0071508016 100644 --- a/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/sl_SI/LC_MESSAGES/django.po @@ -1,25 +1,27 @@ # 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-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "" @@ -27,51 +29,55 @@ msgstr "" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Dokumenti" -#: forms.py:34 models.py:44 -msgid "Folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:20 -msgid "Add to a folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:31 +msgid "Add to folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Oznaka" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -84,7 +90,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -93,7 +98,6 @@ msgid "Remove documents from folders" msgstr "" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -105,71 +109,133 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Potrebno je podati vsaj en dokument" - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgid "Add to folder request performed on %(count)d document" msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "" -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "" + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:227 -msgid "Must provide at least one folder document." +#: views.py:235 +#, python-format +msgid "Remove document \"%s\" to folders" msgstr "" -#: views.py:248 -#, python-format -msgid "Document: %s removed successfully." +#: views.py:246 +msgid "Folders from which the selected documents will be removed." msgstr "" -#: views.py:254 +#: views.py:273 #, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Dokument: %(document)s napaka brisanja:%(error)s" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" -#: views.py:267 +#: views.py:282 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" +#~ msgstr[1] "97c0d1f6a737e93c542fd20ae2682559_pl_1" +#~ msgstr[2] "97c0d1f6a737e93c542fd20ae2682559_pl_2" +#~ msgstr[3] "97c0d1f6a737e93c542fd20ae2682559_pl_3" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" +#~ msgstr[1] "81c6b0124b038e876c41a6794709629b_pl_1" +#~ msgstr[2] "81c6b0124b038e876c41a6794709629b_pl_2" +#~ msgstr[3] "81c6b0124b038e876c41a6794709629b_pl_3" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -217,11 +283,11 @@ msgstr[3] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -254,12 +320,12 @@ msgstr[3] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/vi_VN/LC_MESSAGES/django.mo index 82aaa58b8f..724125bebc 100644 Binary files a/mayan/apps/folders/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/folders/locale/vi_VN/LC_MESSAGES/django.po index 58601cfeef..eb9e1713b5 100644 --- a/mayan/apps/folders/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,18 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "Các thư mục" @@ -28,51 +29,55 @@ msgstr "Các thư mục" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "Tài liệu" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "Thư mục" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "Sửa" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "Thư mục" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +90,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +98,6 @@ msgid "Remove documents from folders" msgstr "Xóa các tài liệu từ các thư mục" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,65 +109,121 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu." - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "Tài liệu: %(document)s được thêm vào thư mục: %(folder)s thành công." +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "Thêm" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "Tài liệu: %(document)s đã tồn tại trong thư mục: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "Tài liệu: %(document)s được thêm vào thư mục: %(folder)s thành công." + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "Xóa" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "Cần cung cấp ít nhất một thư mục tài liệu." - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "Tài liệu: %s đã xóa thành công." +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "Tài liệu: %(document)s lỗi xóa: %(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -212,11 +271,11 @@ msgstr[0] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -249,12 +308,12 @@ msgstr[0] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.mo index 2ad8193dd4..0cf11f9426 100644 Binary files a/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.po index 6f7b1920a3..a3e208f666 100644 --- a/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/folders/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,18 +9,19 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:54-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:33 links.py:16 links.py:44 models.py:45 permissions.py:7 -#: views.py:104 +#: apps.py:33 forms.py:30 links.py:18 menus.py:8 models.py:43 permissions.py:7 +#: views.py:95 msgid "Folders" msgstr "文件夹" @@ -28,51 +29,55 @@ msgstr "文件夹" msgid "Created" msgstr "" -#: apps.py:71 links.py:47 models.py:26 +#: apps.py:71 links.py:56 models.py:24 msgid "Documents" msgstr "文档" -#: forms.py:34 models.py:44 -msgid "Folder" -msgstr "文件夹" - -#: links.py:20 -msgid "Add to a folder" +#: links.py:24 links.py:34 +msgid "Remove from folders" msgstr "" -#: links.py:24 -msgid "Add to folder" +#: links.py:27 +msgid "Add to a folders" msgstr "" -#: links.py:27 views.py:42 +#: links.py:31 +msgid "Add to folders" +msgstr "" + +#: links.py:42 views.py:37 msgid "Create folder" msgstr "" -#: links.py:32 +#: links.py:46 msgid "Delete" msgstr "" -#: links.py:36 -msgid "Remove from folder" -msgstr "" - -#: links.py:40 +#: links.py:49 msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:53 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:23 +#: models.py:21 msgid "Datetime created" msgstr "" -#: models.py:63 +#: models.py:42 +msgid "Folder" +msgstr "文件夹" + +#: models.py:56 msgid "Document folder" msgstr "" -#: models.py:64 +#: models.py:57 msgid "Document folders" msgstr "" @@ -85,7 +90,6 @@ msgid "Edit folders" msgstr "" #: permissions.py:16 -#| msgid "Delete new folders" msgid "Delete folders" msgstr "" @@ -94,7 +98,6 @@ msgid "Remove documents from folders" msgstr "从文件夹中移除文档" #: permissions.py:22 -#| msgid "Edit new folders" msgid "View folders" msgstr "" @@ -106,65 +109,121 @@ msgstr "" msgid "Primary key of the document to be added." msgstr "" -#: views.py:54 +#: views.py:49 #, python-format -#| msgid "Delete new folders" msgid "Delete the folder: %s?" msgstr "" -#: views.py:66 +#: views.py:61 #, python-format msgid "Documents in folder: %s" msgstr "" -#: views.py:93 +#: views.py:84 #, python-format msgid "Edit folder: %s" msgstr "" -#: views.py:127 +#: views.py:116 #, python-format msgid "Folders containing document: %s" msgstr "" -#: views.py:141 -msgid "Must provide at least one document." -msgstr "至少要有一个文档" - -#: views.py:175 +#: views.py:127 #, python-format -msgid "Document: %(document)s added to folder: %(folder)s successfully." -msgstr "文档 %(document)s 成功添加到文件夹: %(folder)s。" +msgid "Add to folder request performed on %(count)d document" +msgstr "" -#: views.py:184 +#: views.py:130 +#, python-format +msgid "Add to folder request performed on %(count)d documents" +msgstr "" + +#: views.py:137 +msgid "Add" +msgstr "新增" + +#: views.py:139 +msgid "Add document to folders" +msgid_plural "Add documents to folders" +msgstr[0] "" + +#: views.py:150 +#, python-format +msgid "Add document \"%s\" to folders" +msgstr "" + +#: views.py:161 +msgid "Folders to which the selected documents will be added." +msgstr "" + +#: views.py:190 #, python-format msgid "Document: %(document)s is already in folder: %(folder)s." msgstr "文档: %(document)s已经存在于文件夹: %(folder)s." -#: views.py:205 -msgid "Add document to folder" -msgid_plural "Add documents to folder" +#: views.py:200 +#, python-format +msgid "Document: %(document)s added to folder: %(folder)s successfully." +msgstr "文档 %(document)s 成功添加到文件夹: %(folder)s。" + +#: views.py:212 +#, python-format +msgid "Remove from folder request performed on %(count)d document" +msgstr "" + +#: views.py:215 +#, python-format +msgid "Remove from folder request performed on %(count)d documents" +msgstr "" + +#: views.py:222 +msgid "Remove" +msgstr "移除" + +#: views.py:224 +msgid "Remove document from folders" +msgid_plural "Remove documents from folders" msgstr[0] "" -#: views.py:227 -msgid "Must provide at least one folder document." -msgstr "必须提供至少一个文件夹文档" - -#: views.py:248 +#: views.py:235 #, python-format -msgid "Document: %s removed successfully." -msgstr "文档:%s移除成功" +msgid "Remove document \"%s\" to folders" +msgstr "" -#: views.py:254 -#, python-format -msgid "Document: %(document)s delete error: %(error)s" -msgstr "文档: %(document)s 删除错误:%(error)s" +#: views.py:246 +msgid "Folders from which the selected documents will be removed." +msgstr "" -#: views.py:267 +#: views.py:273 #, python-format -msgid "Remove the selected document from the folder: %(folder)s?" -msgid_plural "Remove the selected documents from the folder: %(folder)s?" -msgstr[0] "" +msgid "Document: %(document)s is not in folder: %(folder)s." +msgstr "" + +#: views.py:282 +#, python-format +msgid "Document: %(document)s removed from folder: %(folder)s." +msgstr "" + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Add document to folder" +#~ msgid_plural "Add documents to folder" +#~ msgstr[0] "97c0d1f6a737e93c542fd20ae2682559_pl_0" + +#~ msgid "Must provide at least one folder document." +#~ msgstr "Must provide at least one folder document." + +#~ msgid "Document: %s removed successfully." +#~ msgstr "Document: %s removed successfully." + +#~ msgid "Document: %(document)s delete error: %(error)s" +#~ msgstr "Document: %(document)s delete error: %(error)s" + +#~ msgid "Remove the selected document from the folder: %(folder)s?" +#~ msgid_plural "Remove the selected documents from the folder: %(folder)s?" +#~ msgstr[0] "81c6b0124b038e876c41a6794709629b_pl_0" #~ msgid "A folder named: %s, already exists." #~ msgstr "A folder named: %s, already exists." @@ -212,11 +271,11 @@ msgstr[0] "" #~ msgstr "Add documents: %s to folder." #~ msgid "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgstr "" -#~ "Are you sure you wish to remove the documents: %(documents)s from the folder" -#~ " \"%(folder)s\"?" +#~ "Are you sure you wish to remove the documents: %(documents)s from the " +#~ "folder \"%(folder)s\"?" #~ msgid "Document" #~ msgstr "document" @@ -249,12 +308,12 @@ msgstr[0] "" #~ msgstr "What are folders?" #~ msgid "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." #~ msgstr "" -#~ "These folders can also be described as user folders. They are a way to let " -#~ "individual users create their own document organization methods. Folders " -#~ "created by one user and the documents contained by them don't affect any " -#~ "other user folders or documents." +#~ "These folders can also be described as user folders. They are a way to " +#~ "let individual users create their own document organization methods. " +#~ "Folders created by one user and the documents contained by them don't " +#~ "affect any other user folders or documents." diff --git a/mayan/apps/folders/tests/test_api.py b/mayan/apps/folders/tests/test_api.py index 333198a4d5..6da4b1b16b 100644 --- a/mayan/apps/folders/tests/test_api.py +++ b/mayan/apps/folders/tests/test_api.py @@ -4,10 +4,9 @@ from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings -from rest_framework.test import APITestCase - from documents.models import DocumentType from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) @@ -17,12 +16,9 @@ from ..models import Folder from .literals import TEST_FOLDER_EDITED_LABEL, TEST_FOLDER_LABEL -class FolderAPITestCase(APITestCase): - """ - Test the folder API endpoints - """ - +class FolderAPITestCase(BaseAPITestCase): def setUp(self): + super(FolderAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD diff --git a/mayan/apps/linking/api_views.py b/mayan/apps/linking/api_views.py new file mode 100644 index 0000000000..9dcbfaf621 --- /dev/null +++ b/mayan/apps/linking/api_views.py @@ -0,0 +1,334 @@ +from __future__ import absolute_import, unicode_literals + +from django.shortcuts import get_object_or_404 + +from rest_framework import generics + +from acls.models import AccessControlList +from documents.models import Document +from documents.permissions import permission_document_view +from rest_api.filters import MayanObjectPermissionsFilter +from rest_api.permissions import MayanPermission + +from .models import SmartLink +from .permissions import ( + permission_smart_link_create, permission_smart_link_delete, + permission_smart_link_edit, permission_smart_link_view +) +from .serializers import ( + ResolvedSmartLinkDocumentSerializer, ResolvedSmartLinkSerializer, + SmartLinkConditionSerializer, SmartLinkSerializer, + WritableSmartLinkSerializer +) + + +class APIResolvedSmartLinkDocumentListView(generics.ListAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_document_view,)} + permission_classes = (MayanPermission,) + serializer_class = ResolvedSmartLinkDocumentSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of the smart link documents that apply to the document. + """ + return super(APIResolvedSmartLinkDocumentListView, self).get( + *args, **kwargs + ) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_document_view, user=self.request.user, + obj=document + ) + + return document + + def get_smart_link(self): + smart_link = get_object_or_404( + SmartLink.objects.get_for(document=self.get_document()), + pk=self.kwargs['smart_link_pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_smart_link_view, user=self.request.user, + obj=smart_link + ) + + return smart_link + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'smart_link': self.get_smart_link(), + 'view': self + } + + def get_queryset(self): + return self.get_smart_link().get_linked_document_for( + document=self.get_document() + ) + + +class APIResolvedSmartLinkView(generics.RetrieveAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + lookup_url_kwarg = 'smart_link_pk' + mayan_object_permissions = {'GET': (permission_smart_link_view,)} + permission_classes = (MayanPermission,) + serializer_class = ResolvedSmartLinkSerializer + + def get(self, *args, **kwargs): + """ + Return the details of the selected resolved smart link. + """ + return super(APIResolvedSmartLinkView, self).get(*args, **kwargs) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_document_view, user=self.request.user, + obj=document + ) + + return document + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def get_queryset(self): + return SmartLink.objects.get_for(document=self.get_document()) + + +class APIResolvedSmartLinkListView(generics.ListAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_smart_link_view,)} + permission_classes = (MayanPermission,) + serializer_class = ResolvedSmartLinkSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of the smart links that apply to the document. + """ + return super(APIResolvedSmartLinkListView, self).get(*args, **kwargs) + + def get_document(self): + document = get_object_or_404(Document, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_document_view, user=self.request.user, + obj=document + ) + + return document + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def get_queryset(self): + return SmartLink.objects.filter( + document_types=self.get_document().document_type + ) + + +class APISmartLinkConditionListView(generics.ListCreateAPIView): + serializer_class = SmartLinkConditionSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the smart link conditions. + """ + return super(APISmartLinkConditionListView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_smart_link().conditions.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'smart_link': self.get_smart_link(), + 'view': self + } + + def get_smart_link(self): + if self.request.method == 'GET': + permission_required = permission_smart_link_view + else: + permission_required = permission_smart_link_edit + + smart_link = get_object_or_404(SmartLink, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=smart_link + ) + + return smart_link + + def post(self, *args, **kwargs): + """ + Create a new smart link condition. + """ + return super(APISmartLinkConditionListView, self).post(*args, **kwargs) + + +class APISmartLinkConditionView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'condition_pk' + serializer_class = SmartLinkConditionSerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected smart link condition. + """ + + return super(APISmartLinkConditionView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected smart link condition. + """ + + return super(APISmartLinkConditionView, self).get(*args, **kwargs) + + def get_queryset(self): + return self.get_smart_link().conditions.all() + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + return { + 'format': self.format_kwarg, + 'request': self.request, + 'smart_link': self.get_smart_link(), + 'view': self + } + + def get_smart_link(self): + if self.request.method == 'GET': + permission_required = permission_smart_link_view + else: + permission_required = permission_smart_link_edit + + smart_link = get_object_or_404(SmartLink, pk=self.kwargs['pk']) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=smart_link + ) + + return smart_link + + def patch(self, *args, **kwargs): + """ + Edit the selected smart link condition. + """ + + return super(APISmartLinkConditionView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected smart link condition. + """ + + return super(APISmartLinkConditionView, self).put(*args, **kwargs) + + +class APISmartLinkListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_smart_link_view,)} + mayan_view_permissions = {'POST': (permission_smart_link_create,)} + permission_classes = (MayanPermission,) + queryset = SmartLink.objects.all() + + def get(self, *args, **kwargs): + """ + Returns a list of all the smart links. + """ + + return super(APISmartLinkListView, self).get(*args, **kwargs) + + def get_serializer_class(self): + if self.request.method == 'GET': + return SmartLinkSerializer + else: + return WritableSmartLinkSerializer + + def post(self, *args, **kwargs): + """ + Create a new smart link. + """ + + return super(APISmartLinkListView, self).post(*args, **kwargs) + + +class APISmartLinkView(generics.RetrieveUpdateDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'DELETE': (permission_smart_link_delete,), + 'GET': (permission_smart_link_view,), + 'PATCH': (permission_smart_link_edit,), + 'PUT': (permission_smart_link_edit,) + } + queryset = SmartLink.objects.all() + + def delete(self, *args, **kwargs): + """ + Delete the selected smart link. + """ + + return super(APISmartLinkView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected smart ink. + """ + + return super(APISmartLinkView, self).get(*args, **kwargs) + + def get_serializer_class(self): + if self.request.method == 'GET': + return SmartLinkSerializer + else: + return WritableSmartLinkSerializer + + def patch(self, *args, **kwargs): + """ + Edit the selected smart link. + """ + + return super(APISmartLinkView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected smart link. + """ + + return super(APISmartLinkView, self).put(*args, **kwargs) diff --git a/mayan/apps/linking/apps.py b/mayan/apps/linking/apps.py index 54250c85e4..82403ae1ca 100644 --- a/mayan/apps/linking/apps.py +++ b/mayan/apps/linking/apps.py @@ -12,6 +12,7 @@ from common import ( ) from common.widgets import two_state_template from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .links import ( link_smart_link_create, link_smart_link_condition_create, @@ -28,13 +29,15 @@ from .permissions import ( class LinkingApp(MayanAppConfig): + has_tests = True name = 'linking' - test = True verbose_name = _('Linking') def ready(self): super(LinkingApp, self).ready() + APIEndPoint(app=self, version_string='1') + Document = apps.get_model( app_label='documents', model_name='Document' ) diff --git a/mayan/apps/linking/forms.py b/mayan/apps/linking/forms.py index 9fe71956bc..dad3d424cb 100644 --- a/mayan/apps/linking/forms.py +++ b/mayan/apps/linking/forms.py @@ -17,7 +17,7 @@ class SmartLinkForm(forms.ModelForm): unicode(self.fields['dynamic_label'].help_text), ModelAttribute.help_text_for( Document, type_names=['field', 'related', 'property'] - ) + ).replace('\n', '
            ') ] ) @@ -39,7 +39,7 @@ class SmartLinkConditionForm(forms.ModelForm): unicode(self.fields['expression'].help_text), ModelAttribute.help_text_for( Document, type_names=['field', 'related', 'property'] - ) + ).replace('\n', '
            ') ] ) diff --git a/mayan/apps/linking/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/ar/LC_MESSAGES/django.mo index 7a4b4bb3b1..21dca3fc9f 100644 Binary files a/mayan/apps/linking/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/ar/LC_MESSAGES/django.po b/mayan/apps/linking/locale/ar/LC_MESSAGES/django.po index 7c0faec79f..2813de3a6c 100644 --- a/mayan/apps/linking/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,33 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +57,11 @@ msgstr "تحرير" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "إنشاء ارتباط ذكي جديد" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +69,8 @@ msgstr "" msgid "Documents" msgstr "الوثائق" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "الروابط الذكية" @@ -140,55 +142,55 @@ msgstr "is in regular expression" msgid "is in regular expression (case insensitive)" msgstr "is in regular expression (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "يتم تجاهل الإدراج للغرض الأول." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverts the logic of the operator." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "not" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +210,77 @@ msgstr "حذف الروابط الذكية" msgid "Edit smart links" msgstr "تحرير الروابط الذكية" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "خطأ بالاستعلام عن الرابط الذكي: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "تحرير الرابط الذكي: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "أضف شرط جديد للرابط الذكي: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "تحرير شرط الرابط الذكي" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/bg/LC_MESSAGES/django.mo index 5bd142a5bb..fb0676d52b 100644 Binary files a/mayan/apps/linking/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/bg/LC_MESSAGES/django.po b/mayan/apps/linking/locale/bg/LC_MESSAGES/django.po index 7ea2d74596..0db0d339a4 100644 --- a/mayan/apps/linking/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/bg/LC_MESSAGES/django.po @@ -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: # Pavlin Koldamov , 2012 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +56,11 @@ msgstr "Редактиране" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +68,8 @@ msgstr "" msgid "Documents" msgstr "Документи" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -140,55 +141,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "не" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +209,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.mo index 47f0f219f5..bd559fdc01 100644 Binary files a/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.po index 0f44c3592b..555f3689f3 100644 --- a/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,33 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +57,11 @@ msgstr "Urediti" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Kreiraj novi smart link" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +69,8 @@ msgstr "" msgid "Documents" msgstr "Dokumenti" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Smart linkovi" @@ -140,55 +142,55 @@ msgstr "je u regularnom izrazu" msgid "is in regular expression (case insensitive)" msgstr "je u regularnom izrazu (nije bitno velika ili mala slova)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Inkluzija je ignorisana za prvu stavku" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Obrće logiku operatora" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "ne" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +210,77 @@ msgstr "Obrisati smart linkove" msgid "Edit smart links" msgstr "Izmjeni smart linkove" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Greška smart link upita: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Izmjeni smart link: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Dodati nove uslove za smart link: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Izmjeniti uslove smart linka" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/da/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/da/LC_MESSAGES/django.mo index ddbb8e9cd5..602473ec81 100644 Binary files a/mayan/apps/linking/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/da/LC_MESSAGES/django.po b/mayan/apps/linking/locale/da/LC_MESSAGES/django.po index d43088399a..58ad689ef4 100644 --- a/mayan/apps/linking/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/da/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -66,8 +67,8 @@ msgstr "" msgid "Documents" msgstr "Dokumenter" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -139,55 +140,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +208,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +386,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.mo index 7293864310..edffb1de6f 100644 Binary files a/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.po index 3ed5cd7193..4a619bca3f 100644 --- a/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Mathias Behrle , 2014 @@ -12,33 +12,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "Verknüpfungen" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Bezeichnung" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Dynamische Bezeichnung" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Aktiviert" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Fremddokumentattribut" @@ -58,11 +59,11 @@ msgstr "Bearbeiten" msgid "Conditions" msgstr "Bedingungen" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Smart Link erstellen" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Dokumententypen" @@ -70,8 +71,8 @@ msgstr "Dokumententypen" msgid "Documents" msgstr "Dokumente" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Ähnliche Dokumente" @@ -143,55 +144,58 @@ msgstr "ist in regulärem Ausdruck" msgid "is in regular expression (case insensitive)" msgstr "ist in regulärem Ausdruck (ohne Groß/Kleinschreibung)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Eine Vorlage zur Verarbeitung eingeben (Django Standard Templating Sprache (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Die {{ document }} Kontextvariable ist verfügbar." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Eine Vorlage zur Verarbeitung eingeben (Django Standard Templating Sprache " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Die " +"{{ document }} Kontextvariable ist verfügbar." -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Fehler bei der Generierung des dynamischen Titels: %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "Dieser Smart Link ist nicht erlaubt für diesen Dokumententyp" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Smart Link" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Die Einbeziehung wird für das erste Element ignoriert." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Repräsentiert die Metadaten aller anderen Dokumente" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Ausdruck" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Kehrt die Logik der Operation um." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Verneint" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "Nicht" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Bedingung" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Bedingungen" @@ -211,67 +215,78 @@ msgstr "Smart Links löschen" msgid "Edit smart links" msgstr "Smart Links bearbeiten" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Abfragefehler für Smart Link %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Ähnliche Dokumente für %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Dokumente in Smart Link \"%(smart_link)s\" verknüpft zu \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Dokumente in Smart Link \"%(smart_link)s\" verknüpft zu \"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Verfügbare Dokumententypen" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Aktivierte Dokumententypen" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Dokumententyp, für den Smart Link %s aktiviert werden soll" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Ähnliche Dokumente für Dokument %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Smart Link %s bearbeiten" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Smart Link %s wirklich löschen?" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Bedingungen für Smart Link %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Neue Bedingungen zu Smart Link \"%s\" hinzufügen" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Bedingung für Smart Link bearbeiten" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Bedingung für Smart Link \"%s\" wirklich löschen?" @@ -379,14 +394,14 @@ msgstr "Bedingung für Smart Link \"%s\" wirklich löschen?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/en/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/en/LC_MESSAGES/django.mo index 2dc9524097..778ddab37d 100644 Binary files a/mayan/apps/linking/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/en/LC_MESSAGES/django.po b/mayan/apps/linking/locale/en/LC_MESSAGES/django.po index 01b93212bf..655495c01e 100644 --- a/mayan/apps/linking/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-12-12 06:06+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,25 +18,25 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 #, fuzzy msgid "Dynamic label" msgstr "dynamic title" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 #, fuzzy msgid "Enabled" msgstr "enabled" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 #, fuzzy msgid "Foreign document attribute" msgstr "foreign document data" @@ -60,11 +60,11 @@ msgstr "" msgid "Conditions" msgstr "conditions" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Create new smart link" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -72,8 +72,8 @@ msgstr "" msgid "Documents" msgstr "" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Smart links" @@ -145,59 +145,59 @@ msgstr "is in regular expression" msgid "is in regular expression (case insensitive)" msgstr "is in regular expression (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " "{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 #, fuzzy msgid "Smart link" msgstr "Smart links" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "The inclusion is ignored for the first item." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 #, fuzzy msgid "Expression" msgstr "expression" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverts the logic of the operator." -#: models.py:122 +#: models.py:125 #, fuzzy msgid "Negated" msgstr "negated" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "not" -#: models.py:134 +#: models.py:137 #, fuzzy msgid "Link condition" msgstr "link condition" -#: models.py:135 +#: models.py:138 #, fuzzy msgid "Link conditions" msgstr "link conditions" @@ -218,66 +218,77 @@ msgstr "Delete smart links" msgid "Edit smart links" msgstr "Edit smart links" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Smart link query error: %s" -#: views.py:78 +#: views.py:68 #, fuzzy, python-format msgid "Documents in smart link: %s" msgstr "documents in smart link: %(group)s" -#: views.py:81 +#: views.py:71 #, fuzzy, python-format msgid "" "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "Error deleting smart link: %(smart_link)s; %(error)s." -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, fuzzy, python-format msgid "Document type for which to enable smart link: %s" msgstr "Are you sure you wish to delete smart link: %s?" -#: views.py:173 +#: views.py:159 #, fuzzy, python-format msgid "Smart links for document: %s" msgstr "smart links (%s)" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Edit smart link: %s" -#: views.py:210 +#: views.py:194 #, fuzzy, python-format #| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Delete smart links" -#: views.py:222 +#: views.py:206 #, fuzzy, python-format msgid "Conditions for smart link: %s" msgstr "conditions for smart link: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Add new conditions to smart link: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Edit smart link condition" -#: views.py:334 +#: views.py:304 #, fuzzy, python-format #| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" diff --git a/mayan/apps/linking/locale/es/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/es/LC_MESSAGES/django.mo index c56a9611a7..6be0ad0e41 100644 Binary files a/mayan/apps/linking/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/es/LC_MESSAGES/django.po b/mayan/apps/linking/locale/es/LC_MESSAGES/django.po index c8a4ba799e..47283b4d93 100644 --- a/mayan/apps/linking/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/es/LC_MESSAGES/django.po @@ -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: # jmcainzos , 2014 @@ -11,33 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-05-09 01:40+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Enlaces" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Etiqueta" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Etiqueta dinámica" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Habilitado" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Datos de documento foráneo" @@ -57,11 +58,11 @@ msgstr "Editar" msgid "Conditions" msgstr "Condiciones" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Crear un enlace inteligente nuevo" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Tipos de documento" @@ -69,8 +70,8 @@ msgstr "Tipos de documento" msgid "Documents" msgstr "Documentos" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Enlaces inteligentes" @@ -142,55 +143,60 @@ msgstr "está en la expresión regular" msgid "is in regular expression (case insensitive)" msgstr "está en la expresión regular (no sensible a mayúsculas)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Introduzca una plantilla para generar. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). La variable {{ document }} está disponible en el contexto de la plantilla." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Introduzca una plantilla para generar. Use el lenguaje de plantillas de " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). La " +"variable {{ document }} está disponible en el contexto de la plantilla." -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Error generando etiqueta dinámica; %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." -msgstr "Este enlace inteligente no está permitido para el tipo de documento seleccionado." +msgstr "" +"Este enlace inteligente no está permitido para el tipo de documento " +"seleccionado." -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Enlace inteligente" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "La inclusión es ignorada para el primer artículo." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Esto representa los meta datos de los documentos foráneos." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Expresión" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Invierte la lógica del operador." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Negado" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "no" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Condición de enlace" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Condiciones de enlace" @@ -210,67 +216,79 @@ msgstr "Eliminar enlaces inteligentes" msgid "Edit smart links" msgstr "Editar enlaces inteligentes" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Error en consulta de enlace inteligente: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Documentos en enlace inteligente: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Los documentos en enlace inteligente \"%(smart_link)s\" en relación con \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Los documentos en enlace inteligente \"%(smart_link)s\" en relación con " +"\"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Tipos de documentos disponibles" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Tipos de documentos seleccionados" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Tipo de documento para el cual habilitar el enlace inteligente: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Enlaces inteligentes para el documento: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Editar enlace inteligente: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Borrar enlace inteligente: %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Condiciones para enlace inteligente: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Añadir nuevas condiciones de enlace inteligente: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Editar condición de enlace inteligente" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "¿Borrar condición de enlace inteligente: \"%s\"?" @@ -378,14 +396,14 @@ msgstr "¿Borrar condición de enlace inteligente: \"%s\"?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/fa/LC_MESSAGES/django.mo index 751488f12a..3d16510f1f 100644 Binary files a/mayan/apps/linking/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/fa/LC_MESSAGES/django.po b/mayan/apps/linking/locale/fa/LC_MESSAGES/django.po index 95490a2616..a8d443514a 100644 --- a/mayan/apps/linking/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/fa/LC_MESSAGES/django.po @@ -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: # Mohammad Dashtizadeh , 2013 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "برچسب" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "فعال شده" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "مختصات سند خارجی" @@ -55,11 +56,11 @@ msgstr "ویرایش" msgid "Conditions" msgstr "شرایط" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "ایجاد پیوند هوشمند جدید" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "انواع مستندات" @@ -67,8 +68,8 @@ msgstr "انواع مستندات" msgid "Documents" msgstr "مستندات" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "پیوند هوشمند" @@ -140,55 +141,55 @@ msgstr "موجود در عبارات منظم" msgid "is in regular expression (case insensitive)" msgstr "موجود در عبارات منظم (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "این لینک هوشمند برای نوع سند منتخب مجاز نیست" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "پیوند هوشمند" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "ورود اولین آیتم در نطر گرفته نشد." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "این مورد نشانگر متا داده تمامی اسناد می باشد." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "عبارت" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "منطق عملگر را برعکس میکند." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "منفی شده" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "نه " -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "شرط پیوند" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "شرایط پیوند" @@ -208,67 +209,77 @@ msgstr "حذف پیوند هوشمند " msgid "Edit smart links" msgstr "ویرایش پیوند هوشمند " -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "خطای پرسش query از پیوند هوشمند : %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "اسناد در لینک هوشمند: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "نوع سند برای فعالسازی لینک هوشمند: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "ارتباطات هوشمند برای سند :%s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "ویرایش پیوند هوشمند %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "شرایط پیوند هوشمند : %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "اضافه کردن شرط جدید به پیوند هوشمند \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "ویرایش شرط پیوند هوشمند \"%s\"" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/fr/LC_MESSAGES/django.mo index d0d811bbc9..c413635728 100644 Binary files a/mayan/apps/linking/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/fr/LC_MESSAGES/django.po b/mayan/apps/linking/locale/fr/LC_MESSAGES/django.po index 69d42feab8..be383545a6 100644 --- a/mayan/apps/linking/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/fr/LC_MESSAGES/django.po @@ -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: # Pierre Lhoste , 2012 @@ -10,33 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "Liaison" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Libellé" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Etiquette dynamique" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Activé" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Attribut étranger du document " @@ -56,11 +57,11 @@ msgstr "Modifier" msgid "Conditions" msgstr "Conditions" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Céer un nouveau lien intelligent" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Types de document" @@ -68,8 +69,8 @@ msgstr "Types de document" msgid "Documents" msgstr "Documents" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Liens intelligents" @@ -141,55 +142,59 @@ msgstr "est une expression régulière" msgid "is in regular expression (case insensitive)" msgstr "est une expression régulière (insensible à la casse)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Indiquez un modèle à restituer. Utilise le langage de rendu de Django par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). La variable de contexte {{ document }} est disponible." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Indiquez un modèle à restituer. Utilise le langage de rendu de Django par " +"défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). La " +"variable de contexte {{ document }} est disponible." -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Erreur de génération de l'étiquette dynamique : %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." -msgstr "Un lien intelligent n'est pas autorisé pour le type de document sélectionné." +msgstr "" +"Un lien intelligent n'est pas autorisé pour le type de document sélectionné." -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Lien intelligent" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Ignorer l'inclusion sur le premier élément" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Ceci représente la méta-donnée de tous les autres documents." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Expression" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverser l'opérateur logique" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Négation" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "ne pas" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Condition sur le lien" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Conditions sur le lien" @@ -209,67 +214,79 @@ msgstr "Supprimer les liens intelligents" msgid "Edit smart links" msgstr "Modifier les liens intelligents" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Erreur de requête sur lien intelligent:%s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Lien inetlligent du document: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Documents du lien intelligent \"%(smart_link)s\" en relation avec \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Documents du lien intelligent \"%(smart_link)s\" en relation avec " +"\"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Types de document disponible" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Types de documents actifs" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Type de document sur lesquels activer les liens intelligents: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Liens intelligents pour le document: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Modifier le lien intelligent:%s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Supprimer le lien intelligent : %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Conditions sur le lien intelligent: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Ajouter une nouvelle condition au lien intelligent:\"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Modifier la condition sur le lien intelligent" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Supprimer la condition du lien intelligent : \"%s\" ?" @@ -377,14 +394,14 @@ msgstr "Supprimer la condition du lien intelligent : \"%s\" ?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/hu/LC_MESSAGES/django.mo index 3ea7887c18..7d1e8e62ac 100644 Binary files a/mayan/apps/linking/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/hu/LC_MESSAGES/django.po b/mayan/apps/linking/locale/hu/LC_MESSAGES/django.po index bbe5bb1871..1fb8c3c6d9 100644 --- a/mayan/apps/linking/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/hu/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -66,8 +67,8 @@ msgstr "" msgid "Documents" msgstr "dokumentumok" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -139,55 +140,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +208,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +386,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/id/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/id/LC_MESSAGES/django.mo index 6d018cc2d6..acdb49855f 100644 Binary files a/mayan/apps/linking/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/id/LC_MESSAGES/django.po b/mayan/apps/linking/locale/id/LC_MESSAGES/django.po index 4dfd49a886..224dbd744d 100644 --- a/mayan/apps/linking/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/id/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +55,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -66,8 +67,8 @@ msgstr "" msgid "Documents" msgstr "Dokumen" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -139,55 +140,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +208,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +386,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/it/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/it/LC_MESSAGES/django.mo index 06d9b9a6d4..b8f7eec328 100644 Binary files a/mayan/apps/linking/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/it/LC_MESSAGES/django.po b/mayan/apps/linking/locale/it/LC_MESSAGES/django.po index 7a91f099b4..ee52949304 100644 --- a/mayan/apps/linking/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -10,33 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "Collegamento" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Etichetta" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Etichetta dinamica" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Abilitato" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Attributo documento esterno" @@ -56,11 +57,11 @@ msgstr "Modifica" msgid "Conditions" msgstr "Condizioni" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Crea un nuovo link intelligente" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Tipi di documento" @@ -68,8 +69,8 @@ msgstr "Tipi di documento" msgid "Documents" msgstr "Documenti" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Link intelligenti" @@ -141,55 +142,59 @@ msgstr "è un'espressione regolare" msgid "is in regular expression (case insensitive)" msgstr "è un'espressione regolare (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Inserisci il template da renderizzare. Usa il linguaggio di template di Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Variabili di contesto disponibili: {{ document }} " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Inserisci il template da renderizzare. Usa il linguaggio di template di " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " +"Variabili di contesto disponibili: {{ document }} " -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Errore generando l'etichetta dinamica; %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." -msgstr "Questo link intelligente non è consentito per questo tipo di documento." +msgstr "" +"Questo link intelligente non è consentito per questo tipo di documento." -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Link intelligente" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "L'inserimento viene ignorato per la prima voce." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Questo rappresenta i metadati degli altri documenti." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Espressione" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverti la logica dell'operazione" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Negato" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "not" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Condizione link" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Condizioni link" @@ -209,67 +214,79 @@ msgstr "Cancella link intelligenti" msgid "Edit smart links" msgstr "Modifica link intelligenti" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Interrogazione dei link intelligenti, errore: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Documenti nel link intelligente: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Documenti nel link intelligente: \"%(smart_link)s\" è correlato con \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Documenti nel link intelligente: \"%(smart_link)s\" è correlato con " +"\"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Tipi di documento disponibili" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Tipi documento abilitati" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Tipo di documento per il quale attivare collegamento intelligente: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Collegamenti intelligenti per il documento: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Modifica il link intelligente: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Cancella collegamento intelligente: %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Condizioni per il collegamento intelligente: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Aggiungi una nuova condizione al link intelligente: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Modifica condizioni per i link intelligenti" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Cancella condizione collegamento intelligente: \"%s\" ?" @@ -377,14 +394,14 @@ msgstr "Cancella condizione collegamento intelligente: \"%s\" ?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.mo index da52ed4221..8061adf2da 100644 Binary files a/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.po index 1c84a40b76..ed51dab429 100644 --- a/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -10,33 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-09 15:56+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "Koppeling" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Label" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Dynamisch label" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Ingeschakeld" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -56,11 +57,11 @@ msgstr "bewerken" msgid "Conditions" msgstr "Conditie" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Nieuwe 'smartlink' aanmaken" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Documentsoorten" @@ -68,8 +69,8 @@ msgstr "Documentsoorten" msgid "Documents" msgstr "Documenten" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "'Smartlinks'" @@ -141,55 +142,55 @@ msgstr "komt overeen met 'reguliere expressie'" msgid "is in regular expression (case insensitive)" msgstr "komt overeen met 'reguliere expressie (hoofdletter ongevoelig)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Slimme link" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "De berekening is genegeerd voor het eerste item" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Uitdrukking" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverteerd de operatorlogica" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "niet" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -209,67 +210,77 @@ msgstr "Verwijderen 'smartlinks'" msgid "Edit smart links" msgstr "Verwijderen 'smartlinks'" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "'smartlink' zoek fout: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Beschikbare documentsoorten" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "'smartlink': %s bewerken." -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Nieuwe condities aan 'smartlink': \"%s\" toevoegen." -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Bewerk 'smartlink' conditie." -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -377,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/pl/LC_MESSAGES/django.mo index 7e338b92e4..be825e7b13 100644 Binary files a/mayan/apps/linking/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/pl/LC_MESSAGES/django.po b/mayan/apps/linking/locale/pl/LC_MESSAGES/django.po index f26283a1a3..4d9386ad22 100644 --- a/mayan/apps/linking/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/pl/LC_MESSAGES/django.po @@ -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: # mic , 2012,2015 @@ -10,33 +10,36 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "Łącza" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Etykieta" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Dynamiczna etykieta" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Włączony" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Atrybut obcego dokumentu" @@ -56,11 +59,11 @@ msgstr "Edytuj" msgid "Conditions" msgstr "Warunki" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Utwórz nowe łącze" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Typy dokumentów" @@ -68,8 +71,8 @@ msgstr "Typy dokumentów" msgid "Documents" msgstr "Dokumenty" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Łącza" @@ -141,55 +144,58 @@ msgstr "jest w wyrażeniu regularnym" msgid "is in regular expression (case insensitive)" msgstr "jest w wyrażeniu regularnym (wielkość liter ma znaczenie)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Zmienna kontekstowa {{ document }} jest dostępna." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). Zmienna " +"kontekstowa {{ document }} jest dostępna." -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Błąd podczas generowania dynamicznej etykiety: %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "To łącze nie jest dostępne dla wybranego typu dokumentu." -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "Łącze" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "To wliczenie jest ignorowane dla pierwszego elementu." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "To odpowiada meta danym wszystkich pozostałych dokumentów." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "Wyrażenie" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Odwraca logikę operatora." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "Zanegowany" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "nie" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "Warunek łącza" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "Warunki łącza" @@ -209,67 +215,77 @@ msgstr "Usuń łącza" msgid "Edit smart links" msgstr "Edytuj łącza" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Błąd zapytania o łącze: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Dokumenty w łączu: %s" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "Dokumenty w łączu \"%(smart_link)s\" powiązane z \"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Dostępne typy dokumentów" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Typy dokumentów z udostępnionym łączem" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Typy dokumentów, dla których zostanie udostępnione łącze: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Łącza dla dokumentu: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Edytuj łącze: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Usuń łącze: %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Warunki łącza: %s" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Dodaj nowe warunki do łącza: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Edycja warunku łącza" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Usunąć warunek łącza: \"%s\"?" @@ -377,14 +393,14 @@ msgstr "Usunąć warunek łącza: \"%s\"?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/pt/LC_MESSAGES/django.mo index d2e09912e2..353cc9d9bc 100644 Binary files a/mayan/apps/linking/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/pt/LC_MESSAGES/django.po b/mayan/apps/linking/locale/pt/LC_MESSAGES/django.po index 15ca42fe00..d47a86fad8 100644 --- a/mayan/apps/linking/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/pt/LC_MESSAGES/django.po @@ -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: # Emerson Soares , 2011 @@ -11,33 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Nome" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -57,11 +58,11 @@ msgstr "Editar" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Criar nova ligação inteligente" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -69,8 +70,8 @@ msgstr "" msgid "Documents" msgstr "Documentos" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Ligações inteligentes" @@ -142,55 +143,55 @@ msgstr "contido em expressão regular" msgid "is in regular expression (case insensitive)" msgstr "contido em expressão regular (insensível a minúsculas/maiúsculas)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "A inclusão é ignorada para o primeiro item." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverte a lógica do operador." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "não" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -210,67 +211,77 @@ msgstr "Excluir ligações inteligentes" msgid "Edit smart links" msgstr "Editar ligações inteligentes" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Erro na consulta de ligações inteligentes: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Editar Ligação inteligente: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Adicionar novas condições à ligação inteligente: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Editar condição de ligação inteligente" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -378,14 +389,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.mo index 291998338c..9659c414c9 100644 Binary files a/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.po index 368c5190ce..a86c17c364 100644 --- a/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -12,33 +12,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:33 +#: apps.py:34 msgid "Linking" msgstr "Ligações" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Label" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "Etiqueta dinâmica" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "habilitado" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "Atributo documento externo" @@ -58,11 +59,11 @@ msgstr "Editar" msgid "Conditions" msgstr "condições" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Criar novo link inteligente" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Tipo de Documento" @@ -70,8 +71,8 @@ msgstr "Tipo de Documento" msgid "Documents" msgstr "Documentos" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Ligações inteligentes" @@ -143,55 +144,59 @@ msgstr "está em expressão regular" msgid "is in regular expression (case insensitive)" msgstr "está em expressão regular (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." -msgstr "Introduza um template para renderizar. Use a linguagem de templates padrão do Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). A variável {{ document }} está disponível. " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." +msgstr "" +"Introduza um template para renderizar. Use a linguagem de templates padrão " +"do Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). A " +"variável {{ document }} está disponível. " -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "Erro gerando etiqueta dinâmica; %s" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." -msgstr "Este link inteligente não é permitido para o tipo de documento selecionado. " +msgstr "" +"Este link inteligente não é permitido para o tipo de documento selecionado. " -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "link inteligente" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "A inclusão é ignorada para o primeiro item." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "Esta expressão será avaliada contra o documento atual." -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "expressão" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inverte a lógica do operador." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "negada" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "não" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "condição de ligação" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "condições de ligação" @@ -211,67 +216,79 @@ msgstr "Excluir ligações inteligentes" msgid "Edit smart links" msgstr "Editar ligações inteligentes" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Erro Links Inteligentes para documento: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "Os documentos em referência inteligente: %s " -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" -msgstr "Os documentos em link inteligente \"%(smart_link)s\" em relação com \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgstr "" +"Os documentos em link inteligente \"%(smart_link)s\" em relação com " +"\"%(document)s\"" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Tipos de documentos disponíveis" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "Tipos de documentos habilitados" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "Tipo de documento para o qual a permitir ligação inteligente: %s" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "Links Inteligentes para documento: %s" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Editar Ligação inteligente: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "Apagar link inteligente: %s" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "Condições para a ligação inteligente: %s criado com sucesso." -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Adiciona novas condições para a ligação inteligente: %s " -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Editar condição de ligação Inteligente" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "Apagar condição de link inteligente: %s?" @@ -379,14 +396,14 @@ msgstr "Apagar condição de link inteligente: %s?" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.mo index 56b85aa338..323efe4155 100644 Binary files a/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.po index 22ca9f229b..bafa0e3d68 100644 --- a/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,33 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-04-17 09:43+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Etichetă" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +57,11 @@ msgstr "Editează" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Creați un nou link inteligent" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +69,8 @@ msgstr "" msgid "Documents" msgstr "Documente" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Link-uri inteligente" @@ -140,55 +142,55 @@ msgstr "este în expresie regulată" msgid "is in regular expression (case insensitive)" msgstr "este în expresie regulată (case insensitive)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Includerea este ignorată pentru primul element." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Inversează logica operatorului." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "nu" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +210,77 @@ msgstr "Ștergeți link-uri inteligente" msgid "Edit smart links" msgstr "Editați link-uri inteligente" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Eroare interogare link-ul:% s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Editare legătură inteligentă:% s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Adauga la noile condiții de legătură inteligentă: \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Editați condiție legătură inteligentă" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/ru/LC_MESSAGES/django.mo index cc892430f8..1c017621bb 100644 Binary files a/mayan/apps/linking/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/ru/LC_MESSAGES/django.po b/mayan/apps/linking/locale/ru/LC_MESSAGES/django.po index 7a6846669d..360b53636c 100644 --- a/mayan/apps/linking/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/ru/LC_MESSAGES/django.po @@ -1,40 +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: msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "Связывание" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Надпись" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "Доступно" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +57,11 @@ msgstr "Редактировать" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "Создать новое отношение" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "Типы документов" @@ -66,8 +69,8 @@ msgstr "Типы документов" msgid "Documents" msgstr "Документы" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Отношения" @@ -139,55 +142,55 @@ msgstr "В регулярном выражении" msgid "is in regular expression (case insensitive)" msgstr "В регулярном выражении (без учета регистра)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "Включение игнорируется для первого элемента." -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "Инвертирует логику оператора." -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "не" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +210,77 @@ msgstr "Удалить отношения" msgid "Edit smart links" msgstr "Редактировать отношения" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Ошибка запроса в отношении %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "Доступные типы документов" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Редактировать отношение %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "Добавить новые условия отношения \"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "Изменить условие отношения" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +388,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.mo index e620cd4324..9f6cddc3f7 100644 Binary files a/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.po index 646079185c..22aa897bbc 100644 --- a/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/sl_SI/LC_MESSAGES/django.po @@ -1,40 +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-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "Oznaka" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -54,11 +56,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -66,8 +68,8 @@ msgstr "" msgid "Documents" msgstr "Dokumenti" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "" @@ -139,55 +141,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -207,67 +209,77 @@ msgstr "" msgid "Edit smart links" msgstr "" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -375,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.mo index 1b11313613..2ea4d10359 100644 Binary files a/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.po index 28ddce969b..cf6e38325c 100644 --- a/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +56,11 @@ msgstr "Sửa" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +68,8 @@ msgstr "" msgid "Documents" msgstr "Tài liệu" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "Liên kết thông minh" @@ -140,55 +141,55 @@ msgstr "" msgid "is in regular expression (case insensitive)" msgstr "" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +209,77 @@ msgstr "Xóa liên kết thông minh" msgid "Edit smart links" msgstr "Sửa liên kết thông minh" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "Lỗi truy vấn liên kết thông minh: %s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "Sửa liên kết thông minh: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.mo index bf81964d9b..2b877b254e 100644 Binary files a/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.po index d607aedd2c..e2b82f92d7 100644 --- a/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/linking/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:10+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:33 +#: apps.py:34 msgid "Linking" msgstr "" -#: apps.py:55 models.py:18 +#: apps.py:58 models.py:19 msgid "Label" msgstr "" -#: apps.py:62 models.py:25 +#: apps.py:65 models.py:26 msgid "Dynamic label" msgstr "" -#: apps.py:66 apps.py:71 models.py:27 models.py:124 +#: apps.py:69 apps.py:74 models.py:28 models.py:127 msgid "Enabled" msgstr "" -#: forms.py:35 models.py:109 +#: forms.py:35 models.py:112 msgid "Foreign document attribute" msgstr "" @@ -55,11 +56,11 @@ msgstr "" msgid "Conditions" msgstr "" -#: links.py:32 views.py:183 +#: links.py:32 views.py:167 msgid "Create new smart link" msgstr "新建智能链接" -#: links.py:39 models.py:29 +#: links.py:39 models.py:30 msgid "Document types" msgstr "" @@ -67,8 +68,8 @@ msgstr "" msgid "Documents" msgstr "文档" -#: links.py:54 links.py:58 links.py:63 models.py:89 permissions.py:7 -#: views.py:139 +#: links.py:54 links.py:58 links.py:63 models.py:92 permissions.py:7 +#: views.py:129 msgid "Smart links" msgstr "智能链接" @@ -140,55 +141,55 @@ msgstr "正则表达式" msgid "is in regular expression (case insensitive)" msgstr "正则表达式(大小写不敏感)" -#: models.py:21 models.py:114 +#: models.py:22 models.py:117 msgid "" "Enter a template to render. Use Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The {{ " -"document }} context variable is available." +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). The " +"{{ document }} context variable is available." msgstr "" -#: models.py:43 +#: models.py:46 #, python-format msgid "Error generating dynamic label; %s" msgstr "" -#: models.py:52 +#: models.py:55 msgid "This smart link is not allowed for the selected document's type." msgstr "" -#: models.py:88 models.py:100 +#: models.py:91 models.py:103 msgid "Smart link" msgstr "" -#: models.py:104 +#: models.py:107 msgid "The inclusion is ignored for the first item." msgstr "第一项的包含将被忽略。" -#: models.py:108 +#: models.py:111 msgid "This represents the metadata of all other documents." msgstr "" -#: models.py:118 +#: models.py:121 msgid "Expression" msgstr "" -#: models.py:121 +#: models.py:124 msgid "Inverts the logic of the operator." msgstr "颠倒操作符的逻辑" -#: models.py:122 +#: models.py:125 msgid "Negated" msgstr "" -#: models.py:129 +#: models.py:132 msgid "not" msgstr "否" -#: models.py:134 +#: models.py:137 msgid "Link condition" msgstr "" -#: models.py:135 +#: models.py:138 msgid "Link conditions" msgstr "" @@ -208,67 +209,77 @@ msgstr "删除智能链接" msgid "Edit smart links" msgstr "编辑智能链接" -#: views.py:70 +#: serializers.py:115 +msgid "" +"Comma separated list of document type primary keys to which this smart link " +"will be attached." +msgstr "" + +#: serializers.py:139 +#, python-format +msgid "No such document type: %s" +msgstr "" + +#: views.py:60 #, python-format msgid "Smart link query error: %s" msgstr "智能链接查询错误:%s" -#: views.py:78 +#: views.py:68 #, python-format msgid "Documents in smart link: %s" msgstr "" -#: views.py:81 +#: views.py:71 #, python-format -msgid "Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" +msgid "" +"Documents in smart link \"%(smart_link)s\" as related to \"%(document)s\"" msgstr "" -#: views.py:97 +#: views.py:87 msgid "Available document types" msgstr "" -#: views.py:99 +#: views.py:89 msgid "Document types enabled" msgstr "" -#: views.py:108 +#: views.py:98 #, python-format msgid "Document type for which to enable smart link: %s" msgstr "" -#: views.py:173 +#: views.py:159 #, python-format msgid "Smart links for document: %s" msgstr "" -#: views.py:198 +#: views.py:182 #, python-format msgid "Edit smart link: %s" msgstr "编辑智能链接: %s" -#: views.py:210 +#: views.py:194 #, python-format -#| msgid "Delete smart links" msgid "Delete smart link: %s" msgstr "" -#: views.py:222 +#: views.py:206 #, python-format msgid "Conditions for smart link: %s" msgstr "" -#: views.py:253 +#: views.py:233 #, python-format msgid "Add new conditions to smart link: \"%s\"" msgstr "新建条件到智能链接:\"%s\"" -#: views.py:299 +#: views.py:274 msgid "Edit smart link condition" msgstr "编辑智能链接条件" -#: views.py:334 +#: views.py:304 #, python-format -#| msgid "Edit smart link condition" msgid "Delete smart link condition: \"%s\"?" msgstr "" @@ -376,14 +387,14 @@ msgstr "" #~ msgstr "What are smart links?" #~ msgid "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." #~ msgstr "" -#~ "Smart links are a set of conditional statements that are used to query the " -#~ "database using the current document the user is accessing as the data " -#~ "source, the results of these queries are a list of documents that relate in " -#~ "some manner to the document being displayed and allow users the ability to " -#~ "jump to and from linked documents very easily." +#~ "Smart links are a set of conditional statements that are used to query " +#~ "the database using the current document the user is accessing as the data " +#~ "source, the results of these queries are a list of documents that relate " +#~ "in some manner to the document being displayed and allow users the " +#~ "ability to jump to and from linked documents very easily." diff --git a/mayan/apps/linking/managers.py b/mayan/apps/linking/managers.py new file mode 100644 index 0000000000..e21ce0364c --- /dev/null +++ b/mayan/apps/linking/managers.py @@ -0,0 +1,8 @@ +from django.db import models + + +class SmartLinkManager(models.Manager): + def get_for(self, document): + return self.filter( + document_types=document.document_type, enabled=True + ) diff --git a/mayan/apps/linking/models.py b/mayan/apps/linking/models.py index 776f84fbe6..22e599d50d 100644 --- a/mayan/apps/linking/models.py +++ b/mayan/apps/linking/models.py @@ -11,6 +11,7 @@ from documents.models import Document, DocumentType from .literals import ( INCLUSION_AND, INCLUSION_CHOICES, INCLUSION_OR, OPERATOR_CHOICES ) +from .managers import SmartLinkManager @python_2_unicode_compatible @@ -29,6 +30,8 @@ class SmartLink(models.Model): DocumentType, verbose_name=_('Document types') ) + objects = SmartLinkManager() + def __str__(self): return self.label diff --git a/mayan/apps/linking/serializers.py b/mayan/apps/linking/serializers.py new file mode 100644 index 0000000000..3bc1b3ba50 --- /dev/null +++ b/mayan/apps/linking/serializers.py @@ -0,0 +1,147 @@ +from __future__ import absolute_import, unicode_literals + +from django.utils.translation import ugettext_lazy as _ + +from rest_framework import serializers +from rest_framework.exceptions import ValidationError +from rest_framework.reverse import reverse + +from documents.models import DocumentType +from documents.serializers import DocumentSerializer, DocumentTypeSerializer + +from .models import SmartLink, SmartLinkCondition + + +class SmartLinkConditionSerializer(serializers.HyperlinkedModelSerializer): + smart_link_url = serializers.SerializerMethodField() + url = serializers.SerializerMethodField() + + class Meta: + fields = ( + 'enabled', 'expression', 'foreign_document_data', 'inclusion', + 'id', 'negated', 'operator', 'smart_link_url', 'url' + ) + model = SmartLinkCondition + + def create(self, validated_data): + validated_data['smart_link'] = self.context['smart_link'] + return super(SmartLinkConditionSerializer, self).create(validated_data) + + def get_smart_link_url(self, instance): + return reverse( + 'rest_api:smartlink-detail', args=(instance.smart_link.pk,), + request=self.context['request'], format=self.context['format'] + ) + + def get_url(self, instance): + return reverse( + 'rest_api:smartlinkcondition-detail', args=( + instance.smart_link.pk, instance.pk, + ), request=self.context['request'], format=self.context['format'] + ) + + +class SmartLinkSerializer(serializers.HyperlinkedModelSerializer): + conditions_url = serializers.HyperlinkedIdentityField( + view_name='rest_api:smartlinkcondition-list' + ) + document_types = DocumentTypeSerializer(read_only=True, many=True) + + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:smartlink-detail'}, + } + fields = ( + 'conditions_url', 'document_types', 'dynamic_label', 'enabled', + 'label', 'id', 'url' + ) + model = SmartLink + + +class ResolvedSmartLinkDocumentSerializer(DocumentSerializer): + resolved_smart_link_url = serializers.SerializerMethodField() + + class Meta(DocumentSerializer.Meta): + fields = DocumentSerializer.Meta.fields + ( + 'resolved_smart_link_url', + ) + read_only_fields = DocumentSerializer.Meta.fields + + def get_resolved_smart_link_url(self, instance): + return reverse( + 'rest_api:resolvedsmartlink-detail', args=( + self.context['document'].pk, self.context['smart_link'].pk + ), request=self.context['request'], + format=self.context['format'] + ) + + +class ResolvedSmartLinkSerializer(SmartLinkSerializer): + resolved_dynamic_label = serializers.SerializerMethodField() + resolved_smart_link_url = serializers.SerializerMethodField() + resolved_documents_url = serializers.SerializerMethodField() + + class Meta(SmartLinkSerializer.Meta): + fields = SmartLinkSerializer.Meta.fields + ( + 'resolved_dynamic_label', 'resolved_smart_link_url', + 'resolved_documents_url' + ) + read_only_fields = SmartLinkSerializer.Meta.fields + + def get_resolved_documents_url(self, instance): + return reverse( + 'rest_api:resolvedsmartlinkdocument-list', + args=(self.context['document'].pk, instance.pk,), + request=self.context['request'], format=self.context['format'] + ) + + def get_resolved_dynamic_label(self, instance): + return instance.get_dynamic_label(document=self.context['document']) + + def get_resolved_smart_link_url(self, instance): + return reverse( + 'rest_api:resolvedsmartlink-detail', + args=(self.context['document'].pk, instance.pk,), + request=self.context['request'], format=self.context['format'] + ) + + +class WritableSmartLinkSerializer(serializers.ModelSerializer): + conditions_url = serializers.HyperlinkedIdentityField( + view_name='rest_api:smartlinkcondition-list' + ) + document_types_pk_list = serializers.CharField( + help_text=_( + 'Comma separated list of document type primary keys to which this ' + 'smart link will be attached.' + ), required=False + ) + + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:smartlink-detail'}, + } + fields = ( + 'conditions_url', 'document_types_pk_list', 'dynamic_label', + 'enabled', 'label', 'id', 'url' + ) + model = SmartLink + + def validate(self, attrs): + document_types_pk_list = attrs.pop('document_types_pk_list', None) + document_types_result = [] + + if document_types_pk_list: + for pk in document_types_pk_list.split(','): + try: + document_type = DocumentType.objects.get(pk=pk) + except DocumentType.DoesNotExist: + raise ValidationError(_('No such document type: %s') % pk) + else: + # Accumulate valid stored document_type pks + document_types_result.append(document_type.pk) + + attrs['document_types'] = DocumentType.objects.filter( + pk__in=document_types_result + ) + return attrs diff --git a/mayan/apps/linking/tests/literals.py b/mayan/apps/linking/tests/literals.py index 279ea65564..6c00f08366 100644 --- a/mayan/apps/linking/tests/literals.py +++ b/mayan/apps/linking/tests/literals.py @@ -1,5 +1,9 @@ from __future__ import unicode_literals +TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA = 'label' +TEST_SMART_LINK_CONDITION_EXPRESSION = 'sample' +TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED = '\'test edited\'' +TEST_SMART_LINK_CONDITION_OPERATOR = 'icontains' TEST_SMART_LINK_DYNAMIC_LABEL = '{{ document.label }}' -TEST_SMART_LINK_EDITED_LABEL = 'test edited label' +TEST_SMART_LINK_LABEL_EDITED = 'test edited label' TEST_SMART_LINK_LABEL = 'test label' diff --git a/mayan/apps/linking/tests/test_api.py b/mayan/apps/linking/tests/test_api.py new file mode 100644 index 0000000000..08d5cba9ae --- /dev/null +++ b/mayan/apps/linking/tests/test_api.py @@ -0,0 +1,344 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings + +from documents.models import DocumentType +from documents.tests.literals import ( + TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +) +from rest_api.tests import BaseAPITestCase +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import SmartLink, SmartLinkCondition + +from .literals import ( + TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA, + TEST_SMART_LINK_CONDITION_EXPRESSION, + TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED, + TEST_SMART_LINK_CONDITION_OPERATOR, TEST_SMART_LINK_DYNAMIC_LABEL, + TEST_SMART_LINK_LABEL_EDITED, TEST_SMART_LINK_LABEL +) + + +@override_settings(OCR_AUTO_OCR=False) +class SmartLinkAPITestCase(BaseAPITestCase): + def setUp(self): + super(SmartLinkAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + super(SmartLinkAPITestCase, self).tearDown() + + def _create_document_type(self): + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + def _create_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def _create_smart_link(self): + return SmartLink.objects.create( + label=TEST_SMART_LINK_LABEL, + dynamic_label=TEST_SMART_LINK_DYNAMIC_LABEL + ) + + def test_smart_link_create_view(self): + response = self.client.post( + reverse('rest_api:smartlink-list'), { + 'label': TEST_SMART_LINK_LABEL + } + ) + + smart_link = SmartLink.objects.first() + self.assertEqual(response.data['id'], smart_link.pk) + self.assertEqual(response.data['label'], TEST_SMART_LINK_LABEL) + + self.assertEqual(SmartLink.objects.count(), 1) + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL) + + def test_smart_link_create_with_document_types_view(self): + self._create_document_type() + + response = self.client.post( + reverse('rest_api:smartlink-list'), data={ + 'label': TEST_SMART_LINK_LABEL, + 'document_types_pk_list': self.document_type.pk + }, + ) + + smart_link = SmartLink.objects.first() + self.assertEqual(response.data['id'], smart_link.pk) + self.assertEqual(response.data['label'], TEST_SMART_LINK_LABEL) + + self.assertEqual(SmartLink.objects.count(), 1) + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL) + self.assertQuerysetEqual( + smart_link.document_types.all(), (repr(self.document_type),) + ) + + def test_smart_link_delete_view(self): + smart_link = self._create_smart_link() + + self.client.delete( + reverse('rest_api:smartlink-detail', args=(smart_link.pk,)) + ) + + self.assertEqual(SmartLink.objects.count(), 0) + + def test_smart_link_detail_view(self): + smart_link = self._create_smart_link() + + response = self.client.get( + reverse('rest_api:smartlink-detail', args=(smart_link.pk,)) + ) + + self.assertEqual( + response.data['label'], TEST_SMART_LINK_LABEL + ) + + def test_smart_link_patch_view(self): + self._create_document_type() + smart_link = self._create_smart_link() + + self.client.patch( + reverse('rest_api:smartlink-detail', args=(smart_link.pk,)), + data={ + 'label': TEST_SMART_LINK_LABEL_EDITED, + 'document_types_pk_list': self.document_type.pk + } + ) + + smart_link.refresh_from_db() + + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL_EDITED) + self.assertQuerysetEqual( + smart_link.document_types.all(), (repr(self.document_type),) + ) + + def test_smart_link_put_view(self): + smart_link = self._create_smart_link() + + self.client.put( + reverse('rest_api:smartlink-detail', args=(smart_link.pk,)), + data={ + 'label': TEST_SMART_LINK_LABEL_EDITED, + } + ) + + smart_link.refresh_from_db() + + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL_EDITED) + + +@override_settings(OCR_AUTO_OCR=False) +class SmartLinkConditionAPITestCase(BaseAPITestCase): + def setUp(self): + super(SmartLinkConditionAPITestCase, self).setUp() + + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + def tearDown(self): + if hasattr(self, 'document_type'): + self.document_type.delete() + super(SmartLinkConditionAPITestCase, self).tearDown() + + def _create_document_type(self): + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + def _create_document(self): + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + self.document = self.document_type.new_document( + file_object=file_object + ) + + def _create_smart_link(self): + self.smart_link = SmartLink.objects.create( + label=TEST_SMART_LINK_LABEL, + dynamic_label=TEST_SMART_LINK_DYNAMIC_LABEL + ) + self.smart_link.document_types.add(self.document_type) + + def _create_smart_link_condition(self): + self.smart_link_condition = SmartLinkCondition.objects.create( + smart_link=self.smart_link, + foreign_document_data=TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA, + expression=TEST_SMART_LINK_CONDITION_EXPRESSION, + operator=TEST_SMART_LINK_CONDITION_OPERATOR + ) + + def test_resolved_smart_link_detail_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + self._create_document() + + response = self.client.get( + reverse( + 'rest_api:resolvedsmartlink-detail', + args=(self.document.pk, self.smart_link.pk) + ) + ) + + self.assertEqual( + response.data['label'], TEST_SMART_LINK_LABEL + ) + + def test_resolved_smart_link_list_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + self._create_document() + + response = self.client.get( + reverse( + 'rest_api:resolvedsmartlink-list', args=(self.document.pk,) + ) + ) + + self.assertEqual( + response.data['results'][0]['label'], TEST_SMART_LINK_LABEL + ) + + def test_resolved_smart_link_document_list_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + self._create_document() + + response = self.client.get( + reverse( + 'rest_api:resolvedsmartlinkdocument-list', + args=(self.document.pk, self.smart_link.pk) + ) + ) + + self.assertEqual( + response.data['results'][0]['label'], self.document.label + ) + + def test_smart_link_condition_create_view(self): + self._create_document_type() + self._create_smart_link() + + response = self.client.post( + reverse( + 'rest_api:smartlinkcondition-list', args=(self.smart_link.pk,) + ), { + 'foreign_document_data': TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA, + 'expression': TEST_SMART_LINK_CONDITION_EXPRESSION, + 'operator': TEST_SMART_LINK_CONDITION_OPERATOR + } + ) + + smart_link_condition = SmartLinkCondition.objects.first() + self.assertEqual(response.data['id'], smart_link_condition.pk) + self.assertEqual( + response.data['operator'], TEST_SMART_LINK_CONDITION_OPERATOR + ) + + self.assertEqual(SmartLinkCondition.objects.count(), 1) + self.assertEqual( + smart_link_condition.operator, TEST_SMART_LINK_CONDITION_OPERATOR + ) + + def test_smart_link_condition_delete_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + + self.client.delete( + reverse( + 'rest_api:smartlinkcondition-detail', + args=(self.smart_link.pk, self.smart_link_condition.pk) + ) + ) + + self.assertEqual(SmartLinkCondition.objects.count(), 0) + + def test_smart_link_condition_detail_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + + response = self.client.get( + reverse( + 'rest_api:smartlinkcondition-detail', + args=(self.smart_link.pk, self.smart_link_condition.pk) + ) + ) + + self.assertEqual( + response.data['operator'], TEST_SMART_LINK_CONDITION_OPERATOR + ) + + def test_smart_link_condition_patch_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + + self.client.patch( + reverse( + 'rest_api:smartlinkcondition-detail', + args=(self.smart_link.pk, self.smart_link_condition.pk) + ), + data={ + 'expression': TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED, + } + ) + + self.smart_link_condition.refresh_from_db() + + self.assertEqual( + self.smart_link_condition.expression, + TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED + ) + + def test_smart_link_condition_put_view(self): + self._create_document_type() + self._create_smart_link() + self._create_smart_link_condition() + + self.client.put( + reverse( + 'rest_api:smartlinkcondition-detail', + args=(self.smart_link.pk, self.smart_link_condition.pk) + ), + data={ + 'expression': TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED, + 'foreign_document_data': TEST_SMART_LINK_CONDITION_FOREIGN_DOCUMENT_DATA, + 'operator': TEST_SMART_LINK_CONDITION_OPERATOR, + } + ) + + self.smart_link_condition.refresh_from_db() + + self.assertEqual( + self.smart_link_condition.expression, + TEST_SMART_LINK_CONDITION_EXPRESSION_EDITED + ) diff --git a/mayan/apps/linking/tests/test_views.py b/mayan/apps/linking/tests/test_views.py index 92d43e8841..218fcffd08 100644 --- a/mayan/apps/linking/tests/test_views.py +++ b/mayan/apps/linking/tests/test_views.py @@ -10,7 +10,7 @@ from ..permissions import ( ) from .literals import ( - TEST_SMART_LINK_DYNAMIC_LABEL, TEST_SMART_LINK_EDITED_LABEL, + TEST_SMART_LINK_DYNAMIC_LABEL, TEST_SMART_LINK_LABEL_EDITED, TEST_SMART_LINK_LABEL ) @@ -80,7 +80,7 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): response = self.post( 'linking:smart_link_edit', args=(smart_link.pk,), data={ - 'label': TEST_SMART_LINK_EDITED_LABEL + 'label': TEST_SMART_LINK_LABEL_EDITED } ) self.assertEqual(response.status_code, 403) @@ -98,13 +98,13 @@ class SmartLinkViewTestCase(GenericDocumentViewTestCase): response = self.post( 'linking:smart_link_edit', args=(smart_link.pk,), data={ - 'label': TEST_SMART_LINK_EDITED_LABEL + 'label': TEST_SMART_LINK_LABEL_EDITED }, follow=True ) smart_link = SmartLink.objects.get(pk=smart_link.pk) self.assertContains(response, text='update', status_code=200) - self.assertEqual(smart_link.label, TEST_SMART_LINK_EDITED_LABEL) + self.assertEqual(smart_link.label, TEST_SMART_LINK_LABEL_EDITED) def setup_smart_links(self): smart_link = SmartLink.objects.create( diff --git a/mayan/apps/linking/urls.py b/mayan/apps/linking/urls.py index 461bbf46c3..46eb35e989 100644 --- a/mayan/apps/linking/urls.py +++ b/mayan/apps/linking/urls.py @@ -2,6 +2,11 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import ( + APIResolvedSmartLinkView, APIResolvedSmartLinkDocumentListView, + APIResolvedSmartLinkListView, APISmartLinkListView, APISmartLinkView, + APISmartLinkConditionListView, APISmartLinkConditionView +) from .views import ( DocumentSmartLinkListView, ResolvedSmartLinkView, SetupSmartLinkDocumentTypesView, SmartLinkConditionListView, @@ -60,3 +65,38 @@ urlpatterns = [ name='smart_link_condition_delete' ), ] + +api_urls = [ + url( + r'^smart_links/$', APISmartLinkListView.as_view(), + name='smartlink-list' + ), + url( + r'^smart_links/(?P[0-9]+)/$', APISmartLinkView.as_view(), + name='smartlink-detail' + ), + url( + r'^smart_links/(?P[0-9]+)/conditions/$', + APISmartLinkConditionListView.as_view(), name='smartlinkcondition-list' + ), + url( + r'^smart_links/(?P[0-9]+)/conditions/(?P[0-9]+)/$', + APISmartLinkConditionView.as_view(), + name='smartlinkcondition-detail' + ), + url( + r'^documents/(?P[0-9]+)/resolved_smart_links/$', + APIResolvedSmartLinkListView.as_view(), + name='resolvedsmartlink-list' + ), + url( + r'^documents/(?P[0-9]+)/resolved_smart_links/(?P[0-9]+)/$', + APIResolvedSmartLinkView.as_view(), + name='resolvedsmartlink-detail' + ), + url( + r'^documents/(?P[0-9]+)/resolved_smart_links/(?P[0-9]+)/documents/$', + APIResolvedSmartLinkDocumentListView.as_view(), + name='resolvedsmartlinkdocument-list' + ), +] diff --git a/mayan/apps/linking/views.py b/mayan/apps/linking/views.py index 0af56cfcd4..2f82f757b9 100644 --- a/mayan/apps/linking/views.py +++ b/mayan/apps/linking/views.py @@ -160,9 +160,7 @@ class DocumentSmartLinkListView(SmartLinkListView): } def get_smart_link_queryset(self): - return ResolvedSmartLink.objects.filter( - document_types=self.document.document_type, enabled=True - ) + return ResolvedSmartLink.objects.get_for(document=self.document) class SmartLinkCreateView(SingleObjectCreateView): diff --git a/mayan/apps/lock_manager/apps.py b/mayan/apps/lock_manager/apps.py index 9ad96c81d5..27e11f8bd1 100644 --- a/mayan/apps/lock_manager/apps.py +++ b/mayan/apps/lock_manager/apps.py @@ -5,6 +5,6 @@ from django.utils.translation import ugettext_lazy as _ class LockManagerApp(apps.AppConfig): + has_tests = True name = 'lock_manager' - test = True verbose_name = _('Lock manager') diff --git a/mayan/apps/lock_manager/backends/file_lock.py b/mayan/apps/lock_manager/backends/file_lock.py index 9f020deae2..389d48d297 100644 --- a/mayan/apps/lock_manager/backends/file_lock.py +++ b/mayan/apps/lock_manager/backends/file_lock.py @@ -2,24 +2,30 @@ from __future__ import unicode_literals import logging import json +import os import threading import time import uuid from django.core.files import locks -from common.utils import mkstemp +from common.settings import setting_temporary_directory from ..exceptions import LockError lock = threading.Lock() logger = logging.getLogger(__name__) -temporary_file = mkstemp()[1] -logger.debug('temporary_file: %s', temporary_file) +lock_file = os.path.join( + setting_temporary_directory.value, 'mayan_locks.tmp' +) +open(lock_file, 'a').close() +logger.debug('lock_file: %s', lock_file) class FileLock(object): + lock_file = lock_file + @classmethod def acquire_lock(cls, name, timeout=None): instance = FileLock(name=name, timeout=timeout) @@ -45,7 +51,7 @@ class FileLock(object): self.uuid = uuid.uuid4().get_hex() lock.acquire() - with open(temporary_file, 'r+') as file_object: + with open(self.__class__.lock_file, 'r+') as file_object: locks.lock(f=file_object, flags=locks.LOCK_EX) data = file_object.read() @@ -73,7 +79,7 @@ class FileLock(object): def release(self): lock.acquire() - with open(temporary_file, 'r+') as file_object: + with open(self.__class__.lock_file, 'r+') as file_object: locks.lock(f=file_object, flags=locks.LOCK_EX) try: file_locks = json.loads(file_object.read()) diff --git a/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.mo index 221ad445d1..b5f818d167 100644 Binary files a/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.po index 4b665608fe..2da49e03e0 100644 --- a/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/ar/LC_MESSAGES/django.po @@ -1,23 +1,25 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.mo index e2cd12d3d4..26a09a6ac4 100644 Binary files a/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.po index 508066e2cf..8b02a2abee 100644 --- a/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/bg/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.mo index 8b747daee3..568092cf4c 100644 Binary files a/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.po index d194394497..f4639fa52f 100644 --- a/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/bs_BA/LC_MESSAGES/django.po @@ -1,23 +1,25 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.mo index b1e5c87306..c69cc88af7 100644 Binary files a/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.po index 63a8389a6f..27a24f7f4d 100644 --- a/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/da/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.mo index 45cb6d6bbc..37940364c9 100644 Binary files a/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.po index 45668e68a8..2a116463c5 100644 --- a/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/de_DE/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:04+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Sperrverwaltung" diff --git a/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.mo index 6bcd9f629a..a67c07abb0 100644 Binary files a/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.po index 8b89946c4d..970807777a 100644 --- a/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.mo index d4da72101e..52c179db34 100644 Binary files a/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.po index 28b9f597cd..581cfd3485 100644 --- a/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/es/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:04+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Gestor de bloqueos" diff --git a/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.mo index 5decc33561..e1d705ab1d 100644 Binary files a/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.po index bb1eeb1ca3..f528736986 100644 --- a/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/fa/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.mo index cade42fce7..747bfbbaaa 100644 Binary files a/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.po index 8dd496115e..9acec7476d 100644 --- a/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/fr/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:04+0000\n" "Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Gestionnaire de vérrou" diff --git a/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.mo index 576f0cdf08..804bc11bcb 100644 Binary files a/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.po index 8ab470b890..c6df18ba11 100644 --- a/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/hu/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.mo index 2fac201b33..409d24ab81 100644 Binary files a/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.po index 28aab4d7a8..67e30f8732 100644 --- a/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/id/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.mo index 9c4fb23e94..718dc22871 100644 Binary files a/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.po index c734ff472b..364936fdc4 100644 --- a/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/it/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-09-24 09:13+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Gestore blocco" diff --git a/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.mo index 2c3454e151..0922c0cea7 100644 Binary files a/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.po index 97fbc9977c..897cb25615 100644 --- a/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/nl_NL/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-09 16:40+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.mo index 2f721648c0..dcca13ad49 100644 Binary files a/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.po index f1fd7d74aa..aaea832c17 100644 --- a/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/pl/LC_MESSAGES/django.po @@ -1,23 +1,25 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.mo index 123c54baf4..e2df836101 100644 Binary files a/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.po index 3be7f3e8ca..520628e2d9 100644 --- a/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/pt/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.mo index d875d26b9c..3ad3020038 100644 Binary files a/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.po index b33cfb2628..1d7f955851 100644 --- a/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/pt_BR/LC_MESSAGES/django.po @@ -1,24 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-04 19:32+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "Gerenciador de bloqueios" diff --git a/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.mo index 4160a281ac..d1550a3bdc 100644 Binary files a/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.po index 3b61ec3c92..4b3cd036ca 100644 --- a/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/ro_RO/LC_MESSAGES/django.po @@ -1,23 +1,25 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.mo index b9970521ac..bc54edce36 100644 Binary files a/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.po index d532d5e137..e17cc40a28 100644 --- a/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/ru/LC_MESSAGES/django.po @@ -1,23 +1,26 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.mo index 70062d1c09..c485cb7ffb 100644 Binary files a/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.po index 53f4d53e38..fff447f3f7 100644 --- a/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/sl_SI/LC_MESSAGES/django.po @@ -1,23 +1,25 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.mo index 7ff23a51ff..7080b698fa 100644 Binary files a/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.po index 710bb23a22..29325e2a26 100644 --- a/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/vi_VN/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.mo index 222bc205e2..ff0f10fe2e 100644 Binary files a/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.po index a1edde08ae..0cd5a08635 100644 --- a/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/lock_manager/locale/zh_CN/LC_MESSAGES/django.po @@ -1,23 +1,24 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-08-20 19:15+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:10 +#: apps.py:10 settings.py:10 msgid "Lock manager" msgstr "" diff --git a/mayan/apps/mailer/apps.py b/mayan/apps/mailer/apps.py index a333eb3d23..aacea96688 100644 --- a/mayan/apps/mailer/apps.py +++ b/mayan/apps/mailer/apps.py @@ -21,8 +21,8 @@ from .permissions import ( class MailerApp(MayanAppConfig): + has_tests = True name = 'mailer' - test = True verbose_name = _('Mailer') def ready(self): diff --git a/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.mo index 798d7b15f0..f433c57b65 100644 Binary files a/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.po index bd25e15981..daba3339f0 100644 --- a/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/ar/LC_MESSAGES/django.po @@ -1,55 +1,57 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "يجب أن توفر ما لا يقل عن وثيقة واحدة." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.mo index 2046c01dcd..3ebb748f1d 100644 Binary files a/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.po index c79c8d79b6..f51f8c2445 100644 --- a/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/bg/LC_MESSAGES/django.po @@ -1,56 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Pavlin Koldamov , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:07+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Ел. поща адрес" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Относно" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Съдържание" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Пощ. документ" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Пощ. връзка" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -124,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Успешно наредено за изпращане чрез ел.поща." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Изпрати" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.mo index 6621c1115f..659eccd083 100644 Binary files a/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.po index b5d974c753..c89a9b6c34 100644 --- a/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/bs_BA/LC_MESSAGES/django.po @@ -1,55 +1,57 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Mora biti barem jedan dokument." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/da/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/da/LC_MESSAGES/django.mo index 97a0d55e8d..0027b58311 100644 Binary files a/mayan/apps/mailer/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/da/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/da/LC_MESSAGES/django.po index 2991b80f60..0a456e15e8 100644 --- a/mayan/apps/mailer/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/da/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Angiv mindst ét ​​dokument." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.mo index 4680b55b45..83db4764a0 100644 Binary files a/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.po index 2a57caa1e0..bde5c98c57 100644 --- a/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/de_DE/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:07+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "Mailer" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Zeit" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Nachricht" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "E-Mailadresse" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Betreff" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Nachrichtenteil" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Dokument als E-Mailanhang senden" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Link zum Dokument per E-Mail senden" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Fehlerprotokoll" @@ -60,7 +61,11 @@ msgid "" "\n" " --------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Anlagen: {{ document }}\n\n --------\n Diese E-Mail wurde gesendet mit %(project_title)s (%(project_website)s)" +msgstr "" +"Anlagen: {{ document }}\n" +"\n" +" --------\n" +" Diese E-Mail wurde gesendet mit %(project_title)s (%(project_website)s)" #: literals.py:13 #, python-format @@ -69,7 +74,12 @@ msgid "" "\n" "--------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Um dieses Dokument anzuzeigen klicken Sie bitte auf folgenden Link: {{ link }}\n\n--------\n Diese E-Mail wurde gesendet mit %(project_title)s (%(project_website)s)" +msgstr "" +"Um dieses Dokument anzuzeigen klicken Sie bitte auf folgenden Link: " +"{{ link }}\n" +"\n" +"--------\n" +" Diese E-Mail wurde gesendet mit %(project_title)s (%(project_website)s)" #: models.py:13 msgid "Date time" @@ -105,11 +115,14 @@ msgstr "Link für Dokument: {{ document }}" #: settings.py:15 msgid "Template for the document link email form subject line." -msgstr "Vorlage für die Betreffzeile des Formulars für die Dokumentenlinkversendung" +msgstr "" +"Vorlage für die Betreffzeile des Formulars für die Dokumentenlinkversendung" #: settings.py:20 msgid "Template for the document link email form body line." -msgstr "Vorlage für den Nachrichtenteil des Formulars für die Dokumentenlinkversendung" +msgstr "" +"Vorlage für den Nachrichtenteil des Formulars für die " +"Dokumentenlinkversendung" #: settings.py:24 msgid "Document: {{ document }}" @@ -117,40 +130,34 @@ msgstr "Dokument: {{ document }}" #: settings.py:25 msgid "Template for the document email form subject line." -msgstr "Vorlage für die Betreffzeile des Formulars für die Dokumentenversendung" +msgstr "" +"Vorlage für die Betreffzeile des Formulars für die Dokumentenversendung" #: settings.py:30 msgid "Template for the document email form body line." -msgstr "Vorlage für den Nachrichtenteil des Formulars für die Dokumentenversendung" +msgstr "" +"Vorlage für den Nachrichtenteil des Formulars für die Dokumentenversendung" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Erfolgreich eingereiht in den E-Mailversand" +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Senden" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "E-Mail Dokument: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "E-Mail Link für Dokument %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "E-Mail Dokumente: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Links für Dokumente %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/en/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/en/LC_MESSAGES/django.mo index 6bcd9f629a..a67c07abb0 100644 Binary files a/mayan/apps/mailer/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/en/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/en/LC_MESSAGES/django.po index 8794297880..ddf6a001e0 100644 --- a/mayan/apps/mailer/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,39 +17,39 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +123,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/es/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/es/LC_MESSAGES/django.mo index 9388e3b453..efa209613e 100644 Binary files a/mayan/apps/mailer/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/es/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/es/LC_MESSAGES/django.po index 620c494815..2015fd939d 100644 --- a/mayan/apps/mailer/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/es/LC_MESSAGES/django.po @@ -5,13 +5,13 @@ # Translators: # Lory977 , 2015 # Roberto Rosario, 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-05-09 01:36+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-05-28 19:53+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" @@ -20,39 +20,39 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "Correspondencia" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Fecha y hora" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Mensaje" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Dirección de correo electrónico" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Tema" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Cuerpo" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Enviar documento" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Enviar enlace" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Biracora de errores de envío" @@ -126,34 +126,26 @@ msgstr "Plantilla para la línea de sujeto del correo electrónico de envio de d msgid "Template for the document email form body line." msgstr "Plantilla para la línea de cuerpo del correo electrónico para envío de documento." -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Debe proveer al menos un documento" +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "%(count)d documento en sometido para entrega por correo electrónico" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Añadido de forma exitosa a la lista de espera para envío de correo electrónico" +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "%(count)d documentos sometidos para entrega por correo electrónico" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Enviar" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "Enviar documento: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "%(count)d enlace de documento sometido para entrega por correo electrónico" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "Enviar enlace para el documento: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "Enviar documentos: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Enviar enlaces para documentos: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "%(count)d enlaces de documento sometido para entrega por correo electrónico" diff --git a/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.mo index 3a0871e711..57a04f50db 100644 Binary files a/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.po index 09712e1eff..169211401d 100644 --- a/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/fa/LC_MESSAGES/django.po @@ -1,56 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mehdi Amani , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:07+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "تاریخ و زمان" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "پست الکترونیکی" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "موضوع" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "بدنه" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "ایمیل کردن سند" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "پیوند پلکترونیکی" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -124,34 +125,26 @@ msgstr "الگوی ارسال سند بوسیله پیوند آن از داخل msgid "Template for the document email form body line." msgstr "الگوی ارسال سند از داخل بدنه" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "حداقل یک سند بایست ارایه گردد." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "ورود موفق به صف ارسال از طریق ایمیل" +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "ارسال" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "ایمیل سند: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "پیوند ایمیل برای سند: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "ایمیل اسناد: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "پیوند ایمیل برای اسناد: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.mo index 68ac401944..e54277a0e2 100644 Binary files a/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.po index c4d440791c..621335787d 100644 --- a/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/fr/LC_MESSAGES/django.po @@ -1,56 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:07+0000\n" -"Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "Gestionnaire d'envoi" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Date et heure" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Message" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Adresse du courriel" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Sujet" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Corps" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Envoyer le document par courriel" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Lien du courriel" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Journal d'erreur du document envoyé" @@ -61,7 +62,11 @@ msgid "" "\n" " --------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Attaché à ce courriel , voici le - document: {{ document }}\n\n --------\n Ce courriel a été envoyé depuis %(project_title)s (%(project_website)s)" +msgstr "" +"Attaché à ce courriel , voici le - document: {{ document }}\n" +"\n" +" --------\n" +" Ce courriel a été envoyé depuis %(project_title)s (%(project_website)s)" #: literals.py:13 #, python-format @@ -70,7 +75,11 @@ msgid "" "\n" "--------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Pour acceder à ce document cliquer sur le lien suivant: {{ link }}\n\n--------\n Ce courriel a été envoyé depuis %(project_title)s (%(project_website)s)" +msgstr "" +"Pour acceder à ce document cliquer sur le lien suivant: {{ link }}\n" +"\n" +"--------\n" +" Ce courriel a été envoyé depuis %(project_title)s (%(project_website)s)" #: models.py:13 msgid "Date time" @@ -124,34 +133,26 @@ msgstr "Modèle pour le sujet du courriel du document." msgid "Template for the document email form body line." msgstr "Modèle pour le corps du courriel du document." -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Vous devez fournir au moins un document." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Ajouter à la file d'attente avec succès pour l'envoi via courriel." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Envoyé" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "Document du courriel: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "Lien du courriel pour ce document: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "Documents du courriel: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Liens de courriel pour le document: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.mo index 3ad8c86f5d..73512aa024 100644 Binary files a/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.po index 478628ce15..15ea42c327 100644 --- a/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/hu/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Adjon meg legalább egy dokumentumot." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/id/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/id/LC_MESSAGES/django.mo index 25ce02cbc7..c1384f6abd 100644 Binary files a/mayan/apps/mailer/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/id/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/id/LC_MESSAGES/django.po index 4a8852851e..e907522c8a 100644 --- a/mayan/apps/mailer/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/id/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/it/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/it/LC_MESSAGES/django.mo index 1ccfce19a4..3b15f5cb28 100644 Binary files a/mayan/apps/mailer/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/it/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/it/LC_MESSAGES/django.po index d36773ca27..151ac09d4e 100644 --- a/mayan/apps/mailer/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/it/LC_MESSAGES/django.po @@ -1,56 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-09-24 10:09+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "Posta" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Data e ora" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Messaggio" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Indirizzo email" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Oggetto" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Corpo" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Documento email" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Link email" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Log errori mailing documento" @@ -61,7 +62,11 @@ msgid "" "\n" " --------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Allegato a questa mail è il documento: {{ document }}\n\n --------\nQuesta mail è stata inviata da %(project_title)s (%(project_website)s)" +msgstr "" +"Allegato a questa mail è il documento: {{ document }}\n" +"\n" +" --------\n" +"Questa mail è stata inviata da %(project_title)s (%(project_website)s)" #: literals.py:13 #, python-format @@ -70,7 +75,11 @@ msgid "" "\n" "--------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Per accedere al documento fai click sul seguente link: {{ link }}\n\n--------\nQuesta mail è stata inviata da %(project_title)s (%(project_website)s)" +msgstr "" +"Per accedere al documento fai click sul seguente link: {{ link }}\n" +"\n" +"--------\n" +"Questa mail è stata inviata da %(project_title)s (%(project_website)s)" #: models.py:13 msgid "Date time" @@ -106,11 +115,15 @@ msgstr "Link per il documento: {{ document }}" #: settings.py:15 msgid "Template for the document link email form subject line." -msgstr "Template per l'oggetto del modulo e-mail per l'invio del collegamento al documento." +msgstr "" +"Template per l'oggetto del modulo e-mail per l'invio del collegamento al " +"documento." #: settings.py:20 msgid "Template for the document link email form body line." -msgstr "Template per il corpo del modulo e-mail per l'invio del collegamento al documento." +msgstr "" +"Template per il corpo del modulo e-mail per l'invio del collegamento al " +"documento." #: settings.py:24 msgid "Document: {{ document }}" @@ -124,34 +137,26 @@ msgstr "Template per l'oggetto del modulo e-mail per l'invio documento." msgid "Template for the document email form body line." msgstr "Template per il corpo del modulo e-mail per l'invio documento." -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Fornire almeno un documento " +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Messo in coda per il recapito via email." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Invia" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "Email documento: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "Email link per il documento: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "Email documenti: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Email link per i documenti: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.mo index 426a200b38..07d57c7a14 100644 Binary files a/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.po index d37cfe6384..da8ee57e5a 100644 --- a/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/nl_NL/LC_MESSAGES/django.po @@ -1,56 +1,57 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 12:35+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "Mailer" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Datum en tijd" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Bericht" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "E-mailadres" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Onderwerp" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Body" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "E-mail document" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "E-mail lin" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -124,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Succesvol in de wachtrij geplaatst voor levering via e-mail." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Verzenden" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "E-mail document: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "E-mail link voor document: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "E-mail documenten: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "E-mail links voor documenten: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.mo index 1fb73eb45e..e87fe3d6ed 100644 Binary files a/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.po index c38e9cd01a..74d323bc8c 100644 --- a/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/pl/LC_MESSAGES/django.po @@ -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: # Annunnaky , 2015 # Wojtek Warczakowski , 2016 @@ -9,49 +9,52 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-03-21 21:07+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Data i godzina" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Adres e-mail:" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Temat" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Treść" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Dokument e-mail" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Link e-mail" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Błędy wysyłania dokumentów" @@ -125,34 +128,26 @@ msgstr "Szablon tematu wiadomości email" msgid "Template for the document email form body line." msgstr "Szablon treści e-mail" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Musisz podać co najmniej jeden dokument." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Przekazanie do wysłania drogą e-mail zakończone powodzeniem. " +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Wyślij" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "Dokument e-mail: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "Link dokumetu: %s" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "Dokumenty e-mail: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "Linki dla dokumentów: %s" +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.mo index f1f05abb0b..8191f76dff 100644 Binary files a/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.po index f419ceacc2..6d4a1ed648 100644 --- a/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/pt/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Endereço de correio eletrónico" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Assunto" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Corpo" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Documento de correio eletrónico" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Hiperçigação de correio eletrónico" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -105,7 +106,9 @@ msgstr "Hiperligação para o documento: {{ document }}" #: settings.py:15 msgid "Template for the document link email form subject line." -msgstr "Modelo para a linha do assunto do formulário de mensagem da hiperligação de documento." +msgstr "" +"Modelo para a linha do assunto do formulário de mensagem da hiperligação de " +"documento." #: settings.py:20 msgid "Template for the document link email form body line." @@ -123,34 +126,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "Enviar" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.mo index 57b92419df..d9e947fc36 100644 Binary files a/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.po index fa2bb6d545..275ac5c5d4 100644 --- a/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 # Rogerio Falcone , 2015 @@ -9,49 +9,50 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-17 22:45+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:25 +#: apps.py:26 msgid "Mailer" msgstr "Envio de emails" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Data e hora" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Mensagem" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Endereço de E-mail" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Assunto" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Corpo" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "Documento do e-mail" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "Ligação do e-mail" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Registro de erro de envio" @@ -62,7 +63,10 @@ msgid "" "\n" " --------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Se anexa a este documento de e-mail: {{ document }}\n--------\nEste e-mail foi enviado por %(project_title)s (%(project_website)s)" +msgstr "" +"Se anexa a este documento de e-mail: {{ document }}\n" +"--------\n" +"Este e-mail foi enviado por %(project_title)s (%(project_website)s)" #: literals.py:13 #, python-format @@ -71,7 +75,10 @@ msgid "" "\n" "--------\n" " This email has been sent from %(project_title)s (%(project_website)s)" -msgstr "Para acessar este documento clique na ligação a seguir: {{ link }}\n--------\nEste email foi enviado por %(project_title)s (%(project_website)s)" +msgstr "" +"Para acessar este documento clique na ligação a seguir: {{ link }}\n" +"--------\n" +"Este email foi enviado por %(project_title)s (%(project_website)s)" #: models.py:13 msgid "Date time" @@ -107,11 +114,14 @@ msgstr "Link para o documento: {{ document }}" #: settings.py:15 msgid "Template for the document link email form subject line." -msgstr "Modelo para a linha de assunto do e-mail para envio do link do documento." +msgstr "" +"Modelo para a linha de assunto do e-mail para envio do link do documento." #: settings.py:20 msgid "Template for the document link email form body line." -msgstr "Modelo para a linha do corpo do formulário do e-mail para envio do link do documento" +msgstr "" +"Modelo para a linha do corpo do formulário do e-mail para envio do link do " +"documento" #: settings.py:24 msgid "Document: {{ document }}" @@ -125,34 +135,26 @@ msgstr "Modelo para a linha de assunto do e-mail de envio de documento." msgid "Template for the document email form body line." msgstr "Modelo para a linha de corpo do e-mail para envio de documento." -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Agregado com êxito à lista de espera para envio de e-mail." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Enviar" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" -msgstr "E-mail de documentos: %s" +msgid "%(count)d document link queued for email delivery" +msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "link de e-mail para documento: %s " - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "E-mail de documentos: %s" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" -msgstr "link de e-mail para documento: %s " +msgid "%(count)d document links queued for email delivery" +msgstr "" diff --git a/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.mo index 3a0d42b056..55efd002b1 100644 Binary files a/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.po index debd0713cd..5f1efa032c 100644 --- a/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/ro_RO/LC_MESSAGES/django.po @@ -1,55 +1,57 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Trebuie selectat cel puțin un document." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.mo index 5bd5e1c07b..39b9d228c9 100644 Binary files a/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.po index 08e00e499f..dfcc972c80 100644 --- a/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/ru/LC_MESSAGES/django.po @@ -1,56 +1,59 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-07-13 21:46+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:25 +#: apps.py:26 msgid "Mailer" msgstr "Электронный почтальон" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "Дата и время" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "Сообщение" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "Адрес электронной почты" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "Тема" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "Тело письма" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "Журнал ошибок отправки электронной почты" @@ -124,34 +127,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Необходимо указатьть хотя бы один документ." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" +msgstr "" -#: views.py:105 -msgid "Successfully queued for delivery via email." -msgstr "Успешно добавлено в очередь доставки электронной почты." +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" -#: views.py:114 +#: views.py:48 msgid "Send" msgstr "Отправить" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.mo index 7947303cfc..b6a481b423 100644 Binary files a/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.po index 193e9e08e9..6c9ddb5208 100644 --- a/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/sl_SI/LC_MESSAGES/django.po @@ -1,55 +1,57 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +125,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Potrebno je podati vsaj en dokument" - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.mo index 58c2f06787..2f4a11fd46 100644 Binary files a/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.po index 60e533f5f7..30528a42ca 100644 --- a/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/vi_VN/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu." - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.mo index d8ab2ea206..78c94095c9 100644 Binary files a/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.po index 68d6790c07..33466488ab 100644 --- a/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/mailer/locale/zh_CN/LC_MESSAGES/django.po @@ -1,55 +1,56 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2015-08-20 19:16+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:25 +#: apps.py:26 msgid "Mailer" msgstr "" -#: apps.py:37 +#: apps.py:38 msgid "Date and time" msgstr "" -#: apps.py:41 models.py:16 +#: apps.py:42 models.py:16 msgid "Message" msgstr "" -#: forms.py:29 +#: forms.py:36 msgid "Email address" msgstr "" -#: forms.py:30 +#: forms.py:37 msgid "Subject" msgstr "" -#: forms.py:32 +#: forms.py:39 msgid "Body" msgstr "" -#: links.py:14 +#: links.py:14 links.py:21 msgid "Email document" msgstr "" -#: links.py:18 +#: links.py:18 links.py:24 msgid "Email link" msgstr "" -#: links.py:22 views.py:31 +#: links.py:28 views.py:23 msgid "Document mailing error log" msgstr "" @@ -123,34 +124,26 @@ msgstr "" msgid "Template for the document email form body line." msgstr "" -#: views.py:56 -msgid "Must provide at least one document." -msgstr "至少要有一个文档" - -#: views.py:105 -msgid "Successfully queued for delivery via email." +#: views.py:35 +#, python-format +msgid "%(count)d document queued for email delivery" msgstr "" -#: views.py:114 +#: views.py:37 +#, python-format +msgid "%(count)d documents queued for email delivery" +msgstr "" + +#: views.py:48 msgid "Send" msgstr "" -#: views.py:120 +#: views.py:100 #, python-format -msgid "Email document: %s" +msgid "%(count)d document link queued for email delivery" msgstr "" -#: views.py:122 +#: views.py:102 #, python-format -msgid "Email link for document: %s" -msgstr "" - -#: views.py:125 -#, python-format -msgid "Email documents: %s" -msgstr "" - -#: views.py:127 -#, python-format -msgid "Email links for documents: %s" +msgid "%(count)d document links queued for email delivery" msgstr "" diff --git a/mayan/apps/metadata/api_views.py b/mayan/apps/metadata/api_views.py index 7c7a6070f0..4d16d62d8f 100644 --- a/mayan/apps/metadata/api_views.py +++ b/mayan/apps/metadata/api_views.py @@ -2,8 +2,7 @@ from __future__ import absolute_import, unicode_literals from django.shortcuts import get_object_or_404 -from rest_framework import generics, status, views -from rest_framework.response import Response +from rest_framework import generics from acls.models import AccessControlList from documents.models import Document, DocumentType @@ -13,7 +12,7 @@ from documents.permissions import ( from rest_api.filters import MayanObjectPermissionsFilter from rest_api.permissions import MayanPermission -from .models import DocumentMetadata, DocumentTypeMetadataType, MetadataType +from .models import MetadataType from .permissions import ( permission_metadata_document_add, permission_metadata_document_remove, permission_metadata_document_edit, permission_metadata_document_view, @@ -21,283 +20,315 @@ from .permissions import ( permission_metadata_type_edit, permission_metadata_type_view ) from .serializers import ( - DocumentMetadataSerializer, DocumentNewMetadataSerializer, - DocumentTypeNewMetadataTypeSerializer, MetadataTypeSerializer, - DocumentTypeMetadataTypeSerializer + DocumentMetadataSerializer, DocumentTypeMetadataTypeSerializer, + MetadataTypeSerializer, NewDocumentMetadataSerializer, + NewDocumentTypeMetadataTypeSerializer, + WritableDocumentTypeMetadataTypeSerializer ) -class APIMetadataTypeListView(generics.ListCreateAPIView): - serializer_class = MetadataTypeSerializer - queryset = MetadataType.objects.all() +class APIDocumentMetadataListView(generics.ListCreateAPIView): + def get(self, *args, **kwargs): + """ + Returns a list of selected document's metadata types and values. + """ - permission_classes = (MayanPermission,) + return super(APIDocumentMetadataListView, self).get(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_metadata_document_view + else: + permission_required = permission_metadata_document_add + + document = get_object_or_404( + Document, pk=self.kwargs['document_pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=document + ) + + return document + + def get_queryset(self): + return self.get_document().metadata.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentMetadataSerializer + else: + return NewDocumentMetadataSerializer + + def get_serializer_context(self): + """ + Extra context provided to the serializer class. + """ + + return { + 'document': self.get_document(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def post(self, *args, **kwargs): + """ + Add an existing metadata type and value to the selected document. + """ + + return super(APIDocumentMetadataListView, self).post(*args, **kwargs) + + +class APIDocumentMetadataView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'metadata_pk' + + def delete(self, *args, **kwargs): + """ + Remove this metadata entry from the selected document. + """ + + return super(APIDocumentMetadataView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected document metadata type and value. + """ + + return super(APIDocumentMetadataView, self).get(*args, **kwargs) + + def get_document(self): + if self.request.method == 'GET': + permission_required = permission_metadata_document_view + elif self.request.method == 'PUT': + permission_required = permission_metadata_document_edit + elif self.request.method == 'PATCH': + permission_required = permission_metadata_document_edit + elif self.request.method == 'DELETE': + permission_required = permission_metadata_document_remove + + document = get_object_or_404( + Document, pk=self.kwargs['document_pk'] + ) + + AccessControlList.objects.check_access( + permissions=permission_required, user=self.request.user, + obj=document + ) + + return document + + def get_queryset(self): + return self.get_document().metadata.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentMetadataSerializer + else: + return DocumentMetadataSerializer + + def patch(self, *args, **kwargs): + """ + Edit the selected document metadata type and value. + """ + + return super(APIDocumentMetadataView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected document metadata type and value. + """ + + return super(APIDocumentMetadataView, self).put(*args, **kwargs) + + +class APIMetadataTypeListView(generics.ListCreateAPIView): filter_backends = (MayanObjectPermissionsFilter,) mayan_object_permissions = {'GET': (permission_metadata_type_view,)} mayan_view_permissions = {'POST': (permission_metadata_type_create,)} + permission_classes = (MayanPermission,) + queryset = MetadataType.objects.all() + serializer_class = MetadataTypeSerializer def get(self, *args, **kwargs): """ Returns a list of all the metadata types. """ + return super(APIMetadataTypeListView, self).get(*args, **kwargs) def post(self, *args, **kwargs): """ Create a new metadata type. """ + return super(APIMetadataTypeListView, self).post(*args, **kwargs) class APIMetadataTypeView(generics.RetrieveUpdateDestroyAPIView): - serializer_class = MetadataTypeSerializer - queryset = MetadataType.objects.all() - - permission_classes = (MayanPermission,) + lookup_url_kwarg = 'metadata_type_pk' mayan_object_permissions = { 'GET': (permission_metadata_type_view,), 'PUT': (permission_metadata_type_edit,), 'PATCH': (permission_metadata_type_edit,), 'DELETE': (permission_metadata_type_delete,) } + permission_classes = (MayanPermission,) + queryset = MetadataType.objects.all() + serializer_class = MetadataTypeSerializer def delete(self, *args, **kwargs): """ Delete the selected metadata type. """ + return super(APIMetadataTypeView, self).delete(*args, **kwargs) def get(self, *args, **kwargs): """ Return the details of the selected metadata type. """ + return super(APIMetadataTypeView, self).get(*args, **kwargs) def patch(self, *args, **kwargs): """ Edit the selected metadata type. """ + return super(APIMetadataTypeView, self).patch(*args, **kwargs) def put(self, *args, **kwargs): """ Edit the selected metadata type. """ + return super(APIMetadataTypeView, self).put(*args, **kwargs) -class APIDocumentMetadataListView(generics.ListCreateAPIView): - permission_classes = (MayanPermission,) - - def get_document(self): - return get_object_or_404(Document, pk=self.kwargs['pk']) - - def get_queryset(self): - document = self.get_document() - - if self.request.method == 'GET': - # Make sure the use has the permission to see the metadata for - # this document - AccessControlList.objects.check_access( - permissions=permission_metadata_document_view, - user=self.request.user, obj=document - ) - - return document.metadata.all() - elif self.request.method == 'POST': - # Make sure the use has the permission to add metadata to this - # document - AccessControlList.objects.check_access( - permissions=permission_metadata_document_add, - user=self.request.user, obj=document - ) - - return document.metadata.all() - - def get_serializer_class(self): - if self.request.method == 'GET': - return DocumentMetadataSerializer - elif self.request.method == 'POST': - return DocumentNewMetadataSerializer +class APIDocumentTypeMetadataTypeListView(generics.ListCreateAPIView): + lookup_url_kwarg = 'metadata_type_pk' def get(self, *args, **kwargs): """ - Returns a list of selected document's metadata types and values. + Returns a list of selected document type's metadata types. """ - return super(APIDocumentMetadataListView, self).get(*args, **kwargs) - def perform_create(self, serializer): - serializer.document = self.get_document() - serializer.save() + return super( + APIDocumentTypeMetadataTypeListView, self + ).get(*args, **kwargs) - def post(self, *args, **kwargs): - """ - Add an existing metadata type and value to the selected document. - """ - return super(APIDocumentMetadataListView, self).post(*args, **kwargs) + def get_document_type(self): + if self.request.method == 'GET': + permission_required = permission_document_type_view + else: + permission_required = permission_document_type_edit - -class APIDocumentMetadataView(generics.RetrieveUpdateDestroyAPIView): - serializer_class = DocumentMetadataSerializer - queryset = DocumentMetadata.objects.all() - - permission_classes = (MayanPermission,) - mayan_object_permissions = { - 'GET': (permission_metadata_document_view,), - 'PUT': (permission_metadata_document_edit,), - 'PATCH': (permission_metadata_document_edit,), - 'DELETE': (permission_metadata_document_remove,) - } - - def delete(self, *args, **kwargs): - """ - Delete the selected document metadata type and value. - """ - try: - return super( - APIDocumentMetadataView, self - ).delete(*args, **kwargs) - except Exception as exception: - return Response( - status=status.HTTP_400_BAD_REQUEST, data={ - 'non_fields_errors': unicode(exception) - } - ) - - def get(self, *args, **kwargs): - """ - Return the details of the selected document metadata type and value. - """ - return super(APIDocumentMetadataView, self).get(*args, **kwargs) - - def patch(self, *args, **kwargs): - """ - Edit the selected document metadata type and value. - """ - try: - return super( - APIDocumentMetadataView, self - ).patch(*args, **kwargs) - except Exception as exception: - return Response( - status=status.HTTP_400_BAD_REQUEST, data={ - 'non_fields_errors': unicode(exception) - } - ) - - def put(self, *args, **kwargs): - """ - Edit the selected document metadata type and value. - """ - try: - return super(APIDocumentMetadataView, self).put(*args, **kwargs) - except Exception as exception: - return Response( - status=status.HTTP_400_BAD_REQUEST, data={ - 'non_fields_errors': unicode(exception) - } - ) - - -class APIDocumentTypeMetadataTypeOptionalListView(generics.ListCreateAPIView): - permission_classes = (MayanPermission,) - - mayan_view_permissions = {'POST': (permission_document_type_edit,)} - - required_metadata = False - - def get_queryset(self): document_type = get_object_or_404( DocumentType, pk=self.kwargs['document_type_pk'] ) + AccessControlList.objects.check_access( - permissions=permission_document_type_view, user=self.request.user, + permissions=permission_required, user=self.request.user, obj=document_type ) - return document_type.metadata.filter(required=self.required_metadata) + return document_type - def get(self, *args, **kwargs): - """ - Returns a list of selected document type's optional metadata types. - """ - return super( - APIDocumentTypeMetadataTypeOptionalListView, self - ).get(*args, **kwargs) + def get_queryset(self): + return self.get_document_type().metadata.all() def get_serializer_class(self): if self.request.method == 'GET': return DocumentTypeMetadataTypeSerializer - elif self.request.method == 'POST': - return DocumentTypeNewMetadataTypeSerializer + else: + return NewDocumentTypeMetadataTypeSerializer - def post(self, request, *args, **kwargs): + def get_serializer_context(self): """ - Add an optional metadata type to a document type. + Extra context provided to the serializer class. """ + + return { + 'document_type': self.get_document_type(), + 'format': self.format_kwarg, + 'request': self.request, + 'view': self + } + + def post(self, *args, **kwargs): + """ + Add a metadata type to the selected document type. + """ + + return super( + APIDocumentTypeMetadataTypeListView, self + ).post(*args, **kwargs) + + +class APIDocumentTypeMetadataTypeView(generics.RetrieveUpdateDestroyAPIView): + lookup_url_kwarg = 'metadata_type_pk' + serializer_class = DocumentTypeMetadataTypeSerializer + + def delete(self, *args, **kwargs): + """ + Remove a metadata type from a document type. + """ + + return super( + APIDocumentTypeMetadataTypeView, self + ).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Retrieve the details of a document type metadata type. + """ + + return super( + APIDocumentTypeMetadataTypeView, self + ).get(*args, **kwargs) + + def get_document_type(self): + if self.request.method == 'GET': + permission_required = permission_document_type_view + else: + permission_required = permission_document_type_edit + document_type = get_object_or_404( DocumentType, pk=self.kwargs['document_type_pk'] ) AccessControlList.objects.check_access( - permissions=permission_document_type_edit, user=self.request.user, + permissions=permission_required, user=self.request.user, obj=document_type ) - serializer = self.get_serializer(data=self.request.POST) + return document_type - if serializer.is_valid(): - metadata_type = get_object_or_404( - MetadataType, pk=serializer.data['metadata_type_pk'] - ) - document_type_metadata_type = document_type.metadata.create( - metadata_type=metadata_type, required=self.required_metadata - ) - return Response( - status=status.HTTP_201_CREATED, - data={ - 'pk': document_type_metadata_type.pk - } - ) + def get_queryset(self): + return self.get_document_type().metadata.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentTypeMetadataTypeSerializer else: - return Response(status=status.HTTP_400_BAD_REQUEST) + return WritableDocumentTypeMetadataTypeSerializer - -class APIDocumentTypeMetadataTypeRequiredListView(APIDocumentTypeMetadataTypeOptionalListView): - required_metadata = True - - def get(self, *args, **kwargs): + def patch(self, *args, **kwargs): """ - Returns a list of the selected document type's required metadata - types. + Edit the selected document type metadata type. """ + return super( - APIDocumentTypeMetadataTypeRequiredListView, self - ).get(*args, **kwargs) + APIDocumentTypeMetadataTypeView, self + ).patch(*args, **kwargs) - def post(self, request, *args, **kwargs): + def put(self, *args, **kwargs): """ - Add a required metadata type to a document type. + Edit the selected document type metadata type. """ + return super( - APIDocumentTypeMetadataTypeRequiredListView, self - ).post(request, *args, **kwargs) - - -class APIDocumentTypeMetadataTypeView(views.APIView): - def delete(self, request, *args, **kwargs): - """ - Remove a metadata type from a document type. - """ - - document_type_metadata_type = get_object_or_404( - DocumentTypeMetadataType, pk=self.kwargs['pk'] - ) - - AccessControlList.objects.check_access( - permissions=permission_document_type_edit, user=self.request.user, - obj=document_type_metadata_type.document_type - ) - - document_type_metadata_type.delete() - return Response(status=status.HTTP_204_NO_CONTENT) + APIDocumentTypeMetadataTypeView, self + ).put(*args, **kwargs) diff --git a/mayan/apps/metadata/apps.py b/mayan/apps/metadata/apps.py index bbac674ad4..3f3e380d1d 100644 --- a/mayan/apps/metadata/apps.py +++ b/mayan/apps/metadata/apps.py @@ -24,7 +24,7 @@ from rest_api.classes import APIEndPoint from .classes import DocumentMetadataHelper from .handlers import ( - post_document_type_metadata_type_add, + handler_index_document, post_document_type_metadata_type_add, post_document_type_metadata_type_delete, post_post_document_type_change_metadata ) @@ -47,8 +47,8 @@ logger = logging.getLogger(__name__) class MetadataApp(MayanAppConfig): + has_tests = True name = 'metadata' - test = True verbose_name = _('Metadata') def ready(self): @@ -248,3 +248,16 @@ class MetadataApp(MayanAppConfig): dispatch_uid='post_document_type_metadata_type_add', sender=DocumentTypeMetadataType ) + + # Index updating + + post_delete.connect( + handler_index_document, + dispatch_uid='handler_index_document_delete', + sender=DocumentMetadata + ) + post_save.connect( + handler_index_document, + dispatch_uid='handler_index_document_save', + sender=DocumentMetadata + ) diff --git a/mayan/apps/metadata/classes.py b/mayan/apps/metadata/classes.py index 08bd9a5d03..d4a5128b0b 100644 --- a/mayan/apps/metadata/classes.py +++ b/mayan/apps/metadata/classes.py @@ -1,25 +1,16 @@ from __future__ import unicode_literals -from django.core.exceptions import ObjectDoesNotExist -from django.utils.translation import ugettext_lazy as _ +from common.classes import PropertyHelper -class DocumentMetadataHelper(object): +class DocumentMetadataHelper(PropertyHelper): @staticmethod @property - def constructor(source_object): - return DocumentMetadataHelper(source_object) + def constructor(*args, **kwargs): + return DocumentMetadataHelper(*args, **kwargs) - def __init__(self, instance): - self.instance = instance - - def __getattr__(self, name): - try: - return self.instance.metadata.get(metadata_type__name=name).value - except ObjectDoesNotExist: - raise AttributeError( - _('\'metadata\' object has no attribute \'%s\'') % name - ) + def get_result(self, name): + return self.instance.metadata.get(metadata_type__name=name).value class MetadataLookup(object): diff --git a/mayan/apps/metadata/forms.py b/mayan/apps/metadata/forms.py index c220154ac4..369e8c09e2 100644 --- a/mayan/apps/metadata/forms.py +++ b/mayan/apps/metadata/forms.py @@ -16,11 +16,18 @@ class DocumentMetadataForm(forms.Form): label=_('Name'), required=False, widget=forms.TextInput(attrs={'readonly': 'readonly'}) ) - value = forms.CharField(label=_('Value'), required=False) + value = forms.CharField( + label=_('Value'), required=False, widget=forms.TextInput( + attrs={'class': 'metadata-value'} + ) + ) update = forms.BooleanField( initial=True, label=_('Update'), required=False ) + class Media: + js = ('metadata/js/metadata_form.js',) + def __init__(self, *args, **kwargs): super(DocumentMetadataForm, self).__init__(*args, **kwargs) diff --git a/mayan/apps/metadata/handlers.py b/mayan/apps/metadata/handlers.py index da408481e4..7419426d8d 100644 --- a/mayan/apps/metadata/handlers.py +++ b/mayan/apps/metadata/handlers.py @@ -4,6 +4,8 @@ from django.apps import apps import logging +from document_indexing.tasks import task_index_document + from .tasks import task_add_required_metadata_type, task_remove_metadata_type logger = logging.getLogger(__name__) @@ -49,3 +51,9 @@ def post_post_document_type_change_metadata(sender, instance, **kwargs): metadata_type=document_type_metadata_type.metadata_type, value=None ) + + +def handler_index_document(sender, **kwargs): + task_index_document.apply_async( + kwargs=dict(document_id=kwargs['instance'].document.pk) + ) diff --git a/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.mo index 6f20d3280a..9f36864478 100644 Binary files a/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.po index f55324a8bc..49d188bc7b 100644 --- a/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,63 +9,66 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "البيانات الوصفية" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "قيمة" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "نوع البيانات الوصفية" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "قيمة البيانات الوصفية" @@ -82,31 +85,34 @@ msgstr "ID" msgid "Name" msgstr "اسم" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "تحديث" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "إزالة" @@ -138,16 +144,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "تحرير" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "أنواع البيانات الوصفية" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +175,8 @@ msgstr "Default" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +195,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "نوع الوثيقة" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,77 +274,33 @@ msgstr "حذف نوع من البيانات الوصفية" msgid "View metadata types" msgstr "عرض أنواع البيانات الوصفية" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "يجب أن توفر ما لا يقل عن وثيقة واحدة." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - -#: views.py:139 -#, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "تم تعديل البيانات الوصفية للوثيقة %s بنجاح" +#: views.py:95 +msgid "Add" +msgstr "إضافة" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" -msgstr[4] "" -msgstr[5] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "تم اضافة نوع البيانات الوصفية %(metadata_type)s بنجاح للوثيقة %(document)s ." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "نوع البيانات الوصفية %(metadata_type)s موجود مسبقا للوثيقة %(document)s ." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" @@ -350,21 +310,76 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:429 +#: views.py:108 #, python-format -msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " -"%(document)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:439 +#: views.py:152 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"تم اضافة نوع البيانات الوصفية %(metadata_type)s بنجاح للوثيقة %(document)s ." + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"نوع البيانات الوصفية %(metadata_type)s موجود مسبقا للوثيقة %(document)s ." + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" msgstr "" -#: views.py:461 +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "قم بتعديل البيانات الوصفية للوثيقة: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "تم تعديل البيانات الوصفية للوثيقة %s بنجاح" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "" @@ -374,49 +389,80 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" +msgid "Remove metadata types from the document: %s" msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" + +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" +#~ msgstr[3] "bae23547be942683f3c566589b362141_pl_3" +#~ msgstr[4] "bae23547be942683f3c566589b362141_pl_4" +#~ msgstr[5] "bae23547be942683f3c566589b362141_pl_5" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -589,47 +635,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.mo index 8fa341dd15..02bea27f0c 100644 Binary files a/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.po index 6fc0b44d0c..fe89e86e2d 100644 --- a/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/bg/LC_MESSAGES/django.po @@ -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: # Pavlin Koldamov , 2012 @@ -9,63 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Стойност" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Стойност на мета данни" @@ -82,31 +84,34 @@ msgstr "ID" msgid "Name" msgstr "Име" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Актуализация" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Премахване" @@ -138,16 +143,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Редактиране" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +174,8 @@ msgstr "По подразбиране" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +194,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Вид на документа" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,137 +273,177 @@ msgstr "" msgid "View metadata types" msgstr "" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "" +#: views.py:95 +msgid "Add" +msgstr "Добави" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -561,47 +604,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.mo index 0706344f25..d1e4c9f260 100644 Binary files a/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.po index e3e01b024c..ea6796752b 100644 --- a/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,63 +9,66 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadata" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Vrijednost" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadata tip" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadata vrijednost" @@ -82,31 +85,34 @@ msgstr "ID" msgid "Name" msgstr "Ime" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Update" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Ukloni" @@ -138,16 +144,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Urediti" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Metadata tip" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +175,8 @@ msgstr "default" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +195,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tip dokumenta" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,141 +274,182 @@ msgstr "Izbriši metadata tip" msgid "View metadata types" msgstr "Pregledaj metadata tip" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Mora se osigurati bar jedan dokument." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:139 -#, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadata za dokument %s uspješno izmjenjen." +#: views.py:95 +msgid "Add" +msgstr "Dodati" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Metadata tip: %(metadata_type)s uspješno dodan u dokument %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Metadata tip: %(metadata_type)s već postoji u dokumentu %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:429 +#: views.py:108 #, python-format -msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " -"%(document)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:439 +#: views.py:152 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Metadata tip: %(metadata_type)s uspješno dodan u dokument %(document)s." + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "Metadata tip: %(metadata_type)s već postoji u dokumentu %(document)s." + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" msgstr "" -#: views.py:461 +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Izmjeni metadata za dokument: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadata za dokument %s uspješno izmjenjen." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" +msgid "Remove metadata types from the document: %s" msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" + +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -568,47 +613,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/da/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/da/LC_MESSAGES/django.mo index 6662d5afe8..a0bf6f1078 100644 Binary files a/mayan/apps/metadata/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/da/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/da/LC_MESSAGES/django.po index de0dec79b7..8cccb3212d 100644 --- a/mayan/apps/metadata/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/da/LC_MESSAGES/django.po @@ -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: # Mads L. Nielsen , 2013 @@ -9,63 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadata type" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadata værdi" @@ -82,31 +84,34 @@ msgstr "" msgid "Name" msgstr "Navn" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "" @@ -138,16 +143,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +174,8 @@ msgstr "Standard" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +194,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Dokumenttype" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,137 +273,177 @@ msgstr "" msgid "View metadata types" msgstr "" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Angiv mindst ét ​​dokument." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +#: views.py:95 +msgid "Add" msgstr "" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -561,47 +604,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.mo index 10e9d47bae..ca644d86e0 100644 Binary files a/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.po index 4c07c4c086..db77121b94 100644 --- a/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/de_DE/LC_MESSAGES/django.po @@ -1,10 +1,11 @@ # 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 , 2015 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Stefan Lodders , 2012 # Tobias Paepke , 2014,2016 @@ -12,63 +13,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-31 19:03+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-24 23:12+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadaten" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Dokumente mit fehlenden erforderlichen Metadaten" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Dokumente mit fehlenden optionalen Metadaten" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Queryset enthaltend eine Referenz auf eine Metadatentyp Instanz und einen Wert für diesen Metadatentyp" +msgstr "" +"Queryset enthaltend eine Referenz auf eine Metadatentyp Instanz und einen " +"Wert für diesen Metadatentyp" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Name Metadatentyp" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Metadatentypwert" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Metadatenwert" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Gibt den Wert einer spezifischen Dokumentmetadatums zurück" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Wert" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "erforderlich" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadatentyp" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadatenwert" @@ -85,31 +90,34 @@ msgstr "ID" msgid "Name" msgstr "Name" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Aktualisieren" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Fehler für Suchwert: %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Fehler für Standardwert: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" wird für diesen Dokumententyp benötigt." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "Metadatentypen für die ausgewählten Dokumente." + +#: forms.py:146 msgid " Available template context variables: " msgstr "Verfügbare Kontextvariablen:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Entfernen" @@ -141,20 +149,21 @@ msgstr "Erstellen" msgid "Delete" msgstr "Löschen" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Bearbeiten" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Metadatentypen" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Name unter dem andere Apps diesen Wert referenzieren. Keine reservierten Worte aus Python oder Leerzeichen verwenden." +msgstr "" +"Name unter dem andere Apps diesen Wert referenzieren. Keine reservierten " +"Worte aus Python oder Leerzeichen verwenden." #: models.py:47 msgid "Label" @@ -164,7 +173,10 @@ msgstr "Bezeichner" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Vorlage/Template zur Generierung eingeben. Django's Standard-Vorlagen-Sprache benutzen (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Vorlage/Template zur Generierung eingeben. Django's Standard-Vorlagen-" +"Sprache benutzen (https://docs.djangoproject.com/en/1.7/ref/templates/" +"builtins/)" #: models.py:55 msgid "Default" @@ -173,9 +185,12 @@ msgstr "Standard" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Vorlage/Template zur Generierung eingeben. Muss eine komma-separierte Zeichenkette ausgeben (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Vorlage/Template zur Generierung eingeben. Muss eine komma-separierte " +"Zeichenkette ausgeben (https://docs.djangoproject.com/en/1.7/ref/templates/" +"builtins/)" #: models.py:65 msgid "Lookup" @@ -185,7 +200,9 @@ msgstr "Suche" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "Der Validierer wird den eingegebenen Wert zurückweisen, wenn er dem geforderten Format nicht entspricht." +msgstr "" +"Der Validierer wird den eingegebenen Wert zurückweisen, wenn er dem " +"geforderten Format nicht entspricht." #: models.py:72 msgid "Validator" @@ -193,47 +210,48 @@ msgstr "Validierer" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "Der Parser wird den eingegebenen Wert so reformatieren, dass er dem geforderten Format entspricht." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"Der Parser wird den eingegebenen Wert so reformatieren, dass er dem " +"geforderten Format entspricht." #: models.py:78 msgid "Parser" msgstr "Parser" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "Der Wert entspricht keiner der vorgegebenen Optionen." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Dokument" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Typ" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Metadatentyp ist erforderlich für diesen Dokumententyp" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Metadatentyp ist nicht gültig für diesen Dokumententyp" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Dokument Metadaten" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Dokumententyp" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Metadatentyp Optionen" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Metadatentyp Optionen" @@ -273,137 +291,186 @@ msgstr "Metadatentypen löschen" msgid "View metadata types" msgstr "Metadatentypen anzeigen" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Primärschlüssel des hinzuzufügenden Metadatentyps" -#: serializers.py:40 -msgid "Primary key of the document metadata type." -msgstr "Primärschlüssel des Metadatendokumententyps." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." +msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Wert der entsprechenden Metadatentyp-Instanz" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden" - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Es können nur Dokumente des gleichen Typs ausgewählt werden" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Für das ausgewählte Dokument existieren keine Metadaten" -msgstr[1] "Für die ausgewählten Dokumente existieren keine Metadaten" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Fehler bei der Bearbeitung der Metadaten für Dokument %(document)s: %(exception)s" +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadaten des Dokuments %s erfolgreich bearbeitet." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Metadaten bearbeiten" -msgstr[1] "Metadaten bearbeiten" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Fehler beim Hinzufügen von Metadatentyp \"%(metadata_type)s\" zu Dokument %(document)s: %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Hinzufügen" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Metadatentyp %(metadata_type)s erfolgreich hinzugefügt zu Dokument %(document)s" - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Metadatentyp %(metadata_type)s bereits vorhanden für Dokument %(document)s" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Metadatentypen zu Dokument hinzufügen" msgstr[1] "Metadatentypen zu Dokumenten hinzufügen" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " -"%(document)s." -msgstr "Metadatentyp \"%(metadata_type)s\" erfolgreich entfernt von Dokument %(document)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Metadatentyp %(metadata_type)s erfolgreich hinzugefügt zu Dokument " +"%(document)s" -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Fehler bei der Entfernung von Metadatentyp \"%(metadata_type)s\" von Dokument %(document)s: %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Metadatentyp %(metadata_type)s bereits vorhanden für Dokument %(document)s" -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Metadaten bearbeiten" +msgstr[1] "Metadaten bearbeiten" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Metadaten des Dokuments %s bearbeiten" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Fehler bei der Bearbeitung der Metadaten für Dokument %(document)s: " +"%(exception)s" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadaten des Dokuments %s erfolgreich bearbeitet." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Metadaten von Dokument %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Metadatentypen von Dokument entfernen" msgstr[1] "Metadatentypen von Dokumenten entfernen" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Metadaten von Dokument %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Metadatentyp \"%(metadata_type)s\" erfolgreich entfernt von Dokument " +"%(document)s" + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Fehler bei der Entfernung von Metadatentyp \"%(metadata_type)s\" von " +"Dokument %(document)s: %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Metadatentyp erstellen" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Metadatentyp %s löschen?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Metadatentyp %s bearbeiten" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Interner Name" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Verfügbare Metadatentypen" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Zugewiesene Metadatentypen" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Optionale Metadatentypen für Dokumententyp %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Erforderliche Metadatentypen für Dokumententyp %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -564,47 +631,47 @@ msgstr "Erforderliche Metadatentypen für Dokumententyp %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/en/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/en/LC_MESSAGES/django.mo index 63994bec65..f122c2dfd1 100644 Binary files a/mayan/apps/metadata/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/en/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/en/LC_MESSAGES/django.po index dca3b971ba..260f17e7a7 100644 --- a/mayan/apps/metadata/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-12-12 06:06+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,59 +18,60 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadata" -#: apps.py:76 +#: apps.py:79 #, fuzzy msgid "Documents missing required metadata" msgstr "document metadata" -#: apps.py:93 +#: apps.py:96 #, fuzzy msgid "Documents missing optional metadata" msgstr "document metadata" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 #, fuzzy msgid "Metadata type name" msgstr "Metadata type" -#: apps.py:121 +#: apps.py:124 #, fuzzy msgid "Metadata type value" msgstr "Metadata type" -#: apps.py:125 +#: apps.py:128 #, fuzzy msgid "Value of a metadata" msgstr "default metadata" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Value" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 #, fuzzy msgid "Required" msgstr "required" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadata type" -#: apps.py:176 +#: apps.py:186 apps.py:195 #, fuzzy msgid "Metadata value" msgstr "Metadata type" @@ -88,32 +89,37 @@ msgstr "" msgid "Name" msgstr "Name" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Update" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, fuzzy, python-format msgid "\"%s\" is required for this document type." msgstr "Add metadata type to document: %s" -#: forms.py:130 +#: forms.py:117 +#, fuzzy +msgid "Metadata types to be added to the selected documents." +msgstr "Add metadata type to document: %s" + +#: forms.py:146 #, fuzzy #| msgid " Available models: %s" msgid " Available template context variables: " msgstr " Available models: %s" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Remove" @@ -152,11 +158,11 @@ msgstr "create new" msgid "Delete" msgstr "delete" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Metadata types" @@ -214,45 +220,45 @@ msgstr "" msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 #, fuzzy msgid "Document" msgstr "document" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 #, fuzzy msgid "Metadata type is required for this document type." msgstr "Add metadata type to document: %s" -#: models.py:175 +#: models.py:176 #, fuzzy msgid "Metadata type is not valid for this document type." msgstr "Add metadata type to document: %s" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 #, fuzzy msgid "Document metadata" msgstr "document metadata" -#: models.py:203 +#: models.py:204 #, fuzzy msgid "Document type" msgstr "document type" -#: models.py:215 +#: models.py:216 #, fuzzy msgid "Document type metadata type options" msgstr "Delete metadata types" -#: models.py:216 +#: models.py:217 #, fuzzy msgid "Document type metadata types options" msgstr "Delete metadata types" @@ -293,82 +299,120 @@ msgstr "Delete metadata types" msgid "View metadata types" msgstr "View metadata types" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 +#: serializers.py:130 #, fuzzy -msgid "Primary key of the document metadata type." +msgid "Primary key of the metadata type to be added to the document." msgstr "Edit a document's metadata" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Must provide at least one document." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:66 views.py:196 views.py:361 +#: views.py:56 views.py:192 views.py:358 #, fuzzy -msgid "Only select documents of the same type." +msgid "Selected documents must be of the same type." msgstr "The selected document doesn't have any metadata." -#: views.py:75 views.py:370 -#, fuzzy -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "The selected document doesn't have any metadata." -msgstr[1] "The selected document doesn't have any metadata." - -#: views.py:139 -#, fuzzy, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Error editing metadata for document %(document)s; %(error)s." - -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadata for document %s edited successfully." - -#: views.py:168 -#, fuzzy -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Edit a document's metadata" -msgstr[1] "Edit a document's metadata" - -#: views.py:256 -#, fuzzy, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:95 +msgid "Add" msgstr "" -"Error removing metadata type: %(metadata_type)s from document: %(document)s." -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document %(document)s." -msgstr "" -"Metadata type: %(metadata_type)s successfully added to document %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" -"Metadata type: %(metadata_type)s already present in document %(document)s." - -#: views.py:313 +#: views.py:97 #, fuzzy msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Add metadata type to documents: %s" msgstr[1] "Add metadata type to documents: %s" -#: views.py:429 +#: views.py:108 +#, fuzzy, python-format +msgid "Add metadata types to document: %s" +msgstr "Add metadata type to documents: %s" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Metadata type: %(metadata_type)s already present in document %(document)s." + +#: views.py:176 +#, fuzzy, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "Add metadata type to document: %s" + +#: views.py:179 +#, fuzzy, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "Add metadata type to document: %s" + +#: views.py:231 +#, fuzzy +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Edit a document's metadata" +msgstr[1] "Edit a document's metadata" + +#: views.py:242 +#, fuzzy, python-format +msgid "Edit metadata for document: %s" +msgstr "Edit metadata for documents: %s" + +#: views.py:295 +#, fuzzy, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "Error editing metadata for document %(document)s; %(error)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadata for document %s edited successfully." + +#: views.py:330 +#, fuzzy, python-format +msgid "Metadata for document: %s" +msgstr "Edit metadata for documents: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +#, fuzzy +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "Remove metadata types from documents: %s" +msgstr[1] "Remove metadata types from documents: %s" + +#: views.py:408 +#, fuzzy, python-format +msgid "Remove metadata types from the document: %s" +msgstr "Remove metadata types from documents: %s" + +#: views.py:455 #, fuzzy, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " @@ -377,7 +421,7 @@ msgstr "" "Successfully remove metadata type: %(metadata_type)s from document: " "%(document)s." -#: views.py:439 +#: views.py:465 #, fuzzy, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " @@ -385,60 +429,65 @@ msgid "" msgstr "" "Error removing metadata type: %(metadata_type)s from document: %(document)s." -#: views.py:461 -#, fuzzy -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "Remove metadata types from documents: %s" -msgstr[1] "Remove metadata types from documents: %s" - -#: views.py:504 -#, fuzzy, python-format -msgid "Metadata for document: %s" -msgstr "Edit metadata for documents: %s" - -#: views.py:513 +#: views.py:476 #, fuzzy msgid "Create metadata type" msgstr "create metadata type" -#: views.py:529 +#: views.py:492 #, fuzzy, python-format #| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Delete metadata types" -#: views.py:542 +#: views.py:505 #, fuzzy, python-format msgid "Edit metadata type: %s" msgstr "edit metadata type: %s" -#: views.py:556 +#: views.py:519 #, fuzzy msgid "Internal name" msgstr "internal name" -#: views.py:568 +#: views.py:531 #, fuzzy #| msgid "View metadata types" msgid "Available metadata types" msgstr "View metadata types" -#: views.py:569 +#: views.py:532 #, fuzzy msgid "Metadata types assigned" msgstr "Metadata type" -#: views.py:600 +#: views.py:563 #, fuzzy, python-format msgid "Optional metadata types for document type: %s" msgstr "Remove metadata types from document: %s" -#: views.py:618 +#: views.py:581 #, fuzzy, python-format msgid "Required metadata types for document type: %s" msgstr "Remove metadata types from document: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#, fuzzy +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "The selected document doesn't have any metadata." +#~ msgstr[1] "The selected document doesn't have any metadata." + +#, fuzzy +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #, fuzzy #~ msgid "Missing metadata" #~ msgstr "edit metadata" diff --git a/mayan/apps/metadata/locale/es/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/es/LC_MESSAGES/django.mo index 78d02904b0..2c63726c4c 100644 Binary files a/mayan/apps/metadata/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/es/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/es/LC_MESSAGES/django.po index cc51820b24..ac6c77bf74 100644 --- a/mayan/apps/metadata/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/es/LC_MESSAGES/django.po @@ -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: # jmcainzos , 2014 @@ -12,63 +12,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-23 06:39+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadatos" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Documentos que sin metadatos requeridos" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Documentos sin metadatos opcionales" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "QuerySet que contiene una referencia de instancia de tipo de meta datos y un valor para ese tipo de meta datos " +msgstr "" +"QuerySet que contiene una referencia de instancia de tipo de meta datos y un " +"valor para ese tipo de meta datos " -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Nombre del tipo de metadatos" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Valor del tipo de metadatos" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Valor de un metadato" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Retornar al valor de metadata de un documento específico" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valor" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Requerido" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Tipo de metadato" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valor de metadato" @@ -85,31 +89,34 @@ msgstr "ID" msgid "Name" msgstr "Nombre" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Actualizar" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Error en valor de búsqueda: %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Error en valor por defecto: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" es requerido para este tipo de documento." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "Variables de contexto de plantilla disponibles:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Eliminar" @@ -141,20 +148,21 @@ msgstr "Crear nuevo" msgid "Delete" msgstr "Borrar" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Editar" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Tipos de metadatos" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Nombre usado por otros módulos para hacer referencia a este valor. No utilize palabras reservadas de Python o espacios." +msgstr "" +"Nombre usado por otros módulos para hacer referencia a este valor. No " +"utilize palabras reservadas de Python o espacios." #: models.py:47 msgid "Label" @@ -164,7 +172,9 @@ msgstr "Etiqueta" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Introduzca una plantilla para generar. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " +msgstr "" +"Introduzca una plantilla para generar. Use el lenguaje de plantillas de " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " #: models.py:55 msgid "Default" @@ -173,9 +183,12 @@ msgstr "Por defecto" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Introduzca una plantilla para generar. Debe resultar en una cadena de texto delimitada por comas. Use el lenguaje de plantillas de Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/). " +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Introduzca una plantilla para generar. Debe resultar en una cadena de texto " +"delimitada por comas. Use el lenguaje de plantillas de Django (https://docs." +"djangoproject.com/en/1.7/ref/templates/builtins/). " #: models.py:65 msgid "Lookup" @@ -185,7 +198,9 @@ msgstr "Lista de opciones" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "El validador rechazará la entrada de datos si el valor introducido no se ajusta al formato esperado." +msgstr "" +"El validador rechazará la entrada de datos si el valor introducido no se " +"ajusta al formato esperado." #: models.py:72 msgid "Validator" @@ -193,47 +208,48 @@ msgstr "Validador" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "El analizador volverá a formatear el valor introducido para ajustarse al formato esperado." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"El analizador volverá a formatear el valor introducido para ajustarse al " +"formato esperado." #: models.py:78 msgid "Parser" msgstr "Analizador" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "El valor no es una de las opciones provistas." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Documento" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Tipo" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "El tipo de metadatos es requerido para este tipo de documento." -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "El tipo de metadato no es válido para este tipo de documento." -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Metadatos de documentos" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tipo de documento" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Opciones de tipo de meta datos de tipo de documento " -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Opciones de tipos de meta datos de tipo de documento " @@ -273,137 +289,185 @@ msgstr "Eliminar tipos de metadatos" msgid "View metadata types" msgstr "Ver los tipos de metadatos" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Llave principal del tipo de meta datos a ser agregada." -#: serializers.py:40 -msgid "Primary key of the document metadata type." -msgstr "Llave primaria del tipo de metadato del documento." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." +msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Valor de la instancia de tipo meta datos correspondientes." - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Debe proveer al menos un documento." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Sólo seleccionar documentos del mismo tipo." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "El documento seleccionado no tiene metadatos." -msgstr[1] "Los documentos seleccionados no tienen metadatos." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Error editando metadato para el documento %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadatos del documento %s editados con éxito." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Editar meta datos de documento" -msgstr[1] "Editar meta datos de documentos" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Error al añadir tipo de metadatos \"%(metadata_type)s\" al documento: %(document)s; %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Agregar" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipo de metadatos: %(metadata_type)s añadido con éxito al documento %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipo de metadatos: %(metadata_type)s ya presente en el documento %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Añadir tipos de meta datos al documento" msgstr[1] "Añadir tipos de meta datos a los documentos" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipo de metadatos: %(metadata_type)s añadido con éxito al documento " "%(document)s." -msgstr "Remoción con éxito el tipo de meta datos \"%(metadata_type)s\" del documento: %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Error al eliminar el tipo de metadatos \"%(metadata_type)s\" del documento: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipo de metadatos: %(metadata_type)s ya presente en el documento " +"%(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Editar meta datos de documento" +msgstr[1] "Editar meta datos de documentos" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Editar metadatos del documento: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "Error editando metadato para el documento %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadatos del documento %s editados con éxito." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Meta datos para el documento: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Remover tipos de meta datos del documento" msgstr[1] "Remover tipos de meta datos de los documentos" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Meta datos para el documento: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Remoción con éxito el tipo de meta datos \"%(metadata_type)s\" del " +"documento: %(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Error al eliminar el tipo de metadatos \"%(metadata_type)s\" del documento: " +"%(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Crear tipo de metadatos" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "¿Borrar el tipo de metadato: %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Editar tipo de metadatos: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Nombre interno" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Tipos de metadatos disponibles" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Tipos de metadatos asignados" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Tipos de metadatos opcionales para tipo de documento: %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Tipos de metadata requerida para tipo de documento: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -564,47 +628,47 @@ msgstr "Tipos de metadata requerida para tipo de documento: %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.mo index 77a41754ad..96647b4326 100644 Binary files a/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.po index 6768c807b8..cbf7d4a7be 100644 --- a/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/fa/LC_MESSAGES/django.po @@ -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: # Mohammad Dashtizadeh , 2013 @@ -9,63 +9,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "متادیتا" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "اسناد متا داده مورد نیاز را ندارد" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "محتوای مجموعه درخواستها شامل یک نمونه مرجع و یک مقدار برای متا داده مورد نظر است" +msgstr "" +"محتوای مجموعه درخواستها شامل یک نمونه مرجع و یک مقدار برای متا داده مورد نظر " +"است" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "نام نوع متا داده" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "مقدار نوع متاداده" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "مقدار متا داده" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "مقدار خاص مستندات متا داده" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "مقدار" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "الزامی" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "نوع متادیتا" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "مقدار متادیتا" @@ -82,31 +86,34 @@ msgstr "شناسه" msgid "Name" msgstr "نام" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "به‌روزرسانی" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "حذف" @@ -138,16 +145,15 @@ msgstr "ایجاد" msgid "Delete" msgstr "حذف" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "ویرایش" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "انواه متادیتا" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +176,8 @@ msgstr "پیش فرض" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +196,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "سند" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "نوع" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "نوع متاداده برای این نوع سند مورد نیاز است" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "این نوع از متادیتا برای این نوع سند قابل قبول نیست." -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "متادیتای سند" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "نوع سند" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "متادیتای قابل قبول برای این نوع از سند." -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "متادیتاهای قابل قبول برای این نوع از سند" @@ -270,133 +275,175 @@ msgstr "حذف انواع متادیتا" msgid "View metadata types" msgstr "دیدن انواع متادیتا" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "کلید اولیه برای نوع متا داده اضافه گردد" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "مقدار مرتبط با نوع متا داده" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "حداقل یک سند باید ارایه شود." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "فقط اسناد از نوع همسان را انتخاب کنید" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "اسناد انتخاب شده هیچ متا داده ای ندارند" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "متادیتای سند %s با موفقیت ویرایش شد." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "اسناد متاداده را ویرایش کنید" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 +#: views.py:95 +msgid "Add" +msgstr "افزودن" + +#: views.py:97 +msgid "Add metadata types to document" +msgid_plural "Add metadata types to documents" +msgstr[0] "ًانواع متا داده را به اسناد اضافه کنید" + +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "نوع متا داده افزودن خطا \"%(metadata_type)s به سند %(document)s; %(exception)s" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +"Metadata type: %(metadata_type)s successfully added to document %(document)s." msgstr "جذف موفق متادیتای ندع : %(metadata_type)s برای سند : %(document)s." -#: views.py:282 +#: views.py:162 #, python-format msgid "" "Metadata type: %(metadata_type)s already present in document %(document)s." msgstr "متادیتای نوع : %(metadata_type)s در سند %(document)s. موجود است." -#: views.py:313 -msgid "Add metadata types to document" -msgid_plural "Add metadata types to documents" -msgstr[0] "ًانواع متا داده را به اسناد اضافه کنید" +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" -#: views.py:429 +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "اسناد متاداده را ویرایش کنید" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "ویرایش متادیتای سند : %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "متادیتای سند %s با موفقیت ویرایش شد." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "متا داده برای سند : %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "انواع متا داده را از اسناد حذف کنید" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "حذف موفق متادیتای نوع \"%(metadata_type)s\" از سند %(document)s." -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" -msgstr "خطا در حذف متادیتای نوع\"%(metadata_type)s\" ازسند: %(document)s; %(exception)s" +msgstr "" +"خطا در حذف متادیتای نوع\"%(metadata_type)s\" ازسند: %(document)s; " +"%(exception)s" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "انواع متا داده را از اسناد حذف کنید" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "متا داده برای سند : %s" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "ایجاد نوع متا دیتا" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "ویرایش نوع متا دیتا : %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "نام داخلی" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "متادیتا نوع اختیاری برای نوع ستئ %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "متادیتای نوع الزامی برای نوع سند :%s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -554,47 +601,47 @@ msgstr "متادیتای نوع الزامی برای نوع سند :%s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.mo index d26681e94e..ea46d50cce 100644 Binary files a/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.po index 8e705b5f33..1e33ba75d0 100644 --- a/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/fr/LC_MESSAGES/django.po @@ -1,9 +1,10 @@ # 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 , 2016 # PatrickHetu , 2012 # Pierre Lhoste , 2012 # SadE54 , 2013 @@ -12,63 +13,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Métadonnées" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Documents avec des métadonnées manquantes" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Documents avec métadonnées optionnelles manquantes" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Jeu de requête contenant une référence d'instance MetadataType et une valeur pour ce type de métadonnées" +msgstr "" +"Jeu de requête contenant une référence d'instance MetadataType et une valeur " +"pour ce type de métadonnées" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Nom du type de métadonnée" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Valeur du type de métadonnée" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Valeur de la métadonnées" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Retourne la valeur de la métadonnée du document spécifié" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valeur" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Requis" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Type de métadonnée" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valeur de la métadonnée" @@ -85,31 +90,34 @@ msgstr "ID" msgid "Name" msgstr "Nom" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Mettre à jour" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Erreur de recherche de valeur : %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Erreur de valeur par défaut : %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." +msgstr "\"%s\" est requis pour ce type de document." + +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:146 msgid " Available template context variables: " msgstr "Variable de contexte du modèle disponibles :" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Supprimer" @@ -141,20 +149,21 @@ msgstr "Créer une nouvelle" msgid "Delete" msgstr "Supprimer" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Modifier" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Types de métadonnées" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Nom utilisé par d'autres applications pour référencer cette valeur. Veuillez ne pas utiliser de mots réservés Python ou d'espaces." +msgstr "" +"Nom utilisé par d'autres applications pour référencer cette valeur. Veuillez " +"ne pas utiliser de mots réservés Python ou d'espaces." #: models.py:47 msgid "Label" @@ -164,7 +173,9 @@ msgstr "Libellé" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Indiquez un modèle à restituer. Utilise le langage de rendu de Django par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Indiquez un modèle à restituer. Utilise le langage de rendu de Django par " +"défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:55 msgid "Default" @@ -173,9 +184,12 @@ msgstr "Par défaut" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Indiquez un modèle à restituer. Le résultat doit être une chaîne de caractères délimitée par des virgules. Utilise le langage de rendu de Django par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Indiquez un modèle à restituer. Le résultat doit être une chaîne de " +"caractères délimitée par des virgules. Utilise le langage de rendu de Django " +"par défaut (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:65 msgid "Lookup" @@ -185,7 +199,9 @@ msgstr "Recherche" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "Le système de validation rejettera les données saisies si elles ne sont pas conformes au format attendu." +msgstr "" +"Le système de validation rejettera les données saisies si elles ne sont pas " +"conformes au format attendu." #: models.py:72 msgid "Validator" @@ -193,47 +209,48 @@ msgstr "Validateur" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "L'analyseur syntaxique reformatera la valeur saisie pour la rendre conforme au format attendu." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"L'analyseur syntaxique reformatera la valeur saisie pour la rendre conforme " +"au format attendu." #: models.py:78 msgid "Parser" msgstr "Analyseur" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "La valeur saisie ne fait pas partie des options proposées." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Document" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Type" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Le type de métadonnée est requis pour ce type de document." -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Le type de métadonnée n'est pas valide pour ce type de document." -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Métadonnée du document" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Type de document" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Options de type de document de type de métadonnées" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Options de type de document des types de métadonnées" @@ -273,137 +290,187 @@ msgstr "Supprimer des types de métadonnées" msgid "View metadata types" msgstr "Voir les types de métadonnées" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Clé primaire du type de la métadonnée à ajouter." -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Valeur de l'instance de type de métadonnées correspondantes." - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Vous devez fournir au moins un document." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Sélectionner seulement les documents avec le même type." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Le document sélectionné n'a pas de méta-données." -msgstr[1] "Les documents sélectionnés n'ont pas de métadonnées." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Erreur lors de la modification des métadonnées du document %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Métadonnées pour le document %s modifiées avec succès." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Modifier les méta-données du document" -msgstr[1] "Modifier les métadonnées des documents" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Erreur lors de l'ajout d'un type de métadonnées \"%(metadata_type)s\" au document: %(document)s; %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Ajouter" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Le type de métadonnées: %(metadata_type)s ajouter avec succès au document %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Le type de métadonnée: %(metadata_type)s est déjà présent dans le document %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Ajouter des types de méta-données au document" msgstr[1] "Ajouter des types de métadonnées aux documents" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Le type de métadonnées: %(metadata_type)s ajouter avec succès au document " "%(document)s." -msgstr "Type de métadonnées supprimer avec succès \"%(metadata_type)s\" pour le document: %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Erreur lors de la suppression du type de métadonnée \"%(metadata_type)s\" pour le document: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Le type de métadonnée: %(metadata_type)s est déjà présent dans le document " +"%(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Modifier les méta-données du document" +msgstr[1] "Modifier les métadonnées des documents" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Modifier les métadonnées pour le document: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Erreur lors de la modification des métadonnées du document %(document)s; " +"%(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Métadonnées pour le document %s modifiées avec succès." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Métadonnées du document: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Supprimer les types de métadonnées du document" msgstr[1] "Supprimer les types de métadonnées des documents" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Métadonnées du document: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Type de métadonnées supprimer avec succès \"%(metadata_type)s\" pour le " +"document: %(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Erreur lors de la suppression du type de métadonnée \"%(metadata_type)s\" " +"pour le document: %(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Créer un type de métadonnée" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Êtes vous certain de vouloir supprimer le type de métadonnées : %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Modifier le type de métadonnée: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Nom interne" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Types de métadonnées disponibles" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Types de métadonnées attribués" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Types de métadonnées optionnelles pour le type de document: %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Types de métadonnées requises pour le type de document: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -564,47 +631,47 @@ msgstr "Types de métadonnées requises pour le type de document: %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.mo index 7befe12136..e8145a6469 100644 Binary files a/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.po index f553baa2f6..c876a82726 100644 --- a/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/hu/LC_MESSAGES/django.po @@ -1,70 +1,72 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metaadat típus" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metaadat érték" @@ -81,31 +83,34 @@ msgstr "" msgid "Name" msgstr "" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "" @@ -137,16 +142,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -169,8 +173,8 @@ msgstr "" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -189,47 +193,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Dokumentum típus" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -269,137 +272,177 @@ msgstr "" msgid "View metadata types" msgstr "" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Adjon meg legalább egy dokumentumot." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +#: views.py:95 +msgid "Add" msgstr "" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -560,47 +603,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/id/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/id/LC_MESSAGES/django.mo index 25923ff24d..5b9023f544 100644 Binary files a/mayan/apps/metadata/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/id/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/id/LC_MESSAGES/django.po index 028716db1e..2f57167ba4 100644 --- a/mayan/apps/metadata/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/id/LC_MESSAGES/django.po @@ -1,70 +1,72 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Jenis 'metadata'" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Nilai 'metadata'" @@ -81,31 +83,34 @@ msgstr "" msgid "Name" msgstr "" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "hapus" @@ -137,16 +142,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -169,8 +173,8 @@ msgstr "" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -189,47 +193,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Jenis dokumen" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -269,133 +272,173 @@ msgstr "" msgid "View metadata types" msgstr "" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" + +#: views.py:95 +msgid "Add" +msgstr "tambah" + +#: views.py:97 +msgid "Add metadata types to document" +msgid_plural "Add metadata types to documents" msgstr[0] "" -#: views.py:139 +#: views.py:108 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "" - -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" - -#: views.py:256 +#: views.py:152 #, python-format msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "" - -#: views.py:282 +#: views.py:162 #, python-format msgid "" "Metadata type: %(metadata_type)s already present in document %(document)s." msgstr "" -#: views.py:313 -msgid "Add metadata types to document" -msgid_plural "Add metadata types to documents" +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" msgstr[0] "" -#: views.py:429 +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -553,47 +596,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/it/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/it/LC_MESSAGES/django.mo index 3afdd8fbc0..ac2ba46a99 100644 Binary files a/mayan/apps/metadata/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/it/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/it/LC_MESSAGES/django.po index 83cc6837ee..00ac4fbee1 100644 --- a/mayan/apps/metadata/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -10,63 +10,66 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-30 21:18+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadati" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Nel documento manca un metadato obbligatorio" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Nel documento mancano metadati opzionali" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Queryset che contiene il riferimento all'istanza MetadataType e il valore " +msgstr "" +"Queryset che contiene il riferimento all'istanza MetadataType e il valore " -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Nome tipo metadato" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Valore del tipo metadato" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Valore del metadato" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Ritorna il valore di un metadato specifico del documento" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valore" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Obbligatorio" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Tipo di metadato" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valore metadata" @@ -83,31 +86,34 @@ msgstr "ID" msgid "Name" msgstr "Nome" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Aggiornato" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Errore nel valore di ricerca: %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Valore di default errore: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" è richiesto per questo tipo di documento.." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "Variabili di contesto template disponibili:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Revoca" @@ -139,20 +145,21 @@ msgstr "Crea nuovo" msgid "Delete" msgstr "Cancella" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Modifica" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Tipi di Metadati" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Nome usato dalle altre app per riferirsi a questo valore. Non utilizzare parole riservate di python o spazi." +msgstr "" +"Nome usato dalle altre app per riferirsi a questo valore. Non utilizzare " +"parole riservate di python o spazi." #: models.py:47 msgid "Label" @@ -162,7 +169,9 @@ msgstr "Etichetta" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Inserisci il template da renderizzare. Usa il linguaggio di template di Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Inserisci il template da renderizzare. Usa il linguaggio di template di " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:55 msgid "Default" @@ -171,9 +180,12 @@ msgstr "Default" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Inserisci il template da renderizzare. Deve essere una stringa separata da virgole. Usa il linguaggio di template di Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Inserisci il template da renderizzare. Deve essere una stringa separata da " +"virgole. Usa il linguaggio di template di Django (https://docs.djangoproject." +"com/en/1.7/ref/templates/builtins/)" #: models.py:65 msgid "Lookup" @@ -183,7 +195,9 @@ msgstr "Ricerca" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "Il validatore rifiuterà l'inserimento se il valore immesso non è conforme al formato richiesto." +msgstr "" +"Il validatore rifiuterà l'inserimento se il valore immesso non è conforme al " +"formato richiesto." #: models.py:72 msgid "Validator" @@ -191,47 +205,48 @@ msgstr "Validatore" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "Il parser riformatta il valore immesso per renderlo conforme al formato voluto." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"Il parser riformatta il valore immesso per renderlo conforme al formato " +"voluto." #: models.py:78 msgid "Parser" msgstr "Parser" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "Il valore non è compreso tra i valori ammessi." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Documento" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Tipo" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Tipo di metadati è necessario per questo tipo di documento." -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Il metadato non è valido per il tipo di documento" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Metadata documento" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tipo documento " -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Opzione per tipo documento del tipo metadato" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Opzioni per tipo documento del tipo metadato" @@ -271,137 +286,185 @@ msgstr "Cancella il tipo di metadato" msgid "View metadata types" msgstr "Visualizza il tipo di metadato" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Chiave primaria del tipo metadato da aggiungere." -#: serializers.py:40 -msgid "Primary key of the document metadata type." -msgstr "Chiave primaria del tipo metadato del documento" +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." +msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Valore dell'istanza corrispondente del tipo metadato." - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Devi fornire almeno un documento." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Selezionare solo documenti dello stesso tipo." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Il documento selezionato non ha nessun tipo di metadato." -msgstr[1] "I documenti selezionati non hanno nessun tipo di metadato." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Errore modifica metadato per il documento: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadata per il documento %s modificato con successo." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Modifica metadato documento" -msgstr[1] "Modifica metadato documenti" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Errore aggiungendo il tipo metadato \"%(metadata_type)s\" al documento: %(document)s; %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Aggiungi" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipo metadata: %(metadata_type)s aggiunto con successo al documento %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipo Metadata: %(metadata_type)s già presente per il documento %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Aggiungi tipo metadato al documento" msgstr[1] "Aggiungi tipo metadati ai documenti " -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipo metadata: %(metadata_type)s aggiunto con successo al documento " "%(document)s." -msgstr "Rimosso con successo il tipo metadato \"%(metadata_type)s\" dal documento: %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Errore rimuovendo il tipo metadato \"%(metadata_type)s\" dal documento: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipo Metadata: %(metadata_type)s già presente per il documento %(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Modifica metadato documento" +msgstr[1] "Modifica metadato documenti" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Modifica metadata per il documento: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Errore modifica metadato per il documento: %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadata per il documento %s modificato con successo." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Metadati per il documento: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Rimuovi tipi matadato dal documento" msgstr[1] "Rimuovi tipi matadato dai documenti" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Metadati per il documento: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Rimosso con successo il tipo metadato \"%(metadata_type)s\" dal documento: " +"%(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Errore rimuovendo il tipo metadato \"%(metadata_type)s\" dal documento: " +"%(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Crea tipo metadato" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Cancellare il tipo metadato: %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Modifica il tipo metadato: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Nome interno" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Tipo metadato disponibili" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Tipi metadato assegnati" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Tipi metadati opzionali per il tipo documento: %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Tipi metadati obbligatori per il tipo documento: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -562,47 +625,47 @@ msgstr "Tipi metadati obbligatori per il tipo documento: %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.mo index 89be2431e2..99bbce4866 100644 Binary files a/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.po index f64596bedd..adfdacabbc 100644 --- a/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/nl_NL/LC_MESSAGES/django.po @@ -1,71 +1,74 @@ # 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 , 2016 +# Johan Braeken, 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-09 16:41+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Johan Braeken\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadata" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Documenten missen vereiste metadata" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" -msgstr "" +msgstr "Documenten met ontbrekende optionele metadata" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Metadata soortnaam" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Metadata typenaam" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Waarde van een metadata" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Waarde" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Verplicht" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadata type" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadata waarde" @@ -82,31 +85,34 @@ msgstr "ID" msgid "Name" msgstr "Naam" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Updaten" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Standaard waardefout: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" is vereist voor deze documentsoort." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Verwijder" @@ -138,16 +144,15 @@ msgstr "Maak nieuwe aan" msgid "Delete" msgstr "Verwijder" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "bewerken" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Metadatasoorten" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +175,8 @@ msgstr "Verstekwaarde" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +195,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Document" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Type" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" -msgstr "" +msgstr "Document metadata" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Documentsoort" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -240,15 +244,15 @@ msgstr "" #: permissions.py:12 msgid "Add metadata to a document" -msgstr "" +msgstr "Voeg metadata toe aan een document" #: permissions.py:15 msgid "Remove metadata from a document" -msgstr "" +msgstr "Verwijder metadata van een document" #: permissions.py:18 msgid "View metadata from a document" -msgstr "" +msgstr "Bekijk metadata van een document" #: permissions.py:21 msgid "Metadata setup" @@ -260,147 +264,187 @@ msgstr "" #: permissions.py:26 msgid "Create new metadata types" -msgstr "" +msgstr "Voeg een nieuw metadatatype toe" #: permissions.py:29 msgid "Delete metadata types" -msgstr "" +msgstr "Verwijder metadatatypes" #: permissions.py:32 msgid "View metadata types" -msgstr "" +msgstr "Bekijk metadatatypes" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "" +#: views.py:95 +msgid "Add" +msgstr "Voeg toe" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -561,47 +605,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.mo index 674ae93261..d2927c2138 100644 Binary files a/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.po index cc9d5d1219..5def0d5a52 100644 --- a/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/pl/LC_MESSAGES/django.po @@ -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: # Annunnaky , 2015 @@ -12,63 +12,69 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadane" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Dokumenty, w których brak jest wymaganych metadanych" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Dokumenty, w których brak jest opcjonalnych metadanych" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Queryset zawierający referencję do instancji MetadataType i wartość dla tego typu metadanych" +msgstr "" +"Queryset zawierający referencję do instancji MetadataType i wartość dla tego " +"typu metadanych" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Nazwa typu metadanych" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Wartość typu metadanych" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Wartość metadanych" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Wartość" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Wymagane" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Typ metadanych" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Wartość metadanych" @@ -85,31 +91,34 @@ msgstr "ID" msgid "Name" msgstr "Nazwa" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Aktualizacja" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Błąd dotyczący domyślnej wartości: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "Dostępne zmienne kontekstowe szablonu:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Usuń" @@ -141,16 +150,15 @@ msgstr "Utwórz nowy" msgid "Delete" msgstr "Usuń" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Edytuj" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Typy metadanych" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -164,7 +172,9 @@ msgstr "Etykieta" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Podaj szablon do wyrenderowania. Użyj domyślnego języka szablonów Django " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:55 msgid "Default" @@ -173,9 +183,12 @@ msgstr "Domyślny" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Podaj szablon do wyrenderowania. Wynikiem szablonu musi być łańcuch rozdzielony przecinkami. Użyj domyślnego języka szablonów Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Podaj szablon do wyrenderowania. Wynikiem szablonu musi być łańcuch " +"rozdzielony przecinkami. Użyj domyślnego języka szablonów Django (https://" +"docs.djangoproject.com/en/1.7/ref/templates/builtins/)." #: models.py:65 msgid "Lookup" @@ -185,7 +198,9 @@ msgstr "Wyszukanie" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "Walidator odrzuci dane jeśli podana wartość nie będzie zgodna z oczekiwanym formatem." +msgstr "" +"Walidator odrzuci dane jeśli podana wartość nie będzie zgodna z oczekiwanym " +"formatem." #: models.py:72 msgid "Validator" @@ -193,47 +208,46 @@ msgstr "Walidator" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "Parser zmieni format podanej wartości na format oczekiwany." #: models.py:78 msgid "Parser" msgstr "Parser" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "Wartość nie jest jedną z dostępnych opcji." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Dokument" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Typ" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Typ metadanych jest wymagany dla tego typu dokumentu." -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Typ metadanej jest niewłaściwy dla tego typu dokumentu." -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Metadane dokumentów" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Typ dokumentu" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Opcje typu metadanych dla typu dokumentów" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Opcje typów metadanych dla typu dokumentów" @@ -273,141 +287,186 @@ msgstr "Usuń typy metadanych" msgid "View metadata types" msgstr "Przeglądaj typy metadanych" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Musisz dodać co najmniej jeden dokument." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Wybrany dokument nie ma żadnych metadanych." -msgstr[1] "Wybrane dokumenty nie mają żadnych metadanych." -msgstr[2] "Wybrane dokumenty nie mają żadnych metadanych." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Błąd podczas edycji metadanych dla dokumentu: %(document)s; %(exception)s." - -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadane dla dokumentu %s zostały pomyślnie zmodyfikowane." - -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:272 +#: views.py:43 #, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:313 +#: views.py:95 +msgid "Add" +msgstr "Dodaj" + +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" +msgstr[3] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Błąd podczas edycji metadanych dla dokumentu: %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadane dla dokumentu %s zostały pomyślnie zmodyfikowane." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Metadane dokumentu: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "Metadane dokumentu: %s" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" +#~ msgstr[3] "bae23547be942683f3c566589b362141_pl_3" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -446,18 +505,21 @@ msgstr "" #~ msgstr[0] "4e0a5b1bfd2fec1712bbea096f0291ce_pl_0" #~ msgstr[1] "4e0a5b1bfd2fec1712bbea096f0291ce_pl_1" #~ msgstr[2] "4e0a5b1bfd2fec1712bbea096f0291ce_pl_2" +#~ msgstr[3] "4e0a5b1bfd2fec1712bbea096f0291ce_pl_3" #~ msgid "Add metadata types to document: %(document)s" #~ msgid_plural "Add metadata types to the %(count)d selected documents" #~ msgstr[0] "9ef9d143943c2d5ff2b9abfe3b7ccb10_pl_0" #~ msgstr[1] "9ef9d143943c2d5ff2b9abfe3b7ccb10_pl_1" #~ msgstr[2] "9ef9d143943c2d5ff2b9abfe3b7ccb10_pl_2" +#~ msgstr[3] "9ef9d143943c2d5ff2b9abfe3b7ccb10_pl_3" #~ msgid "Remove metadata types from document: %(document)s" #~ msgid_plural "Remove metadata types from the %(count)d selected documents" #~ msgstr[0] "6ecb682bfaa127b9e56a8036a602ccf4_pl_0" #~ msgstr[1] "6ecb682bfaa127b9e56a8036a602ccf4_pl_1" #~ msgstr[2] "6ecb682bfaa127b9e56a8036a602ccf4_pl_2" +#~ msgstr[3] "6ecb682bfaa127b9e56a8036a602ccf4_pl_3" #~ msgid "Metadata for: %s" #~ msgstr "metadata for: %s" @@ -571,47 +633,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.mo index 203a0a0fb1..cad86a15be 100644 Binary files a/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.po index fd1c9fc7f3..327f4def70 100644 --- a/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/pt/LC_MESSAGES/django.po @@ -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: # Emerson Soares , 2011 @@ -11,63 +11,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadados" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valor" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Tipo de metadados" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valor de metadados" @@ -84,31 +86,34 @@ msgstr "ID" msgid "Name" msgstr "Nome" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Atualizar" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Remover" @@ -140,16 +145,15 @@ msgstr "" msgid "Delete" msgstr "Eliminar" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Editar" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Tipos de metadados" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -172,8 +176,8 @@ msgstr "Padrão" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -192,47 +196,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tipo de documento" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -272,137 +275,180 @@ msgstr "Excluir tipos de metadados" msgid "View metadata types" msgstr "Ver tipos de metadados" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" - -#: views.py:139 -#, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadados do documento %s alterados com sucesso." +#: views.py:95 +msgid "Add" +msgstr "Adicionar" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipo de metadados: %(metadata_type)s adicionado com sucesso ao documento %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipo de metadados: %(metadata_type)s já existe no documento %(document)s ." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipo de metadados: %(metadata_type)s adicionado com sucesso ao documento " +"%(document)s." + +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipo de metadados: %(metadata_type)s já existe no documento %(document)s ." + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Editar os metadados do documento: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadados do documento %s alterados com sucesso." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -563,47 +609,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.mo index 5d8c3cf9ab..e87b6b8b15 100644 Binary files a/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.po index af31537046..95faf41579 100644 --- a/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -12,63 +12,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadados" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "Documentos em falta metadados necessários" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "Documentos sem metadados opcionais" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" -msgstr "Contendo queryset para MetadataType, referência de instância e um valor para esse tipo de metadados" +msgstr "" +"Contendo queryset para MetadataType, referência de instância e um valor para " +"esse tipo de metadados" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "Metadados nome do tipo" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "Metadados valor do tipo" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "Valor do metadata" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "Devolver o valor de um documento específico de metadados" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valor" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "exigido" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Tipo de metadados" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valor de metadados" @@ -85,31 +89,34 @@ msgstr "ID" msgid "Name" msgstr "Nome" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Atualizar" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "Erro de valor de pesquisa: %s" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "Erro de valor padrão: %s" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "\"%s\" é necessário para este tipo de documento." -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "Variáveis de contexto do modelo disponíveis:" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Remover" @@ -141,20 +148,21 @@ msgstr "Criar novo" msgid "Delete" msgstr "Excluir" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Editar" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Tipos de metadados" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." -msgstr "Nome usado por outros aplicativos em referência a este valor. Não usar palavras reservadas de python, ou espaços." +msgstr "" +"Nome usado por outros aplicativos em referência a este valor. Não usar " +"palavras reservadas de python, ou espaços." #: models.py:47 msgid "Label" @@ -164,7 +172,9 @@ msgstr "Label" msgid "" "Enter a template to render. Use Django's default templating language " "(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" -msgstr "Insira um modelo para renderizar. Use a linguagem de modelo padrão do Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +msgstr "" +"Insira um modelo para renderizar. Use a linguagem de modelo padrão do Django " +"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:55 msgid "Default" @@ -173,9 +183,12 @@ msgstr "Padrão" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." -msgstr "Insira um modelo para renderizar. Precisa resultar em uma seqüência de caracteres delimitada por vírgulas. Use a linguagem de modelo padrão do Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." +msgstr "" +"Insira um modelo para renderizar. Precisa resultar em uma seqüência de " +"caracteres delimitada por vírgulas. Use a linguagem de modelo padrão do " +"Django (https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)" #: models.py:65 msgid "Lookup" @@ -185,7 +198,9 @@ msgstr "Tipo de metadados não é válido, para o tipo de documento" msgid "" "The validator will reject data entry if the value entered does not conform " "to the expected format." -msgstr "O validador rejeitará a entrada de dados se o valor inserido não estiver de acordo com o formato esperado." +msgstr "" +"O validador rejeitará a entrada de dados se o valor inserido não estiver de " +"acordo com o formato esperado." #: models.py:72 msgid "Validator" @@ -193,47 +208,48 @@ msgstr "Validador" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "O analisador irá reformatar o valor inserido para estar em conformidade com o formato esperado." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"O analisador irá reformatar o valor inserido para estar em conformidade com " +"o formato esperado." #: models.py:78 msgid "Parser" msgstr "Analisador" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "O valor não é uma das opções fornecidas." -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Documentos" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Tipo" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "Faltando metadados necessários" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "Tipo de Metadados é necessário para o tipo de documento" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Documento Metadado" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tipo de Documento" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "Tipo de Documento - Opções de tipo de metadados" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "Tipo de Documento - Opções de tipo de metadado" @@ -273,137 +289,184 @@ msgstr "Excluir tipos de metadados" msgid "View metadata types" msgstr "Ver tipos de metadados" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Chave primária do tipo de metadados a ser adicionado." -#: serializers.py:40 -msgid "Primary key of the document metadata type." -msgstr "Chave primária do tipo de metadados a ser adicionado." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." +msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "Valor da instância tipo de metadados correspondente." - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Apenas selecionar documentos do mesmo tipo." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "O documento selecionado não possui metadados." -msgstr[1] "Os documentos selecionados não possuem metadados." - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Erro editando metadados para o documento: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" +msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadados para o documento %s alterados com sucesso." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Editar metadado do documento" -msgstr[1] "Editar metadados dos documentos" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Erro ao adicionar metadados de tipo \"%(metadata_type)s\" para o documento: %(document)s; %(exception)s" +#: views.py:95 +msgid "Add" +msgstr "Adicionar" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipo Metadado %(metadata_type)s adicionado com sucesso para o documento %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipo Metadado: %(metadata_type)s já está presente no documento%(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Adicionar tipos de metadados para o documento" msgstr[1] "Adicionar tipos de metadados para os documentos" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipo Metadado %(metadata_type)s adicionado com sucesso para o documento " "%(document)s." -msgstr "Removido com sucesso o Stipo de metadato \"%(metadata_type)s\" do documento: %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Erro para remover o tipo de metadado \"%(metadata_type)s\" do documento: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipo Metadado: %(metadata_type)s já está presente no documento%(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Editar metadado do documento" +msgstr[1] "Editar metadados dos documentos" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Editar os metadados do documento: %s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "Erro editando metadados para o documento: %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadados para o documento %s alterados com sucesso." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Metadados para documento: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Remover tipos de metadados do documento" msgstr[1] "Remover tipos de metadados dos documentos" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Metadados para documento: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Removido com sucesso o Stipo de metadato \"%(metadata_type)s\" do " +"documento: %(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Erro para remover o tipo de metadado \"%(metadata_type)s\" do documento: " +"%(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Criar Tipo de documento" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Apagar o tipo de metadados: %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Editar o tipo de documento: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "nome interno" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Tipos de metadados disponíveis" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Tipos de metadados atribuídos" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Tipo de metadado opicional para os tipos de documentos : %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Tipos de metadados requeridos para documento do tipo: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -564,47 +627,47 @@ msgstr "Tipos de metadados requeridos para documento do tipo: %s" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.mo index 78f128bfdf..dc90515325 100644 Binary files a/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.po index 89d368ad7c..b347259fc8 100644 --- a/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,63 +9,66 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Metadate" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Valoare" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Metadate de tip" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Valoare metadate " @@ -82,31 +85,34 @@ msgstr "ID-ul" msgid "Name" msgstr "Nume" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Actualizați" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Scoate" @@ -138,16 +144,15 @@ msgstr "" msgid "Delete" msgstr "Șterge" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Editează" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Metadate tipuri de" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +175,8 @@ msgstr "Iniţial" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +195,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Tip" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tip document" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,141 +274,185 @@ msgstr "Ștergeți tipuri de metadate" msgid "View metadata types" msgstr "Vezi tipuri de metadate" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Trebuie să furnizeze cel puțin un document." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:139 -#, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Metadate pentru documentul %s editat cu succes." +#: views.py:95 +msgid "Add" +msgstr "Adaugă" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Tipul de metadate:%(metadata_type)s au fost adăugate cu succes documentul %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Tipul de metadate:%(metadata_type)s e deja prezent în documentul %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Tipul de metadate:%(metadata_type)s au fost adăugate cu succes documentul " "%(document)s." -msgstr "" -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" +"Tipul de metadate:%(metadata_type)s e deja prezent în documentul " +"%(document)s." + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" msgstr "" -#: views.py:461 +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Editați metadate pentru document:% s" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Metadate pentru documentul %s editat cu succes." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" +msgid "Remove metadata types from the document: %s" msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" + +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -568,47 +616,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.mo index 348cd83c88..1e03f44ddf 100644 Binary files a/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.po index 4b031aa240..23d96baa0b 100644 --- a/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,63 +9,67 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Метаданные" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Значение" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "Требуется" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Тип метаданных" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Значение метаданных" @@ -82,31 +86,34 @@ msgstr "ID" msgid "Name" msgstr "Имя" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Обновить" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Удалить" @@ -138,16 +145,15 @@ msgstr "Создать новые" msgid "Delete" msgstr "Удалить" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Редактировать" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "Типы метаданных" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +176,8 @@ msgstr "Умолчание" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +196,48 @@ msgstr "Валидатор" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." -msgstr "Введённое значение будет переформатировано парсером так, чтобы удовлетворять требованиям формата." +"The parser will reformat the value entered to conform to the expected format." +msgstr "" +"Введённое значение будет переформатировано парсером так, чтобы удовлетворять " +"требованиям формата." #: models.py:78 msgid "Parser" msgstr "Парсер" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "Документ" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "Тип" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "Метаданные документа" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Тип документа" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,73 +277,33 @@ msgstr "Удаление типов метаданных" msgid "View metadata types" msgstr "Просмотр типов метаданных" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "Первичный ключ добавляемого типа метаданных." -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Необходимо предоставить хотя бы один документ." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "Выберите документы одного типа." - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "Выбранный документ не имеет никаких метаданных." -msgstr[1] "Выбранные документы не имеют никаких метаданных." -msgstr[2] "Выбранные документы не имеют никаких метаданных." -msgstr[3] "Выбранные документы не имеют никаких метаданных." - -#: views.py:139 +#: views.py:43 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." -msgstr "Ошибка при редактировании метаданных документа: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d documents" +msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "Метаданные для документов %s изменены." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "Редактировать метаданные документа." -msgstr[1] "Редактировать метаданные документов." -msgstr[2] "Редактировать метаданные документов." -msgstr[3] "Редактировать метаданные документов." +#: views.py:95 +msgid "Add" +msgstr "Добавить" -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "Ошибка добавления метаданных типа %(metadata_type)s к документу: %(document)s; %(exception)s" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "Тип метаданных: %(metadata_type)s успешно добавлены к документу %(document)s." - -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "Тип метаданных: %(metadata_type)s уже есть в документе %(document)s." - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "Добавить тип метаданных к документам" @@ -344,21 +311,74 @@ msgstr[1] "Добавить типы метаданных к документа msgstr[2] "Добавить типы метаданных к документам" msgstr[3] "Добавить типы метаданных к документам" -#: views.py:429 +#: views.py:108 +#, python-format +msgid "Add metadata types to document: %s" +msgstr "" + +#: views.py:152 #, python-format msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " -"%(document)s." -msgstr "Успешно удалён тип метаданных \"%(metadata_type)s\" из документа %(document)s." +"Metadata type: %(metadata_type)s successfully added to document %(document)s." +msgstr "" +"Тип метаданных: %(metadata_type)s успешно добавлены к документу %(document)s." -#: views.py:439 +#: views.py:162 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" -msgstr "Ошибка удаления метаданных типа \"%(metadata_type)s\" от документа: %(document)s; %(exception)s" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "Тип метаданных: %(metadata_type)s уже есть в документе %(document)s." -#: views.py:461 +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "Редактировать метаданные документа." +msgstr[1] "Редактировать метаданные документов." +msgstr[2] "Редактировать метаданные документов." +msgstr[3] "Редактировать метаданные документов." + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "Редактировать метаданные документа:%s." + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" +"Ошибка при редактировании метаданных документа: %(document)s; %(exception)s." + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "Метаданные для документов %s изменены." + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "Метаданные документа: %s" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "Удалить тип метаданных из документов" @@ -366,49 +386,82 @@ msgstr[1] "Удалить типы метаданных из документо msgstr[2] "Удалить типы метаданных из документов" msgstr[3] "Удалить типы метаданных из документов" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" -msgstr "Метаданные документа: %s" +msgid "Remove metadata types from the document: %s" +msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" +"Успешно удалён тип метаданных \"%(metadata_type)s\" из документа " +"%(document)s." + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" +"Ошибка удаления метаданных типа \"%(metadata_type)s\" от документа: " +"%(document)s; %(exception)s" + +#: views.py:476 msgid "Create metadata type" msgstr "Создать тип метаданных" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "Удалить тип метаданных: %s?" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "Редактировать тип метаданных: %s" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "Внутреннее имя" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "Доступные типы метаданных" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "Назначенные типы метаданных" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "Дополнительные типы метаданных для типов документов: %s" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "Обязательные типы метаданных для типов документов: %s" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" +#~ msgstr[3] "bae23547be942683f3c566589b362141_pl_3" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -575,47 +628,47 @@ msgstr "Обязательные типы метаданных для типов #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.mo index 5f7cd966a9..ea118ab352 100644 Binary files a/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.po index 5cffd068be..32be49541a 100644 --- a/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/sl_SI/LC_MESSAGES/django.po @@ -1,70 +1,73 @@ # 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-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-23 16:43+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Tip metapodatkov" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Vrednost metapodatkov" @@ -81,31 +84,34 @@ msgstr "" msgid "Name" msgstr "Ime" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "" @@ -137,16 +143,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -169,8 +174,8 @@ msgstr "" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -189,47 +194,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" -msgstr "" +msgstr "Dokument" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Tip dokumenta" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -269,73 +273,33 @@ msgstr "" msgid "View metadata types" msgstr "" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." -msgstr "" - -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Potrebno je podati vsaj en dokument" - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." -msgstr "" - -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: views.py:139 +#: views.py:41 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:150 +#: views.py:43 #, python-format -msgid "Metadata for document %s edited successfully." +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" -msgstr[1] "" -msgstr[2] "" -msgstr[3] "" - -#: views.py:256 -#, python-format -msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +#: views.py:95 +msgid "Add" msgstr "" -#: views.py:282 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s already present in document %(document)s." -msgstr "" - -#: views.py:313 +#: views.py:97 msgid "Add metadata types to document" msgid_plural "Add metadata types to documents" msgstr[0] "" @@ -343,21 +307,72 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:429 +#: views.py:108 #, python-format -msgid "" -"Successfully remove metadata type \"%(metadata_type)s\" from document: " -"%(document)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:439 +#: views.py:152 #, python-format msgid "" -"Error removing metadata type \"%(metadata_type)s\" from document: " -"%(document)s; %(exception)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." msgstr "" -#: views.py:461 +#: views.py:162 +#, python-format +msgid "" +"Metadata type: %(metadata_type)s already present in document %(document)s." +msgstr "" + +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 msgid "Remove metadata types from the document" msgid_plural "Remove metadata types from the documents" msgstr[0] "" @@ -365,49 +380,78 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:504 +#: views.py:408 #, python-format -msgid "Metadata for document: %s" +msgid "Remove metadata types from the document: %s" msgstr "" -#: views.py:513 +#: views.py:455 +#, python-format +msgid "" +"Successfully remove metadata type \"%(metadata_type)s\" from document: " +"%(document)s." +msgstr "" + +#: views.py:465 +#, python-format +msgid "" +"Error removing metadata type \"%(metadata_type)s\" from document: " +"%(document)s; %(exception)s" +msgstr "" + +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" +#~ msgstr[1] "bae23547be942683f3c566589b362141_pl_1" +#~ msgstr[2] "bae23547be942683f3c566589b362141_pl_2" +#~ msgstr[3] "bae23547be942683f3c566589b362141_pl_3" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -574,47 +618,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.mo index e993492b2c..991ca29a58 100644 Binary files a/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.po index cb8bfc085e..189af167ff 100644 --- a/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,63 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "Siêu dữ liệu" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "Giá trị" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "Loại siêu dữ liệu" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "" @@ -82,31 +84,34 @@ msgstr "ID" msgid "Name" msgstr "Tên" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "Cập nhật" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "Xóa" @@ -138,16 +143,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "Sửa" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +174,8 @@ msgstr "Mặc định" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +194,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "Kiểu tài liệu" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,133 +273,173 @@ msgstr "Xóa loại siêu dữ liệu" msgid "View metadata types" msgstr "Xem các loại siêu dữ liệu" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu." - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" + +#: views.py:95 +msgid "Add" +msgstr "Thêm" + +#: views.py:97 +msgid "Add metadata types to document" +msgid_plural "Add metadata types to documents" msgstr[0] "" -#: views.py:139 +#: views.py:108 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "" - -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" - -#: views.py:256 +#: views.py:152 #, python-format msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" +"Metadata type: %(metadata_type)s successfully added to document %(document)s." msgstr "" -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." -msgstr "" - -#: views.py:282 +#: views.py:162 #, python-format msgid "" "Metadata type: %(metadata_type)s already present in document %(document)s." msgstr "" -#: views.py:313 -msgid "Add metadata types to document" -msgid_plural "Add metadata types to documents" +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" msgstr[0] "" -#: views.py:429 +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -554,47 +597,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.mo index ba9e5196dd..7773b71345 100644 Binary files a/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.po index 9fbb6e817a..6dffdeb178 100644 --- a/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/metadata/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,63 +9,65 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" -"PO-Revision-Date: 2016-10-28 07:35+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:52 apps.py:142 links.py:39 permissions.py:7 settings.py:10 +#: apps.py:52 apps.py:145 apps.py:150 links.py:39 permissions.py:7 +#: settings.py:10 msgid "Metadata" msgstr "元数据" -#: apps.py:76 +#: apps.py:79 msgid "Documents missing required metadata" msgstr "" -#: apps.py:93 +#: apps.py:96 msgid "Documents missing optional metadata" msgstr "" -#: apps.py:112 +#: apps.py:115 msgid "" "Queryset containing a MetadataType instance reference and a value for that " "metadata type" msgstr "" -#: apps.py:118 +#: apps.py:121 msgid "Metadata type name" msgstr "" -#: apps.py:121 +#: apps.py:124 msgid "Metadata type value" msgstr "" -#: apps.py:125 +#: apps.py:128 msgid "Value of a metadata" msgstr "" -#: apps.py:127 +#: apps.py:130 msgid "Return the value of a specific document metadata" msgstr "" -#: apps.py:147 forms.py:19 models.py:158 +#: apps.py:157 forms.py:19 models.py:159 msgid "Value" msgstr "值" -#: apps.py:151 forms.py:39 models.py:208 +#: apps.py:161 forms.py:44 models.py:209 msgid "Required" msgstr "" -#: apps.py:173 forms.py:112 models.py:91 models.py:206 +#: apps.py:183 apps.py:191 forms.py:118 models.py:91 models.py:207 msgid "Metadata type" msgstr "元数据类型" -#: apps.py:176 +#: apps.py:186 apps.py:195 msgid "Metadata value" msgstr "Metadata值" @@ -82,31 +84,34 @@ msgstr "ID" msgid "Name" msgstr "名称" -#: forms.py:21 +#: forms.py:23 msgid "Update" msgstr "更新" -#: forms.py:65 +#: forms.py:70 #, python-format msgid "Lookup value error: %s" msgstr "" -#: forms.py:78 +#: forms.py:83 #, python-format msgid "Default value error: %s" msgstr "" -#: forms.py:94 models.py:124 +#: forms.py:99 models.py:124 #, python-format msgid "\"%s\" is required for this document type." msgstr "" -#: forms.py:130 -#| msgid " Available models: %s" +#: forms.py:117 +msgid "Metadata types to be added to the selected documents." +msgstr "" + +#: forms.py:146 msgid " Available template context variables: " msgstr "" -#: forms.py:141 +#: forms.py:157 views.py:395 msgid "Remove" msgstr "移除" @@ -138,16 +143,15 @@ msgstr "" msgid "Delete" msgstr "" -#: links.py:59 +#: links.py:59 views.py:229 msgid "Edit" msgstr "" -#: links.py:64 models.py:92 views.py:561 +#: links.py:64 models.py:92 views.py:524 msgid "Metadata types" msgstr "元数据类型" #: models.py:42 -#| msgid "Do not use python reserved words, or spaces." msgid "" "Name used by other apps to reference this value. Do not use python reserved " "words, or spaces." @@ -170,8 +174,8 @@ msgstr "" #: models.py:60 msgid "" "Enter a template to render. Must result in a comma delimited string. Use " -"Django's default templating language " -"(https://docs.djangoproject.com/en/1.7/ref/templates/builtins/)." +"Django's default templating language (https://docs.djangoproject.com/en/1.7/" +"ref/templates/builtins/)." msgstr "" #: models.py:65 @@ -190,47 +194,46 @@ msgstr "" #: models.py:76 msgid "" -"The parser will reformat the value entered to conform to the expected " -"format." +"The parser will reformat the value entered to conform to the expected format." msgstr "" #: models.py:78 msgid "Parser" msgstr "" -#: models.py:131 +#: models.py:132 msgid "Value is not one of the provided options." msgstr "" -#: models.py:153 +#: models.py:154 msgid "Document" msgstr "" -#: models.py:155 +#: models.py:156 msgid "Type" msgstr "" -#: models.py:167 +#: models.py:168 msgid "Metadata type is required for this document type." msgstr "" -#: models.py:175 +#: models.py:176 msgid "Metadata type is not valid for this document type." msgstr "" -#: models.py:189 models.py:190 +#: models.py:190 models.py:191 msgid "Document metadata" msgstr "" -#: models.py:203 +#: models.py:204 msgid "Document type" msgstr "文档类型" -#: models.py:215 +#: models.py:216 msgid "Document type metadata type options" msgstr "" -#: models.py:216 +#: models.py:217 msgid "Document type metadata types options" msgstr "" @@ -270,133 +273,173 @@ msgstr "删除元数据类型" msgid "View metadata types" msgstr "查看元数据类型" -#: serializers.py:33 serializers.py:61 +#: serializers.py:49 msgid "Primary key of the metadata type to be added." msgstr "" -#: serializers.py:40 -msgid "Primary key of the document metadata type." +#: serializers.py:130 +msgid "Primary key of the metadata type to be added to the document." msgstr "" -#: serializers.py:46 -msgid "Value of the corresponding metadata type instance." +#: views.py:41 +#, python-format +msgid "Metadata add request performed on %(count)d document" msgstr "" -#: views.py:58 views.py:217 views.py:353 -msgid "Must provide at least one document." -msgstr "必须至少提供一个文档" - -#: views.py:66 views.py:196 views.py:361 -msgid "Only select documents of the same type." +#: views.py:43 +#, python-format +msgid "Metadata add request performed on %(count)d documents" msgstr "" -#: views.py:75 views.py:370 -msgid "The selected document doesn't have any metadata." -msgid_plural "The selected documents don't have any metadata." +#: views.py:56 views.py:192 views.py:358 +msgid "Selected documents must be of the same type." +msgstr "" + +#: views.py:95 +msgid "Add" +msgstr "新增" + +#: views.py:97 +msgid "Add metadata types to document" +msgid_plural "Add metadata types to documents" msgstr[0] "" -#: views.py:139 +#: views.py:108 #, python-format -msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgid "Add metadata types to document: %s" msgstr "" -#: views.py:150 -#, python-format -msgid "Metadata for document %s edited successfully." -msgstr "文档 %s 的元数据编辑成功。" - -#: views.py:168 -msgid "Edit document metadata" -msgid_plural "Edit documents metadata" -msgstr[0] "" - -#: views.py:256 +#: views.py:152 #, python-format msgid "" -"Error adding metadata type \"%(metadata_type)s\" to document: %(document)s; " -"%(exception)s" -msgstr "" - -#: views.py:272 -#, python-format -msgid "" -"Metadata type: %(metadata_type)s successfully added to document " -"%(document)s." +"Metadata type: %(metadata_type)s successfully added to document %(document)s." msgstr "元数据类型: %(metadata_type)s成功加入到文档%(document)s" -#: views.py:282 +#: views.py:162 #, python-format msgid "" "Metadata type: %(metadata_type)s already present in document %(document)s." msgstr "元数据类型: %(metadata_type)s 已经存在于文档%(document)s." -#: views.py:313 -msgid "Add metadata types to document" -msgid_plural "Add metadata types to documents" +#: views.py:176 +#, python-format +msgid "Metadata edit request performed on %(count)d document" +msgstr "" + +#: views.py:179 +#, python-format +msgid "Metadata edit request performed on %(count)d documents" +msgstr "" + +#: views.py:231 +msgid "Edit document metadata" +msgid_plural "Edit documents metadata" msgstr[0] "" -#: views.py:429 +#: views.py:242 +#, python-format +msgid "Edit metadata for document: %s" +msgstr "编辑文档 %s 元数据" + +#: views.py:295 +#, python-format +msgid "Error editing metadata for document: %(document)s; %(exception)s." +msgstr "" + +#: views.py:306 +#, python-format +msgid "Metadata for document %s edited successfully." +msgstr "文档 %s 的元数据编辑成功。" + +#: views.py:330 +#, python-format +msgid "Metadata for document: %s" +msgstr "" + +#: views.py:342 +#, python-format +msgid "Metadata remove request performed on %(count)d document" +msgstr "" + +#: views.py:345 +#, python-format +msgid "Metadata remove request performed on %(count)d documents" +msgstr "" + +#: views.py:397 +msgid "Remove metadata types from the document" +msgid_plural "Remove metadata types from the documents" +msgstr[0] "" + +#: views.py:408 +#, python-format +msgid "Remove metadata types from the document: %s" +msgstr "" + +#: views.py:455 #, python-format msgid "" "Successfully remove metadata type \"%(metadata_type)s\" from document: " "%(document)s." msgstr "" -#: views.py:439 +#: views.py:465 #, python-format msgid "" "Error removing metadata type \"%(metadata_type)s\" from document: " "%(document)s; %(exception)s" msgstr "" -#: views.py:461 -msgid "Remove metadata types from the document" -msgid_plural "Remove metadata types from the documents" -msgstr[0] "" - -#: views.py:504 -#, python-format -msgid "Metadata for document: %s" -msgstr "" - -#: views.py:513 +#: views.py:476 msgid "Create metadata type" msgstr "" -#: views.py:529 +#: views.py:492 #, python-format -#| msgid "Delete metadata types" msgid "Delete the metadata type: %s?" msgstr "" -#: views.py:542 +#: views.py:505 #, python-format msgid "Edit metadata type: %s" msgstr "" -#: views.py:556 +#: views.py:519 msgid "Internal name" msgstr "" -#: views.py:568 -#| msgid "View metadata types" +#: views.py:531 msgid "Available metadata types" msgstr "" -#: views.py:569 +#: views.py:532 msgid "Metadata types assigned" msgstr "" -#: views.py:600 +#: views.py:563 #, python-format msgid "Optional metadata types for document type: %s" msgstr "" -#: views.py:618 +#: views.py:581 #, python-format msgid "Required metadata types for document type: %s" msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "The selected document doesn't have any metadata." +#~ msgid_plural "The selected documents don't have any metadata." +#~ msgstr[0] "bae23547be942683f3c566589b362141_pl_0" + +#~ msgid "" +#~ "Error adding metadata type \"%(metadata_type)s\" to document: " +#~ "%(document)s; %(exception)s" +#~ msgstr "" +#~ "Error removing metadata type: %(metadata_type)s from document: " +#~ "%(document)s." + #~ msgid "Missing metadata" #~ msgstr "edit metadata" @@ -554,47 +597,47 @@ msgstr "" #~ msgstr "What are metadata sets?" #~ msgid "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgstr "" -#~ "A metadata set is a group of one or more metadata types. Metadata sets are " -#~ "useful when creating new documents; selecing a metadata set automatically " -#~ "attaches it's member metadata types to said document." +#~ "A metadata set is a group of one or more metadata types. Metadata sets " +#~ "are useful when creating new documents; selecing a metadata set " +#~ "automatically attaches it's member metadata types to said document." #~ msgid "What are metadata types?" #~ msgstr "What are metadata types?" #~ msgid "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgstr "" -#~ "A metadata type defines the characteristics of a value of some kind that can" -#~ " be attached to a document. Examples of metadata types are: a client name, " -#~ "a date, or a project to which several documents belong. A metadata type's " -#~ "name is the internal identifier with which it can be referenced to by other " -#~ "modules such as the indexing module, the title is the value that is shown to" -#~ " the users, the default value is the value an instance of this metadata type" -#~ " will have initially, and the lookup value turns an instance of a metadata " -#~ "of this type into a choice list which options are the result of the lookup's" -#~ " code execution." +#~ "A metadata type defines the characteristics of a value of some kind that " +#~ "can be attached to a document. Examples of metadata types are: a client " +#~ "name, a date, or a project to which several documents belong. A metadata " +#~ "type's name is the internal identifier with which it can be referenced to " +#~ "by other modules such as the indexing module, the title is the value that " +#~ "is shown to the users, the default value is the value an instance of this " +#~ "metadata type will have initially, and the lookup value turns an instance " +#~ "of a metadata of this type into a choice list which options are the " +#~ "result of the lookup's code execution." #~ msgid " Available functions: %s" #~ msgstr " Available functions: %s" #~ msgid "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgstr "" -#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user in " -#~ "User.objects.all()].%s" +#~ "Enter a string to be evaluated. Example: [user.get_full_name() for user " +#~ "in User.objects.all()].%s" #~ msgid "Error deleting document indexes; %s" #~ msgstr "Error deleting document indexes; %s" diff --git a/mayan/apps/metadata/serializers.py b/mayan/apps/metadata/serializers.py index 12b70a50c7..0afcf95540 100644 --- a/mayan/apps/metadata/serializers.py +++ b/mayan/apps/metadata/serializers.py @@ -1,64 +1,159 @@ from __future__ import unicode_literals +from django.core.exceptions import ValidationError as DjangoValidationError from django.utils.translation import ugettext_lazy as _ from rest_framework import serializers +from rest_framework.exceptions import ValidationError +from rest_framework.reverse import reverse -from .models import DocumentMetadata, MetadataType, DocumentTypeMetadataType +from documents.serializers import DocumentSerializer, DocumentTypeSerializer + +from .models import DocumentMetadata, DocumentTypeMetadataType, MetadataType -class MetadataTypeSerializer(serializers.ModelSerializer): +class MetadataTypeSerializer(serializers.HyperlinkedModelSerializer): class Meta: + extra_kwargs = { + 'url': { + 'lookup_field': 'pk', 'lookup_url_kwarg': 'metadata_type_pk', + 'view_name': 'rest_api:metadatatype-detail' + }, + } fields = ( - 'id', 'name', 'label', 'default', 'lookup', 'parser', 'validation' + 'default', 'id', 'label', 'lookup', 'name', 'parser', 'url', + 'validation' ) model = MetadataType -class DocumentMetadataSerializer(serializers.ModelSerializer): - document = serializers.PrimaryKeyRelatedField(read_only=True) +class DocumentTypeMetadataTypeSerializer(serializers.HyperlinkedModelSerializer): + document_type = DocumentTypeSerializer(read_only=True) + metadata_type = MetadataTypeSerializer(read_only=True) + url = serializers.SerializerMethodField() class Meta: - fields = ('document', 'id', 'metadata_type', 'value',) - model = DocumentMetadata - read_only_fields = ('metadata_type',) - - -class DocumentTypeMetadataTypeSerializer(serializers.ModelSerializer): - class Meta: - fields = ('metadata_type', ) + fields = ('document_type', 'id', 'metadata_type', 'required', 'url') model = DocumentTypeMetadataType + def get_url(self, instance): + return reverse( + 'rest_api:documenttypemetadatatype-detail', args=( + instance.document_type.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) -class DocumentNewMetadataSerializer(serializers.Serializer): + +class NewDocumentTypeMetadataTypeSerializer(serializers.ModelSerializer): metadata_type_pk = serializers.IntegerField( help_text=_('Primary key of the metadata type to be added.'), write_only=True ) + url = serializers.SerializerMethodField() + class Meta: + fields = ( + 'id', 'metadata_type_pk', 'required', 'url' + ) + model = DocumentTypeMetadataType + + def get_url(self, instance): + return reverse( + 'rest_api:documenttypemetadatatype-detail', args=( + instance.document_type.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def validate(self, attrs): + attrs['document_type'] = self.context['document_type'] + attrs['metadata_type'] = MetadataType.objects.get( + pk=attrs.pop('metadata_type_pk') + ) + + instance = DocumentTypeMetadataType(**attrs) + try: + instance.full_clean() + except DjangoValidationError as exception: + raise ValidationError(exception) + + return attrs + + +class WritableDocumentTypeMetadataTypeSerializer(serializers.ModelSerializer): + url = serializers.SerializerMethodField() + + class Meta: + fields = ( + 'id', 'required', 'url' + ) + model = DocumentTypeMetadataType + + def get_url(self, instance): + return reverse( + 'rest_api:documenttypemetadatatype-detail', args=( + instance.document_type.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + +class DocumentMetadataSerializer(serializers.HyperlinkedModelSerializer): + document = DocumentSerializer(read_only=True) metadata_type = MetadataTypeSerializer(read_only=True) + url = serializers.SerializerMethodField() - pk = serializers.IntegerField( - help_text=_('Primary key of the document metadata type.'), - read_only=True - ) + class Meta: + fields = ('document', 'id', 'metadata_type', 'url', 'value') + model = DocumentMetadata + read_only_fields = ('document', 'metadata_type',) - value = serializers.CharField( - max_length=255, - help_text=_('Value of the corresponding metadata type instance.') - ) - - def create(self, validated_data): - metadata_type = MetadataType.objects.get( - pk=validated_data['metadata_type_pk'] + def get_url(self, instance): + return reverse( + 'rest_api:documentmetadata-detail', args=( + instance.document.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] ) - instance = self.document.metadata.create( - metadata_type=metadata_type, value=validated_data['value'] - ) - return instance + + def validate(self, attrs): + self.instance.value = attrs['value'] + + try: + self.instance.full_clean() + except DjangoValidationError as exception: + raise ValidationError(exception) + + return attrs -class DocumentTypeNewMetadataTypeSerializer(serializers.Serializer): +class NewDocumentMetadataSerializer(serializers.ModelSerializer): metadata_type_pk = serializers.IntegerField( - help_text=_('Primary key of the metadata type to be added.') + help_text=_( + 'Primary key of the metadata type to be added to the document.' + ), + write_only=True ) + url = serializers.SerializerMethodField() + + class Meta: + fields = ('id', 'metadata_type_pk', 'url', 'value') + model = DocumentMetadata + + def get_url(self, instance): + return reverse( + 'rest_api:documentmetadata-detail', args=( + instance.document.pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + + def validate(self, attrs): + attrs['document'] = self.context['document'] + attrs['metadata_type'] = MetadataType.objects.get( + pk=attrs.pop('metadata_type_pk') + ) + + instance = DocumentMetadata(**attrs) + try: + instance.full_clean() + except DjangoValidationError as exception: + raise ValidationError(exception) + + return attrs diff --git a/mayan/apps/metadata/static/metadata/js/metadata_form.js b/mayan/apps/metadata/static/metadata/js/metadata_form.js new file mode 100644 index 0000000000..a39726fac8 --- /dev/null +++ b/mayan/apps/metadata/static/metadata/js/metadata_form.js @@ -0,0 +1,11 @@ +'use strict'; + +waitForJQuery(function() { + jQuery(document).ready(function() { + $('.metadata-value').on('input', function(event) { + // Check the checkbox next to a metadata value input when there is + // data entry in the value's input. + $(event.target).parents('tr').find(':checkbox').prop('checked', true); + }); + }); +}); diff --git a/mayan/apps/metadata/tests/test_api.py b/mayan/apps/metadata/tests/test_api.py index 79ccff4acb..c6bf065d3d 100644 --- a/mayan/apps/metadata/tests/test_api.py +++ b/mayan/apps/metadata/tests/test_api.py @@ -4,15 +4,14 @@ from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings -from rest_framework.test import APITestCase - from documents.models import DocumentType from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) -from ..models import DocumentMetadata, DocumentTypeMetadataType, MetadataType +from ..models import DocumentTypeMetadataType, MetadataType from .literals import ( TEST_METADATA_TYPE_LABEL, TEST_METADATA_TYPE_LABEL_2, @@ -21,8 +20,10 @@ from .literals import ( ) -class MetadataTypeAPITestCase(APITestCase): +class MetadataTypeAPITestCase(BaseAPITestCase): def setUp(self): + super(MetadataTypeAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -59,8 +60,10 @@ class MetadataTypeAPITestCase(APITestCase): self._create_metadata_type() response = self.client.delete( - reverse('rest_api:metadatatype-detail', - args=(self.metadata_type.pk,)) + reverse( + 'rest_api:metadatatype-detail', + args=(self.metadata_type.pk,) + ) ) self.assertEqual(response.status_code, 204) @@ -71,20 +74,24 @@ class MetadataTypeAPITestCase(APITestCase): self._create_metadata_type() response = self.client.get( - reverse('rest_api:metadatatype-detail', - args=(self.metadata_type.pk,)) + reverse( + 'rest_api:metadatatype-detail', + args=(self.metadata_type.pk,) + ) ) self.assertEqual(response.status_code, 200) self.assertEqual( response.data['label'], TEST_METADATA_TYPE_LABEL ) - def test_metadata_type_edit_via_patch_view(self): + def test_metadata_type_patch_view(self): self._create_metadata_type() response = self.client.patch( - reverse('rest_api:metadatatype-detail', - args=(self.metadata_type.pk,)), data={ + reverse( + 'rest_api:metadatatype-detail', + args=(self.metadata_type.pk,) + ), data={ 'label': TEST_METADATA_TYPE_LABEL_2, 'name': TEST_METADATA_TYPE_NAME_2 } @@ -97,12 +104,14 @@ class MetadataTypeAPITestCase(APITestCase): self.assertEqual(self.metadata_type.label, TEST_METADATA_TYPE_LABEL_2) self.assertEqual(self.metadata_type.name, TEST_METADATA_TYPE_NAME_2) - def test_metadata_type_edit_via_put_view(self): + def test_metadata_type_put_view(self): self._create_metadata_type() response = self.client.put( - reverse('rest_api:metadatatype-detail', - args=(self.metadata_type.pk,)), data={ + reverse( + 'rest_api:metadatatype-detail', + args=(self.metadata_type.pk,) + ), data={ 'label': TEST_METADATA_TYPE_LABEL_2, 'name': TEST_METADATA_TYPE_NAME_2 } @@ -125,8 +134,10 @@ class MetadataTypeAPITestCase(APITestCase): ) -class DocumentTypeMetadataTypeAPITestCase(APITestCase): +class DocumentTypeMetadataTypeAPITestCase(BaseAPITestCase): def setUp(self): + super(DocumentTypeMetadataTypeAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -147,56 +158,53 @@ class DocumentTypeMetadataTypeAPITestCase(APITestCase): def tearDown(self): self.admin_user.delete() self.document_type.delete() + super(DocumentTypeMetadataTypeAPITestCase, self).tearDown() - def test_document_type_metadata_type_optional_create(self): + def _create_document_type_metadata_type(self): + self.document_type_metadata_type = self.document_type.metadata.create( + metadata_type=self.metadata_type, required=False + ) + + def test_document_type_metadata_type_create_view(self): response = self.client.post( reverse( - 'rest_api:documenttypeoptionalmetadatatype-list', + 'rest_api:documenttypemetadatatype-list', args=(self.document_type.pk,) - ), data={'metadata_type_pk': self.metadata_type.pk} + ), data={ + 'metadata_type_pk': self.metadata_type.pk, 'required': False + } ) self.assertEqual(response.status_code, 201) - document_type_metadata_type = DocumentTypeMetadataType.objects.filter( - document_type=self.document_type, required=False - ).first() + document_type_metadata_type = DocumentTypeMetadataType.objects.first() - self.assertEqual(response.data['pk'], document_type_metadata_type.pk) + self.assertEqual(response.data['id'], document_type_metadata_type.pk) - self.assertEqual( - document_type_metadata_type.metadata_type, self.metadata_type - ) + def test_document_type_metadata_type_create_dupicate_view(self): + self._create_document_type_metadata_type() - def test_document_type_metadata_type_required_create(self): response = self.client.post( reverse( - 'rest_api:documenttyperequiredmetadatatype-list', + 'rest_api:documenttypemetadatatype-list', args=(self.document_type.pk,) - ), data={'metadata_type_pk': self.metadata_type.pk} + ), data={ + 'metadata_type_pk': self.metadata_type.pk, 'required': False + } ) - self.assertEqual(response.status_code, 201) + self.assertEqual(response.status_code, 400) + self.assertEqual(response.data.keys()[0], 'non_field_errors') - document_type_metadata_type = DocumentTypeMetadataType.objects.filter( - document_type=self.document_type, required=True - ).first() - - self.assertEqual(response.data['pk'], document_type_metadata_type.pk) - - self.assertEqual( - document_type_metadata_type.metadata_type, self.metadata_type - ) - - def test_document_type_metadata_type_delete(self): - document_type_metadata_type = self.document_type.metadata.create( - metadata_type=self.metadata_type, required=True - ) + def test_document_type_metadata_type_delete_view(self): + self._create_document_type_metadata_type() response = self.client.delete( reverse( 'rest_api:documenttypemetadatatype-detail', - args=(document_type_metadata_type.pk,) + args=( + self.document_type.pk, self.document_type_metadata_type.pk, + ), ), ) @@ -204,10 +212,69 @@ class DocumentTypeMetadataTypeAPITestCase(APITestCase): self.assertEqual(self.document_type.metadata.all().count(), 0) + def test_document_type_metadata_type_list_view(self): + self._create_document_type_metadata_type() -class DocumentMetadataAPITestCase(APITestCase): + response = self.client.get( + reverse( + 'rest_api:documenttypemetadatatype-list', + args=( + self.document_type.pk, + ), + ), + ) + + self.assertEqual(response.status_code, 200) + + self.assertEqual( + response.data['results'][0]['id'], + self.document_type_metadata_type.pk + ) + + def test_document_type_metadata_type_patch_view(self): + self._create_document_type_metadata_type() + + response = self.client.patch( + reverse( + 'rest_api:documenttypemetadatatype-detail', + args=( + self.document_type.pk, self.document_type_metadata_type.pk, + ) + ), data={ + 'required': True + } + ) + + document_type_metadata_type = DocumentTypeMetadataType.objects.first() + + self.assertEqual(response.status_code, 200) + self.assertEqual(document_type_metadata_type.required, True) + + def test_document_type_metadata_type_put_view(self): + self._create_document_type_metadata_type() + + response = self.client.put( + reverse( + 'rest_api:documenttypemetadatatype-detail', + args=( + self.document_type.pk, self.document_type_metadata_type.pk, + ) + ), data={ + 'required': True + } + ) + + document_type_metadata_type = DocumentTypeMetadataType.objects.first() + + self.assertEqual(response.status_code, 200) + self.assertEqual(document_type_metadata_type.required, True) + + +class DocumentMetadataAPITestCase(BaseAPITestCase): @override_settings(OCR_AUTO_OCR=False) def setUp(self): + super(DocumentMetadataAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -237,8 +304,14 @@ class DocumentMetadataAPITestCase(APITestCase): def tearDown(self): self.admin_user.delete() self.document_type.delete() + super(DocumentMetadataAPITestCase, self).tearDown() - def test_document_metadata_create(self): + def _create_document_metadata(self): + self.document_metadata = self.document.metadata.create( + metadata_type=self.metadata_type, value=TEST_METADATA_VALUE + ) + + def test_document_metadata_create_view(self): response = self.client.post( reverse( 'rest_api:documentmetadata-list', @@ -249,22 +322,64 @@ class DocumentMetadataAPITestCase(APITestCase): } ) - document_metadata = DocumentMetadata.objects.get( - document=self.document - ) + document_metadata = self.document.metadata.first() self.assertEqual(response.status_code, 201) - self.assertEqual(response.data['pk'], document_metadata.pk) + self.assertEqual(response.data['id'], document_metadata.pk) self.assertEqual(document_metadata.metadata_type, self.metadata_type) self.assertEqual(document_metadata.value, TEST_METADATA_VALUE) - def test_document_metadata_list(self): - document_metadata = self.document.metadata.create( - metadata_type=self.metadata_type, value=TEST_METADATA_VALUE + def test_document_metadata_create_duplicate_view(self): + self._create_document_metadata() + + response = self.client.post( + reverse( + 'rest_api:documentmetadata-list', + args=(self.document.pk,) + ), data={ + 'metadata_type_pk': self.metadata_type.pk, + 'value': TEST_METADATA_VALUE + } ) + self.assertEqual(response.status_code, 400) + self.assertEqual(response.data.keys()[0], 'non_field_errors') + + def test_document_metadata_create_invalid_lookup_value_view(self): + self.metadata_type.lookup = 'invalid,lookup,values,on,purpose' + self.metadata_type.save() + + response = self.client.post( + reverse( + 'rest_api:documentmetadata-list', + args=(self.document.pk,) + ), data={ + 'metadata_type_pk': self.metadata_type.pk, + 'value': TEST_METADATA_VALUE + } + ) + self.assertEqual(response.status_code, 400) + self.assertEqual(response.data.keys()[0], 'non_field_errors') + + def test_document_metadata_delete_view(self): + self._create_document_metadata() + + response = self.client.delete( + reverse( + 'rest_api:documentmetadata-detail', + args=(self.document.pk, self.document_metadata.pk,) + ) + ) + + self.assertEqual(response.status_code, 204) + + self.assertEqual(self.document.metadata.all().count(), 0) + + def test_document_metadata_list_view(self): + self._create_document_metadata() + response = self.client.get( reverse( 'rest_api:documentmetadata-list', args=(self.document.pk,) @@ -274,56 +389,49 @@ class DocumentMetadataAPITestCase(APITestCase): self.assertEqual(response.status_code, 200) self.assertEqual( - response.data['results'][0]['document'], self.document.pk + response.data['results'][0]['document']['id'], self.document.pk ) self.assertEqual( - response.data['results'][0]['metadata_type'], self.metadata_type.pk + response.data['results'][0]['metadata_type']['id'], + self.metadata_type.pk ) self.assertEqual( response.data['results'][0]['value'], TEST_METADATA_VALUE ) self.assertEqual( - response.data['results'][0]['id'], document_metadata.pk + response.data['results'][0]['id'], self.document_metadata.pk ) - def test_document_metadata_edit(self): - document_metadata = self.document.metadata.create( - metadata_type=self.metadata_type, value=TEST_METADATA_VALUE - ) + def test_document_metadata_patch_view(self): + self._create_document_metadata() - response = self.client.put( + response = self.client.patch( reverse( 'rest_api:documentmetadata-detail', - args=(document_metadata.pk,) + args=(self.document.pk, self.document_metadata.pk,) ), data={ 'value': TEST_METADATA_VALUE_EDITED } ) self.assertEqual(response.status_code, 200) - - self.assertEqual( - response.data['document'], self.document.pk - ) - self.assertEqual( - response.data['metadata_type'], self.metadata_type.pk - ) self.assertEqual( response.data['value'], TEST_METADATA_VALUE_EDITED ) - def test_document_metadata_delete(self): - document_metadata = self.document.metadata.create( - metadata_type=self.metadata_type, value=TEST_METADATA_VALUE - ) + def test_document_metadata_put_view(self): + self._create_document_metadata() - response = self.client.delete( + response = self.client.put( reverse( 'rest_api:documentmetadata-detail', - args=(document_metadata.pk,) - ) + args=(self.document.pk, self.document_metadata.pk,) + ), data={ + 'value': TEST_METADATA_VALUE_EDITED + } ) - self.assertEqual(response.status_code, 204) - - self.assertEqual(self.document.metadata.all().count(), 0) + self.assertEqual(response.status_code, 200) + self.assertEqual( + response.data['value'], TEST_METADATA_VALUE_EDITED + ) diff --git a/mayan/apps/metadata/urls.py b/mayan/apps/metadata/urls.py index e317927bd1..658368c25e 100644 --- a/mayan/apps/metadata/urls.py +++ b/mayan/apps/metadata/urls.py @@ -4,10 +4,8 @@ from django.conf.urls import url from .api_views import ( APIDocumentMetadataListView, APIDocumentMetadataView, - APIDocumentTypeMetadataTypeOptionalListView, - APIDocumentTypeMetadataTypeRequiredListView, - APIDocumentTypeMetadataTypeView, APIMetadataTypeListView, - APIMetadataTypeView + APIDocumentTypeMetadataTypeListView, APIDocumentTypeMetadataTypeView, + APIMetadataTypeListView, APIMetadataTypeView ) from .views import ( DocumentMetadataAddView, DocumentMetadataEditView, @@ -82,30 +80,25 @@ api_urls = [ name='metadatatype-list' ), url( - r'^metadata_types/(?P[0-9]+)/$', APIMetadataTypeView.as_view(), - name='metadatatype-detail' + r'^metadata_types/(?P\d+)/$', + APIMetadataTypeView.as_view(), name='metadatatype-detail' ), url( - r'^document/metadata/(?P[0-9]+)/$', - APIDocumentMetadataView.as_view(), name='documentmetadata-detail' + r'^document_types/(?P\d+)/metadata_types/$', + APIDocumentTypeMetadataTypeListView.as_view(), + name='documenttypemetadatatype-list' ), url( - r'^document/(?P\d+)/metadata/$', - APIDocumentMetadataListView.as_view(), name='documentmetadata-list' - ), - url( - r'^document_type/(?P[0-9]+)/metadata_types/optional/$', - APIDocumentTypeMetadataTypeOptionalListView.as_view(), - name='documenttypeoptionalmetadatatype-list' - ), - url( - r'^document_type/(?P[0-9]+)/metadata_types/required/$', - APIDocumentTypeMetadataTypeRequiredListView.as_view(), - name='documenttyperequiredmetadatatype-list' - ), - url( - r'^document_type_metadata_type/(?P\d+)/$', + r'^document_types/(?P\d+)/metadata_types/(?P\d+)/$', APIDocumentTypeMetadataTypeView.as_view(), name='documenttypemetadatatype-detail' ), + url( + r'^documents/(?P\d+)/metadata/$', + APIDocumentMetadataListView.as_view(), name='documentmetadata-list' + ), + url( + r'^documents/(?P\d+)/metadata/(?P\d+)/$', + APIDocumentMetadataView.as_view(), name='documentmetadata-detail' + ), ] diff --git a/mayan/apps/metadata/views.py b/mayan/apps/metadata/views.py index 22606c392a..a37007978b 100644 --- a/mayan/apps/metadata/views.py +++ b/mayan/apps/metadata/views.py @@ -127,7 +127,9 @@ class DocumentMetadataAddView(MultipleObjectFormActionView): if queryset.count() == 1: result.update( { - 'queryset': MetadataType.objects.exclude( + 'queryset': MetadataType.objects.get_for_document_type( + document_type=queryset.first().document_type + ).exclude( pk__in=MetadataType.objects.get_for_document( document=queryset.first() ) @@ -139,33 +141,49 @@ class DocumentMetadataAddView(MultipleObjectFormActionView): def object_action(self, form, instance): for metadata_type in form.cleaned_data['metadata_type']: - document_metadata, created = DocumentMetadata.objects.get_or_create( - document=instance, - metadata_type=metadata_type, - defaults={'value': ''} - ) - - if created: - messages.success( + try: + document_metadata, created = DocumentMetadata.objects.get_or_create( + document=instance, + metadata_type=metadata_type, + defaults={'value': ''} + ) + except ValidationError as exception: + messages.error( self.request, _( - 'Metadata type: %(metadata_type)s ' - 'successfully added to document %(document)s.' + 'Error adding metadata type ' + '"%(metadata_type)s" to document: ' + '%(document)s; %(exception)s' ) % { 'metadata_type': metadata_type, - 'document': instance + 'document': instance, + 'exception': ', '.join( + getattr(exception, 'messages', exception) + ) } ) else: - messages.warning( - self.request, _( - 'Metadata type: %(metadata_type)s already ' - 'present in document %(document)s.' - ) % { - 'metadata_type': metadata_type, - 'document': instance - } - ) + if created: + messages.success( + self.request, + _( + 'Metadata type: %(metadata_type)s ' + 'successfully added to document %(document)s.' + ) % { + 'metadata_type': metadata_type, + 'document': instance + } + ) + else: + messages.warning( + self.request, _( + 'Metadata type: %(metadata_type)s already ' + 'present in document %(document)s.' + ) % { + 'metadata_type': metadata_type, + 'document': instance + } + ) class DocumentMetadataEditView(MultipleObjectFormActionView): diff --git a/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.mo index de93f15b39..746c3a5003 100644 Binary files a/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.po index c92fce1501..2e837f61b5 100644 --- a/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/ar/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.mo index 0bab54a440..2db5210aa5 100644 Binary files a/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.po index 07bec77092..11afbe7dff 100644 --- a/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/bg/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.mo index 62051bec48..d2ed956a3e 100644 Binary files a/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.po index ac177fba8f..47940e7b61 100644 --- a/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/bs_BA/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.mo index 51a000c16a..cc5a688b7e 100644 Binary files a/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.po index 234d769840..8ed63d1b7b 100644 --- a/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/da/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.mo index 6cff24c793..b3201fa291 100644 Binary files a/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.po index b087316afb..af4355dfce 100644 --- a/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/de_DE/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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 , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:08+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:9 settings.py:7 @@ -24,8 +25,12 @@ msgstr "Spiegelung" #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Zeit in Sekunden, die ein Pfad zu einem Dokument zwischengespeichert werden soll." +msgstr "" +"Zeit in Sekunden, die ein Pfad zu einem Dokument zwischengespeichert werden " +"soll." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Zeit in Sekunden, die ein Pfad zu einem zu einem Indexknotenpunkt zwischengespeichert werden soll." +msgstr "" +"Zeit in Sekunden, die ein Pfad zu einem zu einem Indexknotenpunkt " +"zwischengespeichert werden soll." diff --git a/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.mo index 6bcd9f629a..a67c07abb0 100644 Binary files a/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po index 4de25c13e7..0520580f2c 100644 --- a/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.mo index aeaabc0089..c2dd1cd363 100644 Binary files a/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.po index bb26ad0ebc..9d6264842a 100644 --- a/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/es/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:21+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:7 @@ -24,8 +25,12 @@ msgstr "Reflejado" #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Tiempo en segundos durante los cuales se almacenará en caché la ruta de búsqueda de acceso a un documento." +msgstr "" +"Tiempo en segundos durante los cuales se almacenará en caché la ruta de " +"búsqueda de acceso a un documento." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Tiempo en segundos durante los cuales se almacenará en caché la ruta de búsqueda de acceso a un nodo de índice." +msgstr "" +"Tiempo en segundos durante los cuales se almacenará en caché la ruta de " +"búsqueda de acceso a un nodo de índice." diff --git a/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.mo index 3b64a3b977..73028f60ac 100644 Binary files a/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.po index cca30de7cb..b03825e79d 100644 --- a/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/fa/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.mo index 973c969c2d..9f306eb8f5 100644 Binary files a/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.po index 0d80bc74a1..5f11e6df72 100644 --- a/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/fr/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Thierry Schott , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:08+0000\n" "Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:9 settings.py:7 @@ -24,8 +25,10 @@ msgstr "Duplication" #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Temps en secondes de rétention en cache du chemin d'accès à un document." +msgstr "" +"Temps en secondes de rétention en cache du chemin d'accès à un document." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Temps en seconde de rétention en cache du chemin d'accès à un noeud d'index." +msgstr "" +"Temps en seconde de rétention en cache du chemin d'accès à un noeud d'index." diff --git a/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.mo index 4e73198520..6b92c7868b 100644 Binary files a/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.po index 12c85511a0..06819f51a4 100644 --- a/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/hu/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.mo index 479a91534c..d275d77dca 100644 Binary files a/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.po index d2676a954c..135304099f 100644 --- a/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/id/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.mo index 5b9e2fce33..98a00ed17b 100644 Binary files a/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.po index 0d44e378d7..34d1514602 100644 --- a/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/it/LC_MESSAGES/django.po @@ -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: # Giovanni Tricarico , 2016 # Marco Camplese , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-09-24 08:52+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:9 settings.py:7 @@ -25,8 +26,11 @@ msgstr "Mirroring " #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Tempo in secondi per mettere in cache il percorso di ricerca del documento." +msgstr "" +"Tempo in secondi per mettere in cache il percorso di ricerca del documento." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Tempo in secondi per mettere in cache il percorso di ricerca del nodo indice.." +msgstr "" +"Tempo in secondi per mettere in cache il percorso di ricerca del nodo " +"indice.." diff --git a/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.mo index 9cb6cef19b..d47946894d 100644 Binary files a/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.po index efb5a083f6..82688a5923 100644 --- a/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/nl_NL/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-09 16:40+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.mo index 1d962cf8cf..92732f093a 100644 Binary files a/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.po index 050c8c3a01..414f42b51a 100644 --- a/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/pl/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.mo index d6cb0d7f17..99a6cf891a 100644 Binary files a/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.po index 5102d6b7c7..e7f04a4cf9 100644 --- a/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/pt/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.mo index 4aac618884..b3c3507b97 100644 Binary files a/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.po index 8996463034..c44a192ca1 100644 --- a/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/pt_BR/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-04 19:01+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:9 settings.py:7 @@ -24,8 +25,12 @@ msgstr "Espelhamento" #: settings.py:11 msgid "Time in seconds to cache the path lookup to a document." -msgstr "Tempo em segundos durante o qual se armazenará no cache a rota de busca de acesso a um documento." +msgstr "" +"Tempo em segundos durante o qual se armazenará no cache a rota de busca de " +"acesso a um documento." #: settings.py:15 msgid "Time in seconds to cache the path lookup to an index node." -msgstr "Tempo em segundos durante o qual se armazenará em cache a rota de busca de acesso a um nó de índice." +msgstr "" +"Tempo em segundos durante o qual se armazenará em cache a rota de busca de " +"acesso a um nó de índice." diff --git a/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.mo index 88d7137d3d..6719fad5f5 100644 Binary files a/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.po index e90bbb5f3c..e26cfb9cfc 100644 --- a/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/ro_RO/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.mo index 50188f62fa..f67be7a88f 100644 Binary files a/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.po index eac7a5d1cd..b6a84828b3 100644 --- a/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/ru/LC_MESSAGES/django.po @@ -1,22 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-07-19 20:05+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.mo index eb496c2c01..586b5a8607 100644 Binary files a/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.po index 393a1b22b8..d975c9f5ef 100644 --- a/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/sl_SI/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:9 settings.py:7 msgid "Mirroring" diff --git a/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.mo index 7acdd78d69..f720dc92b2 100644 Binary files a/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.po index 8378a062d1..4945a87694 100644 --- a/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/vi_VN/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:9 settings.py:7 diff --git a/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.mo index 0b05489337..f717381a5b 100644 Binary files a/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.po index 90012aad6d..1898fc882d 100644 --- a/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/mirroring/locale/zh_CN/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:11+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:9 settings.py:7 diff --git a/mayan/apps/mirroring/management/commands/mountindex.py b/mayan/apps/mirroring/management/commands/mountindex.py index 7244716dae..2a57b9b948 100644 --- a/mayan/apps/mirroring/management/commands/mountindex.py +++ b/mayan/apps/mirroring/management/commands/mountindex.py @@ -11,6 +11,7 @@ from fuse import FUSE, FuseOSError, Operations from django.core import management from django.core.cache import caches from django.core.exceptions import MultipleObjectsReturned +from django.core.management.base import CommandError from django.db.models import Count from document_indexing.models import Index, IndexInstanceNode @@ -214,15 +215,35 @@ class Command(management.BaseCommand): def add_arguments(self, parser): parser.add_argument('slug', nargs='?', help='Index slug') - parser.add_argument('mount_point', nargs='?', help='Mount point') + parser.add_argument( + '--allow-other', action='store_true', dest='allow_other', + default=False, + help='All users (including root) can access the index files.' + ) + parser.add_argument( + '--allow-root', action='store_true', dest='allow_root', + default=False, + help='Mount access is limited to the user mounting the index and ' + 'root. This option and --allow-other are mutually exclusive.' + ) def handle(self, *args, **options): if not options.get('slug') or not options.get('mount_point'): self.stderr.write(self.style.ERROR('Incorrect number of arguments')) exit(1) - FUSE( - operations=IndexFS(index_slug=options['slug']), - mountpoint=options['mount_point'], nothreads=True, foreground=True - ) + try: + FUSE( + operations=IndexFS(index_slug=options['slug']), + mountpoint=options['mount_point'], nothreads=True, foreground=True, + allow_other=options['allow_other'], + allow_root=options['allow_root'] + ) + except RuntimeError as exception: + if options['allow_other'] or options['allow_root']: + raise CommandError( + 'Make sure \'user_allow_other\' is set in /etc/fuse.conf' + ) + else: + raise diff --git a/mayan/apps/motd/api_views.py b/mayan/apps/motd/api_views.py new file mode 100644 index 0000000000..4799ab357d --- /dev/null +++ b/mayan/apps/motd/api_views.py @@ -0,0 +1,76 @@ +from __future__ import absolute_import, unicode_literals + +from rest_framework import generics + +from rest_api.filters import MayanObjectPermissionsFilter +from rest_api.permissions import MayanPermission + +from .models import Message +from .permissions import ( + permission_message_create, permission_message_delete, + permission_message_edit, permission_message_view +) +from .serializers import MessageSerializer + + +class APIMessageListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_message_view,)} + mayan_view_permissions = {'POST': (permission_message_create,)} + permission_classes = (MayanPermission,) + queryset = Message.objects.all() + serializer_class = MessageSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the messages. + """ + + return super(APIMessageListView, self).get(*args, **kwargs) + + def post(self, *args, **kwargs): + """ + Create a new message. + """ + + return super(APIMessageListView, self).post(*args, **kwargs) + + +class APIMessageView(generics.RetrieveUpdateDestroyAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = { + 'DELETE': (permission_message_delete,), + 'GET': (permission_message_view,), + 'PATCH': (permission_message_edit,), + 'PUT': (permission_message_edit,) + } + queryset = Message.objects.all() + serializer_class = MessageSerializer + + def delete(self, *args, **kwargs): + """ + Delete the selected message. + """ + + return super(APIMessageView, self).delete(*args, **kwargs) + + def get(self, *args, **kwargs): + """ + Return the details of the selected message. + """ + + return super(APIMessageView, self).get(*args, **kwargs) + + def patch(self, *args, **kwargs): + """ + Edit the selected message. + """ + + return super(APIMessageView, self).patch(*args, **kwargs) + + def put(self, *args, **kwargs): + """ + Edit the selected message. + """ + + return super(APIMessageView, self).put(*args, **kwargs) diff --git a/mayan/apps/motd/apps.py b/mayan/apps/motd/apps.py index 0258d066da..af38dfa4c0 100644 --- a/mayan/apps/motd/apps.py +++ b/mayan/apps/motd/apps.py @@ -6,6 +6,7 @@ from django.utils.translation import ugettext_lazy as _ from common import MayanAppConfig, menu_object, menu_secondary, menu_setup from navigation import SourceColumn +from rest_api.classes import APIEndPoint from .links import ( link_message_create, link_message_delete, link_message_edit, @@ -16,13 +17,15 @@ logger = logging.getLogger(__name__) class MOTDApp(MayanAppConfig): + has_tests = True name = 'motd' - test = True verbose_name = _('Message of the day') def ready(self): super(MOTDApp, self).ready() + APIEndPoint(app=self, version_string='1') + Message = self.get_model('Message') SourceColumn( diff --git a/mayan/apps/motd/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/ar/LC_MESSAGES/django.mo index 56d5a2babf..56f5c1d6ef 100644 Binary files a/mayan/apps/motd/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/ar/LC_MESSAGES/django.po b/mayan/apps/motd/locale/ar/LC_MESSAGES/django.po index 324015cb62..6a520ab71b 100644 --- a/mayan/apps/motd/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/ar/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "لا شيء" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/bg/LC_MESSAGES/django.mo index 94f1a9c706..f05b1c7f97 100644 Binary files a/mayan/apps/motd/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/bg/LC_MESSAGES/django.po b/mayan/apps/motd/locale/bg/LC_MESSAGES/django.po index b1ff9522f6..1f2c58cbd1 100644 --- a/mayan/apps/motd/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/bg/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Няма" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.mo index da5ac9527f..9f7e3245d4 100644 Binary files a/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.po index 05d1f0a9c5..349aabde10 100644 --- a/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/bs_BA/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nijedno" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/da/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/da/LC_MESSAGES/django.mo index 84dbc72b69..66641a2dcc 100644 Binary files a/mayan/apps/motd/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/da/LC_MESSAGES/django.po b/mayan/apps/motd/locale/da/LC_MESSAGES/django.po index da83d65c8a..e73f4ccf76 100644 --- a/mayan/apps/motd/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/da/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Ingen" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.mo index 140ebef966..163b9d086a 100644 Binary files a/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.po index 39006d95d2..fc036376ca 100644 --- a/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Berny , 2016 # Tobias Paepke , 2016 @@ -9,33 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-05-20 21:31+0000\n" "Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Nachricht des Tages" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Aktiviert" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Startdatum und Uhrzeit" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Keine" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Enddatum und Uhrzeit" diff --git a/mayan/apps/motd/locale/en/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/en/LC_MESSAGES/django.mo index 6bcd9f629a..a67c07abb0 100644 Binary files a/mayan/apps/motd/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/en/LC_MESSAGES/django.po b/mayan/apps/motd/locale/en/LC_MESSAGES/django.po index 0db8de404c..2ce0aff2dd 100644 --- a/mayan/apps/motd/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,23 +17,23 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/es/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/es/LC_MESSAGES/django.mo index 7efba47068..4433174d65 100644 Binary files a/mayan/apps/motd/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/es/LC_MESSAGES/django.po b/mayan/apps/motd/locale/es/LC_MESSAGES/django.po index 34c363de35..03c0011320 100644 --- a/mayan/apps/motd/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/es/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 21:13+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Mensaje del día " -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Habilitado" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Fecha y hora de comienzo" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Ninguno" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Fecha y hora cancelación" @@ -68,7 +69,8 @@ msgstr "Mensaje" #: models.py:23 msgid "Date and time after which this message will be displayed." -msgstr "Fecha y hora después de la cual este mensaje comenzara a ser desplegado." +msgstr "" +"Fecha y hora después de la cual este mensaje comenzara a ser desplegado." #: models.py:28 msgid "Date and time until when this message is to be displayed." diff --git a/mayan/apps/motd/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/fa/LC_MESSAGES/django.mo index 21beb0f96b..d8f25c3e4e 100644 Binary files a/mayan/apps/motd/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/fa/LC_MESSAGES/django.po b/mayan/apps/motd/locale/fa/LC_MESSAGES/django.po index c0c7967e4b..3d84bc7819 100644 --- a/mayan/apps/motd/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/fa/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "فعال شده" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "هیچکدام." -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/fr/LC_MESSAGES/django.mo index 19af43041f..b10a0f8c31 100644 Binary files a/mayan/apps/motd/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/fr/LC_MESSAGES/django.po b/mayan/apps/motd/locale/fr/LC_MESSAGES/django.po index ebf659b44c..0b4e0b550e 100644 --- a/mayan/apps/motd/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/fr/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-04-26 07:54+0000\n" "Last-Translator: Baptiste GAILLET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Message du jour" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Activé" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Date de début" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Aucun" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Date de fin" diff --git a/mayan/apps/motd/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/hu/LC_MESSAGES/django.mo index 1806831aae..2360cfb219 100644 Binary files a/mayan/apps/motd/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/hu/LC_MESSAGES/django.po b/mayan/apps/motd/locale/hu/LC_MESSAGES/django.po index e39f06cc30..91956ae3de 100644 --- a/mayan/apps/motd/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/hu/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Semmi" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/id/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/id/LC_MESSAGES/django.mo index e55867630e..c237220dcb 100644 Binary files a/mayan/apps/motd/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/id/LC_MESSAGES/django.po b/mayan/apps/motd/locale/id/LC_MESSAGES/django.po index d86531e352..ca54c1cbb1 100644 --- a/mayan/apps/motd/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/id/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/it/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/it/LC_MESSAGES/django.mo index a8a530aaa4..3c9b36b898 100644 Binary files a/mayan/apps/motd/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/it/LC_MESSAGES/django.po b/mayan/apps/motd/locale/it/LC_MESSAGES/django.po index c94b91b5a2..cf323be689 100644 --- a/mayan/apps/motd/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/it/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Marco Camplese , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-09-24 10:04+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Messaggio del giorno" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Abilitato" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Data e ora inizio" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nessuna " -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Data e ora fine" diff --git a/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.mo index 12c7950e30..a97bae1f01 100644 Binary files a/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.po index afed4b1605..a2a48d071d 100644 --- a/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/nl_NL/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-01 09:04+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Bericht van de dag" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Ingeschakeld" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Geen" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/pl/LC_MESSAGES/django.mo index 37cd5b08d1..5e3c880c01 100644 Binary files a/mayan/apps/motd/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/pl/LC_MESSAGES/django.po b/mayan/apps/motd/locale/pl/LC_MESSAGES/django.po index b549ae513d..bf857417a1 100644 --- a/mayan/apps/motd/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/pl/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Włączone" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Brak" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/pt/LC_MESSAGES/django.mo index dc6cd83cf8..017cf10283 100644 Binary files a/mayan/apps/motd/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/pt/LC_MESSAGES/django.po b/mayan/apps/motd/locale/pt/LC_MESSAGES/django.po index 5b789a953d..e2e3279b8f 100644 --- a/mayan/apps/motd/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/pt/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nenhum" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.mo index dcce68a211..9abbb0210f 100644 Binary files a/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.po index 3312d49b26..aae326d49e 100644 --- a/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/pt_BR/LC_MESSAGES/django.po @@ -1,40 +1,41 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-17 23:07+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Mensagem do dia" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "habilitado" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Data inicial" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nenhum" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Data final" diff --git a/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.mo index 8014d5f271..ab6d397328 100644 Binary files a/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.po index 829432e60a..675dceee14 100644 --- a/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/ro_RO/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Nici unul" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/ru/LC_MESSAGES/django.mo index 0a5c5af43c..dd481931d5 100644 Binary files a/mayan/apps/motd/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/ru/LC_MESSAGES/django.po b/mayan/apps/motd/locale/ru/LC_MESSAGES/django.po index 508e21c03d..be16c6c10e 100644 --- a/mayan/apps/motd/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/ru/LC_MESSAGES/django.po @@ -1,40 +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: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-11-02 04:15+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "Объявление дня" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "Доступно" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "Дата и время начала" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Ни один" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "Дата и время окончания" diff --git a/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.mo index b135516d4e..5afc010959 100644 Binary files a/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.po index 6d986669c1..1aab2b3a6f 100644 --- a/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/sl_SI/LC_MESSAGES/django.po @@ -1,39 +1,41 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "Brez" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.mo index 1130a9a565..02802112ca 100644 Binary files a/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.po index e1fd1f8136..77606bd16d 100644 --- a/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/vi_VN/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "None" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.mo index 04f6b653de..7f3bffeabe 100644 Binary files a/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.po index 82766ee890..ec97a941ce 100644 --- a/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/motd/locale/zh_CN/LC_MESSAGES/django.po @@ -1,39 +1,40 @@ # 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-11-23 02:55-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2016-03-21 20:55+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:21 links.py:25 permissions.py:7 +#: apps.py:22 links.py:25 permissions.py:7 msgid "Message of the day" msgstr "" -#: apps.py:29 models.py:20 +#: apps.py:32 models.py:20 msgid "Enabled" msgstr "" -#: apps.py:32 models.py:24 +#: apps.py:35 models.py:24 msgid "Start date time" msgstr "" -#: apps.py:33 apps.py:37 +#: apps.py:36 apps.py:40 msgid "None" msgstr "无" -#: apps.py:36 models.py:29 +#: apps.py:39 models.py:29 msgid "End date time" msgstr "" diff --git a/mayan/apps/motd/serializers.py b/mayan/apps/motd/serializers.py new file mode 100644 index 0000000000..1637ac91b6 --- /dev/null +++ b/mayan/apps/motd/serializers.py @@ -0,0 +1,17 @@ +from __future__ import absolute_import, unicode_literals + +from rest_framework import serializers + +from .models import Message + + +class MessageSerializer(serializers.HyperlinkedModelSerializer): + class Meta: + extra_kwargs = { + 'url': {'view_name': 'rest_api:message-detail'}, + } + fields = ( + 'end_datetime', 'enabled', 'label', 'message', 'start_datetime', + 'id', 'url' + ) + model = Message diff --git a/mayan/apps/motd/tests/literals.py b/mayan/apps/motd/tests/literals.py new file mode 100644 index 0000000000..431ef052bb --- /dev/null +++ b/mayan/apps/motd/tests/literals.py @@ -0,0 +1,6 @@ +from __future__ import unicode_literals + +TEST_LABEL = 'test label' +TEST_LABEL_EDITED = 'test label edited' +TEST_MESSAGE = 'test message' +TEST_MESSAGE_EDITED = 'test message edited' diff --git a/mayan/apps/motd/tests/test_api.py b/mayan/apps/motd/tests/test_api.py new file mode 100644 index 0000000000..53b6ba7c30 --- /dev/null +++ b/mayan/apps/motd/tests/test_api.py @@ -0,0 +1,104 @@ +from __future__ import unicode_literals + +from django.contrib.auth import get_user_model +from django.core.urlresolvers import reverse +from django.test import override_settings + +from rest_api.tests import BaseAPITestCase +from user_management.tests.literals import ( + TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME +) + +from ..models import Message + +from .literals import ( + TEST_LABEL, TEST_LABEL_EDITED, TEST_MESSAGE, TEST_MESSAGE_EDITED +) + + +@override_settings(OCR_AUTO_OCR=False) +class MOTDAPITestCase(BaseAPITestCase): + def setUp(self): + super(MOTDAPITestCase, self).setUp() + + self.admin_user = get_user_model().objects.create_superuser( + username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, + password=TEST_ADMIN_PASSWORD + ) + + self.client.login( + username=TEST_ADMIN_USERNAME, password=TEST_ADMIN_PASSWORD + ) + + def _create_message(self): + return Message.objects.create( + label=TEST_LABEL, message=TEST_MESSAGE + ) + + def test_message_create_view(self): + response = self.client.post( + reverse('rest_api:message-list'), { + 'label': TEST_LABEL, 'message': TEST_MESSAGE + } + ) + + message = Message.objects.first() + self.assertEqual(response.data['id'], message.pk) + self.assertEqual(response.data['label'], TEST_LABEL) + self.assertEqual(response.data['message'], TEST_MESSAGE) + + self.assertEqual(Message.objects.count(), 1) + self.assertEqual(message.label, TEST_LABEL) + self.assertEqual(message.message, TEST_MESSAGE) + + def test_message_delete_view(self): + message = self._create_message() + + self.client.delete( + reverse('rest_api:message-detail', args=(message.pk,)) + ) + + self.assertEqual(Message.objects.count(), 0) + + def test_message_detail_view(self): + message = self._create_message() + + response = self.client.get( + reverse('rest_api:message-detail', args=(message.pk,)) + ) + + self.assertEqual( + response.data['label'], TEST_LABEL + ) + + def test_message_patch_view(self): + message = self._create_message() + + self.client.patch( + reverse('rest_api:message-detail', args=(message.pk,)), + { + 'label': TEST_LABEL_EDITED, + 'message': TEST_MESSAGE_EDITED + } + ) + + message.refresh_from_db() + + self.assertEqual(message.label, TEST_LABEL_EDITED) + self.assertEqual(message.message, TEST_MESSAGE_EDITED) + + def test_message_put_view(self): + message = self._create_message() + + self.client.put( + reverse('rest_api:message-detail', args=(message.pk,)), + { + 'label': TEST_LABEL_EDITED, + 'message': TEST_MESSAGE_EDITED + } + ) + + message.refresh_from_db() + + self.assertEqual(message.label, TEST_LABEL_EDITED) + self.assertEqual(message.message, TEST_MESSAGE_EDITED) diff --git a/mayan/apps/motd/tests/test_models.py b/mayan/apps/motd/tests/test_models.py index bb250982fa..457cacedac 100644 --- a/mayan/apps/motd/tests/test_models.py +++ b/mayan/apps/motd/tests/test_models.py @@ -7,8 +7,7 @@ from django.utils import timezone from ..models import Message -TEST_LABEL = 'test label' -TEST_MESSAGE = 'test message' +from .literals import TEST_LABEL, TEST_MESSAGE class MOTDTestCase(TestCase): diff --git a/mayan/apps/motd/urls.py b/mayan/apps/motd/urls.py index 2bec1ae108..7ee0ff1740 100644 --- a/mayan/apps/motd/urls.py +++ b/mayan/apps/motd/urls.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url +from .api_views import APIMessageListView, APIMessageView from .views import ( MessageCreateView, MessageDeleteView, MessageEditView, MessageListView ) @@ -17,3 +18,11 @@ urlpatterns = [ name='message_delete' ), ] + +api_urls = [ + url(r'^messages/$', APIMessageListView.as_view(), name='message-list'), + url( + r'^messages/(?P[0-9]+)/$', APIMessageView.as_view(), + name='message-detail' + ), +] diff --git a/mayan/apps/navigation/apps.py b/mayan/apps/navigation/apps.py index e529d10406..c7289ffb0b 100644 --- a/mayan/apps/navigation/apps.py +++ b/mayan/apps/navigation/apps.py @@ -6,6 +6,6 @@ from common.apps import MayanAppConfig class NavigationApp(MayanAppConfig): + has_tests = True name = 'navigation' - test = True verbose_name = _('Navigation') diff --git a/mayan/apps/navigation/classes.py b/mayan/apps/navigation/classes.py index 6c065ca5f2..534854ca5d 100644 --- a/mayan/apps/navigation/classes.py +++ b/mayan/apps/navigation/classes.py @@ -11,7 +11,7 @@ from django.core.exceptions import PermissionDenied from django.core.urlresolvers import resolve, reverse from django.template import VariableDoesNotExist, Variable from django.template.defaulttags import URLNode -from django.utils.encoding import smart_str, smart_unicode +from django.utils.encoding import force_text, smart_str, smart_unicode from django.utils.http import urlencode, urlquote from common.utils import return_attrib @@ -113,9 +113,8 @@ class Menu(object): logger.debug( 'resolved_navigation_object_list: %s', - resolved_navigation_object_list + force_text(resolved_navigation_object_list) ) - return resolved_navigation_object_list def resolve(self, context, source=None): @@ -273,7 +272,7 @@ class Link(object): except VariableDoesNotExist: pass - # If this link has a required permission check that the user have it + # If this link has a required permission check that the user has it # too if self.permissions: if resolved_object: diff --git a/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.mo index d83c33c4ca..d79aaa2d29 100644 Binary files a/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.po index 90e3c66bb5..97f8b65a5b 100644 --- a/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/ar/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" diff --git a/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.mo index e6716564af..d323281d60 100644 Binary files a/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.po index 4ed1f660e6..5489407d5b 100644 --- a/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/bg/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.mo index c9ab428f67..f03f1e17ad 100644 Binary files a/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.po index eca126c1e4..5deed43e66 100644 --- a/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/bs_BA/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" diff --git a/mayan/apps/navigation/locale/da/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/da/LC_MESSAGES/django.mo index 43d06ec1e4..a52bbfef50 100644 Binary files a/mayan/apps/navigation/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/da/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/da/LC_MESSAGES/django.po index 492ce519af..e859d30667 100644 --- a/mayan/apps/navigation/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/da/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" diff --git a/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.mo index 18cd4f8d85..4726008f6a 100644 Binary files a/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.po index c8499968d3..c2cee40d8e 100644 --- a/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/de_DE/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" diff --git a/mayan/apps/navigation/locale/en/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/en/LC_MESSAGES/django.mo index 8dde99e136..18edf6e20f 100644 Binary files a/mayan/apps/navigation/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/en/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/en/LC_MESSAGES/django.po index 54e1532594..697787aa24 100644 --- a/mayan/apps/navigation/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-12-12 06:06+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" diff --git a/mayan/apps/navigation/locale/es/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/es/LC_MESSAGES/django.mo index cd474a3cf5..4616773577 100644 Binary files a/mayan/apps/navigation/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/es/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/es/LC_MESSAGES/django.po index 816e9c1c62..1a02b67c99 100644 --- a/mayan/apps/navigation/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/es/LC_MESSAGES/django.po @@ -11,7 +11,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.mo index db7c629693..02e2318cda 100644 Binary files a/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.po index 023065c1d0..ff890f5021 100644 --- a/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/fa/LC_MESSAGES/django.po @@ -9,7 +9,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.mo index 8a1026afce..3f9dd40452 100644 Binary files a/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.po index 66797f1fd8..d5ef2a5489 100644 --- a/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/fr/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" diff --git a/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.mo index 7c684f452f..e541527282 100644 Binary files a/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.po index 4c26fa24b9..4ad0c318d8 100644 --- a/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/hu/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/id/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/id/LC_MESSAGES/django.mo index 1cda33dd88..6ba75bf706 100644 Binary files a/mayan/apps/navigation/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/id/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/id/LC_MESSAGES/django.po index 701886ab8a..5bea58f84e 100644 --- a/mayan/apps/navigation/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/id/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/it/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/it/LC_MESSAGES/django.mo index af4ed27cf2..17ed12d408 100644 Binary files a/mayan/apps/navigation/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/it/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/it/LC_MESSAGES/django.po index cbc196ffd4..970f1c9d52 100644 --- a/mayan/apps/navigation/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/it/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/nl_NL/LC_MESSAGES/django.mo index cfe3cc3136..976a83901c 100644 Binary files a/mayan/apps/navigation/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/nl_NL/LC_MESSAGES/django.po index 9de0e5af88..15dec1da80 100644 --- a/mayan/apps/navigation/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/nl_NL/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" diff --git a/mayan/apps/navigation/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/pl/LC_MESSAGES/django.mo index eb6c2bd3fe..efd296709f 100644 Binary files a/mayan/apps/navigation/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/pl/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/pl/LC_MESSAGES/django.po index 2c703eb33b..fcc59ee276 100644 --- a/mayan/apps/navigation/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/pl/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" diff --git a/mayan/apps/navigation/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/pt/LC_MESSAGES/django.mo index c4533b7293..03494aa5f4 100644 Binary files a/mayan/apps/navigation/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/pt/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/pt/LC_MESSAGES/django.po index 2f743c7cba..42943e7993 100644 --- a/mayan/apps/navigation/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/pt/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.mo index a53203c2e2..2bab6839f7 100644 Binary files a/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.po index 4287d93437..9b34522073 100644 --- a/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/pt_BR/LC_MESSAGES/django.po @@ -10,7 +10,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" diff --git a/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.mo index c9c921f230..07e93c8c3d 100644 Binary files a/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.po index 63dac74d94..34abfe78cd 100644 --- a/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/ro_RO/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" diff --git a/mayan/apps/navigation/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/ru/LC_MESSAGES/django.mo index 17ccc21ae0..13d733132a 100644 Binary files a/mayan/apps/navigation/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/ru/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/ru/LC_MESSAGES/django.po index ff3317c211..b83ed20fb6 100644 --- a/mayan/apps/navigation/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/ru/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.mo index cc2463d6d2..69ee6eb7cd 100644 Binary files a/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.po index fa7649e64e..d04d9d5e5c 100644 --- a/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/sl_SI/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" diff --git a/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.mo index 0dc6a7dcbc..90e1f1faa2 100644 Binary files a/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.po index 121a78f3f1..a97ee3b87b 100644 --- a/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/vi_VN/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" diff --git a/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.mo index 36820d5e92..d21e346c35 100644 Binary files a/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.po index 7d201b248b..56dd6c393b 100644 --- a/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/navigation/locale/zh_CN/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2015-09-24 05:15+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" diff --git a/mayan/apps/ocr/apps.py b/mayan/apps/ocr/apps.py index 97aef9d214..e0e7042552 100644 --- a/mayan/apps/ocr/apps.py +++ b/mayan/apps/ocr/apps.py @@ -48,8 +48,8 @@ def document_version_ocr_submit(self): class OCRApp(MayanAppConfig): + has_tests = True name = 'ocr' - test = True verbose_name = _('OCR') def ready(self): diff --git a/mayan/apps/ocr/backends/pyocr.py b/mayan/apps/ocr/backends/pyocr.py index 78e5ea5a9c..baffdf7d0c 100644 --- a/mayan/apps/ocr/backends/pyocr.py +++ b/mayan/apps/ocr/backends/pyocr.py @@ -16,18 +16,19 @@ class PyOCR(OCRBackendBase): def __init__(self, *args, **kwargs): super(PyOCR, self).__init__(*args, **kwargs) + self.languages = () + tools = pyocr.get_available_tools() if len(tools) == 0: raise OCRError('No OCR tool found') + self.tool = tools[0] + # The tools are returned in the recommended order of usage for tool in tools: if tool.__name__ == 'pyocr.libtesseract': self.tool = tool - if not self.tool: - self.tool = tools[0] - logger.debug('Will use tool \'%s\'', self.tool.get_name()) self.languages = self.tool.get_available_languages() diff --git a/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.mo index d33d02381d..f5e31c9ce0 100644 Binary files a/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.po index b0206f7384..98f7b5e564 100644 --- a/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,49 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext version" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "not found" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "error getting version" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "tesseract version" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +48,6 @@ msgid "Contents" msgstr "المحتويات" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +63,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +112,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +137,72 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "File path to poppler's pdftotext program used to extract text from PDF files." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"File path to poppler's pdftotext program used to extract text from PDF files." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -394,11 +379,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -455,9 +440,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.mo index 4264c34634..7ccefa1970 100644 Binary files a/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.po index 8271504913..7243ae0bb9 100644 --- a/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/bg/LC_MESSAGES/django.po @@ -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: # Pavlin Koldamov , 2012 @@ -9,49 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "не е намерен" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "tesseract версия" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +47,6 @@ msgid "Contents" msgstr "Съдържание" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +62,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +111,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +136,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -386,11 +369,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -447,9 +430,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.mo index 21a88cf9c2..fe8549584b 100644 Binary files a/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.po index 4e6ec93fad..8dcbf01b27 100644 --- a/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,49 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "verzija pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "nije pronađeno" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "greška pribavljanja verzije" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "verzija tesseract-a" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +48,6 @@ msgid "Contents" msgstr "Sadržaj" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +63,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +112,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +137,72 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Staza do popplerovog programa pdftotext za vađenje teksta iz PDF datoteka." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Staza do popplerovog programa pdftotext za vađenje teksta iz PDF datoteka." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +373,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +434,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/da/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/da/LC_MESSAGES/django.mo index a921460396..1c0b8cf67f 100644 Binary files a/mayan/apps/ocr/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/da/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/da/LC_MESSAGES/django.po index b133f3f72f..59d169290f 100644 --- a/mayan/apps/ocr/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/da/LC_MESSAGES/django.po @@ -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: # Mads L. Nielsen , 2013 @@ -10,49 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext version" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "Ej fundet" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "Fejl ved versionssøgning" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Tesseract version" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -63,7 +48,6 @@ msgid "Contents" msgstr "Indhold" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -79,7 +63,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -128,16 +112,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -154,71 +137,73 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Fil sti til poppler's pdftotext program, brugt til at identificere tekst fra PDF filer." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Fil sti til poppler's pdftotext program, brugt til at identificere tekst fra " +"PDF filer." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -387,11 +372,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -448,9 +433,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.mo index e02f73938b..4ce9e41c8a 100644 Binary files a/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.po index 2ebf6dad14..4a519faeda 100644 --- a/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Berny , 2015-2016 @@ -13,49 +13,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-05-20 21:32+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR-Schrifterkennung" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Dokument" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Hinzugefügt" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Ergebnis" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext Version" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "nicht gefunden" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "Fehler beim Auslesen der Version" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Tesseract Version" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -66,7 +51,6 @@ msgid "Contents" msgstr "Inhalte" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "In die OCR-Verarbeitung einstellen" @@ -82,7 +66,7 @@ msgstr "OCR Einrichtung" msgid "OCR documents per type" msgstr "Texterkennung pro Dokumententyp durchführen" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "OCR Fehler" @@ -131,16 +115,15 @@ msgid "Document page content" msgstr "Seiteninhalt" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Seiteninhalt" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Ausnahme bei der Verarbeitung einer Seite: %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Programm pdftotext nicht gefunden in %s" @@ -157,71 +140,79 @@ msgstr "Verarbeiteten Text des Dokuments anzeigen" msgid "Change document type OCR settings" msgstr "OCR-Einstellungen für Dokumententyp beabeiten" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Pfad zum 'tesseract'-Programm" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Pfad zum \"pdftotext\"-Programm (bereitgestellt von poppler), das benutzt wird, um Text aus PDF-Dateien zu extrahieren." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Pfad zum \"pdftotext\"-Programm (bereitgestellt von poppler), das benutzt " +"wird, um Text aus PDF-Dateien zu extrahieren." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." -msgstr "Vollständiger Pfad zum Backend, das für die OCR-Schrifterkennung verwendet werden soll." +msgstr "" +"Vollständiger Pfad zum Backend, das für die OCR-Schrifterkennung verwendet " +"werden soll." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." -msgstr "Neue Dokumententypen definieren, für die die OCR-Texterkennung automatisch durchgeführt werden soll." +msgstr "" +"Neue Dokumententypen definieren, für die die OCR-Texterkennung automatisch " +"durchgeführt werden soll." -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Dokumente in die OCR-Verarbeitung einstellen?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d Dokumente in OCR-Warteschlange eingereiht" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "\"%s\" in die OCR-Warteschlange einreihen?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Dokument %(document)s in OCR-Warteschlange eingereiht" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Ausgewählte Dokumente in die OCR-Warteschlange einreihen?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Alle Dokumente eines Typs in die OCR-Verarbeitung einstellen" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." -msgstr "%(count)d Dokumente vom Typ \"%(document_type)s\" in OCR-Warteschlange eingereiht" +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgstr "" +"%(count)d Dokumente vom Typ \"%(document_type)s\" in OCR-Warteschlange " +"eingereiht" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "OCR-Einstellungen für Dokumententyp %s bearbeiten" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Ergebnis der OCR-Texterkennung für Dokument %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -390,11 +381,11 @@ msgstr "Ergebnis der OCR-Texterkennung für Dokument %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -451,9 +442,11 @@ msgstr "Ergebnis der OCR-Texterkennung für Dokument %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/en/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/en/LC_MESSAGES/django.mo index 98fbe96d5d..b9336b9d91 100644 Binary files a/mayan/apps/ocr/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/en/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/en/LC_MESSAGES/django.po index 3fcac13e17..75b7776122 100644 --- a/mayan/apps/ocr/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-06-17 22:12+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,43 +18,25 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 #, fuzzy msgid "Document" msgstr "document" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 #, fuzzy msgid "Result" msgstr "result" -#: apps.py:160 apps.py:165 apps.py:170 -#, fuzzy -msgid "pdftotext version" -msgstr "document queues" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -#, fuzzy -msgid "tesseract version" -msgstr "document queues" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -84,7 +66,7 @@ msgstr "" msgid "OCR documents per type" msgstr "document" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 #, fuzzy msgid "OCR errors" msgstr "error" @@ -146,12 +128,12 @@ msgstr "clean up pages content" msgid "Document pages contents" msgstr "Document pages content clean up error: %s" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -168,76 +150,83 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#, fuzzy -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "File path to unpaper program." - -#: settings.py:15 +#: settings.py:12 msgid "" "File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" "File path to poppler's pdftotext program used to extract text from PDF files." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 +#: views.py:26 #, fuzzy #| msgid "Submit documents for OCR" msgid "Submit all documents for OCR?" msgstr "Submit documents for OCR" -#: views.py:40 +#: views.py:38 #, fuzzy, python-format msgid "%d documents added to the OCR queue." msgstr "Document: %(document)s was added to the OCR queue: %(queue)s." -#: views.py:48 +#: views.py:46 #, fuzzy, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "submit to OCR queue" -#: views.py:73 +#: views.py:67 #, fuzzy, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Document: %(document)s was added to the OCR queue: %(queue)s." -#: views.py:87 +#: views.py:81 #, fuzzy #| msgid "Submit documents for OCR" msgid "Submit the selected documents to the OCR queue?" msgstr "Submit documents for OCR" -#: views.py:94 +#: views.py:88 #, fuzzy #| msgid "Submit documents for OCR" msgid "Submit all documents of a type for OCR" msgstr "Submit documents for OCR" -#: views.py:109 +#: views.py:102 #, fuzzy, python-format msgid "" "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "Document: %(document)s was added to the OCR queue: %(queue)s." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, fuzzy, python-format #| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Queued documents: %d" +#, fuzzy +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#, fuzzy +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#, fuzzy +#~| msgid "File path to unpaper program." +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #, fuzzy #~ msgid "Delete" #~ msgstr "delete" diff --git a/mayan/apps/ocr/locale/es/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/es/LC_MESSAGES/django.mo index f5894d90b9..df537c4667 100644 Binary files a/mayan/apps/ocr/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/es/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/es/LC_MESSAGES/django.po index e415ac73d5..4cca888d6f 100644 --- a/mayan/apps/ocr/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/es/LC_MESSAGES/django.po @@ -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: # jmcainzos , 2014 @@ -11,49 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-23 06:34+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Documento" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Añadido" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Resultado" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "versión de pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "No encontrado" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "error al obtener la versión" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Versión de tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -64,7 +49,6 @@ msgid "Contents" msgstr "Contenido" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Enviar para OCR" @@ -80,7 +64,7 @@ msgstr "Configurar OCR" msgid "OCR documents per type" msgstr "Realizar OCR por tipo de documento" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Errores de OCR" @@ -129,16 +113,15 @@ msgid "Document page content" msgstr "Contenido de página de documento" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Contenido de página de documento" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Error interpretando página: %s " -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Si no encontró el ejecutable pdftotext en: %s" @@ -155,71 +138,73 @@ msgstr "Ver el texto transcrito de los documentos" msgid "Change document type OCR settings" msgstr "Cambiar opciones OCR por tipo de documento" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "La ruta de archivo del programa tesseract." - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Ruta de acceso al programa de poppler llamado pdftotext utilizado para extraer texto de archivos PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Ruta de acceso al programa de poppler llamado pdftotext utilizado para " +"extraer texto de archivos PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Ruta completa a la aplicación que se usará para OCR." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "Realizar OCR a nuevo tipos de documentos por defecto." -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "¿Enviar todos los documentos para OCR?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d documentos enviados para OCR." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "¿Enviar \"%s\" para OCR?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Documento: %(document)s fue añadido a la lista de espera de OCR" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "¿Enviar los documentos seleccionados para OCR?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Enviar todos los documentos de un tipo para OCR" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "%(count)d documentos de tipo \"%(document_type)s\" enviados para OCR." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Editar opciones OCR para el tipo de documento: %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Resultados del OCR para documento: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +373,11 @@ msgstr "Resultados del OCR para documento: %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +434,11 @@ msgstr "Resultados del OCR para documento: %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.mo index 30872c763c..f196eb4bdc 100644 Binary files a/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.po index e5e8354592..9fe041317c 100644 --- a/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/fa/LC_MESSAGES/django.po @@ -1,56 +1,41 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "سند" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "اضافه شده" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "جواب" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "نسخه تبدیل pdf به text" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "پیدا نشد" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "خطا در تشخیص نسخه" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "نسخه tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -61,7 +46,6 @@ msgid "Contents" msgstr "محتوا" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -77,7 +61,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "خطای OCR " @@ -126,16 +110,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -152,71 +135,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "محل فایل POPPLER جهت استخراج TEXT از PDF" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "محل اجرای نرم افزار OCR" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "سند : %(document)s جهت ocr وارد صف شد." -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -383,11 +366,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -444,9 +427,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.mo index 8da1e81a31..3b6b52a316 100644 Binary files a/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.po index fd803f0095..1ea91d8399 100644 --- a/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/fr/LC_MESSAGES/django.po @@ -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: # Bruno CAPELETO , 2016 @@ -13,49 +13,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-05-23 19:55+0000\n" -"Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR - Reconnaissance de caractères" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Document" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Ajouté" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Résultat" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "version de pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "non trouvé" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "erreur de récupération de version" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "version de tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -66,7 +51,6 @@ msgid "Contents" msgstr "Contenus" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Soumettre à l'OCR" @@ -82,7 +66,7 @@ msgstr "Paramétrage de l'OCR" msgid "OCR documents per type" msgstr "OCR documents par type" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Erreurs OCR" @@ -92,7 +76,8 @@ msgstr "Type de document" #: models.py:20 msgid "Automatically queue newly created documents for OCR." -msgstr "Ajouter automatiquement les nouveaux documents créés à la file d'attente OCR." +msgstr "" +"Ajouter automatiquement les nouveaux documents créés à la file d'attente OCR." #: models.py:24 msgid "Document type settings" @@ -131,16 +116,15 @@ msgid "Document page content" msgstr "Contenu de la page du document" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Contenu des pages du document" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Exception lors de l'analyse de la page : %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Impossible de trouver l'exécutable pdftotext dans : %s" @@ -157,71 +141,75 @@ msgstr "Afficher la transcription du texte depuis le document" msgid "Change document type OCR settings" msgstr "Modifier les paramétrages OCR du type de document" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Chemin vers l'exécutable tesseract." - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Chemin vers l'exécutable poppler pdftotext, utilisé pour extraire du texte à partir des fichiers PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Chemin vers l'exécutable poppler pdftotext, utilisé pour extraire du texte à " +"partir des fichiers PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Chemin complet pour l'interface utilisée pour faire de l'OCR" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "Traiter automatiquement les nouveaux types de document par l'OCR." -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Soumettre tous les documents à l'OCR ?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d documents ajoutés à la file d'attente de l'OCR." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "Soumettre \"%s\" à la file d'attente OCR ?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Le document : %(document)s a été ajouté à la file d'attente OCR." -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Soumettre les documents sélectionnés à la file d'attente OCR ?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Soumettre tous les documents d'un type à l'OCR" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." -msgstr "%(count)d documents de type \"%(document_type)s\" ajoutés à la file d'attente OCR" +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgstr "" +"%(count)d documents de type \"%(document_type)s\" ajoutés à la file " +"d'attente OCR" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Modifier les paramètres OCR pour le type de document : %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Résultats de l'OCR pour le document: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -390,11 +378,11 @@ msgstr "Résultats de l'OCR pour le document: %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -451,9 +439,11 @@ msgstr "Résultats de l'OCR pour le document: %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.mo index 44b43ad1b3..7f562198e5 100644 Binary files a/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.po index 26322a1865..dba92d6540 100644 --- a/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/hu/LC_MESSAGES/django.po @@ -1,56 +1,41 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -61,7 +46,6 @@ msgid "Contents" msgstr "Tartalom" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -77,7 +61,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -126,16 +110,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -152,71 +135,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -385,11 +368,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -446,9 +429,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/id/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/id/LC_MESSAGES/django.mo index c86dfd9383..5875d49129 100644 Binary files a/mayan/apps/ocr/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/id/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/id/LC_MESSAGES/django.po index 63c65aae45..590769f726 100644 --- a/mayan/apps/ocr/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/id/LC_MESSAGES/django.po @@ -1,56 +1,41 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -61,7 +46,6 @@ msgid "Contents" msgstr "Isi" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -77,7 +61,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -126,16 +110,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -152,71 +135,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -383,11 +366,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -444,9 +427,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/it/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/it/LC_MESSAGES/django.mo index 9ca1c5e76d..b0ec06486d 100644 Binary files a/mayan/apps/ocr/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/it/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/it/LC_MESSAGES/django.po index d2dec0e5e8..be2a3cd60f 100644 --- a/mayan/apps/ocr/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -10,49 +10,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-09-24 10:33+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Documento" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Aggiunto" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Risultato" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "versione pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "non trovato" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "errore recupero versione" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "versione tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -63,7 +48,6 @@ msgid "Contents" msgstr "Contenuti" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Invia per l'OCR" @@ -79,7 +63,7 @@ msgstr "Configura OCR" msgid "OCR documents per type" msgstr "OCR per tipo documento" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Errori OCR" @@ -128,16 +112,15 @@ msgid "Document page content" msgstr "Contenuto pagina del documento" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Contenuti pagine documento" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Eccezione durante il parsing della pagina: %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Non trovo l'eseguibile pdftotext in: %s" @@ -154,71 +137,76 @@ msgstr "Vedi il testo trascritto dal documento" msgid "Change document type OCR settings" msgstr "Cambia impostazioni OCR per tipo documento " -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Percorso del programma tesseract." - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Percorso del programma poppler pdftotext.usato per estrarre il testo dai file PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Percorso del programma poppler pdftotext.usato per estrarre il testo dai " +"file PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Percorso completo al backend utilizzato per eseguire l'OCR." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." -msgstr "Imposta i nuovi tipi documento per eseguire automaticamente l'OCR per default." +msgstr "" +"Imposta i nuovi tipi documento per eseguire automaticamente l'OCR per " +"default." -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Inviare tutti i documenti per l'OCR?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d documenti aggiunti alla coda OCR." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "Inviare \"%s\" alla coda OCR?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Documento: %(document)s è stato aggiunto alla coda OCR.." -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Inviare i documenti selezionati alla coda OCR?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Invia tutti i documenti del tipo alla coda OCR" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." -msgstr "%(count)d documenti di tipo \"%(document_type)s\" aggiunti alla coda OCR." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgstr "" +"%(count)d documenti di tipo \"%(document_type)s\" aggiunti alla coda OCR." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Modifica le impostazioni OCR per il tipo documento: %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Risultati OCR per il documento: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -387,11 +375,11 @@ msgstr "Risultati OCR per il documento: %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -448,9 +436,11 @@ msgstr "Risultati OCR per il documento: %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.mo index a439c27e41..787a5af03c 100644 Binary files a/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.po index 942a2120c8..7f80107bfb 100644 --- a/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/nl_NL/LC_MESSAGES/django.po @@ -1,58 +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 , 2016 +# Johan Braeken, 2017 # Lucas Weel , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-01 09:05+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Document" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Toegevoegd" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Resultaat" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "niet gevonden" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "fout bij het ophalen van de versie" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -63,7 +49,6 @@ msgid "Contents" msgstr "Inhoud" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -79,7 +64,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "OCR-fouten" @@ -105,7 +90,7 @@ msgstr "Documentversie" #: models.py:34 msgid "Date time submitted" -msgstr "" +msgstr "Indientijdstip" #: models.py:43 msgid "Document Version OCR Error" @@ -128,16 +113,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -154,71 +138,73 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Bestandspad naar 'poppler's' pdftotext programma voor het extraheren van PDF " "files." -msgstr "Bestandspad naar 'poppler's' pdftotext programma voor het extraheren van PDF files." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -387,11 +373,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -448,9 +434,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.mo index e08822a63b..42bc015d86 100644 Binary files a/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.po index 0976e91217..9d33d0836f 100644 --- a/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/pl/LC_MESSAGES/django.po @@ -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: # Annunnaky , 2015 @@ -10,49 +10,36 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-22 07:14+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Dokument" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Dodano" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Wynik" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "wersja pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "nie znaleziono" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "błąd pobierania wersji" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -63,7 +50,6 @@ msgid "Contents" msgstr "Zawartość" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Zgłoś do OCR" @@ -79,7 +65,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Błędy OCR" @@ -128,16 +114,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -154,71 +139,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Dokument : %(document)s dodany do kolejki OCR" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -242,6 +227,7 @@ msgstr "" #~ msgstr[0] "c3d93a17e46abf97b0d29fdf9a0bf689_pl_0" #~ msgstr[1] "c3d93a17e46abf97b0d29fdf9a0bf689_pl_1" #~ msgstr[2] "c3d93a17e46abf97b0d29fdf9a0bf689_pl_2" +#~ msgstr[3] "c3d93a17e46abf97b0d29fdf9a0bf689_pl_3" #~ msgid "Entry: %(entry)s was re-queued for OCR." #~ msgstr "Document: %(document)s is already queued." @@ -254,6 +240,7 @@ msgstr "" #~ msgstr[0] "3d821f1679e8cdd3b5844ba5a01a969b_pl_0" #~ msgstr[1] "3d821f1679e8cdd3b5844ba5a01a969b_pl_1" #~ msgstr[2] "3d821f1679e8cdd3b5844ba5a01a969b_pl_2" +#~ msgstr[3] "3d821f1679e8cdd3b5844ba5a01a969b_pl_3" #~ msgid "Submit the selected document for OCR?" #~ msgstr "Submit documents for OCR" @@ -389,11 +376,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -450,9 +437,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.mo index a6ee611114..5685fb3346 100644 Binary files a/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.po index f627db3c80..3003c24c2b 100644 --- a/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/pt/LC_MESSAGES/django.po @@ -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: # Emerson Soares , 2011 @@ -11,49 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "Versão de pdttotex" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "não encontrado" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Versão de tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -64,7 +49,6 @@ msgid "Contents" msgstr "Conteúdos" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -80,7 +64,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -129,16 +113,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -155,71 +138,73 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Caminho para o programa pdftotext de poppler, usado para extrair texto de ficheiros PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Caminho para o programa pdftotext de poppler, usado para extrair texto de " +"ficheiros PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +373,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +434,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.mo index dc5993cdb8..7eba09bc6d 100644 Binary files a/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.po index 7f235b14eb..99f16696aa 100644 --- a/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -11,49 +11,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-17 22:54+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "Enviar para a fila de OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Documento" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "adicionado" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "resultado" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "Versão do pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "Não encontrada" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "Erro ao receber a versão." - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Versão do tesseract" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -64,7 +49,6 @@ msgid "Contents" msgstr "Conteúdos" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Enviar para OCR" @@ -80,7 +64,7 @@ msgstr "Configurar OCR" msgid "OCR documents per type" msgstr "Realizar OCR de documentos por tipo" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Erros de OCR" @@ -129,16 +113,15 @@ msgid "Document page content" msgstr "Conteúdo de página de documento" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Conteúdo de páginas de documento" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Erro interpretando página; %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Executável pdftotext não foi encontrado em: %s" @@ -155,71 +138,73 @@ msgstr "Ver o texto transcrito dos documentos" msgid "Change document type OCR settings" msgstr "Alterar configurações de OCR para tipo de documento" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Caminho de acesso para o programa tesseract" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Caminho para o programa poppler pdftotext usado para extrair texto de arquivos PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Caminho para o programa poppler pdftotext usado para extrair texto de " +"arquivos PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Caminho completo para o servidor a ser usado para fazer OCR." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "Definir novos tipos de documentos para realizar OCR automaticamente" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Enviar todos os documentos para OCR?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d documentos enviados para OCR." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "Enviar \"%s\" para OCR?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Documento: %(document)s foi adicionado à fila de OCR." -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Enviar os documentos selecionados para OCR?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Enviar todos os documentos do tipo para OCR" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "%(count)d documentos do tipo \"%(document_type)s\" enviados para OCR." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Editar configurações de OCR para documento de tipo: %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Resultados de OCR para documento: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +373,11 @@ msgstr "Resultados de OCR para documento: %s" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +434,11 @@ msgstr "Resultados de OCR para documento: %s" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.mo index b9eb15eec2..ba02e81321 100644 Binary files a/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.po index 542997cb74..d5d2a11564 100644 --- a/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,49 +9,35 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-04-17 13:17+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext versiune" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "nu a fost găsit" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "eroare la obținerea versiune" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "Tesseract versiune" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +48,6 @@ msgid "Contents" msgstr "Conţinut" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +63,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +112,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +137,73 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Calea de fișier pentru programul pdftotext folosit pentru a extrage textul din fișiere PDF." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Calea de fișier pentru programul pdftotext folosit pentru a extrage textul " +"din fișiere PDF." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -388,11 +374,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -449,9 +435,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.mo index 49e7ec9354..53b2e22a0b 100644 Binary files a/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.po index 858dd949f5..460ed583d0 100644 --- a/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,49 +9,36 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-07-13 21:33+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "Распознавание текста" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "Документ" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "Добавлено" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "Результат" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "версия pdftotext" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "не найдено" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "Ошибка при получении версии" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "tesseract version" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +49,6 @@ msgid "Contents" msgstr "Содержание" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "Отправить на распознавание" @@ -78,7 +64,7 @@ msgstr "Настройки распознавания" msgid "OCR documents per type" msgstr "Распознавание документов с определенным типом" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "Ошибки распознавания" @@ -127,16 +113,15 @@ msgid "Document page content" msgstr "Содержимое страницы документа" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "Содержимое страниц документа" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "Ошибка при чтении страницы; %s" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "Не удаётся найти исполняемый файл pdftotext: %s" @@ -153,71 +138,77 @@ msgstr "Просмотр распознанного текста докумен msgid "Change document type OCR settings" msgstr "Изменить настройки распознавания документа" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "Путь до программы tesseract." - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." -msgstr "Путь к файлу программы pdftotext Poppler, используемой для извлечения текста из PDF файлов." +"File path to poppler's pdftotext program used to extract text from PDF files." +msgstr "" +"Путь к файлу программы pdftotext Poppler, используемой для извлечения текста " +"из PDF файлов." -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "Полный путь до бекенда, выполняющего OCR." -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." -msgstr "Задать новые типы документов для которых распознавание будет запускаться по умолчанию. " +msgstr "" +"Задать новые типы документов для которых распознавание будет запускаться по " +"умолчанию. " -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "Отправить все документы на распознавание?" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "%d документов помещено в очередь распознавания." -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "Отправить \"%s\" в очередь распознавания?" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "Документ: %(document)s добавлен в очередь распознавания." -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "Отправить выделенные документы в очедерь распознавания?" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "Отправить все документы определённого типа на распознавание" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." -msgstr "%(count)d документов с типом \"%(document_type)s\" помещены в очередь распознавания." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgstr "" +"%(count)d документов с типом \"%(document_type)s\" помещены в очередь " +"распознавания." -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "Редактировать настройки распознавания для типа документов: %s" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "Результат распозанвания для документа: %s" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -390,11 +381,11 @@ msgstr "Результат распозанвания для документа: #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -451,9 +442,11 @@ msgstr "Результат распозанвания для документа: #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.mo index e35991b20c..4d51beeefa 100644 Binary files a/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.po index 5f2edb3248..a2a67ee460 100644 --- a/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/sl_SI/LC_MESSAGES/django.po @@ -1,56 +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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-23 16:43+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "" -#: apps.py:91 +#: apps.py:86 msgid "Document" -msgstr "" +msgstr "Dokument" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -61,7 +47,6 @@ msgid "Contents" msgstr "Vsebina" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -77,7 +62,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -126,16 +111,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -152,71 +136,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -389,11 +373,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -450,9 +434,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/vi_VN/LC_MESSAGES/django.mo index 670680549f..cd751b4774 100644 Binary files a/mayan/apps/ocr/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/vi_VN/LC_MESSAGES/django.po index e112f9d5e1..b0830e1f15 100644 --- a/mayan/apps/ocr/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,49 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "OCR" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +47,6 @@ msgid "Contents" msgstr "Nội dung" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +62,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +111,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +136,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -384,11 +367,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -445,9 +428,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.mo index 922e7f38d7..8e35b30a1d 100644 Binary files a/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.po index 0f89ee503c..7f848f1fab 100644 --- a/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/ocr/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,49 +9,34 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:58 apps.py:116 apps.py:154 links.py:14 permissions.py:7 +#: apps.py:53 apps.py:111 apps.py:115 links.py:14 permissions.py:7 #: settings.py:7 msgid "OCR" msgstr "扫描输入" -#: apps.py:91 +#: apps.py:86 msgid "Document" msgstr "" -#: apps.py:95 +#: apps.py:90 msgid "Added" msgstr "" -#: apps.py:99 models.py:36 +#: apps.py:94 models.py:36 msgid "Result" msgstr "" -#: apps.py:160 apps.py:165 apps.py:170 -msgid "pdftotext version" -msgstr "pdftotext版本" - -#: apps.py:160 apps.py:178 -msgid "not found" -msgstr "未发现" - -#: apps.py:166 apps.py:184 -msgid "error getting version" -msgstr "获取版本出错" - -#: apps.py:178 apps.py:183 apps.py:188 -msgid "tesseract version" -msgstr "tesseract版本" - #: forms.py:40 #, python-format msgid "Page %(page_number)d" @@ -62,7 +47,6 @@ msgid "Contents" msgstr "内容" #: links.py:18 links.py:25 -#| msgid "Submit documents for OCR" msgid "Submit for OCR" msgstr "" @@ -78,7 +62,7 @@ msgstr "" msgid "OCR documents per type" msgstr "" -#: links.py:37 views.py:161 +#: links.py:37 views.py:154 msgid "OCR errors" msgstr "" @@ -127,16 +111,15 @@ msgid "Document page content" msgstr "" #: models.py:63 -#| msgid "Document pages content clean up error: %s" msgid "Document pages contents" msgstr "" -#: parsers.py:102 +#: parsers.py:101 #, python-format msgid "Exception parsing page; %s" msgstr "" -#: parsers.py:129 +#: parsers.py:128 #, python-format msgid "Cannot find pdftotext executable at: %s" msgstr "" @@ -153,71 +136,71 @@ msgstr "" msgid "Change document type OCR settings" msgstr "" -#: settings.py:10 -#| msgid "File path to unpaper program." -msgid "File path to tesseract program." -msgstr "" - -#: settings.py:15 +#: settings.py:12 msgid "" -"File path to poppler's pdftotext program used to extract text from PDF " -"files." +"File path to poppler's pdftotext program used to extract text from PDF files." msgstr "程序pdftotext文件路径,用以从PDF文件中提取文本。" -#: settings.py:22 +#: settings.py:19 msgid "Full path to the backend to be used to do OCR." msgstr "用于执行OCR后台应用的全路径。" -#: settings.py:27 +#: settings.py:24 msgid "Set new document types to perform OCR automatically by default." msgstr "" -#: views.py:28 -#| msgid "Submit documents for OCR" +#: views.py:26 msgid "Submit all documents for OCR?" msgstr "" -#: views.py:40 +#: views.py:38 #, python-format msgid "%d documents added to the OCR queue." msgstr "" -#: views.py:48 +#: views.py:46 #, python-format msgid "Submit \"%s\" to the OCR queue?" msgstr "" -#: views.py:73 +#: views.py:67 #, python-format msgid "Document: %(document)s was added to the OCR queue." msgstr "" -#: views.py:87 -#| msgid "Submit documents for OCR" +#: views.py:81 msgid "Submit the selected documents to the OCR queue?" msgstr "" -#: views.py:94 -#| msgid "Submit documents for OCR" +#: views.py:88 msgid "Submit all documents of a type for OCR" msgstr "" -#: views.py:109 +#: views.py:102 #, python-format -msgid "%(count)d documents of type \"%(document_type)s\" added to the OCR queue." +msgid "" +"%(count)d documents of type \"%(document_type)s\" added to the OCR queue." msgstr "" -#: views.py:132 +#: views.py:125 #, python-format msgid "Edit OCR settings for document type: %s" msgstr "" -#: views.py:154 +#: views.py:147 #, python-format -#| msgid "Queued documents: %d" msgid "OCR result for document: %s" msgstr "" +#~ msgid "pdftotext version" +#~ msgstr "document queues" + +#~ msgid "tesseract version" +#~ msgstr "document queues" + +#~ msgid "File path to tesseract program." +#~ msgstr "File path to unpaper program." + #~ msgid "Delete" #~ msgstr "delete" @@ -384,11 +367,11 @@ msgstr "" #~ msgstr "Are you sure you wish to activate document queue: %s" #~ msgid "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgstr "" -#~ "Amount of seconds to delay OCR of documents to allow for the node's storage " -#~ "replication overhead." +#~ "Amount of seconds to delay OCR of documents to allow for the node's " +#~ "storage replication overhead." #~ msgid "Maximum amount of concurrent document OCRs a node can perform." #~ msgstr "Maximum amount of concurrent document OCRs a node can perform." @@ -445,9 +428,11 @@ msgstr "" #~ msgstr "Error deleting queue transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete queue transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete queue transformation \"%(transformation)s" +#~ "\"" #~ msgid "Queue transformation created successfully" #~ msgstr "Queue transformation created successfully" diff --git a/mayan/apps/ocr/tests/test_api.py b/mayan/apps/ocr/tests/test_api.py index 1194a76748..181ff14ca1 100644 --- a/mayan/apps/ocr/tests/test_api.py +++ b/mayan/apps/ocr/tests/test_api.py @@ -6,21 +6,23 @@ from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from rest_framework import status -from rest_framework.test import APITestCase from documents.models import DocumentType from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) -class OCRAPITestCase(APITestCase): +class OCRAPITestCase(BaseAPITestCase): """ Test the OCR app API endpoints """ def setUp(self): + super(OCRAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -41,6 +43,7 @@ class OCRAPITestCase(APITestCase): def tearDown(self): self.document_type.delete() + super(OCRAPITestCase, self).tearDown() def test_submit_document(self): response = self.client.post( diff --git a/mayan/apps/ocr/tests/test_parsers.py b/mayan/apps/ocr/tests/test_parsers.py index d222711167..e846ff5271 100644 --- a/mayan/apps/ocr/tests/test_parsers.py +++ b/mayan/apps/ocr/tests/test_parsers.py @@ -52,6 +52,8 @@ class ParserTestCase(BaseTestCase): @override_settings(OCR_AUTO_OCR=False) class TextExtractorTestCase(BaseTestCase): def setUp(self): + super(TextExtractorTestCase, self).setUp() + self.document_type = DocumentType.objects.create( label=TEST_DOCUMENT_TYPE ) @@ -63,6 +65,7 @@ class TextExtractorTestCase(BaseTestCase): def tearDown(self): self.document_type.delete() + super(TextExtractorTestCase, self).tearDown() def test_text_extractor(self): TextExtractor.process_document_version( diff --git a/mayan/apps/permissions/api_views.py b/mayan/apps/permissions/api_views.py index 47f2ea7c48..c6777bc76c 100644 --- a/mayan/apps/permissions/api_views.py +++ b/mayan/apps/permissions/api_views.py @@ -1,14 +1,9 @@ from __future__ import unicode_literals -from django.shortcuts import get_object_or_404 - from rest_framework import generics -from acls.models import AccessControlList from rest_api.filters import MayanObjectPermissionsFilter from rest_api.permissions import MayanPermission -from user_management.permissions import permission_group_view -from user_management.serializers import GroupSerializer from .classes import Permission from .models import Role @@ -61,54 +56,6 @@ class APIRoleListView(generics.ListCreateAPIView): return super(APIRoleListView, self).post(*args, **kwargs) -class APIRolePermissionList(generics.ListCreateAPIView): - """ - Returns a list of all the permissions of a role. - """ - - mayan_object_permissions = { - 'GET': (permission_role_view,), - 'POST': (permission_role_edit,) - } - permission_classes = (MayanPermission,) - - def get_serializer_class(self): - if self.request.method == 'GET': - return PermissionSerializer - elif self.request.method == 'POST': - return RoleNewPermissionSerializer - - def get_serializer_context(self): - """ - Extra context provided to the serializer class. - """ - return { - 'format': self.format_kwarg, - 'request': self.request, - 'role': self.get_role(), - 'view': self - } - - def get_queryset(self): - return [ - permission.volatile_permission for permission in self.get_role().permissions.all() - ] - - def get_role(self): - return get_object_or_404(Role, pk=self.kwargs['pk']) - - def perform_create(self, serializer): - serializer.save(role=self.get_role()) - - def post(self, request, *args, **kwargs): - """ - Add a list of permissions to a role. - """ - return super(APIRolePermissionList, self).post( - request, *args, **kwargs - ) - - class APIRoleView(generics.RetrieveUpdateDestroyAPIView): mayan_object_permissions = { 'GET': (permission_role_view,), diff --git a/mayan/apps/permissions/apps.py b/mayan/apps/permissions/apps.py index 9cc06178c1..2547e0aaf6 100644 --- a/mayan/apps/permissions/apps.py +++ b/mayan/apps/permissions/apps.py @@ -17,8 +17,8 @@ from .links import ( class PermissionsApp(MayanAppConfig): + has_tests = True name = 'permissions' - test = True verbose_name = _('Permissions') def ready(self): diff --git a/mayan/apps/permissions/classes.py b/mayan/apps/permissions/classes.py index 2eb6031dec..32cf056d67 100644 --- a/mayan/apps/permissions/classes.py +++ b/mayan/apps/permissions/classes.py @@ -66,8 +66,9 @@ class Permission(object): if permissions.stored_permission.requester_has_this(requester): return True - logger.debug('no permission') - + logger.debug('User "%s" does not have permissions "%s"', + requester, + permissions) raise PermissionDenied(_('Insufficient permissions.')) @classmethod diff --git a/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.mo index 5643d71d86..b666fbc87c 100644 Binary files a/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.po index 0d4107d58e..9aee99616d 100644 --- a/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,21 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "الصلاحيات" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "صلاحيات غير كافية." @@ -47,7 +49,7 @@ msgstr "" msgid "Edit" msgstr "تحرير" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Roles" @@ -59,27 +61,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "اسم" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "مجموعات" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +109,21 @@ msgstr "منح الصلاحيات" msgid "Revoke permissions" msgstr "إبطال الصلاحيات" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +142,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +178,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +197,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.mo index a26fbb3a04..74647e8282 100644 Binary files a/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.po index 7bfa05a31b..283defa46d 100644 --- a/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/bg/LC_MESSAGES/django.po @@ -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: # Iliya Georgiev , 2012 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-06-13 13:45+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Разрешения" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Недостатъчни разрешения." @@ -47,7 +48,7 @@ msgstr "" msgid "Edit" msgstr "Редактиране" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Роли" @@ -59,27 +60,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Име" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Разрешение" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Групи" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +108,21 @@ msgstr "Издаване на разрешения" msgid "Revoke permissions" msgstr "Отмяна на разрешения" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +141,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +177,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +196,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.mo index 1bda6dbd5b..af040b8a98 100644 Binary files a/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.po index 54108716e4..051226d1d0 100644 --- a/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,21 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Dozvole" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Nedovoljne dozvole." @@ -47,7 +49,7 @@ msgstr "" msgid "Edit" msgstr "Urediti" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Role" @@ -59,27 +61,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Ime" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupe" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +109,21 @@ msgstr "Odobri dozvole" msgid "Revoke permissions" msgstr "Ukini dozvole" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +142,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +178,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +197,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/da/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/da/LC_MESSAGES/django.mo index f36971500f..d7f33d648a 100644 Binary files a/mayan/apps/permissions/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/da/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/da/LC_MESSAGES/django.po index 1b2106a20e..258d05d026 100644 --- a/mayan/apps/permissions/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/da/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "" @@ -46,7 +47,7 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "" @@ -58,27 +59,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Navn" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -106,6 +107,21 @@ msgstr "" msgid "Revoke permissions" msgstr "" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -124,7 +140,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -161,8 +176,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -178,13 +195,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.mo index 973c850551..ffaaba9914 100644 Binary files a/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.po index 1ff5bc00e7..9bc9a4b988 100644 --- a/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/de_DE/LC_MESSAGES/django.po @@ -1,31 +1,33 @@ # 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 , 2015 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # tetjarediske , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-24 23:14+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Berechtigungen" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Unzureichende Berechtigungen" @@ -49,7 +51,7 @@ msgstr "Löschen" msgid "Edit" msgstr "Bearbeiten" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Rollen" @@ -61,27 +63,27 @@ msgstr "Mitglieder" msgid "Role permissions" msgstr "Berechtigungen" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Namensraum" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Name" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Berechtigung" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Bezeichnung" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Gruppen" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Rolle" @@ -109,6 +111,23 @@ msgstr "Berechtigungen gewähren" msgid "Revoke permissions" msgstr "Berechtigungen widerrufen" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" +"Komma getrennte Liste der Primary Keys der Gruppen die zu dieser Rolle " +"hinzugefügt oder ersetzt werden sollen." + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "Keine solche Berechtigung: %s" + #: views.py:45 msgid "Available groups" msgstr "Verfügbare Gruppen" @@ -127,7 +146,6 @@ msgid "Available permissions" msgstr "Verfügbare Berechtigungen" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Erteilte Berechtigungen" @@ -164,8 +182,10 @@ msgstr "Berechtigungen der Rolle %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -181,13 +201,17 @@ msgstr "Berechtigungen der Rolle %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/en/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/en/LC_MESSAGES/django.mo index 09cc32a000..85a77117c0 100644 Binary files a/mayan/apps/permissions/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/en/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/en/LC_MESSAGES/django.po index f62e6c72fb..4072b1bb13 100644 --- a/mayan/apps/permissions/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-02-02 18:18+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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permissions" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Insufficient permissions." @@ -48,7 +48,7 @@ msgstr "delete" msgid "Edit" msgstr "" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 #, fuzzy msgid "Roles" msgstr "roles" @@ -63,30 +63,30 @@ msgstr "members" msgid "Role permissions" msgstr "role permissions" -#: models.py:18 +#: models.py:19 #, fuzzy msgid "Namespace" msgstr "namespace" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "" -#: models.py:46 +#: models.py:45 #, fuzzy msgid "Permission" msgstr "Permissions" -#: models.py:67 +#: models.py:74 #, fuzzy msgid "Label" msgstr "label" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Groups" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -114,6 +114,21 @@ msgstr "Grant permissions" msgid "Revoke permissions" msgstr "Revoke permissions" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, fuzzy, python-format +msgid "No such permission: %s" +msgstr "role permissions" + #: views.py:45 msgid "Available groups" msgstr "" diff --git a/mayan/apps/permissions/locale/es/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/es/LC_MESSAGES/django.mo index 165c15ebb3..b2825f834b 100644 Binary files a/mayan/apps/permissions/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/es/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/es/LC_MESSAGES/django.po index 860f19069c..353becd173 100644 --- a/mayan/apps/permissions/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/es/LC_MESSAGES/django.po @@ -1,31 +1,32 @@ # 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: # jmcainzos , 2014 # Lory977 , 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-23 06:40+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-23 03:03+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permisos" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permisos insuficientes." @@ -49,7 +50,7 @@ msgstr "Borrar" msgid "Edit" msgstr "Editar" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Roles" @@ -61,27 +62,27 @@ msgstr "Miembros" msgid "Role permissions" msgstr "Autorizaciones por rol" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Espacio nombrado" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nombre" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Permiso" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Etiqueta" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupos" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Rol" @@ -109,6 +110,21 @@ msgstr "Conceder permisos" msgid "Revoke permissions" msgstr "Revocar permisos" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "No existe el permiso: %s" + #: views.py:45 msgid "Available groups" msgstr "Grupos disponibles" @@ -127,7 +143,6 @@ msgid "Available permissions" msgstr "Permisos disponibles" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Permisos otorgados" @@ -164,8 +179,10 @@ msgstr "Permisos para el rol: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -181,13 +198,17 @@ msgstr "Permisos para el rol: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.mo index 0d18520194..e2ac0e1df2 100644 Binary files a/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.po index 390ff7b3c3..04722bc001 100644 --- a/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/fa/LC_MESSAGES/django.po @@ -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: # Mehdi Amani , 2014 @@ -10,21 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "مجوزها" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "اجازه ناکافی" @@ -48,7 +49,7 @@ msgstr "حذف" msgid "Edit" msgstr "ویرایش" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "نقش ها" @@ -60,27 +61,27 @@ msgstr "اعضا" msgid "Role permissions" msgstr "مجوزهای نقش" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "فضای نام" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "نام" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "مجوز" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "برچسب" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "گروه‌ها" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "نقش" @@ -108,6 +109,21 @@ msgstr "دادن مجوز" msgid "Revoke permissions" msgstr "لغو مجوز" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -126,7 +142,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -163,8 +178,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -180,13 +197,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.mo index 55a3d2737b..ebe7314167 100644 Binary files a/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.po index d5bc7867c6..32d752f631 100644 --- a/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/fr/LC_MESSAGES/django.po @@ -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 , 2014 @@ -11,21 +11,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" -"Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Droits" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Droits insuffisants" @@ -49,7 +50,7 @@ msgstr "Supprimer" msgid "Edit" msgstr "Modifier" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Rôles" @@ -61,27 +62,27 @@ msgstr "Membres" msgid "Role permissions" msgstr "Autorisations du rôle" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Espace de nommage" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nom" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Autorisation" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Étiquette" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Groupes" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Rôle" @@ -109,6 +110,21 @@ msgstr "Donner des droits" msgid "Revoke permissions" msgstr "Retirer des droits" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Groupes disponibles" @@ -127,7 +143,6 @@ msgid "Available permissions" msgstr "Permissions disponibles" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Permissions accordées" @@ -164,8 +179,10 @@ msgstr "Permissions pour le rôle : %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -181,13 +198,17 @@ msgstr "Permissions pour le rôle : %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.mo index c51f4d7e48..73512aa024 100644 Binary files a/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.po index 08650b0d58..f292accb50 100644 --- a/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/hu/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-24 05:21+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "" @@ -46,7 +47,7 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "" @@ -58,27 +59,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -106,6 +107,21 @@ msgstr "" msgid "Revoke permissions" msgstr "" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -124,7 +140,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -161,8 +176,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -178,13 +195,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/id/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/id/LC_MESSAGES/django.mo index db3d647001..d83ca56697 100644 Binary files a/mayan/apps/permissions/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/id/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/id/LC_MESSAGES/django.po index 3306082a3a..c1a177e459 100644 --- a/mayan/apps/permissions/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/id/LC_MESSAGES/django.po @@ -1,28 +1,29 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-24 05:21+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "" @@ -46,7 +47,7 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "" @@ -58,27 +59,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -106,6 +107,21 @@ msgstr "" msgid "Revoke permissions" msgstr "" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -124,7 +140,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -161,8 +176,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -178,13 +195,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/it/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/it/LC_MESSAGES/django.mo index f2b5e96d66..15391723ab 100644 Binary files a/mayan/apps/permissions/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/it/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/it/LC_MESSAGES/django.po index 96c545f732..404934fbda 100644 --- a/mayan/apps/permissions/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/it/LC_MESSAGES/django.po @@ -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: # Giovanni Tricarico , 2016 @@ -10,21 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-09-24 10:09+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permessi" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permessi insufficienti" @@ -48,7 +49,7 @@ msgstr "Cancella " msgid "Edit" msgstr "Modifica " -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Ruoli " @@ -60,27 +61,27 @@ msgstr "Membri " msgid "Role permissions" msgstr "Autorizzazioni ruolo " -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Namespace" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nome " -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Autorizzazione " -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Etichetta " -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Gruppi" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Ruolo" @@ -108,6 +109,21 @@ msgstr "Concedere le autorizzazioni" msgid "Revoke permissions" msgstr "Revoca le autorizzazioni" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Gruppi disponibili " @@ -126,7 +142,6 @@ msgid "Available permissions" msgstr "Autorizzazioni disponibili " #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Autorizzazioni concesse " @@ -163,8 +178,10 @@ msgstr "Autorizzazioni per ruolo: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -180,13 +197,17 @@ msgstr "Autorizzazioni per ruolo: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.mo index 352d591f41..df5e5598be 100644 Binary files a/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.po index 99ea11a0f2..d9f40d33cf 100644 --- a/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -10,21 +10,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-10-28 12:44+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permissies" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permissies zijn ontoereikend" @@ -48,7 +49,7 @@ msgstr "Verwijder" msgid "Edit" msgstr "bewerken" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "gebruikersrollen" @@ -60,27 +61,27 @@ msgstr "Leden" msgid "Role permissions" msgstr "Permissies gebruikersro" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Namespace" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Naam" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Permissies" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Label" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Groepen" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Gebruikersrol" @@ -108,6 +109,21 @@ msgstr "permissies toestaan" msgid "Revoke permissions" msgstr "permissies intrekken" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Beschikbare groepen" @@ -126,7 +142,6 @@ msgid "Available permissions" msgstr "Beschikbare permissies" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Toegekende permissies" @@ -163,8 +178,10 @@ msgstr "Permissies voor gebruikersrol: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -180,13 +197,17 @@ msgstr "Permissies voor gebruikersrol: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.mo index c382d23f18..eb3df4a221 100644 Binary files a/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.po index 773fb3e624..b1a8322e5a 100644 --- a/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/pl/LC_MESSAGES/django.po @@ -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: # mic , 2012,2015 @@ -9,21 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-08-04 09:54+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Uprawnienia" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Niewystarczające uprawnienia." @@ -47,7 +50,7 @@ msgstr "Usunąć" msgid "Edit" msgstr "Edytuj" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Role" @@ -59,27 +62,27 @@ msgstr "Członkowie" msgid "Role permissions" msgstr "" -#: models.py:18 -msgid "Namespace" -msgstr "" - #: models.py:19 +msgid "Namespace" +msgstr "Przestrzeń nazw" + +#: models.py:20 msgid "Name" msgstr "Nazwa" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Uprawnienia" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Etykieta" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupy" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Rola" @@ -107,6 +110,21 @@ msgstr "Grant uprawnienia" msgid "Revoke permissions" msgstr "" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Dostępne grupy" @@ -125,7 +143,6 @@ msgid "Available permissions" msgstr "Dostępne uprawnienia" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Przyznane uprawnienia" @@ -162,8 +179,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +198,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.mo index c301a8a7f6..c2fe1e863d 100644 Binary files a/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.po index d31394dbd0..4f00d58633 100644 --- a/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/pt/LC_MESSAGES/django.po @@ -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: # Emerson Soares , 2011 @@ -11,21 +11,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permissões" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permissões insuficientes." @@ -49,7 +50,7 @@ msgstr "Eliminar" msgid "Edit" msgstr "Editar" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Funções" @@ -61,27 +62,27 @@ msgstr "Membros" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nome" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Nome" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupos" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -109,6 +110,21 @@ msgstr "Conceder permissões" msgid "Revoke permissions" msgstr "Revogar permissões" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Grupos disponíveis" @@ -127,7 +143,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -164,8 +179,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -181,13 +198,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.mo index 1964cf01c3..2a6e347f56 100644 Binary files a/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.po index 1429b5c836..771e6dc29f 100644 --- a/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -12,21 +12,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permissões" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permissões insuficientes." @@ -50,7 +51,7 @@ msgstr "Excluir" msgid "Edit" msgstr "Editar" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Regras" @@ -62,27 +63,27 @@ msgstr "Membros" msgid "Role permissions" msgstr "Regra de permissão" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "namespace" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nome" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "permissão" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Label" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupos" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Regras" @@ -110,6 +111,21 @@ msgstr "Conceder permissões" msgid "Revoke permissions" msgstr "Revogar as permissões" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Grupos disponíveis" @@ -128,7 +144,6 @@ msgid "Available permissions" msgstr "Permissões disponíveis" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Permissões outorgadas" @@ -165,8 +180,10 @@ msgstr "Permissões para papel: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -182,13 +199,17 @@ msgstr "Permissões para papel: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.mo index 4b503e0d49..79017a42e1 100644 Binary files a/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.po index 4361fc6aae..f5344d6c9b 100644 --- a/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -9,21 +9,23 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-04-17 09:43+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Permisiuni" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Permisiuni insuficiente." @@ -47,7 +49,7 @@ msgstr "Șterge" msgid "Edit" msgstr "Editează" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Roluri" @@ -59,27 +61,27 @@ msgstr "Membri" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Nume" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Etichetă" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Grupuri" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +109,21 @@ msgstr "Grant permisiuni" msgid "Revoke permissions" msgstr "Revocați permisiunile" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Grupuri disponibile" @@ -125,7 +142,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +178,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +197,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.mo index b7ca371aea..34d43d8d4e 100644 Binary files a/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.po index b41872d643..4e13e51519 100644 --- a/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,21 +9,24 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Разрешения" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "Недостаточно разрешений." @@ -47,7 +50,7 @@ msgstr "Удалить" msgid "Edit" msgstr "Редактировать" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Роли" @@ -59,27 +62,27 @@ msgstr "Участники" msgid "Role permissions" msgstr "Разрешения роли" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Пространство имен" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Имя" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Разрешение" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Надпись" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Группы" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "Роль" @@ -107,6 +110,21 @@ msgstr "Предоставление разрешений" msgid "Revoke permissions" msgstr "Отмена разрешений" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "Доступные группы" @@ -125,7 +143,6 @@ msgid "Available permissions" msgstr "Доступные разрешения" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "Предоставленные разрешения" @@ -162,8 +179,10 @@ msgstr "Разрешения роли: %s" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +198,17 @@ msgstr "Разрешения роли: %s" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.mo index c5f0349f00..de42ae297e 100644 Binary files a/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.po index dbb75c4e17..377de432ff 100644 --- a/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/sl_SI/LC_MESSAGES/django.po @@ -1,28 +1,30 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "Pravice" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "" @@ -46,7 +48,7 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "Vloge" @@ -58,27 +60,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "Imenski prostor" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Ime" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "Pravice" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "Oznaka" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "Skupine" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -106,6 +108,21 @@ msgstr "" msgid "Revoke permissions" msgstr "" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -124,7 +141,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -161,8 +177,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -178,13 +196,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.mo index 15f90c971e..4a9e65d19d 100644 Binary files a/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.po index bfb5279281..51a8570b7a 100644 --- a/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "" @@ -47,7 +48,7 @@ msgstr "" msgid "Edit" msgstr "Sửa" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "" @@ -59,27 +60,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "Tên" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +108,21 @@ msgstr "" msgid "Revoke permissions" msgstr "" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +141,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +177,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +196,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.mo index bb23b13241..097ea82837 100644 Binary files a/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.po index 3d2e04cb1a..27c1f69560 100644 --- a/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/permissions/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,21 +9,22 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:03+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:22 models.py:47 models.py:70 permissions.py:7 +#: apps.py:22 models.py:46 models.py:77 permissions.py:7 msgid "Permissions" msgstr "权限" -#: classes.py:63 +#: classes.py:72 msgid "Insufficient permissions." msgstr "权限不足" @@ -47,7 +48,7 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:35 models.py:91 views.py:134 +#: links.py:35 models.py:98 views.py:136 msgid "Roles" msgstr "角色" @@ -59,27 +60,27 @@ msgstr "" msgid "Role permissions" msgstr "" -#: models.py:18 +#: models.py:19 msgid "Namespace" msgstr "" -#: models.py:19 +#: models.py:20 msgid "Name" msgstr "名称" -#: models.py:46 +#: models.py:45 msgid "Permission" msgstr "许可" -#: models.py:67 +#: models.py:74 msgid "Label" msgstr "" -#: models.py:73 +#: models.py:80 msgid "Groups" msgstr "用户组" -#: models.py:90 +#: models.py:97 msgid "Role" msgstr "" @@ -107,6 +108,21 @@ msgstr "权限授权" msgid "Revoke permissions" msgstr "撤销权限" +#: serializers.py:46 +msgid "" +"Comma separated list of groups primary keys to add to, or replace in this " +"role." +msgstr "" + +#: serializers.py:53 +msgid "Comma separated list of permission primary keys to grant to this role." +msgstr "" + +#: serializers.py:92 +#, python-format +msgid "No such permission: %s" +msgstr "" + #: views.py:45 msgid "Available groups" msgstr "" @@ -125,7 +141,6 @@ msgid "Available permissions" msgstr "" #: views.py:80 -#| msgid "Grant permissions" msgid "Granted permissions" msgstr "" @@ -162,8 +177,10 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" granted to: %(requester)s." #~ msgstr "Permission \"%(permission)s\" granted to: %(requester)s." -#~ msgid "%(requester)s, already had the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, already had the permission \"%(permission)s\" granted." #~ msgid "" #~ "Are you sure you wish to grant the %(permissions_label)s %(title_suffix)s?" @@ -179,13 +196,17 @@ msgstr "" #~ msgid "Permission \"%(permission)s\" revoked from: %(requester)s." #~ msgstr "Permission \"%(permission)s\" revoked from: %(requester)s." -#~ msgid "%(requester)s, doesn't have the permission \"%(permission)s\" granted." -#~ msgstr "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgid "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." +#~ msgstr "" +#~ "%(requester)s, doesn't have the permission \"%(permission)s\" granted." #~ msgid "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgstr "" -#~ "Are you sure you wish to revoke the %(permissions_label)s %(title_suffix)s?" +#~ "Are you sure you wish to revoke the %(permissions_label)s " +#~ "%(title_suffix)s?" #~ msgid "Users" #~ msgstr "Users" diff --git a/mayan/apps/permissions/models.py b/mayan/apps/permissions/models.py index e7bec758fc..0099eb2d81 100644 --- a/mayan/apps/permissions/models.py +++ b/mayan/apps/permissions/models.py @@ -46,17 +46,25 @@ class StoredPermission(models.Model): verbose_name_plural = _('Permissions') def requester_has_this(self, user): - logger.debug('user: %s', user) if user.is_superuser or user.is_staff: + logger.debug('Permission "%s" granted to user "%s" as superuser or staff', + self, + user) return True # Request is one of the permission's holders? for group in user.groups.all(): for role in group.roles.all(): if self in role.permissions.all(): + logger.debug('Permission "%s" granted to user "%s" through role "%s"', + self, + user, + role) return True - logger.debug('Fallthru') + logger.debug('Fallthru: Permission "%s" not granted to user "%s"', + self, + user) return False diff --git a/mayan/apps/permissions/serializers.py b/mayan/apps/permissions/serializers.py index 375818e93a..248452016c 100644 --- a/mayan/apps/permissions/serializers.py +++ b/mayan/apps/permissions/serializers.py @@ -13,9 +13,9 @@ from .models import Role, StoredPermission class PermissionSerializer(serializers.Serializer): - namespace = serializers.CharField() - pk = serializers.CharField() - label = serializers.CharField() + namespace = serializers.CharField(read_only=True) + pk = serializers.CharField(read_only=True) + label = serializers.CharField(read_only=True) def to_representation(self, instance): if isinstance(instance, StoredPermission): @@ -29,15 +29,14 @@ class PermissionSerializer(serializers.Serializer): class RoleSerializer(serializers.HyperlinkedModelSerializer): - groups = GroupSerializer(many=True) - - -class RoleSerializer(serializers.ModelSerializer): groups = GroupSerializer(many=True, read_only=True) permissions = PermissionSerializer(many=True, read_only=True) class Meta: - fields = ('id', 'label', 'groups', 'permissions') + extra_kwargs = { + 'url': {'view_name': 'rest_api:role-detail'}, + } + fields = ('groups', 'id', 'label', 'permissions', 'url') model = Role diff --git a/mayan/apps/permissions/tests/test_api.py b/mayan/apps/permissions/tests/test_api.py index 5a6d39ce12..76f379a230 100644 --- a/mayan/apps/permissions/tests/test_api.py +++ b/mayan/apps/permissions/tests/test_api.py @@ -4,8 +4,7 @@ from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from django.core.urlresolvers import reverse -from rest_framework.test import APITestCase - +from rest_api.tests import BaseAPITestCase from user_management.tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME, TEST_GROUP_NAME @@ -18,7 +17,7 @@ from ..permissions import permission_role_view from .literals import TEST_ROLE_LABEL, TEST_ROLE_LABEL_EDITED -class PermissionAPITestCase(APITestCase): +class PermissionAPITestCase(BaseAPITestCase): def setUp(self): super(PermissionAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( diff --git a/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.mo index 41c712e524..f433c57b65 100644 Binary files a/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.po index 39117fe29c..6fce48e2ed 100644 --- a/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/ar/LC_MESSAGES/django.po @@ -1,26 +1,33 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.mo index 08a8368551..52582c2f3f 100644 Binary files a/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.po index 700454133b..67bff959bb 100644 --- a/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/bg/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.mo index a2b29641af..659eccd083 100644 Binary files a/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.po index 8930dea0d3..bf68d4725b 100644 --- a/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/bs_BA/LC_MESSAGES/django.po @@ -1,26 +1,33 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.mo index 5786ff1255..0027b58311 100644 Binary files a/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.po index 41c74e859c..d15cfb06b3 100644 --- a/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/da/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.mo index ce3e338294..df3e93f1da 100644 Binary files a/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.po index e4faadae74..a5b43e8745 100644 --- a/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/de_DE/LC_MESSAGES/django.po @@ -1,26 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: +# Jesaja Everling , 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-24 21:12+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "Kein Serialisierer gefunden für: %s" + #: links.py:12 msgid "API Documentation" msgstr "API Dokumentation" diff --git a/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.mo index 4233b5c52c..a67c07abb0 100644 Binary files a/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.po index 2440018fb8..0d6179d170 100644 --- a/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -21,6 +21,11 @@ msgstr "" msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.mo index 2812c5cef8..1de62f32de 100644 Binary files a/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.po index 070f7a296c..6ed67f873e 100644 --- a/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/es/LC_MESSAGES/django.po @@ -1,28 +1,34 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2015 -# Roberto Rosario, 2015 +# Roberto Rosario, 2015,2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-23 03:03+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "API REST" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "No se pudo encontrar una clase para serializar: %s" + #: links.py:12 msgid "API Documentation" msgstr "Documentación de la API" diff --git a/mayan/apps/rest_api/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/fa/LC_MESSAGES/django.mo index db7be773e0..1621125bf6 100644 Binary files a/mayan/apps/rest_api/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/fa/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/fa/LC_MESSAGES/django.po index 946928e0ed..0e39430237 100644 --- a/mayan/apps/rest_api/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/fa/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mehdi Amani , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "API را متوقف کنید" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.mo index e50d874bce..ae1ea4970e 100644 Binary files a/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.po index 641340ed59..92dc3917ac 100644 --- a/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/fr/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "API REST" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "Documentation de l'API" diff --git a/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.mo index 136e76ce92..73512aa024 100644 Binary files a/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.po index 38c56de033..118ac5ed2b 100644 --- a/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/hu/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.mo index 63a22c3d43..d83ca56697 100644 Binary files a/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.po index 8372c7714a..9e1adb7648 100644 --- a/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/id/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.mo index 2dbaa04f26..43c319691c 100644 Binary files a/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.po index cd69ac28a6..32910009e1 100644 --- a/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/it/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Giovanni Tricarico , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Giovanni Tricarico \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "Documentazione API" diff --git a/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.mo index e84bded8af..74f5f65d37 100644 Binary files a/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.po index 7325b55273..b4faf96d9b 100644 --- a/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/nl_NL/LC_MESSAGES/django.po @@ -1,27 +1,33 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-10-28 09:43+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "API-documentatie" diff --git a/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.mo index 2365243908..71294fafeb 100644 Binary files a/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.po index 229ee8c7d3..c8fabdd02f 100644 --- a/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/pl/LC_MESSAGES/django.po @@ -1,27 +1,35 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Annunnaky , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.mo index 9e9d7641f6..fa8b22b1ed 100644 Binary files a/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.po index d421fbffad..bea7e4691b 100644 --- a/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/pt/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:16 links.py:8 msgid "REST API" msgstr "Documentação API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.mo index 17620a6438..fdb6e99091 100644 Binary files a/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.po index 96ec65c16a..f8a4dc84ae 100644 --- a/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 # Rogerio Falcone , 2015 @@ -9,20 +9,26 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-04 19:55+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "Documentação da API" diff --git a/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.mo index b7e889c94a..265f9d9749 100644 Binary files a/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.po index 3773630648..d2c244acbc 100644 --- a/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/ro_RO/LC_MESSAGES/django.po @@ -1,26 +1,33 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.mo index 5ffeeb884c..ed47c015d6 100644 Binary files a/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.po index 1b75decbe2..c206a90303 100644 --- a/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/ru/LC_MESSAGES/django.po @@ -1,27 +1,35 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-07-19 20:05+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:16 links.py:8 msgid "REST API" msgstr "REST API" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "Документация API" diff --git a/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.mo index 46cbaabbf9..b6a481b423 100644 Binary files a/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.po index 8b4263f7c0..411bba7af9 100644 --- a/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/sl_SI/LC_MESSAGES/django.po @@ -1,26 +1,33 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.mo index b4343e627b..2f4a11fd46 100644 Binary files a/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.po index 8f5c85b32b..545e95684c 100644 --- a/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/vi_VN/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.mo index f590993e9f..78c94095c9 100644 Binary files a/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.po index 1d781e7003..bf0b71c287 100644 --- a/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/rest_api/locale/zh_CN/LC_MESSAGES/django.po @@ -1,26 +1,32 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-20 19:18+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:16 links.py:8 msgid "REST API" msgstr "" +#: fields.py:30 +#, python-format +msgid "Unable to find serializer class for: %s" +msgstr "" + #: links.py:12 msgid "API Documentation" msgstr "" diff --git a/mayan/apps/rest_api/tests/__init__.py b/mayan/apps/rest_api/tests/__init__.py new file mode 100644 index 0000000000..0b7c12d02a --- /dev/null +++ b/mayan/apps/rest_api/tests/__init__.py @@ -0,0 +1 @@ +from .base import BaseAPITestCase # NOQA diff --git a/mayan/apps/rest_api/tests/base.py b/mayan/apps/rest_api/tests/base.py new file mode 100644 index 0000000000..098d83f9b9 --- /dev/null +++ b/mayan/apps/rest_api/tests/base.py @@ -0,0 +1,17 @@ +from __future__ import absolute_import, unicode_literals + +from rest_framework.test import APITestCase + +from permissions.classes import Permission +from smart_settings.classes import Namespace + + +class BaseAPITestCase(APITestCase): + """ + API test case class that invalidates permissions and smart settings + """ + + def setUp(self): + super(BaseAPITestCase, self).setUp() + Namespace.invalidate_cache_all() + Permission.invalidate_cache() diff --git a/mayan/apps/smart_settings/apps.py b/mayan/apps/smart_settings/apps.py index 7032b084db..6825455503 100644 --- a/mayan/apps/smart_settings/apps.py +++ b/mayan/apps/smart_settings/apps.py @@ -13,8 +13,8 @@ from .widgets import setting_widget class SmartSettingsApp(MayanAppConfig): app_namespace = 'settings' app_url = 'settings' + has_tests = True name = 'smart_settings' - test = True verbose_name = _('Smart settings') def ready(self): diff --git a/mayan/apps/smart_settings/classes.py b/mayan/apps/smart_settings/classes.py index b7d399a94e..472d37bb51 100644 --- a/mayan/apps/smart_settings/classes.py +++ b/mayan/apps/smart_settings/classes.py @@ -84,19 +84,29 @@ class Setting(object): def __unicode__(self): return unicode(self.global_name) + def cache_value(self): + self.raw_value = getattr(settings, self.global_name, self.default) + self.yaml = Setting.serialize_value(self.raw_value) + self.loaded = True + def invalidate_cache(self): self.loaded = False @property def serialized_value(self): + """ + YAML serialize value of the setting. + Used for UI display. + """ + if not self.loaded: + self.cache_value() + return self.yaml @property def value(self): if not self.loaded: - self.raw_value = getattr(settings, self.global_name, self.default) - self.yaml = Setting.serialize_value(self.raw_value) - self.loaded = True + self.cache_value() return self.raw_value diff --git a/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.mo index 548116b58b..4e1388b047 100644 Binary files a/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.po index e88d7ea2cb..7dd89fca14 100644 --- a/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/ar/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:18 permissions.py:7 msgid "Smart settings" @@ -34,14 +36,6 @@ msgstr "اسم" msgid "Value" msgstr "قيمة" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.mo index cc892e5fca..be80e8afdc 100644 Binary files a/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.po index 2be7dd9758..ae77c993cf 100644 --- a/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/bg/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:18 permissions.py:7 @@ -34,14 +35,6 @@ msgstr "Име" msgid "Value" msgstr "Стойност" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.mo index c52394f1ea..ec5be07761 100644 Binary files a/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.po index 92d79599ca..b914ad6ea0 100644 --- a/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/bs_BA/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:18 permissions.py:7 msgid "Smart settings" @@ -34,14 +36,6 @@ msgstr "Ime" msgid "Value" msgstr "Vrijednost" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.mo index ba6d0b7dc7..d7f33d648a 100644 Binary files a/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.po index ebae68cbfa..39eb41a757 100644 --- a/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/da/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:18 permissions.py:7 @@ -34,14 +35,6 @@ msgstr "Navn" msgid "Value" msgstr "" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/de_DE/LC_MESSAGES/django.mo index 9fc6ce3de9..66dc425407 100644 Binary files a/mayan/apps/smart_settings/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/de_DE/LC_MESSAGES/django.po index 1c3d4ab687..1c079d553d 100644 --- a/mayan/apps/smart_settings/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Mathias Behrle , 2014 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:18 permissions.py:7 @@ -37,14 +38,6 @@ msgstr "Name" msgid "Value" msgstr "Wert" -#: apps.py:37 -msgid "Found in path" -msgstr "Gefunden in Pfad" - -#: apps.py:40 -msgid "n/a" -msgstr "unbekannt" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Einstellungen" diff --git a/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.mo index 8dde99e136..18edf6e20f 100644 Binary files a/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po index df4424f65f..4a1a735fcd 100644 --- a/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" "PO-Revision-Date: 2012-12-12 06:06+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -37,14 +37,6 @@ msgstr "" msgid "Value" msgstr "value" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 #, fuzzy msgid "Settings" diff --git a/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.mo index 4f7ee202de..6149605e5c 100644 Binary files a/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.po index 9a222e2fe9..0ef06b5a09 100644 --- a/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/es/LC_MESSAGES/django.po @@ -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: # Lory977 , 2015 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-05-09 01:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:18 permissions.py:7 @@ -37,14 +38,6 @@ msgstr "Nombre" msgid "Value" msgstr "Valor" -#: apps.py:37 -msgid "Found in path" -msgstr "Existe en ruta" - -#: apps.py:40 -msgid "n/a" -msgstr "n/a" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Ajustes" diff --git a/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.mo index e871465a86..f45bf330cb 100644 Binary files a/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.po index 176d446380..7d4ec29cb0 100644 --- a/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/fa/LC_MESSAGES/django.po @@ -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: # Mehdi Amani , 2014 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:18 permissions.py:7 @@ -36,14 +37,6 @@ msgstr "نام" msgid "Value" msgstr "مقدار" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "تنظیمات" diff --git a/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.mo index db1c4af7f5..c64faba21e 100644 Binary files a/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.po index 4c31ff39f7..ce039c4f82 100644 --- a/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/fr/LC_MESSAGES/django.po @@ -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 , 2014 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:18 permissions.py:7 @@ -37,14 +38,6 @@ msgstr "Nom" msgid "Value" msgstr "Valeur" -#: apps.py:37 -msgid "Found in path" -msgstr "Trouvé dans le chemin" - -#: apps.py:40 -msgid "n/a" -msgstr "n/a" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Paramètres" diff --git a/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.mo index 7124e333dc..73512aa024 100644 Binary files a/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.po index f361f4b040..437849979e 100644 --- a/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/hu/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-27 05:24+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:18 permissions.py:7 @@ -34,14 +35,6 @@ msgstr "" msgid "Value" msgstr "" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/id/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/id/LC_MESSAGES/django.mo index 2b4b4cee56..d83ca56697 100644 Binary files a/mayan/apps/smart_settings/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/id/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/id/LC_MESSAGES/django.po index 18ae6163e3..dd0b752331 100644 --- a/mayan/apps/smart_settings/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/id/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2015-08-27 05:24+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:18 permissions.py:7 @@ -34,14 +35,6 @@ msgstr "" msgid "Value" msgstr "" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.mo index 70b395ba5c..fa89f4c73a 100644 Binary files a/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.po index 0f9e090c04..299c3e549c 100644 --- a/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-09-24 09:38+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:18 permissions.py:7 @@ -35,14 +36,6 @@ msgstr "Nome " msgid "Value" msgstr "Valore" -#: apps.py:37 -msgid "Found in path" -msgstr "Trovato nel percorso" - -#: apps.py:40 -msgid "n/a" -msgstr "n/a" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Impostazioni" diff --git a/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.mo index 709f33def4..55d9e917d6 100644 Binary files a/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.po index 4493fc2ae5..c7b585150f 100644 --- a/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-10-28 10:23+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:18 permissions.py:7 @@ -35,14 +36,6 @@ msgstr "Naam" msgid "Value" msgstr "Waarde" -#: apps.py:37 -msgid "Found in path" -msgstr "Gevonden in pad" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Instellingen" diff --git a/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.mo index 7f631eb02d..82ed24a801 100644 Binary files a/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.po index e18088ef25..e4ee004701 100644 --- a/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/pl/LC_MESSAGES/django.po @@ -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: # Annunnaky , 2015 @@ -12,15 +12,18 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" #: apps.py:18 permissions.py:7 msgid "Smart settings" @@ -38,14 +41,6 @@ msgstr "Nazwa" msgid "Value" msgstr "Wartość" -#: apps.py:37 -msgid "Found in path" -msgstr "Znaleziono ścieżkę" - -#: apps.py:40 -msgid "n/a" -msgstr "n/d" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Ustawienia" diff --git a/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.mo index 3910ca596e..c152acfc71 100644 Binary files a/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.po index 50dce019e6..dec4e22c59 100644 --- a/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/pt/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:50-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:18 permissions.py:7 @@ -34,14 +35,6 @@ msgstr "Nome" msgid "Value" msgstr "Valor" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.mo index b9ca7fb0ed..ace0954f5e 100644 Binary files a/mayan/apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.po index 51a2e080a9..fe02b78531 100644 --- a/mayan/apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -11,14 +11,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-04 19:09+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:18 permissions.py:7 @@ -37,14 +38,6 @@ msgstr "Nome" msgid "Value" msgstr "Valor" -#: apps.py:37 -msgid "Found in path" -msgstr "Existe no caminho" - -#: apps.py:40 -msgid "n/a" -msgstr "n/a" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Definições" diff --git a/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.mo index f3b1eacf33..e222551f78 100644 Binary files a/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.po index 36a97d72ee..203b92bcce 100644 --- a/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/ro_RO/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:18 permissions.py:7 msgid "Smart settings" @@ -34,14 +36,6 @@ msgstr "Nume" msgid "Value" msgstr "Valoare" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.mo index 8fd7313507..da9fb167ef 100644 Binary files a/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.po index 3e8cdb176a..aefffb4649 100644 --- a/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,15 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-07-19 20:00+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:18 permissions.py:7 msgid "Smart settings" @@ -35,14 +38,6 @@ msgstr "Имя" msgid "Value" msgstr "Значение" -#: apps.py:37 -msgid "Found in path" -msgstr "Найдено в пути" - -#: apps.py:40 -msgid "n/a" -msgstr "не задано" - #: links.py:11 links.py:14 msgid "Settings" msgstr "Настройки" diff --git a/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.mo index 50e863802e..d043638661 100644 Binary files a/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.po index 755c80bf6d..bfe993d48a 100644 --- a/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/sl_SI/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:18 permissions.py:7 msgid "Smart settings" @@ -34,14 +36,6 @@ msgstr "Ime" msgid "Value" msgstr "" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.mo index f5c06ef6e3..6e6ca1a07d 100644 Binary files a/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.po index ae3860801d..03acb4d237 100644 --- a/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/vi_VN/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:18 permissions.py:7 @@ -34,14 +35,6 @@ msgstr "Tên" msgid "Value" msgstr "Giá trị" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.mo index e669f661eb..4d9aefa828 100644 Binary files a/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.po index de302b6284..2b7e13d1d1 100644 --- a/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/smart_settings/locale/zh_CN/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:02+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:18 permissions.py:7 @@ -34,14 +35,6 @@ msgstr "名称" msgid "Value" msgstr "值" -#: apps.py:37 -msgid "Found in path" -msgstr "" - -#: apps.py:40 -msgid "n/a" -msgstr "" - #: links.py:11 links.py:14 msgid "Settings" msgstr "" diff --git a/mayan/apps/sources/apps.py b/mayan/apps/sources/apps.py index 7e84d4795b..fd5a5a0d9c 100644 --- a/mayan/apps/sources/apps.py +++ b/mayan/apps/sources/apps.py @@ -23,8 +23,8 @@ from .handlers import ( ) from .links import ( link_document_create_multiple, link_setup_sources, - link_setup_source_create_imap_email, link_setup_source_create_pop3_email, - link_setup_source_create_sane_scanner, + link_setup_source_check_now, link_setup_source_create_imap_email, + link_setup_source_create_pop3_email, link_setup_source_create_sane_scanner, link_setup_source_create_watch_folder, link_setup_source_create_webform, link_setup_source_create_staging_folder, link_setup_source_delete, link_setup_source_edit, link_setup_source_logs, link_staging_file_delete, @@ -34,8 +34,8 @@ from .widgets import StagingFileThumbnailWidget class SourcesApp(MayanAppConfig): + has_tests = True name = 'sources' - test = True verbose_name = _('Sources') def ready(self): @@ -128,6 +128,10 @@ class SourcesApp(MayanAppConfig): menu_object.bind_links( links=(link_staging_file_delete,), sources=(StagingFile,) ) + menu_object.bind_links( + links=(link_setup_source_check_now,), + sources=(IMAPEmail, POP3Email, WatchFolderSource,) + ) menu_secondary.bind_links( links=( link_setup_sources, link_setup_source_create_webform, diff --git a/mayan/apps/sources/links.py b/mayan/apps/sources/links.py index 95c1eca094..793e3a59bf 100644 --- a/mayan/apps/sources/links.py +++ b/mayan/apps/sources/links.py @@ -92,3 +92,7 @@ link_setup_source_logs = Link( text=_('Logs'), view='sources:setup_source_logs', args=('resolved_object.pk',), permissions=(permission_sources_setup_view,) ) +link_setup_source_check_now = Link( + text=_('Check now'), view='sources:setup_source_check', + args=('resolved_object.pk',), permissions=(permission_sources_setup_view,) +) diff --git a/mayan/apps/sources/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/ar/LC_MESSAGES/django.mo index f3dbbafa42..c8bf9b3ffc 100644 Binary files a/mayan/apps/sources/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/ar/LC_MESSAGES/django.po b/mayan/apps/sources/locale/ar/LC_MESSAGES/django.po index 41c790b791..84d9477d22 100644 --- a/mayan/apps/sources/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +64,7 @@ msgstr "فك الملفات المضغوطة" msgid "Upload a compressed file's contained files as individual documents" msgstr "تحميل الملفات في ملف مضغوط كوثائق منفردة" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "ملف الاعداد" @@ -71,54 +72,58 @@ msgstr "ملف الاعداد" msgid "File" msgstr "ملف" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Default" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "تحرير" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "مصادر الوثائق" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "دائما" @@ -131,15 +136,15 @@ msgstr "لا" msgid "Ask user" msgstr "اسئل المستخدم" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +152,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +160,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +176,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "مسار نظام الملفات على الخادم" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "قيمة العرض لتمريرها إلى نظام المعالجة" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "قيمة الارتفاع لتمريرها إلى نظام المعالجة" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "هل يتم فك الملفات المضغوطة أم لا." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "حذف الملف بعد رفعه بنجاح." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "غير قادر على ايجاد قائمة بملفات الاعداد: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "نوع الوثيقة" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +412,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +419,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +447,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "انشاء مصدر جديد من النوع: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "الخطوة التالية" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +598,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/bg/LC_MESSAGES/django.mo index 6ebd272756..80ccc262eb 100644 Binary files a/mayan/apps/sources/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/bg/LC_MESSAGES/django.po b/mayan/apps/sources/locale/bg/LC_MESSAGES/django.po index c5e0b1135e..c58c46eb1c 100644 --- a/mayan/apps/sources/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/bg/LC_MESSAGES/django.po @@ -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: # Iliya Georgiev , 2012 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "" msgid "Upload a compressed file's contained files as individual documents" msgstr "" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "" @@ -71,54 +71,58 @@ msgstr "" msgid "File" msgstr "Файл" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "По подразбиране" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Редактиране" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Източници на документи" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Винаги" @@ -131,15 +135,15 @@ msgstr "Никога" msgid "Ask user" msgstr "Питане на потребителя" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +175,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Вид на документа" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +411,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +418,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +446,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Следваща стъпка" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +597,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.mo index 3d7419f220..8b46004587 100644 Binary files a/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.po index 0230eb46f0..55e48e3d05 100644 --- a/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,45 +9,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +64,7 @@ msgstr "Otpakuj kompresovane datoteke" msgid "Upload a compressed file's contained files as individual documents" msgstr "Upload kompresovane datoteke koja sadrži individualne dokumente" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Osnovna datoteka" @@ -71,54 +72,58 @@ msgstr "Osnovna datoteka" msgid "File" msgstr "Datoteka" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "default" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Urediti" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "izvori dokumenata" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Uvijek" @@ -131,15 +136,15 @@ msgstr "Nikada" msgid "Ask user" msgstr "Pitaj korisnika" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +152,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +160,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +176,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Serverska putanja na filesystem-u" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Vrijednost za širinu za konvertovanje na backend-u." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Vrijednost za visinu za konvertovanje na backend-u." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Otpakuj ili ne kompresovane datoteke" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Obriši datoteku nakon što bude uspješno upload-ana." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Onemogući dobivanje liste osnovnih datoteka: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tip dokumenta" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +412,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +419,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +447,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Kreiraj novi tip izvora: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Sljedeći korak" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +598,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/da/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/da/LC_MESSAGES/django.mo index f73fd7ff4b..e7e7a76146 100644 Binary files a/mayan/apps/sources/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/da/LC_MESSAGES/django.po b/mayan/apps/sources/locale/da/LC_MESSAGES/django.po index 681b2a1908..41297ee0f2 100644 --- a/mayan/apps/sources/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/da/LC_MESSAGES/django.po @@ -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: # Mads L. Nielsen , 2013 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "Udpak komprimerede filer" msgid "Upload a compressed file's contained files as individual documents" msgstr "Upload individuelle filer fra komprimeret arkiv" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Staging fil" @@ -71,54 +71,58 @@ msgstr "Staging fil" msgid "File" msgstr "Fil" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Standard" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Document kilder" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Altid" @@ -131,15 +135,15 @@ msgstr "Aldrig" msgid "Ask user" msgstr "Spørg bruger" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +175,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Serverside filsystem sti." -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Bredde, der overføres til konverter backend." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Højde, der overføres til konverter backend." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Hvorvidt et pakket arkiv skal udpakkes eller ikke" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Slet filen, efter upload." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Kan ikke danne en liste med staging filer: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Dokumenttype" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +411,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +418,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +446,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Dan en ny kilde af typen: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Næste skridt" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +597,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.mo index b148fe64b4..52aba6c4f7 100644 Binary files a/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.po index 4235d01a05..55e0138433 100644 --- a/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Berny , 2015-2016 @@ -14,45 +14,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-10-31 18:57+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Quellen" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Quelle definieren" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Dokumentenquellen definieren verschiedene Möglichkeiten für die Einspeisung in Mayan EDMS. Minimal ein Webformular für das Hochladen mittels Browser ist erforderlich." +msgstr "" +"Dokumentenquellen definieren verschiedene Möglichkeiten für die Einspeisung " +"in Mayan EDMS. Minimal ein Webformular für das Hochladen mittels Browser ist " +"erforderlich." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Erstellt" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Bild" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Zeit" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Nachricht" @@ -68,7 +71,7 @@ msgstr "Komprimierte Dateien entpacken" msgid "Upload a compressed file's contained files as individual documents" msgstr "Ein komprimiertes Archiv hochladen, das einzelne Dokumente enthält" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Arbeitsdatei" @@ -76,54 +79,58 @@ msgstr "Arbeitsdatei" msgid "File" msgstr "Datei" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Standard" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Neues Dokument" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Neue IMAP Quelle hinzufügen" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Neue POP3 Quelle hinzufügen" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Neuen Staging-Ordner hinzufügen" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Neuen Beobachtungs-Ordner hinzufügen" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Neue Quelle für Webformular hinzufügen" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Löschen" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Bearbeiten" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Dokumentenquelle" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Neue Version hochladen" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Protokolle" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Immer" @@ -136,15 +143,15 @@ msgstr "Niemals" msgid "Ask user" msgstr "Benutzer fragen" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Webformular" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Staging-Ordner" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Beobachtungs-Ordner" @@ -152,7 +159,7 @@ msgstr "Beobachtungs-Ordner" msgid "POP3 email" msgstr "POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "IMAP" @@ -160,11 +167,11 @@ msgstr "IMAP" msgid "Label" msgstr "Bezeichner" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Aktiviert" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Quelle" @@ -176,214 +183,226 @@ msgstr "Interaktive Quelle" msgid "Interactive sources" msgstr "Interaktive Quellen" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Pfad auf dem Server" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Ordnerpfad" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Breite, die an den Konverter übergeben wird" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Vorschaubreite" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Höhe, die an den Konverter übergeben wird" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Vorschauhöhe" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Sollen komprimierte Archive entpackt werden?" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Entpacken" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Datei nach erfolgreichem Hochladen löschen." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Nach Hochladen löschen" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Die Liste der Arbeitsdateien kann nicht ermittelt werden: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Fehler beim Löschen von Staging-Datei: %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Staging-Ordner" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Webformular" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Außer Kontrolle" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intervall in Sekunden zwischen den Überprüfungen auf neue Dokumente" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Intervall" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "Ordnen Sie einen Dokumententyp für Dokumente aus dieser Quelle zu" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Dokumententyp" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Ob komprimierte Archive entpackt werden sollen" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "Intarvall Quelle" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "Intarvall Quellen" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Host" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Typische Werte sind 110 für POP3, 995 für POP3 über SSL, 143 für IMAP, 993 für IMAP über SSL" +msgstr "" +"Typische Werte sind 110 für POP3, 995 für POP3 über SSL, 143 für IMAP, 993 " +"für IMAP über SSL" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Port" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Benutzer" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Passwort" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Name des Anhangs, der die Metadatentypen (Paare von Namen und Werten) für die folgenden Anhänge enthält (Bemerkung: dieser Anhang muss der erste Anhang sein)." +msgstr "" +"Name des Anhangs, der die Metadatentypen (Paare von Namen und Werten) für " +"die folgenden Anhänge enthält (Bemerkung: dieser Anhang muss der erste " +"Anhang sein)." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Name Metadatenattachment" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." -msgstr "Wählen Sie einen Metadatentyp zur Speicherung des E-Mail-Betreffs, der für den ausgewählten Dokumententyp zulässig ist" +msgstr "" +"Wählen Sie einen Metadatentyp zur Speicherung des E-Mail-Betreffs, der für " +"den ausgewählten Dokumententyp zulässig ist" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Metadatentyp des Betreffs" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." -msgstr "Wählen Sie einen Metadatentyp zur Speicherung des E-Mail-Absenders, der für den ausgewählten Dokumententyp zulässig ist" +msgstr "" +"Wählen Sie einen Metadatentyp zur Speicherung des E-Mail-Absenders, der für " +"den ausgewählten Dokumententyp zulässig ist" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Metadatentyp des Absenders" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Textkörper der Nachricht als Textdokument speichern" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Textkörper der E-Mail speichern" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Metadatentyp \"%(metadata_type)s\" des Betreffs ist für den Dokumententyp \"%(document_type)s\" nicht zulässig." +msgstr "" +"Metadatentyp \"%(metadata_type)s\" des Betreffs ist für den Dokumententyp " +"\"%(document_type)s\" nicht zulässig." -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Metadatentyp \"%(metadata_type)s\" des Absenders ist für den Dokumententyp \"%(document_type)s\" nicht zulässig." +msgstr "" +"Metadatentyp \"%(metadata_type)s\" des Absenders ist für den Dokumententyp " +"\"%(document_type)s\" nicht zulässig." -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "Anhang-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "E-Mail Quelle" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "E-Mail Quellen" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Timeout" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "POP email" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "IMAP-Mailbox, die auf Nachrichten überprüft werden soll. " -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Mailbox" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "Beobachtungs-Ordner" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Protokolleintrag" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Logeinträge" @@ -413,7 +432,6 @@ msgstr "Staging-Datei löschen" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Fehler bei der Verarbeitung der Quelle %s" @@ -421,94 +439,108 @@ msgstr "Fehler bei der Verarbeitung der Quelle %s" msgid "Clear" msgstr "Löschen" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Logeinträge für Quelle %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Es wurden keine interaktiven Dokumentenquellen konfiguriert. Bitte erstellen oder aktivieren Sie eine bevor Sie fortsetzen." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Es wurden keine interaktiven Dokumentenquellen konfiguriert. Bitte erstellen " +"oder aktivieren Sie eine bevor Sie fortsetzen." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Dokumenteneigenschaften" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "Dateien im Staging Pfad" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." -msgstr "Neues Dokument in die Upload-Warteschlange eingereiht und demnächst verfügbar" +msgstr "" +"Neues Dokument in die Upload-Warteschlange eingereiht und demnächst verfügbar" #: views.py:302 #, python-format msgid "Upload a local document from source: %s" msgstr "Ein Dokument aus Quelle %s hochladen" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "Vom Dokument \"%s\" können keine neuen Versionen hochgeladen werden." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "Neue Dokumentenvrsion in die Upload-Warteschlange eingereiht und demnächst verfügbar" +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." +msgstr "" +"Neue Dokumentenvrsion in die Upload-Warteschlange eingereiht und demnächst " +"verfügbar" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Eine neue Version von Quelle %s hochladen" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Quelle des Typs %s erstellen" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "Quelle %s wirklich löschen?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Quelle %s bearbeiten" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Typ" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Seitenbild Stagingdatei" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Schritt 1 von 3: Dokumententyp auswählen" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Schritt 2 von 3: Metadaten des Dokuments eingeben" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Schritt 3 von 3: Tags auswählen" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Nächster Schritt" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Uploadassistent" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -591,9 +623,11 @@ msgstr "Uploadassistent" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/en/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/en/LC_MESSAGES/django.mo index 240f0068ce..9e6f89c2e5 100644 Binary files a/mayan/apps/sources/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/en/LC_MESSAGES/django.po b/mayan/apps/sources/locale/en/LC_MESSAGES/django.po index 4b311ed4d1..d60d4c6235 100644 --- a/mayan/apps/sources/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2013-11-20 13:14+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,38 +18,38 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 #, fuzzy msgid "Sources" msgstr "sources" -#: apps.py:53 +#: apps.py:54 #, fuzzy #| msgid "Create new document sources" msgid "Create a document source" msgstr "Create new document sources" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 #, fuzzy msgid "Thumbnail" msgstr "thumbnail" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -65,7 +65,7 @@ msgstr "Expand compressed files" msgid "Upload a compressed file's contained files as individual documents" msgstr "Upload a compressed file's contained files as individual documents" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Staging file" @@ -73,60 +73,64 @@ msgstr "Staging file" msgid "File" msgstr "File" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "" -#: links.py:26 +#: links.py:30 #, fuzzy msgid "New document" msgstr "upload new version" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 #, fuzzy msgid "Add new staging folder" msgstr "server staging folders" -#: links.py:50 +#: links.py:54 #, fuzzy msgid "Add new watch folder" msgstr "server watch folders" -#: links.py:55 +#: links.py:59 #, fuzzy msgid "Add new webform source" msgstr "add new source" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 #, fuzzy msgid "Delete" msgstr "delete" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Document sources" -#: links.py:80 +#: links.py:84 #, fuzzy msgid "Upload new version" msgstr "upload new version" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Always" @@ -139,17 +143,17 @@ msgstr "Never" msgid "Ask user" msgstr "Ask user" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 #, fuzzy msgid "Web form" msgstr "web form" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 #, fuzzy msgid "Staging folder" msgstr "staging folder" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 #, fuzzy msgid "Watch folder" msgstr "watch folder" @@ -158,7 +162,7 @@ msgstr "watch folder" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -166,12 +170,12 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 #, fuzzy msgid "Enabled" msgstr "enabled" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 #, fuzzy msgid "Source" msgstr "source" @@ -184,234 +188,234 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Server side filesystem path." -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 #, fuzzy msgid "Folder path" msgstr "folder path" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Width value to be passed to the converter backend." -#: models.py:166 +#: models.py:181 #, fuzzy msgid "Preview width" msgstr "preview width" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Height value to be passed to the converter backend." -#: models.py:171 +#: models.py:186 #, fuzzy msgid "Preview height" msgstr "preview height" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Whether to expand or not compressed archives." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 #, fuzzy msgid "Uncompress" msgstr "uncompress" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Delete the file after is has been successfully uploaded." -#: models.py:183 +#: models.py:198 #, fuzzy msgid "Delete after upload" msgstr "delete after upload" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Unable get list of staging files: %s" -#: models.py:228 +#: models.py:243 #, fuzzy, python-format msgid "Error deleting staging file; %s" msgstr "Unable to delete staging file: %s" -#: models.py:233 +#: models.py:248 #, fuzzy msgid "Staging folders" msgstr "staging folders" -#: models.py:253 +#: models.py:276 #, fuzzy msgid "Web forms" msgstr "web forms" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 #, fuzzy msgid "Out of process" msgstr "out of process" -#: models.py:267 +#: models.py:290 #, fuzzy msgid "Interval in seconds between checks for new documents." msgstr "" "Inverval in seconds where the watch folder path is checked for new documents." -#: models.py:268 +#: models.py:291 #, fuzzy msgid "Interval" msgstr "interval" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 #, fuzzy msgid "Document type" msgstr "Current document type" -#: models.py:279 +#: models.py:302 #, fuzzy msgid "Whether to expand or not, compressed archives." msgstr "Whether to expand or not compressed archives." -#: models.py:329 +#: models.py:352 #, fuzzy msgid "Interval source" msgstr "interval" -#: models.py:330 +#: models.py:353 #, fuzzy msgid "Interval sources" msgstr "interval" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 +#: models.py:388 #, fuzzy #| msgid "Current metadata" msgid "Subject metadata type" msgstr "Current metadata" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 #, fuzzy msgid "From metadata type" msgstr "Current metadata" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 #, fuzzy msgid "Email source" msgstr "edit source: %s" -#: models.py:481 +#: models.py:513 #, fuzzy msgid "Email sources" msgstr "edit source: %s" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 #, fuzzy msgid "Watch folders" msgstr "watch folders" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -450,12 +454,12 @@ msgstr "Error creating source; %s" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, fuzzy, python-format msgid "Log entries for source: %s" msgstr "upload a new version from source: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 #, fuzzy msgid "" "No interactive document sources have been defined or none have been enabled, " @@ -463,18 +467,18 @@ msgid "" msgstr "" "No interactive document sources have been defined or none have been enabled." -#: views.py:155 views.py:173 +#: views.py:154 views.py:172 #, fuzzy #| msgid "Document sources" msgid "Document properties" msgstr "Document sources" -#: views.py:163 +#: views.py:162 #, fuzzy msgid "Files in staging path" msgstr "files in staging path" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -483,66 +487,78 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "upload a local document from source: %s" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 +#: views.py:380 #, fuzzy msgid "New document version queued for uploaded and will be available shortly." msgstr "New document version uploaded successfully." -#: views.py:419 +#: views.py:418 #, fuzzy, python-format msgid "Upload a new version from source: %s" msgstr "upload a new version from source: %s" -#: views.py:460 +#: views.py:458 +#, fuzzy, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "upload a new version from source: %s" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Create new source of type: %s" -#: views.py:480 +#: views.py:505 #, fuzzy, python-format #| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "Delete document sources" -#: views.py:499 +#: views.py:524 #, fuzzy, python-format msgid "Edit source: %s" msgstr "edit source: %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -#, fuzzy -msgid "Staging file page image" -msgstr "Staging file" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#, fuzzy +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." diff --git a/mayan/apps/sources/locale/es/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/es/LC_MESSAGES/django.mo index 7497f502a3..f607d7f30f 100644 Binary files a/mayan/apps/sources/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/es/LC_MESSAGES/django.po b/mayan/apps/sources/locale/es/LC_MESSAGES/django.po index 5baae4eb66..5e04b8fcf1 100644 --- a/mayan/apps/sources/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/es/LC_MESSAGES/django.po @@ -1,56 +1,59 @@ # 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: # jmcainzos , 2014 # jmcainzos , 2015 # Lory977 , 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-23 06:42+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-23 03:02+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Fuentes" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Crear una nueva fuente de documentos" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Las fuentes de documentos son la manera en la que se almacenan nuevos documentos en Mayan EDMS. Crea por lo menos una fuente del tipo formulario web para poder cargar documentos desde un navegador." +msgstr "" +"Las fuentes de documentos son la manera en la que se almacenan nuevos " +"documentos en Mayan EDMS. Crea por lo menos una fuente del tipo formulario " +"web para poder cargar documentos desde un navegador." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Creado" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Foto miniatura" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Fecha y hora" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Mensaje" @@ -64,9 +67,10 @@ msgstr "Expandir archivos comprimidos" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Subir los archivos de un archivo comprimido como documentos individuales" +msgstr "" +"Subir los archivos de un archivo comprimido como documentos individuales" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Archivo provisional" @@ -74,54 +78,58 @@ msgstr "Archivo provisional" msgid "File" msgstr "Archivo" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Por defecto" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nuevo documento" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Añadir nuevo correo electrónico IMAP" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Añadir nuevo correo electrónico POP3" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Añadir nueva carpeta de ensayo" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Añadir nueva carpeta observada" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Añadir nueva fuente en formato web" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Borrar" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Editar" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Fuentes de documentos" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Subir versión nueva" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Bitácoras" +#: links.py:91 +msgid "Check now" +msgstr "Revisar ahora" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Siempre" @@ -134,15 +142,15 @@ msgstr "Nunca" msgid "Ask user" msgstr "Preguntar al usuario" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Formulario web" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Archivos provisionales" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Carpeta observada" @@ -150,7 +158,7 @@ msgstr "Carpeta observada" msgid "POP3 email" msgstr "Correo electrónico POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "Correo electrónico IMAP" @@ -158,11 +166,11 @@ msgstr "Correo electrónico IMAP" msgid "Label" msgstr "Etiqueta" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Habilitado" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Fuente" @@ -174,214 +182,220 @@ msgstr "Fuente interactiva" msgid "Interactive sources" msgstr "Fuentes interactivas" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Ruta a los archivos en el servidor." -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Ruta de la carpeta" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valor de la anchura que se pasa al backend convertidor." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Ancho de muestra" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valor de la altura que se pasa al backend convertidor." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Alto de muestra" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Expandir o no archivos comprimidos." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Descomprimir" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Eliminar el archivo después de que se haya cargado correctamente." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Borrar después de subir" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "No es posible obtener la lista de los archivos provisionales: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Error al borrar archivo de ensayo; %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Archivos provisionales" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Formularios web" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Fuera de proceso" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intérvalo en segundos para detectar documentos nuevos" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Intérvalo" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Asignar un tipo de documento a los documentos subidos desde esta fuente" +msgstr "" +"Asignar un tipo de documento a los documentos subidos desde esta fuente" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tipo de documento" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Expandir o no archivos comprimidos." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "Intervalo de fuente." -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "Intervalo de fuentes" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Host" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Las opciones típicas son 110 para POP3, 995 para POP3 sobre SSL, 143 para IMAP, 993 para IMAP sobre SSL." +msgstr "" +"Las opciones típicas son 110 para POP3, 995 para POP3 sobre SSL, 143 para " +"IMAP, 993 para IMAP sobre SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Puerto" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Usuario" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Contraseña" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Nombre del archivo adjunto que contiene los nombres de los tipos de metadatos y los pares de valores que se asignará al resto de los archivos adjuntos descargados. Nota: Este anejo tiene que ser el primer archivo adjunto." +msgstr "" +"Nombre del archivo adjunto que contiene los nombres de los tipos de " +"metadatos y los pares de valores que se asignará al resto de los archivos " +"adjuntos descargados. Nota: Este anejo tiene que ser el primer archivo " +"adjunto." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Nombre del anejo de metadatos" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Tipo de metadatos de asunto " -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Tipo de metadato de remitente" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Almacenar el cuerpo del correo electrónico como un documento de texto." -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Almacenar cuerpo del correo electrónico" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "Anejo-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "Fuente de correo electrónico" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "Fuentes de correo electrónico" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Tiempo de espera" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "Correo electrónico POP" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." -msgstr "" +msgstr "Buzón IMAP en el cual revisar mensajes." -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Buzón" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "Carpetas observadas" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Entrada de bitácora" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Entradas de bitácora" @@ -411,7 +425,6 @@ msgstr "Borrar archivos provisionales" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Error procesando fuente: %s" @@ -419,27 +432,28 @@ msgstr "Error procesando fuente: %s" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Entradas de bitácora para fuente: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "No se han definido fuentes de documentos interactivos o no hay ninguna habilitada, cree una antes de continuar." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"No se han definido fuentes de documentos interactivos o no hay ninguna " +"habilitada, cree una antes de continuar." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Propiedades de documento" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "Archivos en ruta de ensayo" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "Nuevo documento en cola para ser cargado, estará disponible en breve." @@ -448,65 +462,77 @@ msgstr "Nuevo documento en cola para ser cargado, estará disponible en breve." msgid "Upload a local document from source: %s" msgstr "Subir documento local desde la fuente: %s" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." +msgstr "Documento \"%s\" esta bloqueado de crear nuevas versiones." + +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" +"Nueva versión del documento en cola para ser cargado, estará disponible en " +"breve." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "Nueva versión del documento en cola para ser cargado, estará disponible en breve." - -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Subir una nueva versión de la fuente: %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "¿Lanzar chequeo para la fuenta \"%s\"? " + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Crear nuevo tipo de fuente: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "¿Eliminar la fuente: %s?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Editar fuente: %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Tipo" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Imagen de página de archivo provisional" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Paso 1 de 3: Seleccione tipo de documento" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Paso 2 de 3: Entre la metadata del documento" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Pago 3 de 3: Seleccione las etiquetas" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Siguiente paso" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Asistente de carga de documentos" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "Etiquetas a ser anejadas." + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -589,9 +615,11 @@ msgstr "Asistente de carga de documentos" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/fa/LC_MESSAGES/django.mo index 1c1075e131..96766e3767 100644 Binary files a/mayan/apps/sources/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/fa/LC_MESSAGES/django.po b/mayan/apps/sources/locale/fa/LC_MESSAGES/django.po index 732e2b8877..84f45feb8e 100644 --- a/mayan/apps/sources/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/fa/LC_MESSAGES/django.po @@ -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: # Mohammad Dashtizadeh , 2013 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "سورس" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "ساخته‌شده" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "اندازه کوچک" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "تاریخ زمان" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "بازگشایی فایلهای فشرده" msgid "Upload a compressed file's contained files as individual documents" msgstr "آپلود فایل فشرده شامل فایل اصلی سند." -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "پرونده مرحله ای" @@ -71,54 +71,58 @@ msgstr "پرونده مرحله ای" msgid "File" msgstr "پرونده" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "پیش فرض" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "اضافه کردن IMAP جدید" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "اضافه کردن pop3 جدید" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "ایجتد پرونده مرحله ای" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "ایجاد پرونده تحت نظر" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "اضافه کردن سورس جدید یک وب فرم" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "حذف" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "ویرایش" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "سورسهای سند" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "آپلود نسخه دید" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "همیشه" @@ -131,15 +135,17 @@ msgstr "هرگز" msgid "Ask user" msgstr "پرسیدن از کاربر" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" -msgstr "وب فرم ا " +msgstr "" +"وب فرم " +"ا " -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "پرونده مرحله ای" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "پرونده تحت نظر" @@ -147,7 +153,7 @@ msgstr "پرونده تحت نظر" msgid "POP3 email" msgstr "ایمیل POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "ایمیل IMAP" @@ -155,11 +161,11 @@ msgstr "ایمیل IMAP" msgid "Label" msgstr "برچسب" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "فعال شده" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "سورس" @@ -171,214 +177,215 @@ msgstr "سورس محاوره ای" msgid "Interactive sources" msgstr "سورس های محاوره ای" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "محل قرارگیری برروی سیستم فایل سمت سرور" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "محل پرونده" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "مقداری که به مبدل جهت عرض ارسال خواهد شد." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "عرض پیش بینی" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "مقداری که به مبدل جهت ارتفاع ارسال خواهد شد." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "ارتفاع پیش بینی" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "گسترش و یا آرشیوهای غیر فشرده" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "فشرده نشده" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "حدف فایل پس از آپلود موفق آن." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "حذف پس ار آپ لود" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "قادر به گرفتن لیست فایلهای مرحله ای نیست. %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "خطای حذف فایل مرحله ای : %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "پرونده های مرحله ای" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "فرمهای وب" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "خارج از پردازش" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "مدت زمان بین بررسی جهت سند جدید." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "فاصله" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "این نوع را به اسناد آپلود شده از این آدرس تخصیص دهید." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "نوع سند" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "غییر فشرده سازی آرشیوهای فشرده شده: بلی خیر" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "فاصله سورس" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "فاصله سورسها" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "هاست" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 for IMAP over SSL." +msgstr "" +"Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " +"for IMAP over SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Port" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "نام کاربری" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "کلمه عبور" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "الضاقیات-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "ایمیل کردن سورس" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "ایمیل کردن سورسها" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "اتمام وقت" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "POP ایمیل" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "صندوق پستی" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "پرونده تحت نظر" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "ورودیهای لاگ" @@ -408,7 +415,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +422,28 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "هیچ منبع محاوره ای سند تعریف و یا فعال نشده، قبل از ادامه دادن یک منبع بسازید." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"هیچ منبع محاوره ای سند تعریف و یا فعال نشده، قبل از ادامه دادن یک منبع " +"بسازید." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "فایلهای درون راه مرحله ای" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "سند جدیدی که در صف آپلود است بزودی قابل دسترس خواهد بود." @@ -445,65 +452,75 @@ msgstr "سند جدیدی که در صف آپلود است بزودی قابل msgid "Upload a local document from source: %s" msgstr "آپلود کردن فایل محلی از اصل:%s" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "نسخه سند جدید که جهت آپلود وارد صف شد بزودی قابل دسترس خواهد بود." -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "آپلود نسخه ای جدید از اصل : %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "ایجاد سورس جدید از نوع %s." -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "ویرایش اصل : %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "نوع" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "تصویر صفحه فایل مرحله ای" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "مرحله بعدی" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +603,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/fr/LC_MESSAGES/django.mo index 217c04ccdb..b1d384f9f4 100644 Binary files a/mayan/apps/sources/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/fr/LC_MESSAGES/django.po b/mayan/apps/sources/locale/fr/LC_MESSAGES/django.po index 301d826e7a..c1c8c40191 100644 --- a/mayan/apps/sources/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/fr/LC_MESSAGES/django.po @@ -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: # Bruno CAPELETO , 2016 @@ -12,45 +12,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-05-23 20:06+0000\n" -"Last-Translator: Bruno CAPELETO \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Sources" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Créer un document source" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Les sources de document seront la façon pour lesquels les nouveaux documents seront suivis dans Mayan EDMS, créer par au moins un formulaire web pour téléverser le document depuis le navigateur" +msgstr "" +"Les sources de document seront la façon pour lesquels les nouveaux documents " +"seront suivis dans Mayan EDMS, créer par au moins un formulaire web pour " +"téléverser le document depuis le navigateur" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Créé" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Vignette" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Date et heure" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Message" @@ -64,9 +67,11 @@ msgstr "Décompresser les fichiers" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Importer le contenu d'un ensemble de fichiers compressés comme fichiers individuels" +msgstr "" +"Importer le contenu d'un ensemble de fichiers compressés comme fichiers " +"individuels" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "fichier en cours de modification" @@ -74,54 +79,58 @@ msgstr "fichier en cours de modification" msgid "File" msgstr "Fichier" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Défaut" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nouveau document" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Ajouter un nouveau compte mail IMAP" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Ajouter un nouveau compte mail POP3" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Ajouter un nouveau répertoire d'indexation" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Ajouter une nouvelle surveillance de dossier" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Ajouter une nouvelle source de formulaire web" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Supprimer" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Modifier" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Sources du document" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Importer une nouvelle version" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Journaux évènement" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Toujours" @@ -134,15 +143,15 @@ msgstr "Jamais" msgid "Ask user" msgstr "Demander à l'utilisateur" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Formulaire web" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Répertoire dit d'index, modifications en cours" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Surveiller le répertoire" @@ -150,7 +159,7 @@ msgstr "Surveiller le répertoire" msgid "POP3 email" msgstr "email POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "email IMAP" @@ -158,11 +167,11 @@ msgstr "email IMAP" msgid "Label" msgstr "Libellé" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Activé" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Source" @@ -174,214 +183,227 @@ msgstr "Source interactive" msgid "Interactive sources" msgstr "Sources interactives " -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "chemin de répertoire système sur le serveur." -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Chemin du dossier" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valeur de largeur à passer au convertisseur en arrière plan" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Largeur de la prévisualisation" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valeur de hauteur à passer au convertisseur en arrière plan." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Hauteur de prévisualisation" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Indique s'il faut ou non décompresser les fichiers d'archive." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Décompresser" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "supprimer le fichier après importation avec succès." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Supprimer après télé-versement" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Impossible d'obtenir la liste des fichiers en cours de modification:%s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Impossible de supprimer le fichier en cours de modification: %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Répertoires dit d'index, modifications en cours" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Formulaire Web" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Process externe" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intervalle en secondes entre la vérification de nouveaux documents." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Intervalle" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Assigner un type de document aux documents importés à partir de cette source." +msgstr "" +"Assigner un type de document aux documents importés à partir de cette source." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Type de document" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Choisir de décompresser ou pas les archives compressées." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "intervalle pour la source" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "intervalle pour les sources" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Hote" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Les choix typiques sont 110 pour le POP3, 995 pour le POP3 over SSL, 143 pour l'IMAP, 993 pour l'IMAP over SSL." +msgstr "" +"Les choix typiques sont 110 pour le POP3, 995 pour le POP3 over SSL, 143 " +"pour l'IMAP, 993 pour l'IMAP over SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Port" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Identifiant" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Mot de passe" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Le nom de la pièce jointe qui contiendra les noms des type de métadonnée et aux couple de valeur qui seront assignés au reste des documents téléversés. Noter que cette pièce jointe sera la première." +msgstr "" +"Le nom de la pièce jointe qui contiendra les noms des type de métadonnée et " +"aux couple de valeur qui seront assignés au reste des documents téléversés. " +"Noter que cette pièce jointe sera la première." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Métadonnées de la pièce jointe" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." -msgstr "Sélectionner un type de métadonnée correct pour le type de document sélectionné, dans lequel enregistrer le sujet de l'email" +msgstr "" +"Sélectionner un type de métadonnée correct pour le type de document " +"sélectionné, dans lequel enregistrer le sujet de l'email" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Type de métadonnée du sujet" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." -msgstr "Sélectionner un type de métadonnée correct pour le type de document sélectionné, dans lequel enregistrer la valeur du champs \"de\"" +msgstr "" +"Sélectionner un type de métadonnée correct pour le type de document " +"sélectionné, dans lequel enregistrer la valeur du champs \"de\"" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Type de métadonnée du champs \"de\"" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Sauvegarder le corps de l'email en tant que document texte." -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Sauvegarder le corps de l'email" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Le type de métadonnée du sujet \"%(metadata_type)s\" n'est pas correct pour le document de type: %(document_type)s" +msgstr "" +"Le type de métadonnée du sujet \"%(metadata_type)s\" n'est pas correct pour " +"le document de type: %(document_type)s" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Le type de métadonnée du champs \"de\" \"%(metadata_type)s\" n'est pas correct pour le document de type: %(document_type)s" +msgstr "" +"Le type de métadonnée du champs \"de\" \"%(metadata_type)s\" n'est pas " +"correct pour le document de type: %(document_type)s" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "Pièce jointe-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "source du courriel" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "Sources du courriel" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Délai d'attente dépassé" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "Compte POP" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "Boîte IMAP où chercher les messages" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Boîte aux lettres" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "surveiller les répertoires" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Entrée du journal" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Entrées du journal" @@ -411,7 +433,6 @@ msgstr "Supprimer les fichiers en attente" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Erreur lors du traitement de la source: %s" @@ -419,94 +440,109 @@ msgstr "Erreur lors du traitement de la source: %s" msgid "Clear" msgstr "Effacer" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Entrée du journal pour la source: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Aucune source de document interactifs n'a été définie ou/ni activée, créer en une avant de continuer." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Aucune source de document interactifs n'a été définie ou/ni activée, créer " +"en une avant de continuer." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Propriété du document" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "Fichiers dans l'index, en cours de modification" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." -msgstr "Nouveau document ajouter dans la file d'attente pour transfert et disponible dans les plus bref délai." +msgstr "" +"Nouveau document ajouter dans la file d'attente pour transfert et disponible " +"dans les plus bref délai." #: views.py:302 #, python-format msgid "Upload a local document from source: %s" msgstr "importer un document local à partir de la source: %s" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "L'ajout d'une nouvelle version pour le document \"%s\" est bloqué." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "Une nouvelle version du document mis en fille d'attente pour importation qui sera disponible dans les plus brefs délai." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." +msgstr "" +"Une nouvelle version du document mis en fille d'attente pour importation qui " +"sera disponible dans les plus brefs délai." -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Importer une nouvelle version à partir de la source: %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Créer une nouvelle source de type:%s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "Supprimer la source: %s?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Modifier la source: %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Type" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Affichage sous forme d'image de la page de fichier" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Etape 1 sur 3: Sélectionner le type du document" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Etape 2 sur 3: Entrer les metadonnées" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Etape 3 sur 3: Sélectionner les tags" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Prochaine étape" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Assistant d'envoi de document" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -589,9 +625,11 @@ msgstr "Assistant d'envoi de document" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/hu/LC_MESSAGES/django.mo index 902f61a8c6..fa52b889c9 100644 Binary files a/mayan/apps/sources/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/hu/LC_MESSAGES/django.po b/mayan/apps/sources/locale/hu/LC_MESSAGES/django.po index 1ffec0bb11..6b289032a3 100644 --- a/mayan/apps/sources/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/hu/LC_MESSAGES/django.po @@ -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: # Dezső József , 2014 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "Tömörített fájlok kibontása" msgid "Upload a compressed file's contained files as individual documents" msgstr "Tömörített fájlokat feltöltése önálló dokumentumként" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Átmeneti fájl" @@ -71,54 +71,58 @@ msgstr "Átmeneti fájl" msgid "File" msgstr "" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Dokumentum források" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Mindig" @@ -131,15 +135,15 @@ msgstr "Sohasem" msgid "Ask user" msgstr "Kérdezd meg a felhasználót" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +175,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Dokumentum típus" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +411,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +418,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +446,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Következő lépés" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +597,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/id/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/id/LC_MESSAGES/django.mo index eb8f82deb9..9dc290a4dc 100644 Binary files a/mayan/apps/sources/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/id/LC_MESSAGES/django.po b/mayan/apps/sources/locale/id/LC_MESSAGES/django.po index acadcb0714..000ef0735a 100644 --- a/mayan/apps/sources/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/id/LC_MESSAGES/django.po @@ -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: # Sehat , 2013 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "tanggal waktu" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -61,9 +61,11 @@ msgstr "Kembangkan berkas-berkas terkompresi" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Unggah berkas terkompresi yang mengandung berkas-berkas sebagai dokumen-dokumen individual" +msgstr "" +"Unggah berkas terkompresi yang mengandung berkas-berkas sebagai dokumen-" +"dokumen individual" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "" @@ -71,54 +73,58 @@ msgstr "" msgid "File" msgstr "File" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Sumber-sumber dokumen" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Selalu" @@ -131,15 +137,15 @@ msgstr "Tidak pernah" msgid "Ask user" msgstr "Tanya pengguna" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +153,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +161,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +177,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Apakah mengembangkan atau tidak mengkompresi arsip-arsip." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Hapus berkas setelah berhasil di unggah." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Jenis dokumen" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Password" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +413,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +420,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +448,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Membuat sumber baru dengan jenis: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Langkah selanjutnya" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +599,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/it/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/it/LC_MESSAGES/django.mo index f6706e49df..766b42d062 100644 Binary files a/mayan/apps/sources/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/it/LC_MESSAGES/django.po b/mayan/apps/sources/locale/it/LC_MESSAGES/django.po index 445c620dae..1aa87f06c8 100644 --- a/mayan/apps/sources/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/it/LC_MESSAGES/django.po @@ -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: # Giovanni Tricarico , 2014 @@ -11,45 +11,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-09-24 13:19+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Sorgenti" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Crea una sorgente documento" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Sorgenti documento è il mezzo con cui i nuovi documenti alimentano Mayan EDMS, crea almeno una modulo web per poter caricare documenti da un browser." +msgstr "" +"Sorgenti documento è il mezzo con cui i nuovi documenti alimentano Mayan " +"EDMS, crea almeno una modulo web per poter caricare documenti da un browser." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Creato" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Miniatura" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Data e ora" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Messaggio" @@ -65,7 +67,7 @@ msgstr "Espandi" msgid "Upload a compressed file's contained files as individual documents" msgstr "Pubblicare un file compresso contenente singoli documenti" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Mostra file" @@ -73,54 +75,58 @@ msgstr "Mostra file" msgid "File" msgstr "File" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Default" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nuovo documento" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Aggiungi nuova email IMAP" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Aggiungi nuova Email POP3" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Aggiungi una nuova cartella di stage" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Aggiungi una nuova cartella monitorata" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Aggiungi nuova sorgente webform" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Cancella" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Modifica" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Sorgente del documento" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Carica nuova versione" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Log" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Sempre" @@ -133,15 +139,15 @@ msgstr "Mai" msgid "Ask user" msgstr "Chiedi all'utente" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Form web" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Cartella di stage" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Cartella monitorata" @@ -149,7 +155,7 @@ msgstr "Cartella monitorata" msgid "POP3 email" msgstr "Email POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "Email IMAP" @@ -157,11 +163,11 @@ msgstr "Email IMAP" msgid "Label" msgstr "Etichetta" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Abilitato" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Sorgente" @@ -173,214 +179,228 @@ msgstr "Sorgente interattiva" msgid "Interactive sources" msgstr "Sorgenti interattive" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Path sul filesystem del server" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Percorso cartella" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." -msgstr "valore della larghezza da passare per le operazioni di conversione in backend" +msgstr "" +"valore della larghezza da passare per le operazioni di conversione in backend" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Larghezza anteprima" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." -msgstr "valore dell'altezza da passare per le operazioni di conversione in backend" +msgstr "" +"valore dell'altezza da passare per le operazioni di conversione in backend" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Altezza anteprima" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Se espandere o meno degli archivi compressi." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Decomprimi" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Cancella il file dopo essere stato caricato" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Cancella dopo aver caricato" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Impossibile ottenere lista dei file di gestione temporanea: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Errore cancellando il file di stage; %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Cartelle di stage" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Form web" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Fuori dal processo" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intervallo in secondi tra le ricerche dei nuovi documenti." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Intervallo" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "Assegna un tipo documento ai documenti caricati da questa sorgente." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tipo documento " -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Determina se espandere o no gli archivi compressi." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "Intervallo sorgente" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "Intervallo sorgenti" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Host" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Le scelte tipiche sono 110 per POP3, 995 per POP3 su SSL, 143 per IMAP, 993 per IMAP su SSL." +msgstr "" +"Le scelte tipiche sono 110 per POP3, 995 per POP3 su SSL, 143 per IMAP, 993 " +"per IMAP su SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Porta" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Nome utente" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Password" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Nome degli allegati che possono contenere i nomi dei tipi metadati e le coppie di valori che saranno assegnate al resto degli allegati caricati. Nota: Questo allegato sarà il primo degli allegati." +msgstr "" +"Nome degli allegati che possono contenere i nomi dei tipi metadati e le " +"coppie di valori che saranno assegnate al resto degli allegati caricati. " +"Nota: Questo allegato sarà il primo degli allegati." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Nome allegato metadati" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." -msgstr "Selezionare il tipo metadato valido per il documento selezionato dove impostare l'oggetto della mail." +msgstr "" +"Selezionare il tipo metadato valido per il documento selezionato dove " +"impostare l'oggetto della mail." -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Tipo metadato oggetto" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." -msgstr "Selezionare il tipo metadato valido per il documento selezionato dove impostare il mittente della mail." +msgstr "" +"Selezionare il tipo metadato valido per il documento selezionato dove " +"impostare il mittente della mail." -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Tipo metadato mittente" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Salva il contenuto della mail in un documento di testo" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Salva il contenuto della mail" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Il tipo metadato \"oggetto\" \"%(metadata_type)s\" non è valido per il tipo documento: %(document_type)s" +msgstr "" +"Il tipo metadato \"oggetto\" \"%(metadata_type)s\" non è valido per il tipo " +"documento: %(document_type)s" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Il tipo metadato \"mittente\" \"%(metadata_type)s\" non è valido per il tipo documento: %(document_type)s" +msgstr "" +"Il tipo metadato \"mittente\" \"%(metadata_type)s\" non è valido per il tipo " +"documento: %(document_type)s" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "allegato-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "Email sorgente" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "Email sorgenti" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Timeout" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "Email POP" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "Casella di posta IMAP dove controllare i messaggi." -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Casella" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "Cartelle monitorate" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Elementi log" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Elementi log" @@ -410,7 +430,6 @@ msgstr "Cancella i file temporanei" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Errore processando la sorgente: %s" @@ -418,94 +437,108 @@ msgstr "Errore processando la sorgente: %s" msgid "Clear" msgstr "Pulisci" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Log per la sorgente: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Nessuna fonte interattiva dei documenti è stata definita o non ne sono state attivate." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Nessuna fonte interattiva dei documenti è stata definita o non ne sono state " +"attivate." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Proprietà documento" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "File nel percorso di stage" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." -msgstr "Il nuovo documento pronto in coda per il carico e sarà disponibile a breve." +msgstr "" +"Il nuovo documento pronto in coda per il carico e sarà disponibile a breve." #: views.py:302 #, python-format msgid "Upload a local document from source: %s" msgstr "Carica un documento locale dalla sorgente: %s" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "Il documento \"%s\" è bloccato per il caricamento di nuove versioni." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "La nuova versione del documento è in coda per il caricamento e sarà disponibile a breve." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." +msgstr "" +"La nuova versione del documento è in coda per il caricamento e sarà " +"disponibile a breve." -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Carica la nuova versione dalla sorgente: %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Crea nuovo tipo di sorgente:%s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "Cancellare la sorgente: %s?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Modifica sorgente: %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Tipo" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Immagine pagina file di stage" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Passo 1 di 3: Seleziona il tipo documento" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Passo 2 di 3: Inserisci i metadati del documento" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Passo 3 di 3: Seleziona i tag" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Prossimo passo " -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Procedura guidata carico documenti" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -588,9 +621,11 @@ msgstr "Procedura guidata carico documenti" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.mo index 7eec5fe13c..efadc836ec 100644 Binary files a/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.po index 0d55ab1878..5453d8a93b 100644 --- a/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -10,45 +10,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-09 15:57+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Bronnen" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Maak een documentbron aan" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Aangemaakt" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Thumbnail" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Datum en tijd" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Bericht" @@ -62,9 +62,10 @@ msgstr "Uitpakken gecomprimeerde bestanden" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Upload een gecomprimeerd archief van bestanden als individuele documenten" +msgstr "" +"Upload een gecomprimeerd archief van bestanden als individuele documenten" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Tijdelijk bestand" @@ -72,54 +73,58 @@ msgstr "Tijdelijk bestand" msgid "File" msgstr "Bestand" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Verstekwaarde" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nieuw document" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Voeg nieuwe IMAP-email toe." -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Verwijder" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "bewerken" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Documentbronnen" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Nieuwe versie uploaden" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Logs" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Altijd" @@ -132,15 +137,15 @@ msgstr "Nooit" msgid "Ask user" msgstr "Vraag gebruiker" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Webformulier" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -148,7 +153,7 @@ msgstr "" msgid "POP3 email" msgstr "POP3 e-mail" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "IMAP e-mail" @@ -156,11 +161,11 @@ msgstr "IMAP e-mail" msgid "Label" msgstr "Label" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Ingeschakeld" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "BronB" @@ -172,214 +177,216 @@ msgstr "Interactieve bro" msgid "Interactive sources" msgstr "Interactieve bronnen" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "pad naar filesysteem server" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Mappad" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Breedte waarde die moet worden doorgegeven aan de converter backend." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Hoogte waarde die moet worden doorgegeven aan de converter backend." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Keuze om te expanderen of uitpakken van archief. (TODO: review this)" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Uitpakken" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Verwijder het bestand nadat de 'upload' succesvol is voltooid." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" -msgstr "Het is niet mogelijk om een lijst met tijdelijke bestanden aan te maken. Foutmelding: %s" +msgstr "" +"Het is niet mogelijk om een lijst met tijdelijke bestanden aan te maken. " +"Foutmelding: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Wijs een documentsoort toe voor documenten die worden geüpload van deze bron." +msgstr "" +"Wijs een documentsoort toe voor documenten die worden geüpload van deze bron." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Documentsoort" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Al of niet uitpakken van gecomprimeerde archieven." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Wachtwoord" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "attachment-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "POP e-mail" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Loginvoer" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Loginvoer" @@ -409,7 +416,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -417,27 +423,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -446,65 +451,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Aanmaken van nieuw documentbron van type: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Type" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Volgende stap" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -587,9 +602,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/pl/LC_MESSAGES/django.mo index 873139386b..0fbda1cd0f 100644 Binary files a/mayan/apps/sources/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/pl/LC_MESSAGES/django.po b/mayan/apps/sources/locale/pl/LC_MESSAGES/django.po index 888e95601b..c6926905e2 100644 --- a/mayan/apps/sources/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/pl/LC_MESSAGES/django.po @@ -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: # mic , 2012-2013 @@ -11,45 +11,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-23 13:44+0000\n" -"Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Utworzony" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Miniaturka" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Data godzina" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -65,7 +67,7 @@ msgstr "" msgid "Upload a compressed file's contained files as individual documents" msgstr "" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "" @@ -73,54 +75,58 @@ msgstr "" msgid "File" msgstr "Plik" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Domyślne" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Nowy dokument" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Usuń" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Edytuj" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Prześlij nową wersję" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Zawsze" @@ -133,15 +139,15 @@ msgstr "Nigdy" msgid "Ask user" msgstr "Pytaj użytkownika" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -149,7 +155,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -157,11 +163,11 @@ msgstr "" msgid "Label" msgstr "Etykieta" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Włączone" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -173,214 +179,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Typ dokumentów" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Hasło" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Wpisy rejestru logów" @@ -410,7 +415,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -418,27 +422,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Właściwości dokumentu" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -447,65 +450,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Utwórz nowe typ źródło:%s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Typ" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Krok 1 z 3: Wybierz typ dokumentu" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Krok 2 z 3: Wprowadź metadane dokumentu" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Krok 3 z 3: Wybierz tagi" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Następny krok" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Kreator przesyłania dokumentu" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -588,9 +601,11 @@ msgstr "Kreator przesyłania dokumentu" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/pt/LC_MESSAGES/django.mo index 3c42f755c6..1dd79f857d 100644 Binary files a/mayan/apps/sources/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/pt/LC_MESSAGES/django.po b/mayan/apps/sources/locale/pt/LC_MESSAGES/django.po index f51f73f634..d61c24007e 100644 --- a/mayan/apps/sources/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/pt/LC_MESSAGES/django.po @@ -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: # Emerson Soares , 2011 @@ -11,45 +11,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,9 +63,11 @@ msgstr "Expandir ficheiros comprimidos" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Enviar os ficheiros contidos num ficheiro comprimido como documentos individuais" +msgstr "" +"Enviar os ficheiros contidos num ficheiro comprimido como documentos " +"individuais" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Ficheiro de preparação" @@ -73,54 +75,58 @@ msgstr "Ficheiro de preparação" msgid "File" msgstr "Ficheiro" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Padrão" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Eliminar" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Editar" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Fontes de documentoo" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Sempre" @@ -133,15 +139,15 @@ msgstr "Nunca" msgid "Ask user" msgstr "Perguntar ao utilizador" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -149,7 +155,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -157,11 +163,11 @@ msgstr "" msgid "Label" msgstr "Nome" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -173,214 +179,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Caminho do sistema de ficheiros do lado do servidor" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valor da largura para ser passado para o backend conversor." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valor da altura a ser passado ao conversor." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Se os ficheiros comprimidos devem ser descomprimidos ou não." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Excluir o ficheiro depois de ter sido enviado com sucesso." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Incapaz de obter a lista dos ficheiros em preparação: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tipo de documento" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Senha" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -410,7 +415,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -418,27 +422,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -447,65 +450,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Criar nova fonte do tipo: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Próximo passo" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -588,9 +601,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.mo index 56c4810ca7..a2092340e9 100644 Binary files a/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.po index 043157c177..069542cea3 100644 --- a/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -11,45 +11,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+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" "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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Fontes" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Criar uma nova fonte de documentos" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Fontes de documentos são a forma como os novos documentos são alimentados ao Mayan EDMS, crie pelo menos uma fonte de formulário da web para poder carregar documentos a partir de um navegador." +msgstr "" +"Fontes de documentos são a forma como os novos documentos são alimentados ao " +"Mayan EDMS, crie pelo menos uma fonte de formulário da web para poder " +"carregar documentos a partir de um navegador." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Criando" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "miniatura" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "hora, data" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Mensagem" @@ -63,9 +66,10 @@ msgstr "Expandir arquivos compactados" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Upload de um arquivo compactado contendo arquivos como documentos individuais" +msgstr "" +"Upload de um arquivo compactado contendo arquivos como documentos individuais" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Preparação de arquivo" @@ -73,54 +77,58 @@ msgstr "Preparação de arquivo" msgid "File" msgstr "Arquivo" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Padrão" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Novo documento" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "Adicionar um novo email IMAP" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "Adicionar um novo email POP3" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "Adicionar nova pasta de teste" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "Adicionar uma nova pasta temporária" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "Adicionar nova fonte webform" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Excluir" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Editar" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Fontes de documentos" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Upload de uma nova versão" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Logs" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Sempre" @@ -133,15 +141,15 @@ msgstr "Nunca" msgid "Ask user" msgstr "Pergunte ao usuário" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "formulário web" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Pasta teste" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Pasta Temporária" @@ -149,7 +157,7 @@ msgstr "Pasta Temporária" msgid "POP3 email" msgstr "E-mail POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "E-mail IMAP" @@ -157,11 +165,11 @@ msgstr "E-mail IMAP" msgid "Label" msgstr "Label" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "habilitado" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "fonte" @@ -173,214 +181,227 @@ msgstr "Fonte interativa" msgid "Interactive sources" msgstr "Fontes interativa" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Caminho do sistema do servidor" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Caminho da Pasta" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valor da largura a ser passado para o backend conversor." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Largura de visualização" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valor de altura para ser passado para o backend conversor." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Altura de pré-visualização" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Se expandir ou não arquivos compactados." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "descompactar" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Excluir o arquivo depois de ter sido carregado com sucesso." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "excluir depois do Upload" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Unable get list of staging files: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Error removendo arquivo de teste; %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Pastas de teste" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Formulários web" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "Saída do processo" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Intervalo em segundos entre verificações para novos documentos." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "intervalo" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Atribuir um tipo de documento para documentos enviados a partir desta fonte." +msgstr "" +"Atribuir um tipo de documento para documentos enviados a partir desta fonte." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tipos de Documentos" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "A possibilidade de expandir ou não, arquivos comprimido." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "Fonte de intervalo" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "Fontes de intervalo" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Host" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." -msgstr "Escolhas típicas : 110 para POP3, 995 para POP3 sobre SSL, 143 para IMAP, 993 para IMAP sobre SSL." +msgstr "" +"Escolhas típicas : 110 para POP3, 995 para POP3 sobre SSL, 143 para IMAP, " +"993 para IMAP sobre SSL." -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Porta" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Usuário" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Senha" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." -msgstr "Nome do anexo que contém os nomes de tipo de metadados e os pares de valores a serem atribuídos ao restante dos anexos transferidos. Nota: Este anexo tem de ser o primeiro anexo." +msgstr "" +"Nome do anexo que contém os nomes de tipo de metadados e os pares de valores " +"a serem atribuídos ao restante dos anexos transferidos. Nota: Este anexo tem " +"de ser o primeiro anexo." -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "Nome do metadado anexado" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." -msgstr "Selecione um tipo de metadados válido para o tipo de documento selecionado para armazenar o assunto do e-mail." +msgstr "" +"Selecione um tipo de metadados válido para o tipo de documento selecionado " +"para armazenar o assunto do e-mail." -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "Tipo de metadado do assunto" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." -msgstr "Selecione um tipo de metadados válido para o tipo de documento selecionado para armazenar o valor \"de\" do e-mail." +msgstr "" +"Selecione um tipo de metadados válido para o tipo de documento selecionado " +"para armazenar o valor \"de\" do e-mail." -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "Tipo de documento do remetente" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "Armazenar o corpo do e-mail como um documento de texto." -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "Armazenar o corpo do e-mail" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Tipo de metadado do assunto \"%(metadata_type)s\" não é válido para o documento do tipo: %(document_type)s" +msgstr "" +"Tipo de metadado do assunto \"%(metadata_type)s\" não é válido para o " +"documento do tipo: %(document_type)s" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" -msgstr "Tipo de metadados do campo \"de\" \"%(metadata_type)s\" não é válido para o tipo de documento: %(document_type)s" +msgstr "" +"Tipo de metadados do campo \"de\" \"%(metadata_type)s\" não é válido para o " +"tipo de documento: %(document_type)s" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "anexo-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "E-mail Fonte" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "E-mail Fontes" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Timeout" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "E-mail POP3" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "Pasta de email IMAP de onde checar por mensagens." -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "Caixa de correio" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "Pastas Temporárias" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Entrada de registro" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "As entradas de log" @@ -410,7 +431,6 @@ msgstr "Apagar arquivos temporários" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Erro processando fonte: %s" @@ -418,27 +438,28 @@ msgstr "Erro processando fonte: %s" msgid "Clear" msgstr "Limpar" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Registrar entradas para fonte: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Nenhuma fonte interativa de documentos fora definida ou nenhum foi ativada. Criar uma antes de prosseguir." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Nenhuma fonte interativa de documentos fora definida ou nenhum foi ativada. " +"Criar uma antes de prosseguir." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Propriedades do documento" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "Os arquivos no caminho de preparo" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "Novo documento na fila para carregados e estará disponível em breve." @@ -447,65 +468,77 @@ msgstr "Novo documento na fila para carregados e estará disponível em breve." msgid "Upload a local document from source: %s" msgstr "Carregar um documento no local de origem:%s " -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "Documento \"%s\" está bloqueado para carregar novas versões." -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." -msgstr "Nova versão do documento na fila para carregados e estará disponível em breve." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." +msgstr "" +"Nova versão do documento na fila para carregados e estará disponível em " +"breve." -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Carregar uma nova versão da Origem: %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Criar nova fonte do tipo: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "Apagar a fonte: %s?" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "Editar fonte: %s" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Tipo" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "Imagem da página do arquivo temporário" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Passo 1 de 3: Selecione o tipo de documento" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Passo 2 de 3: Insira metadados do documento" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Passo 3 de 3: Selecione etiquetas" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Próximo passo" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Assistente de upload de documentos" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -588,9 +621,11 @@ msgstr "Assistente de upload de documentos" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.mo index 81a74e86cc..03782ea624 100644 Binary files a/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.po index 3ce1f3146d..f669b651df 100644 --- a/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Abalaru Paul , 2013 @@ -10,45 +10,46 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-04-17 13:16+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Iconiță" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Data și ora" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -62,9 +63,11 @@ msgstr "Dezarhivare fișiere comprimate" #: forms.py:46 msgid "Upload a compressed file's contained files as individual documents" -msgstr "Încărcați fișiere de fișier comprimat care sunt incluse ca documente individuale" +msgstr "" +"Încărcați fișiere de fișier comprimat care sunt incluse ca documente " +"individuale" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Structura fisier" @@ -72,54 +75,58 @@ msgstr "Structura fisier" msgid "File" msgstr "Fișier" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Iniţial" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Șterge" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Editează" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Sursa documentului" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Mereu" @@ -132,15 +139,15 @@ msgstr "niciodată" msgid "Ask user" msgstr "Întreabă utilizatorul" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -148,7 +155,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -156,11 +163,11 @@ msgstr "" msgid "Label" msgstr "Etichetă" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -172,214 +179,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Cale de fișiere server." -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Valoarea lățime trecuta convertorului." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Valoare de înălțime trecuta convertorului." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Dacă se extinde sau nu se arhivează." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Ștergeți fișierul după ce este a fost încărcat cu succes." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Imposibil obține lista de fișiere de așteptare:% s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tip document" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -409,7 +415,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -417,27 +422,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -446,65 +450,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Creați o nouă sursă de tipul:% s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Tip" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Următorul pas" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -587,9 +601,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/ru/LC_MESSAGES/django.mo index 187874981d..fa24a0a485 100644 Binary files a/mayan/apps/sources/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/ru/LC_MESSAGES/django.po b/mayan/apps/sources/locale/ru/LC_MESSAGES/django.po index bc8fe338a7..f16e4459ef 100644 --- a/mayan/apps/sources/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,45 +9,50 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "Источники" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "Создать источник документов" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." -msgstr "Источники документов - это способы получения Mayan EDMS новых документов. Как минимум, чтобы можно было загружать документы из браузера, создайте веб-форму." +msgstr "" +"Источники документов - это способы получения Mayan EDMS новых документов. " +"Как минимум, чтобы можно было загружать документы из браузера, создайте веб-" +"форму." -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "Создано" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "Миниатюра" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "Дата и время" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "Сообщение" @@ -63,7 +68,7 @@ msgstr "Извлекать из архивов?" msgid "Upload a compressed file's contained files as individual documents" msgstr "Загрузить файлы, содержащиеся в архиве в качестве отдельных документов" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "Промежуточный файл" @@ -71,54 +76,58 @@ msgstr "Промежуточный файл" msgid "File" msgstr "Файл" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Умолчание" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "Новый документ" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "Удалить" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Редактировать" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Источники документов" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "Загрузить новую версию" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "Журналы" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Всегда" @@ -131,15 +140,15 @@ msgstr "Никогда" msgid "Ask user" msgstr "Спросить пользователя" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "Веб-форма" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "Промежуточная папка" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "Наблюдаемая папка" @@ -147,7 +156,7 @@ msgstr "Наблюдаемая папка" msgid "POP3 email" msgstr "почтовый ящик POP3" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "почтовый ящик IMAP" @@ -155,11 +164,11 @@ msgstr "почтовый ящик IMAP" msgid "Label" msgstr "Надпись" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "Доступно" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "Источник" @@ -171,214 +180,214 @@ msgstr "Интерактивный источник" msgid "Interactive sources" msgstr "Интерактивные источники" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "Путь на сервере" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "Путь к папке" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "Ширина после обработки." -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "Ширина предпросмотра" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "Высота после обработки." -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "Высота предпросмотра" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "Независимо от того распакованы или нет архивы." -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "Распаковать" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "Удалить файл после загрузки." -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "Удалить после загрузки" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "Не удалось получить список промежуточных файлов: %s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "Ошибка удаления промежуточного файла; %s" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "Промежуточные папки" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "Веб-формы" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "Временной интервал проверки на наличие новых документов." -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "Интервал" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." -msgstr "Назначить тип документов для документов, загружаемых из этого источника." +msgstr "" +"Назначить тип документов для документов, загружаемых из этого источника." -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Тип документа" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "Следует ли извлекать данные из архива." -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "Хост" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "SSL" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "Порт" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "Имя пользователя" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "Пароль" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "вложение-%i" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "Таймаут" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "POP email" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "IMAP ящик в котором проверять сообщения." -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "Запись журнала" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "Записи журнала" @@ -408,7 +417,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "Ошибка обработки источника: %s" @@ -416,27 +424,28 @@ msgstr "Ошибка обработки источника: %s" msgid "Clear" msgstr "Очистить" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "Записи журнала для источника: %s" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." -msgstr "Интерактивные источники документов не были определены или включены, создайте один для продолжения." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." +msgstr "" +"Интерактивные источники документов не были определены или включены, создайте " +"один для продолжения." -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "Свойства документа" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +454,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "Загрузка новой версии из источника %s" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "Создать новый источник типа: %s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "Тип" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "Шаг 1 из 3: Выбор типа документа" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "Шаг 2 из 3: Заполните метаданные документа" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "Шаг 3 из 3%: выберите метки" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Далее" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "Мастер загрузки документов" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +605,11 @@ msgstr "Мастер загрузки документов" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.mo index 150b9feeda..6264d9e838 100644 Binary files a/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.po index 8c9c5da189..c299dde4f7 100644 --- a/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/sl_SI/LC_MESSAGES/django.po @@ -1,52 +1,53 @@ # 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-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -62,7 +63,7 @@ msgstr "" msgid "Upload a compressed file's contained files as individual documents" msgstr "" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "" @@ -70,54 +71,58 @@ msgstr "" msgid "File" msgstr "" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "" @@ -130,15 +135,15 @@ msgstr "" msgid "Ask user" msgstr "" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -146,7 +151,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -154,11 +159,11 @@ msgstr "" msgid "Label" msgstr "Oznaka" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -170,214 +175,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Tip dokumenta" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -407,7 +411,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -415,27 +418,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -444,65 +446,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Naslednji korak" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -585,9 +597,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/vi_VN/LC_MESSAGES/django.mo index 7b8f2cbe10..27d98ed50b 100644 Binary files a/mayan/apps/sources/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/sources/locale/vi_VN/LC_MESSAGES/django.po index 252393531c..b8fd49f9db 100644 --- a/mayan/apps/sources/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,45 +9,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -63,7 +63,7 @@ msgstr "Giải nén" msgid "Upload a compressed file's contained files as individual documents" msgstr "Upload một file nén chứa các file tài liệu riêng biệt" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "" @@ -71,54 +71,58 @@ msgstr "" msgid "File" msgstr "File" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "Mặc định" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "Sửa" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "Các nguồn tài liệu" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "Luôn luôn" @@ -131,15 +135,15 @@ msgstr "Không bao giờ" msgid "Ask user" msgstr "Hỏi người dùng" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -147,7 +151,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -155,11 +159,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -171,214 +175,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "đường dẫn hệ thống phía Server" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "Kiểu tài liệu" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -408,7 +411,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -416,27 +418,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -445,65 +446,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "Bước tiếp theo" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -586,9 +597,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.mo index 0f42b2b457..63b6876551 100644 Binary files a/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.po index fe5203d4a6..e68e272d3c 100644 --- a/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/sources/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -10,45 +10,45 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:56-0400\n" -"PO-Revision-Date: 2016-03-21 21:11+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:26+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:37 links.py:31 models.py:145 views.py:521 +#: apps.py:38 links.py:35 models.py:145 views.py:543 msgid "Sources" msgstr "" -#: apps.py:53 -#| msgid "Create new document sources" +#: apps.py:54 msgid "Create a document source" msgstr "" -#: apps.py:55 +#: apps.py:56 msgid "" "Document sources are the way in which new documents are feed to Mayan EDMS, " "create at least a web form source to be able to upload documents from a " "browser." msgstr "" -#: apps.py:65 +#: apps.py:66 msgid "Created" msgstr "" -#: apps.py:71 +#: apps.py:73 msgid "Thumbnail" msgstr "" -#: apps.py:81 models.py:606 +#: apps.py:81 models.py:648 msgid "Date time" msgstr "" -#: apps.py:86 models.py:609 +#: apps.py:86 models.py:651 msgid "Message" msgstr "" @@ -64,7 +64,7 @@ msgstr "展开压缩文件" msgid "Upload a compressed file's contained files as individual documents" msgstr "上传一个压缩文件的包含文件作为单个文档" -#: forms.py:67 views.py:432 +#: forms.py:67 views.py:431 msgid "Staging file" msgstr "临时文件" @@ -72,54 +72,58 @@ msgstr "临时文件" msgid "File" msgstr "文件" -#: handlers.py:14 +#: handlers.py:16 msgid "Default" msgstr "" -#: links.py:26 +#: links.py:30 msgid "New document" msgstr "" -#: links.py:35 +#: links.py:39 msgid "Add new IMAP email" msgstr "" -#: links.py:40 +#: links.py:44 msgid "Add new POP3 email" msgstr "" -#: links.py:45 +#: links.py:49 msgid "Add new staging folder" msgstr "" -#: links.py:50 +#: links.py:54 msgid "Add new watch folder" msgstr "" -#: links.py:55 +#: links.py:59 msgid "Add new webform source" msgstr "" -#: links.py:60 links.py:74 +#: links.py:64 links.py:78 msgid "Delete" msgstr "" -#: links.py:64 +#: links.py:68 msgid "Edit" msgstr "" -#: links.py:68 +#: links.py:72 msgid "Document sources" msgstr "文档数据源" -#: links.py:80 +#: links.py:84 msgid "Upload new version" msgstr "" -#: links.py:83 +#: links.py:87 msgid "Logs" msgstr "" +#: links.py:91 +msgid "Check now" +msgstr "" + #: literals.py:10 literals.py:15 msgid "Always" msgstr "总是" @@ -132,15 +136,15 @@ msgstr "从不" msgid "Ask user" msgstr "询问用户" -#: literals.py:27 models.py:252 +#: literals.py:27 models.py:275 msgid "Web form" msgstr "" -#: literals.py:28 models.py:232 +#: literals.py:28 models.py:247 msgid "Staging folder" msgstr "" -#: literals.py:29 models.py:597 +#: literals.py:29 models.py:639 msgid "Watch folder" msgstr "" @@ -148,7 +152,7 @@ msgstr "" msgid "POP3 email" msgstr "" -#: literals.py:31 models.py:570 models.py:571 +#: literals.py:31 models.py:602 models.py:603 msgid "IMAP email" msgstr "" @@ -156,11 +160,11 @@ msgstr "" msgid "Label" msgstr "" -#: models.py:49 views.py:514 +#: models.py:49 views.py:536 msgid "Enabled" msgstr "" -#: models.py:144 models.py:603 +#: models.py:144 models.py:645 msgid "Source" msgstr "" @@ -172,214 +176,213 @@ msgstr "" msgid "Interactive sources" msgstr "" -#: models.py:161 models.py:578 +#: models.py:176 models.py:620 msgid "Server side filesystem path." msgstr "服务器端文件路径" -#: models.py:162 models.py:579 +#: models.py:177 models.py:621 msgid "Folder path" msgstr "" -#: models.py:165 +#: models.py:180 msgid "Width value to be passed to the converter backend." msgstr "宽度的值用于后台转换。" -#: models.py:166 +#: models.py:181 msgid "Preview width" msgstr "" -#: models.py:170 +#: models.py:185 msgid "Height value to be passed to the converter backend." msgstr "高度的值用于后台转换" -#: models.py:171 +#: models.py:186 msgid "Preview height" msgstr "" -#: models.py:175 models.py:243 +#: models.py:190 models.py:266 msgid "Whether to expand or not compressed archives." msgstr "是否要展开或者解压缩归档文件" -#: models.py:176 models.py:244 models.py:280 +#: models.py:191 models.py:267 models.py:303 msgid "Uncompress" msgstr "" -#: models.py:181 +#: models.py:196 msgid "Delete the file after is has been successfully uploaded." msgstr "在上传成功后,删除此文件。" -#: models.py:183 +#: models.py:198 msgid "Delete after upload" msgstr "" -#: models.py:207 +#: models.py:222 #, python-format msgid "Unable get list of staging files: %s" msgstr "未能获取暂存文件列表:%s" -#: models.py:228 +#: models.py:243 #, python-format msgid "Error deleting staging file; %s" msgstr "" -#: models.py:233 +#: models.py:248 msgid "Staging folders" msgstr "" -#: models.py:253 +#: models.py:276 msgid "Web forms" msgstr "" -#: models.py:260 models.py:261 +#: models.py:283 models.py:284 msgid "Out of process" msgstr "" -#: models.py:267 +#: models.py:290 msgid "Interval in seconds between checks for new documents." msgstr "" -#: models.py:268 +#: models.py:291 msgid "Interval" msgstr "" -#: models.py:273 +#: models.py:296 msgid "Assign a document type to documents uploaded from this source." msgstr "" -#: models.py:275 +#: models.py:298 msgid "Document type" msgstr "文档类型" -#: models.py:279 +#: models.py:302 msgid "Whether to expand or not, compressed archives." msgstr "" -#: models.py:329 +#: models.py:352 msgid "Interval source" msgstr "" -#: models.py:330 +#: models.py:353 msgid "Interval sources" msgstr "" -#: models.py:334 +#: models.py:366 msgid "Host" msgstr "" -#: models.py:335 +#: models.py:367 msgid "SSL" msgstr "" -#: models.py:337 +#: models.py:369 msgid "" "Typical choices are 110 for POP3, 995 for POP3 over SSL, 143 for IMAP, 993 " "for IMAP over SSL." msgstr "" -#: models.py:338 +#: models.py:370 msgid "Port" msgstr "" -#: models.py:340 +#: models.py:372 msgid "Username" msgstr "" -#: models.py:341 +#: models.py:373 msgid "Password" msgstr "密码" -#: models.py:345 +#: models.py:377 msgid "" "Name of the attachment that will contains the metadata type names and value " "pairs to be assigned to the rest of the downloaded attachments. Note: This " "attachment has to be the first attachment." msgstr "" -#: models.py:349 +#: models.py:381 msgid "Metadata attachment name" msgstr "" -#: models.py:353 +#: models.py:385 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's subject." msgstr "" -#: models.py:356 -#| msgid "Current metadata" +#: models.py:388 msgid "Subject metadata type" msgstr "" -#: models.py:360 +#: models.py:392 msgid "" "Select a metadata type valid for the document type selected in which to " "store the email's \"from\" value." msgstr "" -#: models.py:363 +#: models.py:395 msgid "From metadata type" msgstr "" -#: models.py:367 +#: models.py:399 msgid "Store the body of the email as a text document." msgstr "" -#: models.py:368 +#: models.py:400 msgid "Store email body" msgstr "" -#: models.py:377 +#: models.py:409 #, python-format msgid "" "Subject metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:391 +#: models.py:423 #, python-format msgid "" "\"From\" metadata type \"%(metadata_type)s\" is not valid for the document " "type: %(document_type)s" msgstr "" -#: models.py:441 +#: models.py:473 #, python-format msgid "attachment-%i" msgstr "" -#: models.py:480 +#: models.py:512 msgid "Email source" msgstr "" -#: models.py:481 +#: models.py:513 msgid "Email sources" msgstr "" -#: models.py:488 +#: models.py:520 msgid "Timeout" msgstr "" -#: models.py:525 models.py:526 +#: models.py:557 models.py:558 msgid "POP email" msgstr "" -#: models.py:534 +#: models.py:566 msgid "IMAP Mailbox from which to check for messages." msgstr "" -#: models.py:535 +#: models.py:567 msgid "Mailbox" msgstr "" -#: models.py:598 +#: models.py:640 msgid "Watch folders" msgstr "" -#: models.py:615 +#: models.py:657 msgid "Log entry" msgstr "" -#: models.py:616 +#: models.py:658 msgid "Log entries" msgstr "" @@ -409,7 +412,6 @@ msgstr "" #: tasks.py:31 #, python-format -#| msgid "Error creating source; %s" msgid "Error processing source: %s" msgstr "" @@ -417,27 +419,26 @@ msgstr "" msgid "Clear" msgstr "" -#: views.py:64 +#: views.py:63 #, python-format msgid "Log entries for source: %s" msgstr "" -#: views.py:129 wizards.py:49 +#: views.py:128 wizards.py:52 msgid "" -"No interactive document sources have been defined or none have been enabled," -" create one before proceeding." +"No interactive document sources have been defined or none have been enabled, " +"create one before proceeding." msgstr "" -#: views.py:155 views.py:173 -#| msgid "Document sources" +#: views.py:154 views.py:172 msgid "Document properties" msgstr "" -#: views.py:163 +#: views.py:162 msgid "Files in staging path" msgstr "" -#: views.py:262 +#: views.py:256 msgid "New document queued for uploaded and will be available shortly." msgstr "" @@ -446,65 +447,75 @@ msgstr "" msgid "Upload a local document from source: %s" msgstr "" -#: views.py:327 +#: views.py:331 #, python-format msgid "Document \"%s\" is blocked from uploading new versions." msgstr "" -#: views.py:381 -msgid "" -"New document version queued for uploaded and will be available shortly." +#: views.py:380 +msgid "New document version queued for uploaded and will be available shortly." msgstr "" -#: views.py:419 +#: views.py:418 #, python-format msgid "Upload a new version from source: %s" msgstr "" -#: views.py:460 +#: views.py:458 +#, python-format +msgid "Trigger check for source \"%s\"?" +msgstr "" + +#: views.py:471 +msgid "Source check queued." +msgstr "" + +#: views.py:485 #, python-format msgid "Create new source of type: %s" msgstr "新建数据源类型:%s" -#: views.py:480 +#: views.py:505 #, python-format -#| msgid "Delete document sources" msgid "Delete the source: %s?" msgstr "" -#: views.py:499 +#: views.py:524 #, python-format msgid "Edit source: %s" msgstr "" -#: views.py:510 +#: views.py:532 msgid "Type" msgstr "" -#: widgets.py:26 -msgid "Staging file page image" -msgstr "" - -#: wizards.py:38 +#: wizards.py:41 msgid "Step 1 of 3: Select document type" msgstr "" -#: wizards.py:39 +#: wizards.py:42 msgid "Step 2 of 3: Enter document metadata" msgstr "" -#: wizards.py:40 +#: wizards.py:43 msgid "Step 3 of 3: Select tags" msgstr "" -#: wizards.py:66 +#: wizards.py:69 msgid "Next step" msgstr "下一步" -#: wizards.py:68 +#: wizards.py:71 msgid "Document upload wizard" msgstr "" +#: wizards.py:98 +msgid "Tags to be attached." +msgstr "" + +#~ msgid "Staging file page image" +#~ msgstr "Staging file" + #~ msgid "Staging file delete successfully." #~ msgstr "Staging file delete successfully." @@ -587,9 +598,11 @@ msgstr "" #~ msgstr "Error deleting source transformation; %(error)s" #~ msgid "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgstr "" -#~ "Are you sure you wish to delete source transformation \"%(transformation)s\"" +#~ "Are you sure you wish to delete source transformation \"%(transformation)s" +#~ "\"" #~ msgid "Source transformation created successfully" #~ msgstr "Source transformation created successfully" diff --git a/mayan/apps/sources/models.py b/mayan/apps/sources/models.py index 5b7661a89a..234a4b985a 100644 --- a/mayan/apps/sources/models.py +++ b/mayan/apps/sources/models.py @@ -268,6 +268,21 @@ class SaneScanner(InteractiveSource): class StagingFolderSource(InteractiveSource): + """ + The Staging folder source is interactive but instead of displaying an + HTML form (like the Webform source) that allows users to freely choose a + file from their computers, shows a list of files from a filesystem folder. + When creating staging folders administrators choose a folder in the same + machine where Mayan is installed. This folder is then used as the + destination location of networked scanners or multifunctional copiers. + The scenario for staging folders is as follows: An user walks up to the + networked copier, scan several papers documents, returns to their + computer, open Mayan, select to upload a new document but choose the + previously defined staging folder source, now they see the list of + documents with a small preview and can proceed to process one by one and + convert the scanned files into Mayan EDMS documents. Staging folders are + useful when many users share a few networked scanners. + """ can_compress = True is_interactive = True source_type = SOURCE_CHOICE_STAGING @@ -349,6 +364,14 @@ class StagingFolderSource(InteractiveSource): class WebFormSource(InteractiveSource): + """ + The webform source is an HTML form with a drag and drop window that opens + a file browser on the user's computer. This Source is interactive, meaning + users control live what documents they want to upload. This source is + useful when admins want to allow users to upload any kind of file as + documents from their own computers such as when each user has their own + scanner. + """ can_compress = True is_interactive = True source_type = SOURCE_CHOICE_WEB_FORM @@ -447,6 +470,15 @@ class IntervalBaseModel(OutOfProcessSource): class EmailBaseModel(IntervalBaseModel): + """ + POP3 email and IMAP email sources are non-interactive sources that + periodically fetch emails from an email account using either the POP3 or + IMAP email protocol. These sources are useful when users need to scan + documents outside their office, they can photograph a paper document with + their phones and send the image to a designated email that is setup as a + Mayan POP3 or IMAP source. Mayan will periodically download the emails + and process them as Mayan documents. + """ host = models.CharField(max_length=128, verbose_name=_('Host')) ssl = models.BooleanField(default=True, verbose_name=_('SSL')) port = models.PositiveIntegerField(blank=True, null=True, help_text=_( @@ -688,6 +720,16 @@ class IMAPEmail(EmailBaseModel): class WatchFolderSource(IntervalBaseModel): + """ + The watch folder is another non-interactive source that like the email + source, works by periodically checking and processing documents. This + source instead of using an email account, monitors a filesystem folder. + Administrators can define watch folders, examples /home/mayan/watch_bills + or /home/mayan/watch_invoices and users just need to copy the documents + they want to upload as a bill or invoice to the respective filesystem + folder. Mayan will periodically scan these filesystem locations and + upload the files as documents, deleting them if configured. + """ source_type = SOURCE_CHOICE_WATCH folder_path = models.CharField( diff --git a/mayan/apps/sources/urls.py b/mayan/apps/sources/urls.py index c096f6ea10..01f41a7b68 100644 --- a/mayan/apps/sources/urls.py +++ b/mayan/apps/sources/urls.py @@ -7,9 +7,9 @@ from .api_views import ( APIStagingSourceListView, APIStagingSourceView ) from .views import ( - SetupSourceCreateView, SetupSourceDeleteView, SetupSourceEditView, - SetupSourceListView, SourceLogListView, StagingFileDeleteView, - UploadInteractiveVersionView, UploadInteractiveView + SetupSourceCheckView, SetupSourceCreateView, SetupSourceDeleteView, + SetupSourceEditView, SetupSourceListView, SourceLogListView, + StagingFileDeleteView, UploadInteractiveVersionView, UploadInteractiveView ) from .wizards import DocumentCreateWizard @@ -59,6 +59,10 @@ urlpatterns = [ r'^setup/(?P\w+)/create/$', SetupSourceCreateView.as_view(), name='setup_source_create' ), + url( + r'^setup/(?P\d+)/check/$', SetupSourceCheckView.as_view(), + name='setup_source_check' + ), # Document create views diff --git a/mayan/apps/sources/views.py b/mayan/apps/sources/views.py index d1e1c273e7..a4b3e95694 100644 --- a/mayan/apps/sources/views.py +++ b/mayan/apps/sources/views.py @@ -12,8 +12,8 @@ from common import menu_facet from common.models import SharedUploadedFile from common.utils import encapsulate from common.views import ( - MultiFormView, SingleObjectCreateView, SingleObjectDeleteView, - SingleObjectEditView, SingleObjectListView + ConfirmView, MultiFormView, SingleObjectCreateView, + SingleObjectDeleteView, SingleObjectEditView, SingleObjectListView ) from common.widgets import two_state_template from documents.models import DocumentType, Document @@ -37,7 +37,7 @@ from .permissions import ( permission_sources_setup_edit, permission_sources_setup_view, permission_staging_file_delete ) -from .tasks import task_source_handle_upload +from .tasks import task_check_interval_source, task_source_handle_upload from .utils import get_class, get_form_class, get_upload_form_class @@ -253,7 +253,12 @@ class UploadInteractiveView(UploadBaseView): ) ) - return HttpResponseRedirect(self.request.get_full_path()) + return HttpResponseRedirect( + '{}?{}'.format( + reverse(self.request.resolver_match.view_name), + self.request.META['QUERY_STRING'] + ), + ) def create_source_form_form(self, **kwargs): if hasattr(self.source, 'uncompress'): @@ -297,7 +302,10 @@ class UploadInteractiveView(UploadBaseView): if not isinstance(self.source, StagingFolderSource) and not isinstance(self.source, SaneScanner): context['subtemplates_list'][0]['context'].update( { - 'form_action': self.request.get_full_path(), + 'form_action': '{}?{}'.format( + reverse(self.request.resolver_match.view_name), + self.request.META['QUERY_STRING'] + ), 'form_class': 'dropzone', 'form_disable_submit': True, 'form_id': 'html5upload', @@ -313,6 +321,7 @@ class UploadInteractiveVersionView(UploadBaseView): self.document = get_object_or_404(Document, pk=kwargs['document_pk']) + # TODO: Try to remove this new version block check from here if NewVersionBlock.objects.is_blocked(self.document): messages.error( self.request, @@ -438,6 +447,32 @@ class StagingFileDeleteView(SingleObjectDeleteView): # Setup views +class SetupSourceCheckView(ConfirmView): + """ + Trigger the task_check_interval_source task for a given source to + test/debug their configuration irrespective of the schedule task setup. + """ + view_permission = permission_sources_setup_view + + def get_extra_context(self): + return { + 'object': self.get_object(), + 'title': _('Trigger check for source "%s"?') % self.get_object(), + } + + def get_object(self): + return get_object_or_404(Source.objects.select_subclasses(), pk=self.kwargs['pk']) + + def view_action(self): + task_check_interval_source.apply_async( + kwargs={ + 'source_id': self.get_object().pk + } + ) + + messages.success(self.request, _('Source check queued.')) + + class SetupSourceCreateView(SingleObjectCreateView): post_action_redirect = reverse_lazy('sources:setup_source_list') view_permission = permission_sources_setup_create @@ -493,9 +528,6 @@ class SetupSourceEditView(SingleObjectEditView): class SetupSourceListView(SingleObjectListView): - view_permission = permission_sources_setup_view - queryset = Source.objects.select_subclasses() - extra_context = { 'extra_columns': ( { @@ -512,3 +544,5 @@ class SetupSourceListView(SingleObjectListView): 'hide_link': True, 'title': _('Sources'), } + queryset = Source.objects.select_subclasses() + view_permission = permission_sources_setup_view diff --git a/mayan/apps/statistics/apps.py b/mayan/apps/statistics/apps.py index ba0f36b43f..d0909ad7c4 100644 --- a/mayan/apps/statistics/apps.py +++ b/mayan/apps/statistics/apps.py @@ -19,8 +19,8 @@ from .tasks import task_execute_statistic # NOQA - Force registration of task class StatisticsApp(MayanAppConfig): + has_tests = True name = 'statistics' - test = True verbose_name = _('Statistics') def ready(self): diff --git a/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.mo index 672822fbee..002384af0b 100644 Binary files a/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.po index a3f0cc2abf..0b59ee5ba8 100644 --- a/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/ar/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mohammed ALDOUB , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -24,7 +26,7 @@ msgstr "إحصائيات" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.mo index 26274c7e27..261fa5606c 100644 Binary files a/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.po index 0f4cea307c..976c54eb0b 100644 --- a/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/bg/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Iliya Georgiev , 2012 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Статистика" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.mo index d88811ab0a..816b0972bc 100644 Binary files a/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.po index eb470c7b54..e500feca6b 100644 --- a/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/bs_BA/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # www.ping.ba , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -24,7 +26,7 @@ msgstr "Statistika" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/da/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/da/LC_MESSAGES/django.mo index 34f06b0ae1..50943f7208 100644 Binary files a/mayan/apps/statistics/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/da/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/da/LC_MESSAGES/django.po index ec47a54150..af7640b312 100644 --- a/mayan/apps/statistics/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/da/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Mads L. Nielsen , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Statistik" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.mo index 2656da7e0b..83e6929390 100644 Binary files a/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.po index 0e1eb1f3f8..b8e94d83f0 100644 --- a/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/de_DE/LC_MESSAGES/django.po @@ -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: # Berny , 2015 # Mathias Behrle , 2014 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:24 links.py:28 permissions.py:7 @@ -26,7 +27,7 @@ msgstr "Statistiken" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Plan" diff --git a/mayan/apps/statistics/locale/en/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/en/LC_MESSAGES/django.mo index f1fa87dd04..a7fd5097ee 100644 Binary files a/mayan/apps/statistics/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/en/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/en/LC_MESSAGES/django.po index 56b621f2bb..6b271224e9 100644 --- a/mayan/apps/statistics/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -23,7 +23,7 @@ msgstr "" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/es/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/es/LC_MESSAGES/django.mo index fa9d1583be..a0f356aa4c 100644 Binary files a/mayan/apps/statistics/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/es/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/es/LC_MESSAGES/django.po index 01e6577cec..651b91dca3 100644 --- a/mayan/apps/statistics/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/es/LC_MESSAGES/django.po @@ -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: # Lory977 , 2015 # Roberto Rosario, 2014 @@ -10,14 +10,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:23+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:24 links.py:28 permissions.py:7 @@ -26,7 +27,7 @@ msgstr "Estadísticas" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Programa" diff --git a/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.mo index d65858ad27..6f3f4b7226 100644 Binary files a/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.po index 267d8a8785..209101fe81 100644 --- a/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/fa/LC_MESSAGES/django.po @@ -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: # Mehdi Amani , 2014 # Mohammad Dashtizadeh , 2013 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "آمار" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.mo index 2245b13036..e0b7009eb3 100644 Binary files a/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.po index 1f00d53b03..878f66e726 100644 --- a/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/fr/LC_MESSAGES/django.po @@ -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: # Pierre Lhoste , 2012 # Thierry Schott , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Thierry Schott \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "Statistiques" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Planification" diff --git a/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.mo index 291819e27c..e4d45026ac 100644 Binary files a/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.po index 0b0b18df86..6cbc819102 100644 --- a/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/hu/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Dezső József , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Statisztika" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/id/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/id/LC_MESSAGES/django.mo index a4c41cc528..b92d57313d 100644 Binary files a/mayan/apps/statistics/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/id/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/id/LC_MESSAGES/django.po index 1cf0504186..24983de4f2 100644 --- a/mayan/apps/statistics/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/id/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Sehat , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Statistik-statistik" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/it/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/it/LC_MESSAGES/django.mo index 6676cb110e..f5a3f8617c 100644 Binary files a/mayan/apps/statistics/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/it/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/it/LC_MESSAGES/django.po index c169cd9b98..f8fba15512 100644 --- a/mayan/apps/statistics/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/it/LC_MESSAGES/django.po @@ -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: # Giovanni Tricarico , 2016 # Marco Camplese , 2016 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-09-24 10:01+0000\n" "Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "Statistiche " #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Programma " diff --git a/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.mo index a93b512aaa..43b8a9e5db 100644 Binary files a/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.po index ef3ef753ce..f66207cf4b 100644 --- a/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 # Lucas Weel , 2012 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-11-09 16:41+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "Statistiek" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Schema" diff --git a/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.mo index 067786d37a..8e3dd6b395 100644 Binary files a/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.po index 7a2c9ae962..98fd6ba05a 100644 --- a/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/pl/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Wojtek Warczakowski , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Wojtek Warczakowski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -24,7 +26,7 @@ msgstr "Statystyki" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Harmonogram" diff --git a/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.mo index 45e6e7b5e4..8eea4c3775 100644 Binary files a/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.po index 06ad1b0ba4..e2ace3b902 100644 --- a/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/pt/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Manuela Silva , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Manuela Silva \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Estatísticas" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Agenda" diff --git a/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.mo index f84fc839f9..efe824526f 100644 Binary files a/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.po index f0f3d14b3b..b0421e0154 100644 --- a/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 # Rogerio Falcone , 2015 @@ -9,14 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-11-17 23:07+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:24 links.py:28 permissions.py:7 @@ -25,7 +26,7 @@ msgstr "Estatísticas" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Programação" diff --git a/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.mo index d6a402985a..4638fef926 100644 Binary files a/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.po index 1660cf993b..2499b96ff4 100644 --- a/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 # Stefaniu Criste , 2016 @@ -9,15 +9,17 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-04-17 12:06+0000\n" "Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -25,7 +27,7 @@ msgstr "Statistică" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.mo index 279a3ac462..ef6e10387b 100644 Binary files a/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.po index 1c9f5a96f4..3b80cb1519 100644 --- a/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 # Sergey Glita , 2013 @@ -9,15 +9,18 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-07-19 20:06+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -25,7 +28,7 @@ msgstr "Статистика" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "Запланировать" diff --git a/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.mo index 96d10306fe..46a621b0c0 100644 Binary files a/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.po index e98b40d96e..1c107bdfdc 100644 --- a/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/sl_SI/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # 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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-09-24 05:16+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:24 links.py:28 permissions.py:7 msgid "Statistics" @@ -23,7 +25,7 @@ msgstr "" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.mo index e9dbf37f1f..14e79835e9 100644 Binary files a/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.po index ca427b5d39..e422777387 100644 --- a/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/vi_VN/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Trung Phan Minh , 2013 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "Thống kê" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.mo index f85e963756..d12bbce2ef 100644 Binary files a/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.po index ecc16c85c2..61e68577ad 100644 --- a/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/statistics/locale/zh_CN/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Ford Guo , 2014 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:05+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:24 links.py:28 permissions.py:7 @@ -24,7 +25,7 @@ msgstr "统计" #. Translators: Schedule here is a verb, the 'schedule' at which the #. statistic will be updated -#: apps.py:43 +#: apps.py:33 msgid "Schedule" msgstr "" diff --git a/mayan/apps/storage/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/ar/LC_MESSAGES/django.mo index e0af7c8ebb..4786513f80 100644 Binary files a/mayan/apps/storage/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/ar/LC_MESSAGES/django.po b/mayan/apps/storage/locale/ar/LC_MESSAGES/django.po index 1d98a945f3..f905811945 100644 --- a/mayan/apps/storage/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/ar/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # 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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/bg/LC_MESSAGES/django.mo index 6c8fcea159..e9da8c3eeb 100644 Binary files a/mayan/apps/storage/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/bg/LC_MESSAGES/django.po b/mayan/apps/storage/locale/bg/LC_MESSAGES/django.po index d9cbff3beb..e12388e5d6 100644 --- a/mayan/apps/storage/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/bg/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.mo index b16699b58a..9eaaec813e 100644 Binary files a/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.po index 1ab354e68d..c3c2043e26 100644 --- a/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/bs_BA/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # 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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/rosarior/mayan-edms/language/bs_BA/)\n" +"Language-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/da/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/da/LC_MESSAGES/django.mo index 1588f0b80b..33be68b8f1 100644 Binary files a/mayan/apps/storage/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/da/LC_MESSAGES/django.po b/mayan/apps/storage/locale/da/LC_MESSAGES/django.po index 22e6558343..388f8b1d53 100644 --- a/mayan/apps/storage/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/da/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.mo index 4d77c4d6c2..55a8358627 100644 Binary files a/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.po index 7869c00e46..13cf6d2a41 100644 --- a/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/de_DE/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # 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 , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Mathias Behrle \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/en/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/en/LC_MESSAGES/django.mo index f1fa87dd04..a7fd5097ee 100644 Binary files a/mayan/apps/storage/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/en/LC_MESSAGES/django.po b/mayan/apps/storage/locale/en/LC_MESSAGES/django.po index 5619954167..02046ea64f 100644 --- a/mayan/apps/storage/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/mayan/apps/storage/locale/es/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/es/LC_MESSAGES/django.mo index c8c0abdce9..2f48b879e2 100644 Binary files a/mayan/apps/storage/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/es/LC_MESSAGES/django.po b/mayan/apps/storage/locale/es/LC_MESSAGES/django.po index 253e1a3c28..8e2c1aa860 100644 --- a/mayan/apps/storage/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/es/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Roberto Rosario, 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: apps.py:9 settings.py:10 diff --git a/mayan/apps/storage/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/fa/LC_MESSAGES/django.mo index d0f6c3b5dc..95532da33f 100644 Binary files a/mayan/apps/storage/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/fa/LC_MESSAGES/django.po b/mayan/apps/storage/locale/fa/LC_MESSAGES/django.po index e89f7ea07a..34320d931e 100644 --- a/mayan/apps/storage/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/fa/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/fr/LC_MESSAGES/django.mo index 2142f7d5b0..952f058897 100644 Binary files a/mayan/apps/storage/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/fr/LC_MESSAGES/django.po b/mayan/apps/storage/locale/fr/LC_MESSAGES/django.po index 4b63a94262..9cc881bdf2 100644 --- a/mayan/apps/storage/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/fr/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Christophe CHAUVET , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Christophe CHAUVET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/hu/LC_MESSAGES/django.mo index d3f6f52bca..8121ee93ea 100644 Binary files a/mayan/apps/storage/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/hu/LC_MESSAGES/django.po b/mayan/apps/storage/locale/hu/LC_MESSAGES/django.po index 66572c9709..1d85a660d7 100644 --- a/mayan/apps/storage/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/hu/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/id/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/id/LC_MESSAGES/django.mo index 237412df64..80cc3ae06d 100644 Binary files a/mayan/apps/storage/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/id/LC_MESSAGES/django.po b/mayan/apps/storage/locale/id/LC_MESSAGES/django.po index c9a9dc72dc..019c3d2133 100644 --- a/mayan/apps/storage/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/id/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/it/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/it/LC_MESSAGES/django.mo index a9f5fa4ac3..2707c70272 100644 Binary files a/mayan/apps/storage/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/it/LC_MESSAGES/django.po b/mayan/apps/storage/locale/it/LC_MESSAGES/django.po index 71410927b8..5dd337ac26 100644 --- a/mayan/apps/storage/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/it/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Giovanni Tricarico , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Giovanni Tricarico \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.mo index 70aceefa93..9e19fb61f3 100644 Binary files a/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.po index 79a3599d17..1ed2707fdc 100644 --- a/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/nl_NL/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Evelijn Saaltink , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-10-28 09:41+0000\n" "Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/pl/LC_MESSAGES/django.mo index 73e24eb3c6..206eea8bd0 100644 Binary files a/mayan/apps/storage/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/pl/LC_MESSAGES/django.po b/mayan/apps/storage/locale/pl/LC_MESSAGES/django.po index d2f4362e47..7a76fb3796 100644 --- a/mayan/apps/storage/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/pl/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Daniel Winiarski , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-08-04 09:32+0000\n" "Last-Translator: Daniel Winiarski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/pt/LC_MESSAGES/django.mo index da99c6af02..50fb74d2ae 100644 Binary files a/mayan/apps/storage/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/pt/LC_MESSAGES/django.po b/mayan/apps/storage/locale/pt/LC_MESSAGES/django.po index c85879a8dd..f3cce06404 100644 --- a/mayan/apps/storage/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/pt/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Manuela Silva , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-03-21 21:10+0000\n" "Last-Translator: Manuela Silva \n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.mo index 3b965c6d95..c0263783dd 100644 Binary files a/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.po index 38d7c664bb..b7ee218736 100644 --- a/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/pt_BR/LC_MESSAGES/django.po @@ -1,21 +1,22 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Aline Freitas , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-11-04 19:03+0000\n" "Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-" +"edms/language/pt_BR/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.mo index 2b60498a7f..f536748367 100644 Binary files a/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.po index 9d3cfcac89..e6536e0d88 100644 --- a/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/ro_RO/LC_MESSAGES/django.po @@ -1,22 +1,24 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # Stefaniu Criste , 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-04-17 09:42+0000\n" "Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" #: apps.py:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/ru/LC_MESSAGES/django.mo index 100272eb83..21f3e4dac7 100644 Binary files a/mayan/apps/storage/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/ru/LC_MESSAGES/django.po b/mayan/apps/storage/locale/ru/LC_MESSAGES/django.po index b18fe918d9..fefa08ed69 100644 --- a/mayan/apps/storage/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/ru/LC_MESSAGES/django.po @@ -1,22 +1,25 @@ # SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. -# +# # Translators: # lilo.panic, 2016 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2016-07-14 01:15+0000\n" "Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.mo index 6360098ac0..e5a3441993 100644 Binary files a/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.po index 82331b5c0d..9244484173 100644 --- a/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/sl_SI/LC_MESSAGES/django.po @@ -1,21 +1,23 @@ # 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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" #: apps.py:9 settings.py:10 msgid "Storage" diff --git a/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.mo index c08af74dc8..229223cb17 100644 Binary files a/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.po index 8645d1e283..292d94ed7e 100644 --- a/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/vi_VN/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.mo index a9433c9333..fb39674e97 100644 Binary files a/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.po index 163d16dc06..101968558c 100644 --- a/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/storage/locale/zh_CN/LC_MESSAGES/django.po @@ -1,20 +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-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2015-08-20 19:23+0000\n" "Last-Translator: FULL NAME \n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:9 settings.py:10 diff --git a/mayan/apps/tags/api_views.py b/mayan/apps/tags/api_views.py index 522a5cac38..5d96310c31 100644 --- a/mayan/apps/tags/api_views.py +++ b/mayan/apps/tags/api_views.py @@ -15,15 +15,43 @@ from rest_api.permissions import MayanPermission from .models import Tag from .permissions import ( - permission_tag_create, permission_tag_delete, permission_tag_edit, - permission_tag_remove, permission_tag_view + permission_tag_attach, permission_tag_create, permission_tag_delete, + permission_tag_edit, permission_tag_remove, permission_tag_view ) from .serializers import ( - DocumentTagSerializer, NewDocumentTagSerializer, NewTagSerializer, - TagSerializer + DocumentTagSerializer, NewDocumentTagSerializer, TagSerializer, + WritableTagSerializer ) +class APITagListView(generics.ListCreateAPIView): + filter_backends = (MayanObjectPermissionsFilter,) + mayan_object_permissions = {'GET': (permission_tag_view,)} + mayan_view_permissions = {'POST': (permission_tag_create,)} + permission_classes = (MayanPermission,) + queryset = Tag.objects.all() + + def get_serializer_class(self): + if self.request.method == 'GET': + return TagSerializer + elif self.request.method == 'POST': + return WritableTagSerializer + + def get(self, *args, **kwargs): + """ + Returns a list of all the tags. + """ + + return super(APITagListView, self).get(*args, **kwargs) + + def post(self, *args, **kwargs): + """ + Create a new tag. + """ + + return super(APITagListView, self).post(*args, **kwargs) + + class APITagView(generics.RetrieveUpdateDestroyAPIView): filter_backends = (MayanObjectPermissionsFilter,) mayan_object_permissions = { @@ -33,7 +61,6 @@ class APITagView(generics.RetrieveUpdateDestroyAPIView): 'PUT': (permission_tag_edit,) } queryset = Tag.objects.all() - serializer_class = TagSerializer def delete(self, *args, **kwargs): """ @@ -49,6 +76,12 @@ class APITagView(generics.RetrieveUpdateDestroyAPIView): return super(APITagView, self).get(*args, **kwargs) + def get_serializer_class(self): + if self.request.method == 'GET': + return TagSerializer + else: + return WritableTagSerializer + def patch(self, *args, **kwargs): """ Edit the selected tag. @@ -64,34 +97,6 @@ class APITagView(generics.RetrieveUpdateDestroyAPIView): return super(APITagView, self).put(*args, **kwargs) -class APITagListView(generics.ListCreateAPIView): - filter_backends = (MayanObjectPermissionsFilter,) - mayan_object_permissions = {'GET': (permission_tag_view,)} - mayan_view_permissions = {'POST': (permission_tag_create,)} - permission_classes = (MayanPermission,) - queryset = Tag.objects.all() - - def get_serializer_class(self): - if self.request.method == 'GET': - return TagSerializer - elif self.request.method == 'POST': - return NewTagSerializer - - def get(self, *args, **kwargs): - """ - Returns a list of all the tags. - """ - - return super(APITagListView, self).get(*args, **kwargs) - - def post(self, *args, **kwargs): - """ - Create a new tag. - """ - - return super(APITagListView, self).post(*args, **kwargs) - - class APITagDocumentListView(generics.ListAPIView): """ Returns a list of all the documents tagged by a particular tag. @@ -112,15 +117,21 @@ class APITagDocumentListView(generics.ListAPIView): class APIDocumentTagListView(generics.ListCreateAPIView): - """ - Returns a list of all the tags attached to a document. - """ - filter_backends = (MayanObjectPermissionsFilter,) - mayan_object_permissions = {'GET': (permission_tag_view,)} + mayan_object_permissions = { + 'GET': (permission_tag_view,), + 'POST': (permission_tag_attach,) + } + + def get(self, *args, **kwargs): + """ + Returns a list of all the tags attached to a document. + """ + + return super(APIDocumentTagListView, self).get(*args, **kwargs) def get_document(self): - return get_object_or_404(Document, pk=self.kwargs['pk']) + return get_object_or_404(Document, pk=self.kwargs['document_pk']) def get_queryset(self): document = self.get_document() @@ -132,6 +143,12 @@ class APIDocumentTagListView(generics.ListCreateAPIView): return document.attached_tags().all() + def get_serializer_class(self): + if self.request.method == 'GET': + return DocumentTagSerializer + elif self.request.method == 'POST': + return NewDocumentTagSerializer + def get_serializer_context(self): """ Extra context provided to the serializer class. @@ -143,12 +160,6 @@ class APIDocumentTagListView(generics.ListCreateAPIView): 'view': self } - def get_serializer_class(self): - if self.request.method == 'GET': - return DocumentTagSerializer - elif self.request.method == 'POST': - return NewDocumentTagSerializer - def perform_create(self, serializer): serializer.save(document=self.get_document()) diff --git a/mayan/apps/tags/apps.py b/mayan/apps/tags/apps.py index c0c39ef7cd..397eb2bcfc 100644 --- a/mayan/apps/tags/apps.py +++ b/mayan/apps/tags/apps.py @@ -29,8 +29,8 @@ from .widgets import widget_document_tags, widget_single_tag class TagsApp(MayanAppConfig): + has_tests = True name = 'tags' - test = True verbose_name = _('Tags') def ready(self): diff --git a/mayan/apps/tags/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/ar/LC_MESSAGES/django.mo index b68eb4af8d..9bcd99fa43 100644 Binary files a/mayan/apps/tags/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/ar/LC_MESSAGES/django.po b/mayan/apps/tags/locale/ar/LC_MESSAGES/django.po index 2ef5e5d294..3cc67a866a 100644 --- a/mayan/apps/tags/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,50 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "الكلمات الاستدلالية" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "الوثائق" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +58,27 @@ msgstr "" msgid "Edit" msgstr "تحرير" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "اللون" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,31 +106,39 @@ msgstr "إضافة كلمات استدلالية للوثائق" msgid "Remove tags from documents" msgstr "إزالة الكلمات الاستدلالية من الوثائق" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "يجب توفير وثيقة واحدة عالاقل." - -#: views.py:86 +#: views.py:35 #, python-format -msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" -msgstr "الوثيقة \"%(document)s\" مربوطة مسبقاً بالكلمات الاستدلالية \"%(tag)s\"" +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:96 -#, python-format -msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "تم ربط الكلمة الاستدلالية \"%(tag)s\" بالوثيقة \"%(document)s\" ." +#: views.py:42 +msgid "Attach" +msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" @@ -136,25 +146,44 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "يجب توفير كلمة استدلالية واحدة عالاقل" - -#: views.py:182 +#: views.py:54 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "الكلمة الاستدلالية \"%s\" مسحت بنجاح." +msgid "Attach tags to document: %s" +msgstr "" -#: views.py:186 +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "خطأ أثناء مسح الكلمة الاستدلالية \"%(tag)s\": %(error)s" +msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" +msgstr "الوثيقة \"%(document)s\" مربوطة مسبقاً بالكلمات الاستدلالية \"%(tag)s\"" -#: views.py:196 +#: views.py:99 +#, python-format +msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgstr "تم ربط الكلمة الاستدلالية \"%(tag)s\" بالوثيقة \"%(document)s\" ." + +#: views.py:108 +msgid "Create tag" +msgstr "" + +#: views.py:119 +#, python-format +msgid "Tag delete request performed on %(count)d tag" +msgstr "" + +#: views.py:121 +#, python-format +msgid "Tag delete request performed on %(count)d tags" +msgstr "" + +#: views.py:128 msgid "Will be removed from all documents." msgstr "ستتم الإزالة من جميع الوثائق." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" @@ -164,70 +193,120 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "الكلمة الاستدلالية \"%s\" مسحت بنجاح." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "خطأ أثناء مسح الكلمة الاستدلالية \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "يجب توفير وثيقة واحد عالاقل مربوطة بكلمات استدلالية" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "ازالة الكلمة الاستدلالية من الوثيقة: %s" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "ازالة الكلمة الاستدلالية من الوثائق: %s" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "إزالة" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "الوثيقة \"%(document)s\" لم تربط مع: \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "الكلمة الاستدلالية \"%(tag)s\" أزيلت بنجاح من الوثيقة \"%(document)s\"." +msgstr "" +"الكلمة الاستدلالية \"%(tag)s\" أزيلت بنجاح من الوثيقة \"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" +#~ msgstr[3] "2b1f894eebfe4fd9c93a2a121387867c_pl_3" +#~ msgstr[4] "2b1f894eebfe4fd9c93a2a121387867c_pl_4" +#~ msgstr[5] "2b1f894eebfe4fd9c93a2a121387867c_pl_5" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -280,9 +359,6 @@ msgstr "الكلمة الاستدلالية \"%(tag)s\" أزيلت بنجاح م #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/bg/LC_MESSAGES/django.mo index ef999b129e..041d8f8ca2 100644 Binary files a/mayan/apps/tags/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/bg/LC_MESSAGES/django.po b/mayan/apps/tags/locale/bg/LC_MESSAGES/django.po index 5b2a818072..8717d4248c 100644 --- a/mayan/apps/tags/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/bg/LC_MESSAGES/django.po @@ -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: # Pavlin Koldamov , 2012 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Етикети" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Документи" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +57,27 @@ msgstr "" msgid "Edit" msgstr "Редактиране" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Цвят" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,123 +105,191 @@ msgstr "Закачане етикет към документи" msgid "Remove tags from documents" msgstr "Премахване на етикети от документи" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Трябва да посочите поне един документ." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Трябва да се осигури най-малко един етикет." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Етикет \"%s\" е изтрит успешно." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Грешка при изтриване на етикет \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Ще бъде премахнат от всички документи." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Етикет \"%s\" е изтрит успешно." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Грешка при изтриване на етикет \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Премахнете" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -272,9 +341,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.mo index e52a90b654..a50c0be027 100644 Binary files a/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.po index 9d58d5d9e3..2d27887abb 100644 --- a/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,50 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tagovi" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumenti" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +58,27 @@ msgstr "" msgid "Edit" msgstr "Urediti" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Boja" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,125 +106,195 @@ msgstr "Prikači tagove na dokumente" msgid "Remove tags from documents" msgstr "Ukloni tagove iz dokumenta" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Mora biti obezbjeđen bar jedan dokument." - -#: views.py:86 +#: views.py:35 #, python-format -msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" -msgstr "Dokument \"%(document)s\" je već tagovan kao \"%(tag)s\"" +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:96 -#, python-format -msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "Tag \"%(tag)s\" uspješno prikačen na dokument \"%(document)s\"." +#: views.py:42 +msgid "Attach" +msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Mora biti obezbjeđen bar jedan tag." - -#: views.py:182 +#: views.py:54 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" uspješno izbrisan." +msgid "Attach tags to document: %s" +msgstr "" -#: views.py:186 +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Greška brisanja taga \"%(tag)s\": %(error)s" +msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" +msgstr "Dokument \"%(document)s\" je već tagovan kao \"%(tag)s\"" -#: views.py:196 +#: views.py:99 +#, python-format +msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgstr "Tag \"%(tag)s\" uspješno prikačen na dokument \"%(document)s\"." + +#: views.py:108 +msgid "Create tag" +msgstr "" + +#: views.py:119 +#, python-format +msgid "Tag delete request performed on %(count)d tag" +msgstr "" + +#: views.py:121 +#, python-format +msgid "Tag delete request performed on %(count)d tags" +msgstr "" + +#: views.py:128 msgid "Will be removed from all documents." msgstr "Bit će uklonjen iz svih dokumenata." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" uspješno izbrisan." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Greška brisanja taga \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Mora biti obezbjeđen bar jedan tagovani dokument." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Ukloni tag iz dokumenta: %s." - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Ukloni tag iz dokumenata: %s." - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Ukloniti" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Dokument \"%(document)s\" nije tagovan kao \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" uspješno uklonjen iz dokumenta \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -274,9 +346,6 @@ msgstr "Tag \"%(tag)s\" uspješno uklonjen iz dokumenta \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/da/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/da/LC_MESSAGES/django.mo index 8a4bc9828e..3cdea872f5 100644 Binary files a/mayan/apps/tags/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/da/LC_MESSAGES/django.po b/mayan/apps/tags/locale/da/LC_MESSAGES/django.po index fa43de7037..8338aa2ce5 100644 --- a/mayan/apps/tags/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/da/LC_MESSAGES/django.po @@ -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: # Mads L. Nielsen , 2013 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tags" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumenter" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +57,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Farve" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,123 +105,191 @@ msgstr "Vedhæft tags til dokumenter" msgid "Remove tags from documents" msgstr "Fjern tags fra dokumenter" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Skal angive mindst ét ​​dokument." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Dokumentet \"%(document)s\" er allerede mærket som \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Tag \"%(tag)s\" vedhæftet til at dokumentet \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Der skal angives mindst én tag." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" slettet." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Fejl ved sletning af tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Vil blive fjernet fra alle dokumenter." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" slettet." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Fejl ved sletning af tag \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Skal angive mindst ét tagget dokument." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Fjern tag fra dokument: %s." - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Fjern tag fra dokumenter: %s." - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#: views.py:244 +msgid "Remove" msgstr "" -#: views.py:367 +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Dokumentet \"%(document)s\" ikke blev kodet som \"%(tag)s\"" +#: views.py:265 +msgid "Tags to be removed." +msgstr "" -#: views.py:388 +#: views.py:290 +#, python-format +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" + +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" blev fjernet fra dokumentet \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -272,9 +341,6 @@ msgstr "Tag \"%(tag)s\" blev fjernet fra dokumentet \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.mo index 2b63b3b3d0..f5f43e7f71 100644 Binary files a/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.po index 66b1952f91..d6b3bd252d 100644 --- a/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/de_DE/LC_MESSAGES/django.po @@ -1,58 +1,56 @@ # 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 , 2015-2016 +# Jesaja Everling , 2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-05-20 21:33+0000\n" -"Last-Translator: Tobias Paepke \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tags" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Vorschau" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumente" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Dem Dokument hinzuzufügende Tags." - #: links.py:14 msgid "Remove tag" msgstr "Tag entfernen" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Tag anhängen" +msgid "Attach tags" +msgstr "Tags zuweisen" #: links.py:20 msgid "Remove tags" msgstr "Tags entfernen" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Neuen Tag erstellen" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Löschen" @@ -60,23 +58,27 @@ msgstr "Löschen" msgid "Edit" msgstr "Bearbeiten" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "Alle" + +#: models.py:18 msgid "Label" msgstr "Text" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Farbe" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Tag" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Tag" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Tags" @@ -104,123 +106,193 @@ msgstr "Tags zu Dokumenten hinzufügen" msgid "Remove tags from documents" msgstr "Tags von Dokumenten entfernen" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" +"Komma getrennte Liste der Primary Keys der Dokumente denen dieser Tag " +"zugeordnet werden soll" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Primärschlüssel des hinzuzufügenden Tags" -#: views.py:34 -msgid "Create tag" -msgstr "Tag erstellen" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Es muss mindestens ein Dokument angegeben werden." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "Hinzufügen" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "Tags Dokument zuweisen: %s" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "Zuzuweisende Tags." + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Dokument \"%(document)s\" ist schon mit \"%(tag)s\" markiert" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Tag \"%(tag)s\" erfolgreich an Dokument \"%(document)s\" angehängt" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Tag an Dokument anhängen" -msgstr[1] "Tag an Dokumente anhängen" +#: views.py:108 +msgid "Create tag" +msgstr "Tag erstellen" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Es muss Mindestens einen Tag angeben werden" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" erfolgreich gelöscht" +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Fehler beim Löschen des Tags \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Wird von allen Dokumenten entfernt" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Den ausgwählten Tag löschen?" msgstr[1] "Die ausgwählten Tags löschen?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "Tag löschen: %s" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" erfolgreich gelöscht" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Fehler beim Löschen des Tags \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Tag %s bearbeiten" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Dokumente mit Tag %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Tags für Dokument %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Es muss mindestens ein markiertes Dokument angegeben werden" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Tag von Dokument %s entfernen" +msgid "Tag remove request performed on %(count)d document" +msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Tag von Dokumenten %s entfernen." +msgid "Tag remove request performed on %(count)d documents" +msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Entfernen" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Wollen Sie den Tag %(tag)s wirklich vom Dokument %(document)s entfernen?" +msgid "Remove tags from document: %s" +msgstr "Tags entfernen für Dokument: %s" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "Zu entfernende Tags." + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Tag \"%(tag)s\" wirklich von den Dokumenten %(documents)s entfernen?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "Dokument \"%(document)s\" wurde nicht als \"%(tag)s getaggt" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Wollen Sie die Tags %(tags)s vom Dokument %(document)s entfernen?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Tags \"%(tags)s\" wirklich von den Dokumenten %(documents)s entfernen?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Dokument \"%(document)s war nicht mit \"%(tag)s\" markiert" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" erfolgreich von Dokument \"%(document)s\" entfernt." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -272,9 +344,6 @@ msgstr "Tag \"%(tag)s\" erfolgreich von Dokument \"%(document)s\" entfernt." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/en/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/en/LC_MESSAGES/django.mo index 30e20e69f1..6ec6134d2a 100644 Binary files a/mayan/apps/tags/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/en/LC_MESSAGES/django.po b/mayan/apps/tags/locale/en/LC_MESSAGES/django.po index acae517c0b..77e54c99a1 100644 --- a/mayan/apps/tags/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2012-12-12 06:07+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,26 +18,21 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tags" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 #, fuzzy msgid "Preview" msgstr "preview" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 #, fuzzy msgid "Documents" msgstr "document" -#: forms.py:53 -#, fuzzy -msgid "Tags to attach to the document." -msgstr "Attach tags to documents" - #: links.py:14 #, fuzzy msgid "Remove tag" @@ -45,7 +40,7 @@ msgstr "remove tag" #: links.py:17 links.py:24 #, fuzzy -msgid "Attach tag" +msgid "Attach tags" msgstr "attach tag" #: links.py:20 @@ -53,12 +48,12 @@ msgstr "attach tag" msgid "Remove tags" msgstr "remove tag" -#: links.py:28 +#: links.py:29 #, fuzzy msgid "Create new tag" msgstr "Create new tags" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 #, fuzzy msgid "Delete" msgstr "delete" @@ -68,25 +63,29 @@ msgstr "delete" msgid "Edit" msgstr "Edit tags" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Color" -#: models.py:34 +#: models.py:33 #, fuzzy msgid "Tag" msgstr "Tags" -#: models.py:53 +#: models.py:47 #, fuzzy msgid "Document tag" msgstr "document" -#: models.py:54 +#: models.py:48 #, fuzzy msgid "Document tags" msgstr "document" @@ -115,137 +114,218 @@ msgstr "Attach tags to documents" msgid "Remove tags from documents" msgstr "Remove tags from documents" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" + +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" + +#: views.py:42 #, fuzzy -msgid "Create tag" -msgstr "create tag" +msgid "Attach" +msgstr "attach tag" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Must provide at least one document." +#: views.py:44 +#, fuzzy +#| msgid "Attach tags to documents" +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "Attach tags to documents" +msgstr[1] "Attach tags to documents" -#: views.py:86 +#: views.py:54 +#, fuzzy, python-format +#| msgid "Attach tag to document: %s." +msgid "Attach tags to document: %s" +msgstr "Attach tag to document: %s." + +#: views.py:63 +#, fuzzy +msgid "Tags to be attached." +msgstr "Attach tags to documents" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Document \"%(document)s\" is already tagged as \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -#: views.py:110 +#: views.py:108 #, fuzzy -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Attach tags to documents" -msgstr[1] "Attach tags to documents" +msgid "Create tag" +msgstr "create tag" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Must provide at least one tag." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" deleted successfully." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Error deleting tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Will be removed from all documents." -#: views.py:199 +#: views.py:132 #, fuzzy msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Are you sure you wish to delete the tag: %s?" msgstr[1] "Are you sure you wish to delete the tag: %s?" -#: views.py:231 +#: views.py:142 +#, fuzzy, python-format +#| msgid "Delete tags" +msgid "Delete tag: %s" +msgstr "Delete tags" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" deleted successfully." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Error deleting tag \"%(tag)s\": %(error)s" + +#: views.py:171 #, fuzzy, python-format msgid "Edit tag: %s" msgstr "edit tag: %s" -#: views.py:244 +#: views.py:201 #, fuzzy, python-format msgid "Documents with the tag: %s" msgstr "documents with the tag \"%s\"" -#: views.py:271 +#: views.py:224 #, fuzzy, python-format msgid "Tags for document: %s" msgstr "tags for: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Must provide at least one tagged document." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" +msgstr "" + +#: views.py:237 +#, python-format +msgid "Tag remove request performed on %(count)d documents" +msgstr "" + +#: views.py:244 +#, fuzzy +msgid "Remove" +msgstr "remove tag" + +#: views.py:246 +#, fuzzy +#| msgid "Remove tags from documents" +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "Remove tags from documents" +msgstr[1] "Remove tags from documents" + +#: views.py:256 +#, fuzzy, python-format +#| msgid "Remove tag from document: %s." +msgid "Remove tags from document: %s" msgstr "Remove tag from document: %s." -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Remove tag from documents: %s." - -#: views.py:344 -#, fuzzy, python-format -#| msgid "" -#| "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " -#| "%(document)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -"Are you sure you wish to remove the tag \"%(tag)s\" from the document: " -"%(document)s?" -#: views.py:351 +#: views.py:290 #, fuzzy, python-format -#| msgid "" -#| "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " -#| "%(documents)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "" -"Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " -"%(documents)s?" - -#: views.py:360 -#, fuzzy, python-format -#| msgid "" -#| "Are you sure you wish to remove the tags: %(tags)s from the document: " -#| "%(document)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" -"Are you sure you wish to remove the tags: %(tags)s from the document: " -"%(document)s?" - -#: views.py:367 -#, fuzzy, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" -"Are you sure you wish to remove the tags %(tag)s from the documents: " -"%(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" +#| msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#, fuzzy +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "Attach tags to documents" +#~ msgstr[1] "Attach tags to documents" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#, fuzzy +#~| msgid "" +#~| "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~| "%(document)s?" +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#, fuzzy +#~| msgid "" +#~| "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~| "%(documents)s?" +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#, fuzzy +#~| msgid "" +#~| "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~| "%(document)s?" +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#, fuzzy +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #, fuzzy #~ msgid "remove tags" #~ msgstr "remove tags" @@ -300,9 +380,6 @@ msgstr "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/es/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/es/LC_MESSAGES/django.mo index 0f458e7487..d8ba7adcc2 100644 Binary files a/mayan/apps/tags/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/es/LC_MESSAGES/django.po b/mayan/apps/tags/locale/es/LC_MESSAGES/django.po index 97ace02593..2e0ef3be57 100644 --- a/mayan/apps/tags/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/es/LC_MESSAGES/django.po @@ -1,60 +1,57 @@ # 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: # jmcainzos , 2014 # Lory977 , 2015 -# Roberto Rosario, 2015-2016 +# Roberto Rosario, 2015-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-05-09 01:32+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:38+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etiquetas" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Presentación preliminar" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documentos" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Etiquetas para anejar al documento." - #: links.py:14 msgid "Remove tag" msgstr "Remover etiqueta" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Adjuntar etiqueta" +msgid "Attach tags" +msgstr "Anejar etiqueta" #: links.py:20 msgid "Remove tags" msgstr "Remover etiquetas" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Crear nueva etiqueta" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Eliminar" @@ -62,23 +59,27 @@ msgstr "Eliminar" msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "Todos" + +#: models.py:18 msgid "Label" msgstr "Etiqueta" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Color" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Etiqueta" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Etiqueta de documento" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Etiquetas de documentos" @@ -106,122 +107,197 @@ msgstr "Etiquetar documentos" msgid "Remove tags from documents" msgstr "Quitar etiquetas de los documentos" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" +"Lista separada por comas de los ID primarios de documentos a los que se " +"adjuntará esta etiqueta." + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" +"URL de la API que apunta a una etiqueta en relación con el documento " +"adjunto a ella. Esta URL es diferente de la URL canónica de la etiqueta." + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Llave primaria de la etiqueta a ser agregada." -#: views.py:34 -msgid "Create tag" -msgstr "Crear etiqueta" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "Solicitud de anexión de etiquetas realizada en %(count)d documento" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Debe proporcionar al menos un documento." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "Solicitud de anexión de etiquetas realizada en %(count)d documentos" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "Anejar" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "Anejar etiquetas al documento" +msgstr[1] "Anejar etiquetas a documentos" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "Anejar etiquetas al documento: %s" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "Etiquetas a ser anejadas." + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Documento \"%(document)s \" ya está etiquetado como \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Etiqueta \"%(tag)s\" puesta al documento \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Adjuntar etiqueta al documento" -msgstr[1] "Adjuntar etiqueta a los documentos" +#: views.py:108 +msgid "Create tag" +msgstr "Crear etiqueta" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Debe indicar al menos una etiqueta." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etiqueta \"%s\" borrada con éxito." +msgid "Tag delete request performed on %(count)d tag" +msgstr "Petición para borrar etiqueta sometida para %(count)d etiqueta" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Error al eliminar la etiqueta \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "Petición para borrar etiqueta sometida para %(count)d etiquetas" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Se eliminará de todos los documentos." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "¿Eliminar la etiqueta seleccionada?" msgstr[1] "¿Eliminar las etiquetas seleccionadas?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "Borrar etiqueta: %s" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etiqueta \"%s\" borrada con éxito." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Error al eliminar la etiqueta \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Editar etiqueta: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Documentos con la etiqueta: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Etiquetas del documento: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Debe proporcionar al menos un documento etiquetado." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Quitar etiqueta del documento: %s." +msgid "Tag remove request performed on %(count)d document" +msgstr "" +"Solicitud de eliminación de etiquetas realizada en %(count)d documento " -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Quitar etiqueta de los documentos: %s." +msgid "Tag remove request performed on %(count)d documents" +msgstr "" +"Solicitud de eliminación de etiquetas realizada en %(count)d documentos" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Eliminar" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "Remover etiquetas de documento" +msgstr[1] "Remover etiquetas de documentos" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "¿Remover la etiqueta \"%(tag)s\" del documento: %(document)s?" +msgid "Remove tags from document: %s" +msgstr "Remover etiquetas de documento: %s" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "Etiquetas a ser removidas." + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "¿Remover la etiqueta \"%(tag)s\" de los documentos: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "Documento \"%(document)s\" no esta etiquetado con \"%(tag)s" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "¿Remover las etiquetas: %(tags)s del documento: %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "¿Remover las etiquetas %(tags)s de los documentos: %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Documento \"%(document)s\" no estaba etiquetado como \"%(tag)s \"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "Etiqueta \"%(tag)s\" eliminada con éxito del documento \"%(document)s\"." +msgstr "" +"Etiqueta \"%(tag)s\" eliminada con éxito del documento \"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -274,9 +350,6 @@ msgstr "Etiqueta \"%(tag)s\" eliminada con éxito del documento \"%(document)s\" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/fa/LC_MESSAGES/django.mo index 2a0d66deb5..a8bb5d87b9 100644 Binary files a/mayan/apps/tags/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/fa/LC_MESSAGES/django.po b/mayan/apps/tags/locale/fa/LC_MESSAGES/django.po index 5280182912..a3ea517f45 100644 --- a/mayan/apps/tags/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/fa/LC_MESSAGES/django.po @@ -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: # Mohammad Dashtizadeh , 2013 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "برچسبها" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "پیش دید ویا دیدن" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "اسناد" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "برداشتن برچسب" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "الصاق برچسب" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "برداشتن برچسبها" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "برچسب جدید" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "حذف" @@ -60,23 +57,27 @@ msgstr "حذف" msgid "Edit" msgstr "ویرایش" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "برچسب" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "رنگ" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "برچسب" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,121 +105,187 @@ msgstr "الصاق برچسبها به اسناد" msgid "Remove tags from documents" msgstr "حذف برچسبهای سند" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" -msgstr "ایجادبرچسب" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "حداقل یک سند باید ارایه شود" +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "سند \"%(document)s\" دارای برچسب \"%(tag)s\" میباشد." -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "برچسب \"%(tag)s\" با موفقیت به سند \"%(document)s\" متصل شد." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "اتصال برچسب به سند" +#: views.py:108 +msgid "Create tag" +msgstr "ایجادبرچسب" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "حداقل یک برچسب باید ارایه شود." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "حذف موفق برچسب \"%s\" " +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "خطا در زمان حذف برچسب: \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "از کلیه اسناد حذف خواهد شد." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "حذف موفق برچسب \"%s\" " + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "خطا در زمان حذف برچسب: \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "ویرایش برچسب: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "اسناد دارای برچسب : %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "برچسب سند : %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "باید حداقل یک سند برچسب دار ارایه شود." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "حذف برچسب از سند: %s" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "حذف برچسب از اسناد: %s" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "حذف" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "سند \"%(document)s\" دارای برچسب \"%(tag)s\" نمیباشد." +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "برچسب \"%(tag)s\" با موفقیت از سند \"%(document)s\" برداشته شد." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -270,9 +337,6 @@ msgstr "برچسب \"%(tag)s\" با موفقیت از سند \"%(document)s\" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/fr/LC_MESSAGES/django.mo index 1f188df70e..d0bad6224b 100644 Binary files a/mayan/apps/tags/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/fr/LC_MESSAGES/django.po b/mayan/apps/tags/locale/fr/LC_MESSAGES/django.po index 85164ca4c7..7408881231 100644 --- a/mayan/apps/tags/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/fr/LC_MESSAGES/django.po @@ -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 , 2015 @@ -12,50 +12,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-25 12:07+0000\n" -"Last-Translator: Baptiste GAILLET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etiquettes" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Prévisualiser" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documents" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Tags a attacher au document" - #: links.py:14 msgid "Remove tag" msgstr "Supprimer une étiquette" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Rattacher une étiquette" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Supprimer des étiquettes" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Créer une nouvelle étiquette" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Supprimer" @@ -63,23 +60,27 @@ msgstr "Supprimer" msgid "Edit" msgstr "Modifier" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Étiquette" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Couleur" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Étiquette" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Étiquette de document" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Étiquettes de document" @@ -107,122 +108,194 @@ msgstr "Rattacher des étiquettes aux documents" msgid "Remove tags from documents" msgstr "Retirer des étiquettes au document" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "La clé primaire pour l'étiquette sera ajoutée." -#: views.py:34 -msgid "Create tag" -msgstr "Créer une étiquette" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Il est nécessaire d'indiquer au moins un document." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Le document \"%(document)s\" est déjà étiqueté comme \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "L'étiquette \"%(tag)s\" a été attachée avec succès au document \"%(document)s\"." +msgstr "" +"L'étiquette \"%(tag)s\" a été attachée avec succès au document \"%(document)s" +"\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Rattacher une étiquette au document" -msgstr[1] "Rattacher une étiquette aux documents" +#: views.py:108 +msgid "Create tag" +msgstr "Créer une étiquette" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Vous devez fournir au moins une étiquette" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etiquette \"%s\" supprimée avec succès" +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Erreur lors de la suppression de l'étiquette \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Sera supprimée de tous les documents" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Supprimer l'étiquette sélectionnée?" msgstr[1] "Supprimer les étiquettes sélectionnées?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etiquette \"%s\" supprimée avec succès" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Erreur lors de la suppression de l'étiquette \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Modifier l'étiquette:%s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Documents avec l'étiquette: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Étiquettes du document: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Il est nécessaire d'indiquer au moins un document étiqueté." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Supprimer l'étiquette du document: %s" +msgid "Tag remove request performed on %(count)d document" +msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Supprimer l'étiquette des documents: %s" +msgid "Tag remove request performed on %(count)d documents" +msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Supprimer" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Supprimer l'étiquette \"%(tag)s\" du document %(document)s?" +msgid "Remove tags from document: %s" +msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Supprimer l'étiquette \"%(tag)s\" des documents %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Supprimer les étiquettes \"%(tags)s\" du document %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Supprimer les étiquettes \"%(tags)s\" des documents %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Le document \"%(document)s\" n'a pas été étiqueté avec \"%(tag)s\"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "L'étiquette \"%(tag)s\" à été supprimée avec succès du document \"%(document)s\"." +msgstr "" +"L'étiquette \"%(tag)s\" à été supprimée avec succès du document " +"\"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -275,9 +348,6 @@ msgstr "L'étiquette \"%(tag)s\" à été supprimée avec succès du document \" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/hu/LC_MESSAGES/django.mo index 78263a536f..cc5002bbb6 100644 Binary files a/mayan/apps/tags/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/hu/LC_MESSAGES/django.po b/mayan/apps/tags/locale/hu/LC_MESSAGES/django.po index f5610de111..fec25d2cd1 100644 --- a/mayan/apps/tags/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/hu/LC_MESSAGES/django.po @@ -1,57 +1,54 @@ # 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-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Címkék" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "dokumentumok" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -59,23 +56,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -103,123 +104,191 @@ msgstr "" msgid "Remove tags from documents" msgstr "" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Adjon meg legalább egy dokumentumot." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" - -#: views.py:160 -msgid "Must provide at least one tag." +#: views.py:108 +msgid "Create tag" msgstr "" -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." +msgid "Tag delete request performed on %(count)d tag" msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -271,9 +340,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/id/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/id/LC_MESSAGES/django.mo index 3c8ac587c0..e33e45dd5a 100644 Binary files a/mayan/apps/tags/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/id/LC_MESSAGES/django.po b/mayan/apps/tags/locale/id/LC_MESSAGES/django.po index 8a895fd530..57b7d3fd1d 100644 --- a/mayan/apps/tags/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/id/LC_MESSAGES/django.po @@ -1,57 +1,54 @@ # 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-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumen" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -59,23 +56,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -103,121 +104,187 @@ msgstr "" msgid "Remove tags from documents" msgstr "" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Harus memberikan setidaknya satu dokumen." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" - -#: views.py:160 -msgid "Must provide at least one tag." +#: views.py:108 +msgid "Create tag" msgstr "" -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." +msgid "Tag delete request performed on %(count)d tag" msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "hapus" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -269,9 +336,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/it/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/it/LC_MESSAGES/django.mo index b78100f1a7..831c479329 100644 Binary files a/mayan/apps/tags/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/it/LC_MESSAGES/django.po b/mayan/apps/tags/locale/it/LC_MESSAGES/django.po index 63be8e09fd..b5d418550e 100644 --- a/mayan/apps/tags/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/it/LC_MESSAGES/django.po @@ -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: # Giovanni Tricarico , 2016 @@ -12,50 +12,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-09-24 10:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etichette" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Anteprima " -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documenti" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Tag da attaccare al documento." - #: links.py:14 msgid "Remove tag" msgstr "Rimuovi etichetta" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Allega etichetta" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Rimuovi etichette" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Crea nuova etichetta" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Cancella" @@ -63,23 +60,27 @@ msgstr "Cancella" msgid "Edit" msgstr "Modifica" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "Tutti" + +#: models.py:18 msgid "Label" msgstr "Etichetta" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Colori" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Etichetta " -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Etichetta documento " -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Etichette documento " @@ -107,122 +108,193 @@ msgstr "Applicare i tag ai documenti" msgid "Remove tags from documents" msgstr "Rimuovi etichetta dal documento" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Chiave primaria dell'etichetta da aggiungere " -#: views.py:34 -msgid "Create tag" -msgstr "Crea etichetta " +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Fornire almeno un documento " +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Il documento \"%(document)s\" è stato già etichettato come \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "L'etichetta \"%(tag)s\" è stata allegata con successo al documento \"%(document)s\"" +msgstr "" +"L'etichetta \"%(tag)s\" è stata allegata con successo al documento " +"\"%(document)s\"" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Aggiungi tag al documento" -msgstr[1] "Aggiungi tag ai documenti" +#: views.py:108 +msgid "Create tag" +msgstr "Crea etichetta " -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Devi fornire almeno un'etichetta" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etichetta \"%s\" cancellata con successo." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Errore nel cancellare l'etichetta \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Sarà rimossa da tutti i documenti" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Cancellare il tag selezionato?" msgstr[1] "Cancellare i tag selezionati?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etichetta \"%s\" cancellata con successo." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Errore nel cancellare l'etichetta \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Modifica etichetta: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Documenti con l'etichetta: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Etichette per il documento: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Fornire almeno un documento etichettato " - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Rimuovi l'etichetta dal documento: %s" +msgid "Tag remove request performed on %(count)d document" +msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Rimuovi l'etichetta dai documenti: %s" +msgid "Tag remove request performed on %(count)d documents" +msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Rimuovi" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Rimuovere l'etichetta \"%(tag)s\" dal documento %(document)s?" +msgid "Remove tags from document: %s" +msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Rimuovere l'etichetta \"%(tag)s\" dai documenti: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Rimuovere le etichette: %(tags)s dal documento: %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Rimuovere le etichette %(tags)s dai documenti: %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Il documento \"%(document)s\" non è stato etichettato come \"%(tag)s\"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "Etichetta \"%(tag)s\" rimossa con successo dal documento \"%(document)s\"." +msgstr "" +"Etichetta \"%(tag)s\" rimossa con successo dal documento \"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -275,9 +347,6 @@ msgstr "Etichetta \"%(tag)s\" rimossa con successo dal documento \"%(document)s\ #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.mo index 223a67dff7..86b0c62ba6 100644 Binary files a/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.po index 4f10953a7a..3fe713650f 100644 --- a/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-09 15:49+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Labels" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Preview" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documenten" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "Label verwijderen" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Voeg label bij" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Labels verwijderen" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Maak een nieuw label aan" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Verwijder" @@ -60,23 +57,27 @@ msgstr "Verwijder" msgid "Edit" msgstr "bewerken" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Label" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Kleur" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Label" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Documentlabel" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Documentlabels" @@ -104,123 +105,192 @@ msgstr "Label documenten" msgid "Remove tags from documents" msgstr "Labels van documenten verwijderen" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" -msgstr "maak label aan" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "U dient minstens 1 document aan te geven." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Document \"%(document)s\" is al gelabeld met \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Label \"%(tag)s\" is gekoppeld aan document \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" +#: views.py:108 +msgid "Create tag" +msgstr "maak label aan" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "U moet minimaal een label aanbrengen." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Label \"%s\" verwijderd." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Fout bij het verwijderen van label: \"%(tag)s\". Foutmelding: %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Zal van alle documenten worden verwijderd." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Geselecteerd label verwijderen?" msgstr[1] "Geselecteerde labels verwijderen?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Label \"%s\" verwijderd." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "" +"Fout bij het verwijderen van label: \"%(tag)s\". Foutmelding: %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Bewerk label: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "U dient minstens 1 gelabeld document aan te brengen." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Verwijder label van document: %s" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Verwijder label van documenten: %s" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Verwijder" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Document \"%(document)s\" is niet gelabeld als: \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Label: \"%(tag)s\" is verwijderd van document \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -272,9 +342,6 @@ msgstr "Label: \"%(tag)s\" is verwijderd van document \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/pl/LC_MESSAGES/django.mo index d748866723..77804a2562 100644 Binary files a/mayan/apps/tags/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/pl/LC_MESSAGES/django.po b/mayan/apps/tags/locale/pl/LC_MESSAGES/django.po index 7aa09f160d..fcf050d610 100644 --- a/mayan/apps/tags/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/pl/LC_MESSAGES/django.po @@ -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: # Annunnaky , 2015 @@ -11,50 +11,49 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tagi" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Podgląd" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumenty" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "Usuń tag" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Dołącz tag" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Usuń tagi" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Utwórz nowy tag" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Usunąć" @@ -62,23 +61,27 @@ msgstr "Usunąć" msgid "Edit" msgstr "Edytuj" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etykieta" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Kolor" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Tag" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -106,125 +109,199 @@ msgstr "Załącz tagi do dokumentów" msgid "Remove tags from documents" msgstr "Usuń tagi z dokumentów" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" -msgstr "Utwórz tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Musisz podać co najmniej jeden dokument." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Dokument \"%(document)s\" jest już otagowany jako \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Dodanie taga \"%(tag)s\" do dokumentu \"%(document)s\" powiodło się." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Załącz tag do dokumentu" -msgstr[1] "Załącz tag do dokumentów" -msgstr[2] "Załącz tag do dokumentów" +#: views.py:108 +msgid "Create tag" +msgstr "Utwórz tag" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Musisz wprowadzić conajmniej jeden tag." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Usunięto tag \"%s\"." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Błąd podczas usuwania taga \"%(tag)s\":%(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Zostanie usunięty ze wszystkich dokumentów." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" msgstr[2] "" +msgstr[3] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Usunięto tag \"%s\"." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Błąd podczas usuwania taga \"%(tag)s\":%(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Edytuj tag: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Dokumenty z tagiem: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Tagi dla dokumentu: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Musisz podać conajmniej jeden otagowany dokument." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Usuń tag z dokumentu: %s." - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Usuń tagi z dokumentów: %s." - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Usuń" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Dokument \"%(document)s\" nie był otagowany jako \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" usunięty z dokumentu \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" +#~ msgstr[3] "2b1f894eebfe4fd9c93a2a121387867c_pl_3" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -276,9 +353,6 @@ msgstr "Tag \"%(tag)s\" usunięty z dokumentu \"%(document)s\"." #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/pt/LC_MESSAGES/django.mo index e09b344967..3d7f564fbd 100644 Binary files a/mayan/apps/tags/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/pt/LC_MESSAGES/django.po b/mayan/apps/tags/locale/pt/LC_MESSAGES/django.po index 81cde1bb0d..cfa632d663 100644 --- a/mayan/apps/tags/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/pt/LC_MESSAGES/django.po @@ -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: # Emerson Soares , 2011 @@ -11,50 +11,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etiquetas" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documentos" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Eliminar" @@ -62,23 +59,27 @@ msgstr "Eliminar" msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Nome" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Cor" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -106,123 +107,191 @@ msgstr "Atribuir etiquetas aos documentos" msgid "Remove tags from documents" msgstr "Remover etiquetas de documentos" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Deve fornecer pelo menos um documento." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" -msgstr[1] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Deve fornecer pelo menos uma etiqueta." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etiqueta \"%s\" removida com sucesso." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Erro ao excluir etiqueta \" %(tag)s \": %(error)s " +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Será removida de todos os documentos." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etiqueta \"%s\" removida com sucesso." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Erro ao excluir etiqueta \" %(tag)s \": %(error)s " + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Remover" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -274,9 +343,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.mo index 995c537541..ecf8158e3e 100644 Binary files a/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.po index 202cf6074d..e84fcdc01f 100644 --- a/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/pt_BR/LC_MESSAGES/django.po @@ -1,60 +1,58 @@ # 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 , 2016 +# Jadson Ribeiro , 2017 # Roberto Rosario, 2012 # Rogerio Falcone , 2015 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-17 23:07+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+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" "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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etiquetas" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Visualizar" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documentos" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Etiquetas para anexar ao documento." - #: links.py:14 msgid "Remove tag" msgstr "Remover Etiqueta" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "anexar etiqueta a: %s" +msgid "Attach tags" +msgstr "Anexar etiquetas" #: links.py:20 msgid "Remove tags" msgstr "Remover Etiquetas" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Criar nova Etiqueta" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Excluir" @@ -62,23 +60,27 @@ msgstr "Excluir" msgid "Edit" msgstr "Editar" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "Todos" + +#: models.py:18 msgid "Label" msgstr "Label" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Cor" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Etiqueta" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Etiqueta do documento" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Etiquetas do documento" @@ -106,122 +108,197 @@ msgstr "Anexar etiquetas para documentos" msgid "Remove tags from documents" msgstr "Remover etiquetas de documentos" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" +"Lista separada por vírgulas das chaves primárias do documento para as quais " +"essa etiqueta será anexada." + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" +"API URL que aponta para uma tag em relação ao documento anexado a ela. Esse " +"URL é diferente do URL da etiqueta que está de acordo com as normas " +"estabelecidas." + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Chave primária da etiqueta a ser adicionada." -#: views.py:34 -msgid "Create tag" -msgstr "Criar Etiqueta" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "Solicitação de anexo de etiqueta realizada no documento %(count)d" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Deve fornecer, pelo menos, um documento." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "Solicitação de anexo de etiqueta realizada em %(count)d documentos" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "Anexar" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "Anexar etiquetas para documentos" +msgstr[1] "Anexar etiquetas para documentos" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "Anexar etiquetas ao documento: %s" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "Etiquetas a serem anexadas." + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Documento \"%(document)s\" já está marcado como \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "Etiqueta \"%(tag)s\" anexada com sucesso para o documento \"%(document)s\"." +msgstr "" +"Etiqueta \"%(tag)s\" anexada com sucesso para o documento \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Adicionar etiqueta ao documento" -msgstr[1] "Adicionar etiqueta aos documentos" +#: views.py:108 +msgid "Create tag" +msgstr "Criar Etiqueta" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Deve fornecer pelo menos uma etiqueta." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Etiqueta \"%s\" removida com sucesso." +msgid "Tag delete request performed on %(count)d tag" +msgstr "Solicitação de exclusão de etiqueta executada na etiqueta %(count)d" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Erro ao excluir etiqueta \" %(tag)s \": %(error)s " +msgid "Tag delete request performed on %(count)d tags" +msgstr "Solicitação de exclusão de etiquetas executada em %(count)d etiquetas" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Será removido de todos os documentos." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Apagar a etiqueta selecionada?" msgstr[1] "Apagar as etiquetas selecionadas?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "Excluir etiqueta: %s" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Etiqueta \"%s\" removida com sucesso." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Erro ao excluir etiqueta \" %(tag)s \": %(error)s " + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Editar etiqueta:%s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Os documentos com a etiqueta: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Etiqueta para documento: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Deve fornecer pelo menos um documento marcado." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Remove etiqueta do documento: %s." +msgid "Tag remove request performed on %(count)d document" +msgstr "Solicitação de remoção de etiqueta realizado em %(count)d documento" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Remove etiqueta dos documentos: %s." +msgid "Tag remove request performed on %(count)d documents" +msgstr "Solicitação de remoção de etiqueta executada em %(count)d documentos" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Remover" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "Remover etiquetas de documentos" +msgstr[1] "Remover etiquetas de documentos" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Remover a etiqueta \"%(tag)s\" do documento: %(document)s?" +msgid "Remove tags from document: %s" +msgstr "Remover etiquetas de documentos: %s" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "Etiquetas a serem removidas." + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Remover a etiqueta \"%(tag)s\" dos documentos: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "Documento \"%(document)s\" não estava etiquetado como \"%(tag)s" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Remover as etiquetas: %(tags)s do documento: %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Remover as etiquetas %(tags)s dos documentos: %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Documento \"%(document)s\" não estava etiquetado como \"%(tag)s\"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "Etiqueta \"%(tag)s\" removida com sucesso do documento \"%(document)s\"." +msgstr "" +"Etiqueta \"%(tag)s\" removida com sucesso do documento \"%(document)s\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -274,9 +351,6 @@ msgstr "Etiqueta \"%(tag)s\" removida com sucesso do documento \"%(document)s\". #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.mo index 6eedd58ce7..e48537f37a 100644 Binary files a/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.po index f712089923..03bc4b2b1b 100644 --- a/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Abalaru Paul , 2013 @@ -11,50 +11,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-17 09:44+0000\n" -"Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+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" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Etichete" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Documente" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "Elimină eticheta" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Atașează etichetă" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Elimină etichete" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Șterge" @@ -62,23 +60,27 @@ msgstr "Șterge" msgid "Edit" msgstr "Modifică" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Etichetă" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Culoare" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Etichetă" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -106,124 +108,197 @@ msgstr "Atașați etichete la documente" msgid "Remove tags from documents" msgstr "Îndepărtați etichetele de pe documente" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Trebuie să furnizeze cel puțin un document." - -#: views.py:86 +#: views.py:35 #, python-format -msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" -msgstr "Documentul \"%(document)s\" este deja etichetat cu \"%(tag)s\"" +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:96 -#, python-format -msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." -msgstr "Eticheta \"%(tag)s\" a fost atașată cu succes la documentul \"%(document)s\"." +#: views.py:42 +msgid "Attach" +msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Trebuie selectată cel puțin o etichetă." - -#: views.py:182 +#: views.py:54 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Eticheta \"%s\" a fost ștersă cu succes." +msgid "Attach tags to document: %s" +msgstr "" -#: views.py:186 +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Eroare la ștergerea etichetă \"%(tag)s\": %(error)s" +msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" +msgstr "Documentul \"%(document)s\" este deja etichetat cu \"%(tag)s\"" -#: views.py:196 +#: views.py:99 +#, python-format +msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgstr "" +"Eticheta \"%(tag)s\" a fost atașată cu succes la documentul \"%(document)s\"." + +#: views.py:108 +msgid "Create tag" +msgstr "" + +#: views.py:119 +#, python-format +msgid "Tag delete request performed on %(count)d tag" +msgstr "" + +#: views.py:121 +#, python-format +msgid "Tag delete request performed on %(count)d tags" +msgstr "" + +#: views.py:128 msgid "Will be removed from all documents." msgstr "Va fi eliminată din toate documentele." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Eticheta \"%s\" a fost ștersă cu succes." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Eroare la ștergerea etichetă \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Modifică eticheta: %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Documente cu eticheta: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Etichetele documentului: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Trebuie să atribuiţi cel puțin o etichetă ." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Eliminați eticheta documentului:% s." - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Eliminați eticheta de la documentele:% s." - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Şterge" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Documentul \"%(document)s\" nu a fost etichetat cu \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." -msgstr "Eticheta \"%(tag)s\" a fost eliminată cu succes din documentul \"%(document)s\"." +msgstr "" +"Eticheta \"%(tag)s\" a fost eliminată cu succes din documentul \"%(document)s" +"\"." + +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" #~ msgid "remove tags" #~ msgstr "remove tags" @@ -276,9 +351,6 @@ msgstr "Eticheta \"%(tag)s\" a fost eliminată cu succes din documentul \"%(docu #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/ru/LC_MESSAGES/django.mo index b86ee3ea2b..c7bbd2f8a4 100644 Binary files a/mayan/apps/tags/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/ru/LC_MESSAGES/django.po b/mayan/apps/tags/locale/ru/LC_MESSAGES/django.po index f449b78be3..69689a79da 100644 --- a/mayan/apps/tags/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,50 +9,49 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-02 04:15+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Метки" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "Предварительный просмотр" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Документы" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "Метки, прикрепляемые к документу." - #: links.py:14 msgid "Remove tag" msgstr "Снять метку" #: links.py:17 links.py:24 -msgid "Attach tag" -msgstr "Прикрепить метку" +msgid "Attach tags" +msgstr "" #: links.py:20 msgid "Remove tags" msgstr "Снять метки" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "Создать новую метку" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "Удалить" @@ -60,23 +59,27 @@ msgstr "Удалить" msgid "Edit" msgstr "Редактировать" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Надпись" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Цвет" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "Метка" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "Метка документа" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "Метки документов" @@ -104,55 +107,82 @@ msgstr "Прикрепить метки к документам" msgid "Remove tags from documents" msgstr "Удаление тегов из документов" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "Первичный ключ добавляемой метки." -#: views.py:34 -msgid "Create tag" -msgstr "Создать метку" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" +msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Должен быть хотя бы один документ." +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "\"%(document)s\" уже имеет метку \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Метка \"%(tag)s\" присвоена \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "Прикрепить метку к документам" -msgstr[1] "Прикрепить метки к документам" -msgstr[2] "Прикрепить метки к документам" -msgstr[3] "Прикрепить метки к документам" +#: views.py:108 +msgid "Create tag" +msgstr "Создать метку" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Должна быть хотя бы одна метка." - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Метка \"%s\"удалён." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Ошибка при удалении метки \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Будет удален из всех документов." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "Удалить выбранную метку?" @@ -160,71 +190,116 @@ msgstr[1] "Удалить выбранные метки?" msgstr[2] "Удалить выбранные метки?" msgstr[3] "Удалить выбранные метки?" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Метка \"%s\"удалён." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Ошибка при удалении метки \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "Редактировать метку %s" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "Документы с меткой: %s" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "Метки документа: %s" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Следует указать хотя бы один помеченный документ." - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Снять метку с документа %s." +msgid "Tag remove request performed on %(count)d document" +msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." -msgstr "Снять метку с документов %s." +msgid "Tag remove request performed on %(count)d documents" +msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "Удалить" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" -msgstr "Снять метку \"%(tag)s\" с документа %(document)s?" +msgid "Remove tags from document: %s" +msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" -msgstr "Снять метку \"%(tag)s\" с документов %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "Снять метки \"%(tags)s\" с документа %(document)s?" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "Снять метки \"%(tags)s\" с документов %(documents)s?" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "\"%(document)s\" не помечен как \"%(tag)s\"" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Метка \"%(tag)s\" снята с документа \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" +#~ msgstr[3] "2b1f894eebfe4fd9c93a2a121387867c_pl_3" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -276,9 +351,6 @@ msgstr "Метка \"%(tag)s\" снята с документа \"%(document)s\" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.mo index 72bc579bf1..0b816c99c1 100644 Binary files a/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.po index 78def0b01c..88d34b222d 100644 --- a/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/sl_SI/LC_MESSAGES/django.po @@ -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: # kontrabant , 2013 @@ -9,50 +9,48 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-17 08:59+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Oznake" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Dokumenti" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +58,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "Oznaka" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Barva" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,55 +106,82 @@ msgstr "" msgid "Remove tags from documents" msgstr "Odstrani oznake iz dokumenta" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" -msgstr "" - -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Potrebno je podati vsaj en dokument" - -#: views.py:86 +#: views.py:33 #, python-format -msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:96 +#: views.py:35 #, python-format -msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgid "Tag attach request performed on %(count)d documents" msgstr "" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" msgstr[0] "" msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "" - -#: views.py:182 +#: views.py:54 #, python-format -msgid "Tag \"%s\" deleted successfully." +msgid "Attach tags to document: %s" msgstr "" -#: views.py:186 +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "" -#: views.py:196 +#: views.py:99 +#, python-format +msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." +msgstr "" + +#: views.py:108 +msgid "Create tag" +msgstr "" + +#: views.py:119 +#, python-format +msgid "Tag delete request performed on %(count)d tag" +msgstr "" + +#: views.py:121 +#, python-format +msgid "Tag delete request performed on %(count)d tags" +msgstr "" + +#: views.py:128 msgid "Will be removed from all documents." msgstr "" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" @@ -160,71 +189,116 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:336 +#: views.py:237 #, python-format -msgid "Remove tag from documents: %s." +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:344 +#: views.py:244 +msgid "Remove" +msgstr "" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:351 +#: views.py:265 +msgid "Tags to be removed." +msgstr "" + +#: views.py:290 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" msgstr "" -#: views.py:360 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" -msgstr "" - -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" -msgstr "" - -#: views.py:379 -#, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "" - -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" +#~ msgstr[1] "2b1f894eebfe4fd9c93a2a121387867c_pl_1" +#~ msgstr[2] "2b1f894eebfe4fd9c93a2a121387867c_pl_2" +#~ msgstr[3] "2b1f894eebfe4fd9c93a2a121387867c_pl_3" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -276,9 +350,6 @@ msgstr "" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.mo index d48b0dd7da..ad745f7c98 100644 Binary files a/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.po index 7b5e8bbcc4..53a9d7940a 100644 --- a/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,50 +9,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "Tags" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "Tài liệu" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -60,23 +57,27 @@ msgstr "" msgid "Edit" msgstr "Sửa" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "Màu" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -104,121 +105,187 @@ msgstr "Gắn tag cho tài liệu" msgid "Remove tags from documents" msgstr "Xóa tag từ tài liệu" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "Cần cung cấp ít nhất một tài liệu" +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "Tài liệu \"%(document)s\" đã được tag \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "Tag \"%(tag)s\" được gắn thành công cho tài liệu \"%(document)s\"." -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "Cần cung cấp ít nhất một tag" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "Tag \"%s\" xóa thành công." +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "Lỗi xóa tag \"%(tag)s\": %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "Sẽ được xóa trong tất cả tài liệu." -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "Tag \"%s\" xóa thành công." + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "Lỗi xóa tag \"%(tag)s\": %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "Cần cung cấp ít nhất một tài liệu đã được tag" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "Xóa tag từ tài liệu: %s" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "Xóa tag từ các tài liệu: %s" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "Xóa" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "Tài liệu \"%(document)s\" không thể được tag như là \"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "Tag \"%(tag)s\" đã được xóa thành công từ tài liệu \"%(document)s\"." +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -270,9 +337,6 @@ msgstr "Tag \"%(tag)s\" đã được xóa thành công từ tài liệu \"%(doc #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.mo index d900244e2d..6b56c34a11 100644 Binary files a/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.po index 9349954ebb..86d99688fa 100644 --- a/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/tags/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -10,50 +10,47 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:33+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:33 apps.py:73 apps.py:90 forms.py:34 forms.py:52 links.py:40 -#: links.py:43 models.py:35 permissions.py:7 views.py:139 +#: apps.py:34 apps.py:78 apps.py:85 apps.py:104 apps.py:106 forms.py:31 +#: links.py:40 menus.py:8 models.py:34 permissions.py:7 views.py:181 msgid "Tags" msgstr "标签" -#: apps.py:68 apps.py:80 +#: apps.py:73 apps.py:93 msgid "Preview" msgstr "" -#: apps.py:84 models.py:24 +#: apps.py:97 models.py:22 msgid "Documents" msgstr "文档" -#: forms.py:53 -msgid "Tags to attach to the document." -msgstr "" - #: links.py:14 msgid "Remove tag" msgstr "" #: links.py:17 links.py:24 -msgid "Attach tag" +msgid "Attach tags" msgstr "" #: links.py:20 msgid "Remove tags" msgstr "" -#: links.py:28 +#: links.py:29 msgid "Create new tag" msgstr "" -#: links.py:32 links.py:45 +#: links.py:32 links.py:45 views.py:130 msgid "Delete" msgstr "" @@ -61,23 +58,27 @@ msgstr "" msgid "Edit" msgstr "" -#: models.py:20 +#: links.py:43 +msgid "All" +msgstr "" + +#: models.py:18 msgid "Label" msgstr "" -#: models.py:22 +#: models.py:20 msgid "Color" msgstr "颜色" -#: models.py:34 +#: models.py:33 msgid "Tag" msgstr "" -#: models.py:53 +#: models.py:47 msgid "Document tag" msgstr "" -#: models.py:54 +#: models.py:48 msgid "Document tags" msgstr "" @@ -105,121 +106,187 @@ msgstr "给文档添加标签" msgid "Remove tags from documents" msgstr "从文档中删除标签" -#: serializers.py:46 +#: serializers.py:38 +msgid "" +"Comma separated list of document primary keys to which this tag will be " +"attached." +msgstr "" + +#: serializers.py:85 +msgid "" +"API URL pointing to a tag in relation to the document attached to it. This " +"URL is different than the canonical tag URL." +msgstr "" + +#: serializers.py:105 msgid "Primary key of the tag to be added." msgstr "" -#: views.py:34 -msgid "Create tag" +#: views.py:33 +#, python-format +msgid "Tag attach request performed on %(count)d document" msgstr "" -#: views.py:59 -msgid "Must provide at least one document." -msgstr "必须提供至少一个文件。" +#: views.py:35 +#, python-format +msgid "Tag attach request performed on %(count)d documents" +msgstr "" -#: views.py:86 +#: views.py:42 +msgid "Attach" +msgstr "" + +#: views.py:44 +msgid "Attach tags to document" +msgid_plural "Attach tags to documents" +msgstr[0] "" + +#: views.py:54 +#, python-format +msgid "Attach tags to document: %s" +msgstr "" + +#: views.py:63 +msgid "Tags to be attached." +msgstr "" + +#: views.py:88 #, python-format msgid "Document \"%(document)s\" is already tagged as \"%(tag)s\"" msgstr "文档 \"%(document)s\"已经被标记为 \"%(tag)s\"" -#: views.py:96 +#: views.py:99 #, python-format msgid "Tag \"%(tag)s\" attached successfully to document \"%(document)s\"." msgstr "文档\"%(document)s\"添加标签\"%(tag)s\"成功。" -#: views.py:110 -msgid "Attach tag to document" -msgid_plural "Attach tag to documents" -msgstr[0] "" +#: views.py:108 +msgid "Create tag" +msgstr "" -#: views.py:160 -msgid "Must provide at least one tag." -msgstr "必须至少提供一个标签" - -#: views.py:182 +#: views.py:119 #, python-format -msgid "Tag \"%s\" deleted successfully." -msgstr "标签 \"%s\" 删除成功" +msgid "Tag delete request performed on %(count)d tag" +msgstr "" -#: views.py:186 +#: views.py:121 #, python-format -msgid "Error deleting tag \"%(tag)s\": %(error)s" -msgstr "删除标签\"%(tag)s\"失败: %(error)s" +msgid "Tag delete request performed on %(count)d tags" +msgstr "" -#: views.py:196 +#: views.py:128 msgid "Will be removed from all documents." msgstr "将从所有文档中移除" -#: views.py:199 +#: views.py:132 msgid "Delete the selected tag?" msgid_plural "Delete the selected tags?" msgstr[0] "" -#: views.py:231 +#: views.py:142 +#, python-format +msgid "Delete tag: %s" +msgstr "" + +#: views.py:152 +#, python-format +msgid "Tag \"%s\" deleted successfully." +msgstr "标签 \"%s\" 删除成功" + +#: views.py:156 +#, python-format +msgid "Error deleting tag \"%(tag)s\": %(error)s" +msgstr "删除标签\"%(tag)s\"失败: %(error)s" + +#: views.py:171 #, python-format msgid "Edit tag: %s" msgstr "" -#: views.py:244 +#: views.py:201 #, python-format msgid "Documents with the tag: %s" msgstr "" -#: views.py:271 +#: views.py:224 #, python-format msgid "Tags for document: %s" msgstr "" -#: views.py:286 -msgid "Must provide at least one tagged document." -msgstr "必须至少提供一个标签文档" - -#: views.py:332 +#: views.py:235 #, python-format -msgid "Remove tag from document: %s." -msgstr "从文档: %s移除标签" - -#: views.py:336 -#, python-format -msgid "Remove tag from documents: %s." -msgstr "从文档: %s移除标签" - -#: views.py:344 -#, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the document: ment)s?" -msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +msgid "Tag remove request performed on %(count)d document" msgstr "" -#: views.py:351 +#: views.py:237 #, python-format -#| msgid "" -#| "u sure you wish to remove the tag \"%(tag)s\" from the documents: ments)s?" -msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +msgid "Tag remove request performed on %(count)d documents" msgstr "" -#: views.py:360 +#: views.py:244 +msgid "Remove" +msgstr "移除" + +#: views.py:246 +msgid "Remove tags from document" +msgid_plural "Remove tags from documents" +msgstr[0] "" + +#: views.py:256 #, python-format -#| msgid "" -#| "u sure you wish to remove the tags: %(tags)s from the document: ment)s?" -msgid "Remove the tags: %(tags)s from the document: %(document)s?" +msgid "Remove tags from document: %s" msgstr "" -#: views.py:367 -#, python-format -msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#: views.py:265 +msgid "Tags to be removed." msgstr "" -#: views.py:379 +#: views.py:290 #, python-format -msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s\"" -msgstr "文档\"%(document)s\"无标签\"%(tag)s\"" +msgid "Document \"%(document)s\" wasn't tagged as \"%(tag)s" +msgstr "" -#: views.py:388 +#: views.py:300 #, python-format msgid "Tag \"%(tag)s\" removed successfully from document \"%(document)s\"." msgstr "标签\"%(tag)s\"成功从文档\"%(document)s\"移除" +#~ msgid "Must provide at least one document." +#~ msgstr "Must provide at least one document." + +#~ msgid "Attach tag to document" +#~ msgid_plural "Attach tag to documents" +#~ msgstr[0] "2b1f894eebfe4fd9c93a2a121387867c_pl_0" + +#~ msgid "Must provide at least one tag." +#~ msgstr "Must provide at least one tag." + +#~ msgid "Must provide at least one tagged document." +#~ msgstr "Must provide at least one tagged document." + +#~ msgid "Remove tag from documents: %s." +#~ msgstr "Remove tag from documents: %s." + +#~ msgid "Remove the tag \"%(tag)s\" from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tag \"%(tag)s\" from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tag \"%(tag)s\" from the documents: " +#~ "%(documents)s?" + +#~ msgid "Remove the tags: %(tags)s from the document: %(document)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags: %(tags)s from the document: " +#~ "%(document)s?" + +#~ msgid "Remove the tags %(tags)s from the documents: %(documents)s?" +#~ msgstr "" +#~ "Are you sure you wish to remove the tags %(tag)s from the documents: " +#~ "%(documents)s?" + #~ msgid "remove tags" #~ msgstr "remove tags" @@ -271,9 +338,6 @@ msgstr "标签\"%(tag)s\"成功从文档\"%(document)s\"移除" #~ msgid "Document created" #~ msgstr "document" -#~ msgid "Attach tag to document: %s." -#~ msgstr "Attach tag to document: %s." - #~ msgid "Attach tag to documents: %s." #~ msgstr "Attach tag to documents: %s." diff --git a/mayan/apps/tags/serializers.py b/mayan/apps/tags/serializers.py index 63c655ae16..6a8830f792 100644 --- a/mayan/apps/tags/serializers.py +++ b/mayan/apps/tags/serializers.py @@ -7,13 +7,14 @@ from rest_framework.exceptions import ValidationError from rest_framework.reverse import reverse from acls.models import AccessControlList +from documents.models import Document from .models import Tag from .permissions import permission_tag_attach class TagSerializer(serializers.HyperlinkedModelSerializer): - documents = serializers.HyperlinkedIdentityField( + documents_url = serializers.HyperlinkedIdentityField( view_name='rest_api:tag-document-list' ) documents_count = serializers.SerializerMethodField() @@ -23,7 +24,7 @@ class TagSerializer(serializers.HyperlinkedModelSerializer): 'url': {'view_name': 'rest_api:tag-detail'}, } fields = ( - 'color', 'documents', 'documents_count', 'id', 'label', 'url' + 'color', 'documents_count', 'documents_url', 'id', 'label', 'url' ) model = Tag @@ -31,22 +32,82 @@ class TagSerializer(serializers.HyperlinkedModelSerializer): return instance.documents.count() -class NewTagSerializer(serializers.ModelSerializer): +class WritableTagSerializer(serializers.ModelSerializer): + documents_pk_list = serializers.CharField( + help_text=_( + 'Comma separated list of document primary keys to which this tag ' + 'will be attached.' + ), required=False + ) + class Meta: fields = ( - 'color', 'label', 'id' + 'color', 'documents_pk_list', 'id', 'label', ) model = Tag + def _add_documents(self, documents_pk_list, instance): + instance.documents.add( + *Document.objects.filter(pk__in=documents_pk_list.split(',')) + ) + + def create(self, validated_data): + documents_pk_list = validated_data.pop('documents_pk_list', '') + + instance = super(WritableTagSerializer, self).create(validated_data) + + if documents_pk_list: + self._add_documents( + documents_pk_list=documents_pk_list, instance=instance + ) + + return instance + + def update(self, instance, validated_data): + documents_pk_list = validated_data.pop('documents_pk_list', '') + + instance = super(WritableTagSerializer, self).update( + instance, validated_data + ) + + if documents_pk_list: + instance.documents.clear() + self._add_documents( + documents_pk_list=documents_pk_list, instance=instance + ) + + return instance + + +class DocumentTagSerializer(TagSerializer): + document_tag_url = serializers.SerializerMethodField( + help_text=_( + 'API URL pointing to a tag in relation to the document ' + 'attached to it. This URL is different than the canonical ' + 'tag URL.' + ) + ) + + class Meta(TagSerializer.Meta): + fields = TagSerializer.Meta.fields + ('document_tag_url',) + read_only_fields = TagSerializer.Meta.fields + + def get_document_tag_url(self, instance): + return reverse( + 'rest_api:document-tag-detail', args=( + self.context['document'].pk, instance.pk + ), request=self.context['request'], format=self.context['format'] + ) + class NewDocumentTagSerializer(serializers.Serializer): - tag = serializers.IntegerField( + tag_pk = serializers.IntegerField( help_text=_('Primary key of the tag to be added.') ) def create(self, validated_data): try: - tag = Tag.objects.get(pk=validated_data['tag']) + tag = Tag.objects.get(pk=validated_data['tag_pk']) AccessControlList.objects.check_access( permissions=permission_tag_attach, @@ -57,19 +118,4 @@ class NewDocumentTagSerializer(serializers.Serializer): except Exception as exception: raise ValidationError(exception) - return {'tag': tag.pk} - - -class DocumentTagSerializer(TagSerializer): - remove = serializers.SerializerMethodField() - - def get_remove(self, instance): - return reverse( - 'rest_api:document-tag', args=( - self.context['document'].pk, instance.pk, - ), request=self.context['request'], format=self.context['format'] - ) - - class Meta(TagSerializer.Meta): - fields = TagSerializer.Meta.fields + ('remove',) - read_only_fields = TagSerializer.Meta.fields + return {'tag_pk': tag.pk} diff --git a/mayan/apps/tags/tests/test_api.py b/mayan/apps/tags/tests/test_api.py index d714a5a14f..d3aa157326 100644 --- a/mayan/apps/tags/tests/test_api.py +++ b/mayan/apps/tags/tests/test_api.py @@ -3,11 +3,11 @@ from __future__ import unicode_literals from django.contrib.auth import get_user_model from django.core.urlresolvers import reverse from django.test import override_settings - -from rest_framework.test import APITestCase +from django.utils.encoding import force_text from documents.models import DocumentType from documents.tests import TEST_DOCUMENT_TYPE, TEST_SMALL_DOCUMENT_PATH +from rest_api.tests import BaseAPITestCase from user_management.tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME ) @@ -20,12 +20,10 @@ from .literals import ( ) -class TagAPITestCase(APITestCase): - """ - Test the tag API endpoints - """ - +@override_settings(OCR_AUTO_OCR=False) +class TagAPITestCase(BaseAPITestCase): def setUp(self): + super(TagAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -36,9 +34,26 @@ class TagAPITestCase(APITestCase): ) def tearDown(self): - self.admin_user.delete() + if hasattr(self, 'document_type'): + self.document_type.delete() + super(TagAPITestCase, self).tearDown() - def test_tag_create(self): + def _create_tag(self): + return Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) + + def _document_create(self): + self.document_type = DocumentType.objects.create( + label=TEST_DOCUMENT_TYPE + ) + + with open(TEST_SMALL_DOCUMENT_PATH) as file_object: + document = self.document_type.new_document( + file_object=file_object, + ) + + return document + + def test_tag_create_view(self): response = self.client.post( reverse('rest_api:tag-list'), { 'label': TEST_TAG_LABEL, 'color': TEST_TAG_COLOR @@ -46,7 +61,6 @@ class TagAPITestCase(APITestCase): ) tag = Tag.objects.first() - self.assertEqual(response.data['id'], tag.pk) self.assertEqual(response.data['label'], TEST_TAG_LABEL) self.assertEqual(response.data['color'], TEST_TAG_COLOR) @@ -55,15 +69,60 @@ class TagAPITestCase(APITestCase): self.assertEqual(tag.label, TEST_TAG_LABEL) self.assertEqual(tag.color, TEST_TAG_COLOR) - def test_tag_delete(self): - tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) + def test_tag_create_with_documents_view(self): + response = self.client.post( + reverse('rest_api:tag-list'), { + 'label': TEST_TAG_LABEL, 'color': TEST_TAG_COLOR + } + ) + + tag = Tag.objects.first() + self.assertEqual(response.data['id'], tag.pk) + self.assertEqual(response.data['label'], TEST_TAG_LABEL) + self.assertEqual(response.data['color'], TEST_TAG_COLOR) + + self.assertEqual(Tag.objects.count(), 1) + self.assertEqual(tag.label, TEST_TAG_LABEL) + self.assertEqual(tag.color, TEST_TAG_COLOR) + + def test_tag_delete_view(self): + tag = self._create_tag() self.client.delete(reverse('rest_api:tag-detail', args=(tag.pk,))) self.assertEqual(Tag.objects.count(), 0) - def test_tag_edit(self): - tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) + def test_tag_document_list_view(self): + tag = self._create_tag() + document = self._document_create() + tag.documents.add(document) + + response = self.client.get( + reverse('rest_api:tag-document-list', args=(tag.pk,)) + ) + + self.assertEqual( + response.data['results'][0]['uuid'], force_text(document.uuid) + ) + + def test_tag_edit_via_patch(self): + tag = self._create_tag() + + self.client.patch( + reverse('rest_api:tag-detail', args=(tag.pk,)), + { + 'label': TEST_TAG_LABEL_EDITED, + 'color': TEST_TAG_COLOR_EDITED + } + ) + + tag.refresh_from_db() + + self.assertEqual(tag.label, TEST_TAG_LABEL_EDITED) + self.assertEqual(tag.color, TEST_TAG_COLOR_EDITED) + + def test_tag_edit_via_put(self): + tag = self._create_tag() self.client.put( reverse('rest_api:tag-detail', args=(tag.pk,)), @@ -73,48 +132,51 @@ class TagAPITestCase(APITestCase): } ) - tag = Tag.objects.first() + tag.refresh_from_db() self.assertEqual(tag.label, TEST_TAG_LABEL_EDITED) self.assertEqual(tag.color, TEST_TAG_COLOR_EDITED) - @override_settings(OCR_AUTO_OCR=False) - def test_tag_add_document(self): - tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) - - document_type = DocumentType.objects.create( - label=TEST_DOCUMENT_TYPE - ) - - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = document_type.new_document( - file_object=file_object, - ) + def test_document_attach_tag_view(self): + tag = self._create_tag() + document = self._document_create() self.client.post( reverse('rest_api:document-tag-list', args=(document.pk,)), - {'tag': tag.pk} + {'tag_pk': tag.pk} + ) + self.assertQuerysetEqual(document.tags.all(), (repr(tag),)) + + def test_document_tag_detail_view(self): + tag = self._create_tag() + document = self._document_create() + tag.documents.add(document) + + response = self.client.get( + reverse('rest_api:document-tag-detail', args=(document.pk, tag.pk)) ) - self.assertEqual(tag.documents.count(), 1) + self.assertEqual(response.data['label'], tag.label) - @override_settings(OCR_AUTO_OCR=False) - def test_tag_remove_document(self): - tag = Tag.objects.create(color=TEST_TAG_COLOR, label=TEST_TAG_LABEL) + def test_document_tag_list_view(self): + tag = self._create_tag() + document = self._document_create() + tag.documents.add(document) - document_type = DocumentType.objects.create( - label=TEST_DOCUMENT_TYPE + response = self.client.get( + reverse('rest_api:document-tag-list', args=(document.pk,)) ) + self.assertEqual(response.data['results'][0]['label'], tag.label) - with open(TEST_SMALL_DOCUMENT_PATH) as file_object: - document = document_type.new_document( - file_object=file_object, - ) - + def test_document_tag_remove_view(self): + tag = self._create_tag() + document = self._document_create() tag.documents.add(document) self.client.delete( - reverse('rest_api:document-tag', args=(document.pk, tag.pk)), + reverse( + 'rest_api:document-tag-detail', args=(document.pk, tag.pk) + ), ) self.assertEqual(tag.documents.count(), 0) diff --git a/mayan/apps/tags/urls.py b/mayan/apps/tags/urls.py index bc0f7bd63e..c477e49756 100644 --- a/mayan/apps/tags/urls.py +++ b/mayan/apps/tags/urls.py @@ -63,11 +63,11 @@ api_urls = [ url(r'^tags/(?P[0-9]+)/$', APITagView.as_view(), name='tag-detail'), url(r'^tags/$', APITagListView.as_view(), name='tag-list'), url( - r'^document/(?P[0-9]+)/tags/$', APIDocumentTagListView.as_view(), - name='document-tag-list' + r'^documents/(?P[0-9]+)/tags/$', + APIDocumentTagListView.as_view(), name='document-tag-list' ), url( - r'^document/(?P[0-9]+)/tags/(?P[0-9]+)/$', - APIDocumentTagView.as_view(), name='document-tag' + r'^documents/(?P[0-9]+)/tags/(?P[0-9]+)/$', + APIDocumentTagView.as_view(), name='document-tag-detail' ), ] diff --git a/mayan/apps/tags/views.py b/mayan/apps/tags/views.py index f4debb2e14..133a6caf68 100644 --- a/mayan/apps/tags/views.py +++ b/mayan/apps/tags/views.py @@ -126,7 +126,7 @@ class TagDeleteActionView(MultipleObjectConfirmActionView): result = { 'message': _('Will be removed from all documents.'), - 'submit_icon': _('fa fa-times'), + 'submit_icon': 'fa fa-times', 'submit_label': _('Delete'), 'title': ungettext( 'Delete the selected tag?', diff --git a/mayan/apps/user_management/apps.py b/mayan/apps/user_management/apps.py index 08a7e0a5a3..ddc721a655 100644 --- a/mayan/apps/user_management/apps.py +++ b/mayan/apps/user_management/apps.py @@ -37,8 +37,8 @@ def get_users(): class UserManagementApp(MayanAppConfig): app_url = 'accounts' + has_tests = True name = 'user_management' - test = True verbose_name = _('User management') def ready(self): diff --git a/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.mo index 875cfe5317..c6625b8013 100644 Binary files a/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.po index 5382d82cd7..f5ab660e4f 100644 --- a/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/ar/LC_MESSAGES/django.po @@ -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: # Mohammed ALDOUB , 2013 @@ -9,57 +9,59 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/ar/)\n" +"Language-Team: Arabic (http://www.transifex.com/rosarior/mayan-edms/language/" +"ar/)\n" +"Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "إدارة المستخدم" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "البريد الإلكتروني" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "كلمة مرور جديدة" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "تأكيد كلمة المرور" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +73,20 @@ msgstr "" msgid "Edit" msgstr "تحرير" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "مجموعات" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Users" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +121,161 @@ msgstr "تحرير المستخدمين الحاليين" msgid "View existing users" msgstr "عرض المستخدمين الحاليين" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "تم انشاء المستخدم \"%s\" بنجاح." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "يجب أن توفر ما لا يقل عن مستخدم واحد." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super user and staff user deleting is not allowed, use the admin interface for these cases." +msgstr "" +"Super user and staff user deleting is not allowed, use the admin interface " +"for these cases." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "تم مسح المستخدم \"%s\" بنجاح." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "خطأ أثناء حذف المستخدم \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "لا تتطابق كلمات المرور، حاول مرة أخرى." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "ارسال" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" +msgstr[4] "" +msgstr[5] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super user and staff user password reseting is not allowed, use the admin interface for these cases." +msgstr "" +"Super user and staff user password reseting is not allowed, use the admin " +"interface for these cases." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "نجحت إعادة تعيين كلمة المرور للمستخدم: %s" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "خطأ أثناء إعادة تعيين كلمة المرور للمستخدم \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "إعادة كلمة السر للمستخدم: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "إعادة كلمة السر للمستخدمين %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.mo index c140e8308c..971c6004c8 100644 Binary files a/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.po index ea0c98084a..c1fd0c4b89 100644 --- a/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/bg/LC_MESSAGES/django.po @@ -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: # Iliya Georgiev , 2012 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/language/bg/)\n" +"Language-Team: Bulgarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/bg/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Управление на потребители" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Електронна поща" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Нова парола" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Потвърждение на парола" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "Редактиране" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Групи" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Потребители" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +120,153 @@ msgstr "Редактиране на нови потребители" msgid "View existing users" msgstr "Преглед на съществуващи потребители" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Потребител \"%s\" е създаден успешно." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Трябва да изберете поне един потребител." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Изтриване на потребители от супер потребител и служител не е разрешено. Използвайте администраторския модул за тези случаи." +msgstr "" +"Изтриване на потребители от супер потребител и служител не е разрешено. " +"Използвайте администраторския модул за тези случаи." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Потребител \"%s\" е изтрит успешно." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Грешка при изтриването на потребител \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Паролата не съвпада. Опитайте отново." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Подаване" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Промяна на парола на потребители от супер потребител и служител не е разрешено. Използвайте администраторския модул за тези случаи." +msgstr "" +"Промяна на парола на потребители от супер потребител и служител не е " +"разрешено. Използвайте администраторския модул за тези случаи." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Успешна промяна на парола на потребител %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Грешка при промяна на парола на потребител \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Промяна на парола на потребител %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Промяна на парола на потребители %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.mo index b4488727f7..f8dc490c2e 100644 Binary files a/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.po index 340a4d0570..5074e20485 100644 --- a/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/bs_BA/LC_MESSAGES/django.po @@ -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: # www.ping.ba , 2013 @@ -9,57 +9,59 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+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-Team: Bosnian (Bosnia and Herzegovina) (http://www.transifex.com/" +"rosarior/mayan-edms/language/bs_BA/)\n" +"Language: bs_BA\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Upravljanje korisnicima" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nova lozinka" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Potvrdite lozinku" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +73,20 @@ msgstr "" msgid "Edit" msgstr "Urediti" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupe" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Korisnici" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +121,155 @@ msgstr "Izmjeni postojeće korisnike" msgid "View existing users" msgstr "Pregledaj postojeće korisnike" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Korisnik \"%s\" uspješno kreiran." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Mora biti obebjeđen bar jedan korisnik." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super user i staff user brisanja nisu dozvoljena, koristite administratorski interface za takve slučajeve" +msgstr "" +"Super user i staff user brisanja nisu dozvoljena, koristite administratorski " +"interface za takve slučajeve" -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Korisnik \"%s\" uspješno obrisan." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Greška brisanja korisnika \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Lozinke se ne podudaraju, pokušajte ponovo." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Podnijeti" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super user i staff user reset lozinke nije dozvoljen, koristite administratorski interface za takve slučajeve" +msgstr "" +"Super user i staff user reset lozinke nije dozvoljen, koristite " +"administratorski interface za takve slučajeve" -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Uspješno resetovana lozinka za korisnika: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Greška resetovanja lozinke za korisnika \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Resetovanje lozinke za korisnika: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Resetovanje lozinke za korisnike: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/da/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/da/LC_MESSAGES/django.mo index fc052d0b9f..39672dd9ef 100644 Binary files a/mayan/apps/user_management/locale/da/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/da/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/da/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/da/LC_MESSAGES/django.po index 4be90828f6..c1b7dc3f18 100644 --- a/mayan/apps/user_management/locale/da/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/da/LC_MESSAGES/django.po @@ -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: # René Rovsing Bach , 2013 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/da/)\n" +"Language-Team: Danish (http://www.transifex.com/rosarior/mayan-edms/language/" +"da/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Brugerstyring" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nyt password" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Bekræft password" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +120,153 @@ msgstr "Rediger eksisterende brugere" msgid "View existing users" msgstr "Se eksisterende brugere" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Bruger \"%s\" oprettet." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Der skal angives mindst én bruger." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Det er ikke tilladt at slette superbruger og personalebruger. Anvend administrator brugerfladen i disse tilfælde." +msgstr "" +"Det er ikke tilladt at slette superbruger og personalebruger. Anvend " +"administrator brugerfladen i disse tilfælde." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Bruger \"%s\" slettet." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Fejl ved sletning af bruger \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "De to password stemmer ikke overens, prøv igen." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Det er ikke tilladt at nulstille Superbruger og personale brugeradgangskode. Anvend administrator brugerflade istedet." +msgstr "" +"Det er ikke tilladt at nulstille Superbruger og personale brugeradgangskode. " +"Anvend administrator brugerflade istedet." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Password er blevet nulstillet for bruger: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Fejl ved nulstilling af password for bruger \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Nulstiller password for bruger: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Nulstiller password for brugerne: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.mo index 9976a65f11..2f4440da3a 100644 Binary files a/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.po index 382fcb8474..798507971d 100644 --- a/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/de_DE/LC_MESSAGES/django.po @@ -1,10 +1,11 @@ # 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 , 2015-2016 +# Jesaja Everling , 2017 # Mathias Behrle , 2014 # Stefan Lodders , 2012 # tetjarediske , 2012 @@ -13,57 +14,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-11 21:48+0000\n" -"Last-Translator: Berny \n" -"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-edms/language/de_DE/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-24 23:01+0000\n" +"Last-Translator: Jesaja Everling \n" +"Language-Team: German (Germany) (http://www.transifex.com/rosarior/mayan-" +"edms/language/de_DE/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Benutzerverwaltung" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Alle Gruppen." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Alle Benutzer" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Mitglieder" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Kompletter Name" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "E-Mail" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Aktiv" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Verwendbares Passwort" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Neues Passwort" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Passwort bestätigen" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Erstellen" @@ -75,21 +77,21 @@ msgstr "Löschen" msgid "Edit" msgstr "Bearbeiten" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Gruppen" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Erstellen" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Benutzer" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Passwort" +msgid "Set password" +msgstr "Passwort festlegen" #: permissions.py:10 msgid "Create new groups" @@ -123,114 +125,155 @@ msgstr "Benutzer bearbeiten" msgid "View existing users" msgstr "Benutzer anzeigen" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Gruppe %s bearbeiten" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Gruppe %s löschen?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Verfügbare Nutzer" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Gruppenmitglieder" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Mitglieder von Gruppe %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Benutzer %s bearbeiten" - -#: views.py:133 -msgid "Available groups" -msgstr "Verfügbare Gruppen" - -#: views.py:134 -msgid "Groups joined" -msgstr "Gruppen vereinigt" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Gruppen von Benutzer %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Benutzer \"%s\" erfolgreich angelegt" -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Es muss mindestens ein Benutzer angegeben werden" +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super User und Staff Benutzer löschen ist nicht erlaubt, benutzen Sie die Administratoren-Oberfläche dafür." +msgstr "" +"Super User und Staff Benutzer löschen ist nicht erlaubt, benutzen Sie die " +"Administratoren-Oberfläche dafür." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Benutzer \"%s\" erfolgreich gelöscht" -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Fehler beim Löschen des Benutzers \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Benutzer %s löschen?" +msgid "Edit user: %s" +msgstr "Benutzer %s bearbeiten" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Verfügbare Gruppen" + +#: views.py:205 +msgid "Groups joined" +msgstr "Gruppen vereinigt" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Die Benutzer %s löschen?" +msgid "Groups of user: %s" +msgstr "Gruppen von Benutzer %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Passwörter stimmen nicht überein, bitte noch einmal versuchen" +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Absenden" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super User und Staff Benutzer löschen ist nicht erlaubt, benutzen Sie die Administratoren-Oberfläche dafür." +msgstr "" +"Super User und Staff Benutzer löschen ist nicht erlaubt, benutzen Sie die " +"Administratoren-Oberfläche dafür." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Passwort erfolgreich zurückgesetzt für Benutzer %s" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Fehler beim Zurücksetzen des Passworts für den Benutzer \"%(user)s\": %(error)s" +msgstr "" +"Fehler beim Zurücksetzen des Passworts für den Benutzer \"%(user)s\": " +"%(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Passwort zurücksetzen für Benutzer %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Passwort zurücksetzen für die Benutzer %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/en/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/en/LC_MESSAGES/django.mo index 934b7744aa..2d23361bc8 100644 Binary files a/mayan/apps/user_management/locale/en/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/en/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/en/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/en/LC_MESSAGES/django.po index 5e341ed74d..1e664c1955 100644 --- a/mayan/apps/user_management/locale/en/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/en/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" "PO-Revision-Date: 2012-12-12 06:07+0000\n" "Last-Translator: Roberto Rosario\n" "Language-Team: English (http://www.transifex.com/projects/p/mayan-edms/" @@ -18,52 +18,52 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "User management" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 #, fuzzy msgid "Members" msgstr "members" -#: apps.py:60 +#: apps.py:71 #, fuzzy msgid "Full name" msgstr "full name" -#: apps.py:63 +#: apps.py:74 #, fuzzy msgid "Email" msgstr "email" -#: apps.py:66 +#: apps.py:77 #, fuzzy msgid "Active" msgstr "active" -#: apps.py:72 +#: apps.py:83 #, fuzzy msgid "Has usable password?" msgstr "has usable password?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "New password" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirm password" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 #, fuzzy msgid "Create new group" msgstr "Create new groups" @@ -77,24 +77,24 @@ msgstr "delete" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 #, fuzzy msgid "Groups" msgstr "groups" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 #, fuzzy msgid "Create new user" msgstr "Create new users" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 #, fuzzy msgid "Users" msgstr "users" #: links.py:62 links.py:66 #, fuzzy -msgid "Reset password" +msgid "Set password" msgstr "reset password" #: permissions.py:10 @@ -129,60 +129,69 @@ msgstr "Edit existing users" msgid "View existing users" msgstr "View existing users" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, fuzzy, python-format msgid "Edit group: %s" msgstr "edit group: %s" -#: views.py:66 +#: views.py:64 #, fuzzy, python-format #| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Delete existing groups" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 #, fuzzy msgid "Members of groups" msgstr "members of group: %s" -#: views.py:94 +#: views.py:92 #, fuzzy, python-format msgid "Members of group: %s" msgstr "members of group: %s" -#: views.py:127 -#, fuzzy, python-format -msgid "Edit user: %s" -msgstr "edit user: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -#, fuzzy -msgid "Groups joined" -msgstr "groups" - -#: views.py:143 -#, fuzzy, python-format -msgid "Groups of user: %s" -msgstr "groups of user: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "User \"%s\" created successfully." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Must provide at least one user." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +#, fuzzy +#| msgid "Delete existing users" +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "Delete existing users" +msgstr[1] "Delete existing users" + +#: views.py:156 +#, fuzzy, python-format +#| msgid "Delete existing users" +msgid "Delete user: %s" +msgstr "Delete existing users" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." @@ -190,33 +199,63 @@ msgstr "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "User \"%s\" deleted successfully." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Error deleting user \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, fuzzy, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Delete existing users" +msgid "Edit user: %s" +msgstr "edit user: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "" + +#: views.py:205 +#, fuzzy +msgid "Groups joined" +msgstr "groups" + +#: views.py:214 #, fuzzy, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Delete existing users" +msgid "Groups of user: %s" +msgstr "groups of user: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Passwords do not match, try again." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +#, fuzzy +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "reset password" +msgstr[1] "reset password" + +#: views.py:274 +#, fuzzy, python-format +#| msgid "Reseting password for user: %s" +msgid "Change password for user: %s" +msgstr "Reseting password for user: %s" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." @@ -224,25 +263,29 @@ msgstr "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Successfull password reset for user: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Error reseting password for user \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Reseting password for user: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Reseting password for users: %s" +#, fuzzy +#~| msgid "Delete existing users" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/es/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/es/LC_MESSAGES/django.mo index b61d51bd26..854c8d4bd5 100644 Binary files a/mayan/apps/user_management/locale/es/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/es/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/es/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/es/LC_MESSAGES/django.po index 8ebc0a5b00..9b060048cb 100644 --- a/mayan/apps/user_management/locale/es/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/es/LC_MESSAGES/django.po @@ -1,69 +1,70 @@ # 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: # jmcainzos , 2014 # jmcainzos , 2015 # Lory977 , 2015 # Roberto Rosario, 2012,2015 -# Roberto Rosario, 2016 +# Roberto Rosario, 2016-2017 msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-05-09 01:33+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-05-28 19:39+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/language/es/)\n" +"Language-Team: Spanish (http://www.transifex.com/rosarior/mayan-edms/" +"language/es/)\n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Administración de usuarios" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Todos los grupos." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Todos los usuarios." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Miembros" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nombre completo" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Correo electrónico" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Activo" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "¿Tiene contraseña utilizable?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nueva contraseña" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirmar contraseña" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Crear nuevo grupo" @@ -75,21 +76,21 @@ msgstr "Borrar" msgid "Edit" msgstr "Editar" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupos" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Crear nuevo usuario" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Usuarios" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Restablecer contraseña" +msgid "Set password" +msgstr "Asignar contraseña" #: permissions.py:10 msgid "Create new groups" @@ -123,114 +124,156 @@ msgstr "Editar usuarios existentes" msgid "View existing users" msgstr "Ver usuarios existentes" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" +"Lista separada por comas de llaves primarias de grupos a ser asignados a " +"este usuario." + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "Lista de llaves primarias de grupos a los que agregar el usuario." + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Editar grupo: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "¿Borrar el grupo: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Usuarios disponibles" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Miembros de grupos" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Miembros del grupo: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Editar usuario: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Grupos disponibles." - -#: views.py:134 -msgid "Groups joined" -msgstr "Grupos participados" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupos de usuario: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Usuario \"%s\" creado con éxito." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Debe indicar al menos un usuario." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "Solicitud de eliminación de usuario realizada a %(count)d usuario " -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "Solicitud de eliminación de usuario realizada a %(count)d usuarios" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "Borrar usuario" +msgstr[1] "Borrar usuarios" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "Borrar usuario: %s" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "No se permite eliminar el super usuario y usuario de personal. Use la interfaz de administración para estos casos." +msgstr "" +"No se permite eliminar el super usuario y usuario de personal. Use la " +"interfaz de administración para estos casos." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Usuario \"%s\" eliminado con éxito." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Error eliminando el usuario \"%(user)s\": %(error)s " -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "¿Borrar el usuario: %s?" +msgid "Edit user: %s" +msgstr "Editar usuario: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Grupos disponibles." + +#: views.py:205 +msgid "Groups joined" +msgstr "Grupos participados" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "¿Borrar los usuarios: %s?" +msgid "Groups of user: %s" +msgstr "Grupos de usuario: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Las contraseñas no coinciden. Vuelva a intentarlo." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "Solicitud de cambio de contraseña realizada a %(count)d usuario" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "Solicitud de cambio de contraseña realizada a %(count)d usuarios" + +#: views.py:262 +msgid "Submit" +msgstr "Enviar" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "Cambiar contraseña de usuario" +msgstr[1] "Cambiar contraseñas de usuarios" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "Cambiar contraseñas para el usuario: %s" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "No se permite cambiar la contraseña del super usuario y del usuario de personal. Use la interfaz de administración para estos casos." +msgstr "" +"No se permite cambiar la contraseña del super usuario y del usuario de " +"personal. Use la interfaz de administración para estos casos." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Contraseña restablecida para el usuario: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Error restaurando la contraseña para el usuario \"%(user)s\": %(error)s " +msgstr "" +"Error restaurando la contraseña para el usuario \"%(user)s\": %(error)s " -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Restaurando contraseña del usuario: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Restaurando la contraseña de los usuarios: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.mo index 27ae4a936c..5b5b996ceb 100644 Binary files a/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.po index 3a3687b028..92316670c8 100644 --- a/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/fa/LC_MESSAGES/django.po @@ -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: # Mehdi Amani , 2014 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/language/fa/)\n" +"Language-Team: Persian (http://www.transifex.com/rosarior/mayan-edms/" +"language/fa/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "مدیریت کاربران" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "عضو" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "نام کامل" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "پست الکترونیکی" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "فعال" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "دارای کلمه عبور قابل قبول؟" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "کلمه عبور جدید" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "تائید کلمه عبور" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "گروه جدید" @@ -71,21 +72,21 @@ msgstr "حذف" msgid "Edit" msgstr "ویرایش" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "گروه ها" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "کاربر جدید" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "کاربران" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "کلمه عبور جدید" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -119,114 +120,147 @@ msgstr "ویرایش کاربران موجود" msgid "View existing users" msgstr "دیدن کاربران موجود" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "ویرایش گروه : %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr " اعضای گروه : %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "ویرایش کاربر : %s" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "گروه های کاربر : %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "کاربر \"%s\" با موفقیت ساخته شد." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "باید حداقل یک کاربر ارئه شود." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." msgstr "برای حذف از صفحه admin استفاده کنید." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "کاربر \"%s\" با موفقیت حذف شد." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "خطا در حذف کاربر \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" +msgstr "ویرایش کاربر : %s" + +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:205 +msgid "Groups joined" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "کلمه عبور یکسان نیست دوباره امتحان کنید." +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "گروه های کاربر : %s" -#: views.py:309 +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "ارسال" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." msgstr "از صفحه admin برای این موارد استفاده کنید." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "ریست موفق کلمه عبور برای کاربر : %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "خطا در زمان ریست کلمه عبور کاربر: \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "ریست کلمه عبور کاربر: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "ریست کلمه عبور کابران : %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.mo index eb2734cea8..3f51979102 100644 Binary files a/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.po index b463e91843..db29146015 100644 --- a/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/fr/LC_MESSAGES/django.po @@ -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 , 2014 @@ -13,57 +13,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-28 15:12+0000\n" -"Last-Translator: Baptiste GAILLET \n" -"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/fr/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: French (http://www.transifex.com/rosarior/mayan-edms/language/" +"fr/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gestion des utilisateurs" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Tous les groupes." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Tous les utilisateurs." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membres" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nom complet" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Courriel" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Actif" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Possède un mot de passe utilisable ?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nouveau mot de passe" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirmer le mot de passe" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Créer un nouveau groupe" @@ -75,21 +76,21 @@ msgstr "Supprimer" msgid "Edit" msgstr "Modifier" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Groupes" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Créer un nouvel utilisateur" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Utilisateurs" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Reinitialiser le mot de passe" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -123,114 +124,157 @@ msgstr "Modifier des utilisateurs existants" msgid "View existing users" msgstr "Afficher les utilisateurs existants" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Modification du groupe : %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Supprimer le groupe : %s ?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Utilisateurs disponibles" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Membres des groupes" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Membres du groupe : %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Modifier l'utilisateur : %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Groupes disponibles" - -#: views.py:134 -msgid "Groups joined" -msgstr "Groupes rejoints" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Membre des groupes : %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Utilisateur \"%s\" créé avec succès." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Vous devez indiquer au moins un utilisateur." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "La suppression des comptes super utilisateur et staff n'est pas autorisée ici, veuillez le faire via l'interface d'administration." +msgstr "" +"La suppression des comptes super utilisateur et staff n'est pas autorisée " +"ici, veuillez le faire via l'interface d'administration." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Utilisateur \"%s\" supprimé avec succès." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" -msgstr "Erreur lors de la suppression de l'utilisateur \"%(user)s\" : %(error)s" +msgstr "" +"Erreur lors de la suppression de l'utilisateur \"%(user)s\" : %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Supprimer l'utilisateur : %s ?" +msgid "Edit user: %s" +msgstr "Modifier l'utilisateur : %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Groupes disponibles" + +#: views.py:205 +msgid "Groups joined" +msgstr "Groupes rejoints" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Supprimer les utilisateurs : %s ?" +msgid "Groups of user: %s" +msgstr "Membre des groupes : %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Les mots de passe ne correspondent pas, veuillez réessayer." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Soumettre" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "La réinitialisation des mots de passe pour les comptes super utilisateur et staff n'est pas autorisée ici, veuillez le faire via l'interface d'administration." +msgstr "" +"La réinitialisation des mots de passe pour les comptes super utilisateur et " +"staff n'est pas autorisée ici, veuillez le faire via l'interface " +"d'administration." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Mot de passe ré-initialisé avec succès pour l'utilisateur : %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Erreur lors de la ré-initialisation du mot de passe pour l'utilisateur \"%(user)s\" : %(error)s" +msgstr "" +"Erreur lors de la ré-initialisation du mot de passe pour l'utilisateur " +"\"%(user)s\" : %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Ré-initialisation du mot de passe pour l'utilisateur : %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Ré-initialisation du mot de passe pour les utilisateurs : %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.mo index 7826a7171e..831fd2b26e 100644 Binary files a/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.po index 67048c3845..fd246a9808 100644 --- a/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/hu/LC_MESSAGES/django.po @@ -1,64 +1,65 @@ # 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-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/language/hu/)\n" +"Language-Team: Hungarian (http://www.transifex.com/rosarior/mayan-edms/" +"language/hu/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -70,20 +71,20 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -118,114 +119,149 @@ msgstr "" msgid "View existing users" msgstr "" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "" -#: views.py:213 views.py:284 -msgid "Must provide at least one user." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." msgstr "" -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "" -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "" + +#: views.py:205 +msgid "Groups joined" +msgstr "" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +msgid "Groups of user: %s" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." msgstr "" -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/id/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/id/LC_MESSAGES/django.mo index fe54f6375c..fd1e217410 100644 Binary files a/mayan/apps/user_management/locale/id/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/id/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/id/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/id/LC_MESSAGES/django.po index 28b3fb4384..9f9e6b2ac6 100644 --- a/mayan/apps/user_management/locale/id/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/id/LC_MESSAGES/django.po @@ -1,64 +1,65 @@ # 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-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/language/id/)\n" +"Language-Team: Indonesian (http://www.transifex.com/rosarior/mayan-edms/" +"language/id/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Surel" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -70,20 +71,20 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -118,114 +119,147 @@ msgstr "" msgid "View existing users" msgstr "" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "" -#: views.py:213 views.py:284 -msgid "Must provide at least one user." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." msgstr "" -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "" -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "" + +#: views.py:205 +msgid "Groups joined" +msgstr "" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +msgid "Groups of user: %s" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." msgstr "" -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/it/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/it/LC_MESSAGES/django.mo index a7673e6709..2af26d9d78 100644 Binary files a/mayan/apps/user_management/locale/it/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/it/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/it/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/it/LC_MESSAGES/django.po index abd1a7dd27..29d4734aa2 100644 --- a/mayan/apps/user_management/locale/it/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/it/LC_MESSAGES/django.po @@ -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: # Marco Camplese , 2016 @@ -11,57 +11,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-09-24 11:31+0000\n" -"Last-Translator: Marco Camplese \n" -"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/language/it/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Italian (http://www.transifex.com/rosarior/mayan-edms/" +"language/it/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gestione utenti" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Tutti i gruppi" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Tutti gli utenti" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membri " -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nome completo" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Attivo" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "La password è utilizzabile?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nuova password" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Conferma password" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Crea nuovo gruppo" @@ -73,21 +74,21 @@ msgstr "Cancella" msgid "Edit" msgstr "Modifica" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Gruppi" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Crea nuovo utente" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Utenti" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Reset della password" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -121,114 +122,155 @@ msgstr "Modifica utenti " msgid "View existing users" msgstr "Visualizza utenti" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Modifica gruppo: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Cancellare il gruppo: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Utenti disponibili" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Membri dei gruppi" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Membri del gruppo: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Modifica utente: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Gruppi disponibili " - -#: views.py:134 -msgid "Groups joined" -msgstr "Gruppi aggiunti" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Gruppi per l'utente: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Utente \"%s\" creato con successo." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Devi fornire almeno un utente." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Al super utente e utente non è consentito la cancellazione del personale, utilizzare l'interfaccia di amministrazione per questi casi." +msgstr "" +"Al super utente e utente non è consentito la cancellazione del personale, " +"utilizzare l'interfaccia di amministrazione per questi casi." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Utente \"%s\" cancellato con successo." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Errore nella cancellazione dell'utente \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Cancellare l'utente: %s?" +msgid "Edit user: %s" +msgstr "Modifica utente: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Gruppi disponibili " + +#: views.py:205 +msgid "Groups joined" +msgstr "Gruppi aggiunti" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Cancellare gli utenti: %s?" +msgid "Groups of user: %s" +msgstr "Gruppi per l'utente: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "La password non corrisponde, riprova." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Invia" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Al super utente e utente non è consentito di reimpostare la password personale, utilizzare l'interfaccia di amministrazione per questi casi." +msgstr "" +"Al super utente e utente non è consentito di reimpostare la password " +"personale, utilizzare l'interfaccia di amministrazione per questi casi." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Password reimpostata per l'utente: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Errore per il reimpostamento della password per l'utente \"%(user)s\": %(error)s" +msgstr "" +"Errore per il reimpostamento della password per l'utente \"%(user)s\": " +"%(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Reimposta la password per l'utente:%s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Reimposta la password per gli utenti:%s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.mo index 46da193108..47673fa76d 100644 Binary files a/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.po index acdee61588..ca5d5efa22 100644 --- a/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/nl_NL/LC_MESSAGES/django.po @@ -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: # Evelijn Saaltink , 2016 @@ -10,57 +10,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-10-28 08:58+0000\n" -"Last-Translator: Evelijn Saaltink \n" -"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-edms/language/nl_NL/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Dutch (Netherlands) (http://www.transifex.com/rosarior/mayan-" +"edms/language/nl_NL/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gebruikersbeheer" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Alle groepen." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Alle gebruikers." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Leden" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Volledige naam" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Actief" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Heeft bruikbaar wachtwoord?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nieuw wachtwoord" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Bevestig wachtwoord" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr " Maak nieuwe groep aan" @@ -72,21 +73,21 @@ msgstr "Verwijder" msgid "Edit" msgstr "Bewerken" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Groepen" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Maak nieuwe gebruiker aan" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Gebruikers" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Verander wachtwoord" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -120,114 +121,155 @@ msgstr "Bewerk bestaande gebruikers" msgid "View existing users" msgstr "Bekijk bestaande gebruikers" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Bewerk groep: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Verwijder de groep: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Beschikbare gebruikers" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Leden van de groepen" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Leden van de groep: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Bewerk gebruiker: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Beschikbare groepen" - -#: views.py:134 -msgid "Groups joined" -msgstr "Lid van groepen" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Groepen van gebruiker: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Gebuiker \"%s\" is succesvol aangemaakt." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "U dient minimaal één gebruiker in te voeren." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super gebruiker en medewerker verwijderen is niet toegestaan, gebruik de admin gebruiker voor deze zaken." +msgstr "" +"Super gebruiker en medewerker verwijderen is niet toegestaan, gebruik de " +"admin gebruiker voor deze zaken." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Gebruiker \"%s\" succesvol verwijderd." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Fout tijdens het verwijderen van gebruiker \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Verwijder de gebruiker: %s?" +msgid "Edit user: %s" +msgstr "Bewerk gebruiker: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Beschikbare groepen" + +#: views.py:205 +msgid "Groups joined" +msgstr "Lid van groepen" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Verwijder de gebruikers: %s?" +msgid "Groups of user: %s" +msgstr "Groepen van gebruiker: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Wachtwoord is niet het zelfde, probeer het opnieuw." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Verstuur" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super gebruiker en medewerker wachtwoord aanpassen is niet toegestaan, gebruik de admin gebruiker voor deze zaken." +msgstr "" +"Super gebruiker en medewerker wachtwoord aanpassen is niet toegestaan, " +"gebruik de admin gebruiker voor deze zaken." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Succesvol wachtwoord aangepast voor gebruiker: %s" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" -msgstr "Fout tijdens het veranderen van het wachtwoord voor gebruiker \"%(user)s\": %(error)s" +msgstr "" +"Fout tijdens het veranderen van het wachtwoord voor gebruiker \"%(user)s\": " +"%(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Wachtwoord aanpassen voor gebruiker: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Wachtwoord aanpassen voor gebruikers: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.mo index 358f2966ca..0bc19ec6f2 100644 Binary files a/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.po index b8edad641e..045bbb9a3f 100644 --- a/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/pl/LC_MESSAGES/django.po @@ -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: # Annunnaky , 2015 @@ -11,57 +11,60 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-08-04 09:31+0000\n" -"Last-Translator: Daniel Winiarski \n" -"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/pl/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Polish (http://www.transifex.com/rosarior/mayan-edms/language/" +"pl/)\n" +"Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n" +"%100<12 || n%100>=14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n" +"%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Zarządzanie użytkownikami" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Wszystkie grupy." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Wszyscy użytkownicy." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Członkowie" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Pełna nazwa" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Aktywny" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Posiada hasło?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nowe hasło" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Potwierdź hasło" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Utwórz nową grupę" @@ -73,21 +76,21 @@ msgstr "Usunąć" msgid "Edit" msgstr "Edytuj" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupy" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Tworzenie nowego użytkownika" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Użytkownicy" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Zresetować hasło" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -121,114 +124,157 @@ msgstr "Edycja istniejących użytkowników" msgid "View existing users" msgstr "Zobacz istniejących użytkowników" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Edycja grupy: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Usunąć grupę: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Dostępni użytkownicy" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Członkowie grup" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Członkowie grupy: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Edytuj użytkownika: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Dostępne grupy" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupy użytkownika: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Użytkownik \"%s\" został utworzony pomyślnie." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Musi podać co najmniej jednego użytkownika." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super user oraz staff user usuwanie nie jest możliwa , należy użyć interfejsu administratora w takich przypadkach." +msgstr "" +"Super user oraz staff user usuwanie nie jest możliwa , należy użyć " +"interfejsu administratora w takich przypadkach." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Użytkownik \"%s\" został usunięta." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Błąd podczas usuwania użytkownika \" %(user)s \": %(error)s " -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Usunąć użytkownika: %s?" +msgid "Edit user: %s" +msgstr "Edytuj użytkownika: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Dostępne grupy" + +#: views.py:205 +msgid "Groups joined" +msgstr "" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Usunąć użytkowników: %s?" +msgid "Groups of user: %s" +msgstr "Grupy użytkownika: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Hasła nie pasują, spróbuj ponownie." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Wykonaj" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super user oraz staff user reset nie jest możliwa , należy użyć interfejsu administratora w takich przypadkach." +msgstr "" +"Super user oraz staff user reset nie jest możliwa , należy użyć interfejsu " +"administratora w takich przypadkach." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Pomyślne resetowania hasła użytkownika:%s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Błąd podczas resetowania hasło użytkownika \" %(user)s \": %(error)s " -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Resetowanie hasła użytkownika:%s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Resetowanie hasła dla użytkowników:%s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.mo index f67d8e8835..4456382979 100644 Binary files a/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.po index ca1d75b3cf..c0bb03dde4 100644 --- a/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/pt/LC_MESSAGES/django.po @@ -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: # Manuela Silva , 2015 @@ -12,57 +12,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/language/pt/)\n" +"Language-Team: Portuguese (http://www.transifex.com/rosarior/mayan-edms/" +"language/pt/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gestão de utilizadores" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Todos os grupos." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Todos os utilziadores." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membros" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nome completo" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Correio eletrónico" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Ativo" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nova senha" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Contrassenha" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Criar novo grupo" @@ -74,21 +75,21 @@ msgstr "Eliminar" msgid "Edit" msgstr "Editar" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupos" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Criar novo utilziador" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Utilizadores" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Repor senha" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -122,114 +123,153 @@ msgstr "Editar utilizadores existentes" msgid "View existing users" msgstr "Ver utilizadores existentes" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Editar grupo: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Eliminar o grupo: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Membros de grupos" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Membros do grupo: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Editar utilizador: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Grupos disponíveis" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupos do utilizador: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Utilizador \"%s\" criado com sucesso." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Deve indicar pelo menos um utilizador." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Não é permitida a eliminação de administradores ou membros da equipa, utilize a interface de administrador para estes casos." +msgstr "" +"Não é permitida a eliminação de administradores ou membros da equipa, " +"utilize a interface de administrador para estes casos." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Utilizador \"%s\" eliminado com sucesso." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Erro ao eliminar o utilizador \"%(user)s\": %(error)s " -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Eliminar o utilizador: %s?" +msgid "Edit user: %s" +msgstr "Editar utilizador: %s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Grupos disponíveis" + +#: views.py:205 +msgid "Groups joined" +msgstr "" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Eliminar os utilizadores: %s?" +msgid "Groups of user: %s" +msgstr "Grupos do utilizador: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "As senhas não coincidem, tente novamente." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Submeter" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Não é permitido redefinir a senha de administradores ou de membros da equipa, utilize a interface de administrador para estes casos." +msgstr "" +"Não é permitido redefinir a senha de administradores ou de membros da " +"equipa, utilize a interface de administrador para estes casos." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Reposição de senha bem sucedida para o utilizador: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Erro ao redefinir a senha para o utilizador \"%(user)s\": %(error)s " -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "A redefinir a senha para o utilizador: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "A redefinir a senha para os utilizadores: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.mo index 6b391e6508..736a798909 100644 Binary files a/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.po index 77fb0ea810..a67937985f 100644 --- a/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/pt_BR/LC_MESSAGES/django.po @@ -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: # Aline Freitas , 2016 @@ -13,57 +13,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-10 19:25+0000\n" -"Last-Translator: Aline Freitas \n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/rosarior/mayan-edms/language/pt_BR/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+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" "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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Gerenciar usuários" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Todos os grupos." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Todos os usuários." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membros" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Nome Completo" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "E-mail" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Ativo" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "tem senha usável?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Nova senha" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirmar senha" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Criar novo Grupo" @@ -75,21 +76,21 @@ msgstr "excluir" msgid "Edit" msgstr "Editar" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupos" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Criar novo Usuário" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Usuários" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "redefinir senha" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -123,114 +124,153 @@ msgstr "Editar usuários existentes" msgid "View existing users" msgstr "Ver os usuários existentes" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Editar grupo:%s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Apagar o grupo: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Usuários disponíveis" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Membros dos grupos" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "membros do grupo: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Editar usuário:%s" - -#: views.py:133 -msgid "Available groups" -msgstr "Grupos disponíveis" - -#: views.py:134 -msgid "Groups joined" -msgstr "Grupos ingressados" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupos de usuário:%s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Usuário \"%s\" criado com sucesso." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Deve fornecer pelo menos um usuário." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Excluir super usuário e usuário pessoal não é permitido, use a interface de administração para esses casos." +msgstr "" +"Excluir super usuário e usuário pessoal não é permitido, use a interface de " +"administração para esses casos." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Usuário \"%s\" removido com sucesso." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Erro ao excluir usuário \"%(user)s\": %(error)s " -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Apagar o usuário: %s?" +msgid "Edit user: %s" +msgstr "Editar usuário:%s" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Grupos disponíveis" + +#: views.py:205 +msgid "Groups joined" +msgstr "Grupos ingressados" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Apagar os usuários: %s?" +msgid "Groups of user: %s" +msgstr "Grupos de usuário:%s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Senhas não coincidem, tente novamente." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Enviar" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Redefinir senha de super usuário e usuário pessoal não é permitido, use a interface de administração para esses casos." +msgstr "" +"Redefinir senha de super usuário e usuário pessoal não é permitido, use a " +"interface de administração para esses casos." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Redefinição de senha do usuário bem-sucedida: %s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Erro de redefinição de senha para o usuário \"%(user)s\": %(error)s " -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Redefinindo senha para o usuário: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Redefinindo senha para os usuários: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.mo index ea975af9f4..02bcf127d6 100644 Binary files a/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.po index 078f8a89f3..7ded3dde00 100644 --- a/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/ro_RO/LC_MESSAGES/django.po @@ -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: # Badea Gabriel , 2013 @@ -10,57 +10,59 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-04-17 11:31+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Stefaniu Criste \n" -"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-edms/language/ro_RO/)\n" +"Language-Team: Romanian (Romania) (http://www.transifex.com/rosarior/mayan-" +"edms/language/ro_RO/)\n" +"Language: ro_RO\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ro_RO\n" -"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?" +"2:1));\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Management utilizatori" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Toate grupurile." -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Toți utilizatorii." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Membri" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Numele întreg" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Activ" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Parolă nouă" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Confirmați parola" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -72,21 +74,21 @@ msgstr "Șterge" msgid "Edit" msgstr "Editează" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Grupuri" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Utilizatorii" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Schimbare parolă" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -120,114 +122,155 @@ msgstr "Editați utilizatorii existenți" msgid "View existing users" msgstr "Vizualizați utilizatorii existenți" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Modificați grupul: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Ștergeți grupul: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Utilizatori disponibili" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Membrii grupului: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Modificați utilizatorul: %s" - -#: views.py:133 -msgid "Available groups" -msgstr "Grupuri disponibile" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Grupurile utilizatorului: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Utilizator \"%s\" creat cu succes." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Trebuie să furnizeze cel puțin un utilizator." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super-utilizator și personalul ștergerea utilizator nu este permisă, utilizați interfata de administrare pentru aceste cazuri." +msgstr "" +"Super-utilizator și personalul ștergerea utilizator nu este permisă, " +"utilizați interfata de administrare pentru aceste cazuri." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Utilizatorul \"%s\" a fost șters cu succes." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Eroare la ștergerea utilizator \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Ștergeți utilizatorul: %s?" +msgid "Edit user: %s" +msgstr "Modificați utilizatorul: %s" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" +msgstr "Grupuri disponibile" + +#: views.py:205 +msgid "Groups joined" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Parolele nu corespund, încercați din nou." +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "Grupurile utilizatorului: %s" -#: views.py:309 +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Trimiteţi" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super utilizator și parola de utilizator personalul resetarea nu este permisă, utilizați interfata de administrare pentru aceste cazuri." +msgstr "" +"Super utilizator și parola de utilizator personalul resetarea nu este " +"permisă, utilizați interfata de administrare pentru aceste cazuri." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Resetarea parolei cu succes pentru utilizator:% s." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Eroare resetarea parola pentru utilizatorul %(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Resetarea parola pentru utilizator:% s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Resetarea parolei pentru utilizatori:% s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.mo index f378e611ee..fb76306b9f 100644 Binary files a/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.po index 2ef9664596..fa8c639721 100644 --- a/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/ru/LC_MESSAGES/django.po @@ -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: # lilo.panic, 2016 @@ -9,57 +9,60 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-07-14 10:52+0000\n" -"Last-Translator: lilo.panic\n" -"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/language/ru/)\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" +"Last-Translator: Roberto Rosario\n" +"Language-Team: Russian (http://www.transifex.com/rosarior/mayan-edms/" +"language/ru/)\n" +"Language: ru\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Управление пользователями" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "Все группы" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "Все пользователи." -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "Участники" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "Полное имя" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "Активен" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "Есть действующий пароль?" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Новый пароль" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Подтвердите пароль" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "Создать новую группу" @@ -71,21 +74,21 @@ msgstr "Удалить" msgid "Edit" msgstr "Редактировать" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Группы" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "Создать нового пользователя" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Пользователи" #: links.py:62 links.py:66 -msgid "Reset password" -msgstr "Сбросить пароль" +msgid "Set password" +msgstr "" #: permissions.py:10 msgid "Create new groups" @@ -119,114 +122,157 @@ msgstr "Редактирование существующих пользоват msgid "View existing users" msgstr "Просмотр существующих пользователей" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "Редактировать группу: %s" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "Удалить группу: %s?" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "Доступные пользователи" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "Участники групп" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "Член групп: %s" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "Редактировать пользователя: %s." - -#: views.py:133 -msgid "Available groups" -msgstr "Доступные группы" - -#: views.py:134 -msgid "Groups joined" -msgstr "Участник групп" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "Группы пользователя: %s" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Пользователь \"%s\" создан." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Должен быть хотя бы один пользователь." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Удаление суперпользователя и персонала не допускается, используйте интерфейс администратора для этих случаев." +msgstr "" +"Удаление суперпользователя и персонала не допускается, используйте " +"интерфейс администратора для этих случаев." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Пользователь \"%s\" удален." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Ошибка при удалении пользователя \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" -msgstr "Удалить пользователя: %s?" +msgid "Edit user: %s" +msgstr "Редактировать пользователя: %s." -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "Доступные группы" + +#: views.py:205 +msgid "Groups joined" +msgstr "Участник групп" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" -msgstr "Удалить пользователей: %s?" +msgid "Groups of user: %s" +msgstr "Группы пользователя: %s" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Пароли не совпадают, попробуйте еще раз." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "Подтвердить" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Сброс паролей суперпользователя и персонала не допускается, используйте интерфейс администратора для этих случаев." +msgstr "" +"Сброс паролей суперпользователя и персонала не допускается, используйте " +"интерфейс администратора для этих случаев." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Пароль пользователя %s сброшен." -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Ошибка сброса пароля для пользователя \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Сброс пароля пользователя: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Сброс пароля для пользователей: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.mo index ea0561d947..70f42d42be 100644 Binary files a/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.po index 34ae367601..e5ac988b44 100644 --- a/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/sl_SI/LC_MESSAGES/django.po @@ -1,64 +1,66 @@ # 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-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-11-17 08:53+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-edms/language/sl_SI/)\n" +"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/rosarior/mayan-" +"edms/language/sl_SI/)\n" +"Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\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" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" +"%100==4 ? 2 : 3);\n" -#: apps.py:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -70,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "Skupine" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "Uporabniki" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -118,114 +120,153 @@ msgstr "" msgid "View existing users" msgstr "" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "" -#: views.py:213 views.py:284 -msgid "Must provide at least one user." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." msgstr "" -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "" -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 +#: views.py:204 +msgid "Available groups" +msgstr "" + +#: views.py:205 +msgid "Groups joined" +msgstr "" + +#: views.py:214 #, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +msgid "Groups of user: %s" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" msgstr "" -#: views.py:309 +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" +msgstr[3] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." msgstr "" -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.mo index 9ea5073f9f..fbf6dc4fe2 100644 Binary files a/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.po index 3957372185..57193dbedb 100644 --- a/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/vi_VN/LC_MESSAGES/django.po @@ -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: # Trung Phan Minh , 2013 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/mayan-edms/language/vi_VN/)\n" +"Language-Team: Vietnamese (Viet Nam) (http://www.transifex.com/rosarior/" +"mayan-edms/language/vi_VN/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "Quản lý người dùng" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "Email" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "Mật khẩu mới" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "Xác nhận mật khẩu" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "Sửa" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +120,151 @@ msgstr "Sửa người dùng" msgid "View existing users" msgstr "Xem người dùng" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "Người dùng \"%s\" được tạo thành công." -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "Cần cung cấp ít nhất một user." +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." -msgstr "Super user and staff user deleting is not allowed, use the admin interface for these cases." +msgstr "" +"Super user and staff user deleting is not allowed, use the admin interface " +"for these cases." -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "Người dùng \"%s\" đã xóa thành công." -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "Lỗi xóa người dùng \"%(user)s\": %(error)s" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "Mật khẩu không khớp, thử lại." +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." -msgstr "Super user and staff user password reseting is not allowed, use the admin interface for these cases." +msgstr "" +"Super user and staff user password reseting is not allowed, use the admin " +"interface for these cases." -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "Reset mật khẩu thành công: %s" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "Lỗi reset mật khẩu \"%(user)s\": %(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "Đang reset mật khẩu: %s" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "Đang reset mật khẩu: %s" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.mo b/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.mo index 0a232bc2c5..30d0c122d9 100644 Binary files a/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.mo and b/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.mo differ diff --git a/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.po b/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.po index 1a7f90fae0..abe8d14c45 100644 --- a/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.po +++ b/mayan/apps/user_management/locale/zh_CN/LC_MESSAGES/django.po @@ -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: # Ford Guo , 2014 @@ -9,57 +9,58 @@ msgid "" msgstr "" "Project-Id-Version: Mayan EDMS\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-11-23 02:57-0400\n" -"PO-Revision-Date: 2016-03-21 21:12+0000\n" +"POT-Creation-Date: 2017-05-28 15:51-0400\n" +"PO-Revision-Date: 2017-04-21 16:27+0000\n" "Last-Translator: Roberto Rosario\n" -"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/language/zh_CN/)\n" +"Language-Team: Chinese (China) (http://www.transifex.com/rosarior/mayan-edms/" +"language/zh_CN/)\n" +"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:37 permissions.py:7 +#: apps.py:42 permissions.py:7 msgid "User management" msgstr "用户管理" -#: apps.py:47 +#: apps.py:58 msgid "All the groups." msgstr "" -#: apps.py:51 +#: apps.py:62 msgid "All the users." msgstr "" -#: apps.py:56 links.py:30 +#: apps.py:67 links.py:30 msgid "Members" msgstr "" -#: apps.py:60 +#: apps.py:71 msgid "Full name" msgstr "" -#: apps.py:63 +#: apps.py:74 msgid "Email" msgstr "电子邮件" -#: apps.py:66 +#: apps.py:77 msgid "Active" msgstr "" -#: apps.py:72 +#: apps.py:83 msgid "Has usable password?" msgstr "" -#: forms.py:16 +#: forms.py:18 msgid "New password" msgstr "新密码" -#: forms.py:19 +#: forms.py:21 msgid "Confirm password" msgstr "确认密码" -#: links.py:14 views.py:29 +#: links.py:14 views.py:27 msgid "Create new group" msgstr "" @@ -71,20 +72,20 @@ msgstr "" msgid "Edit" msgstr "" -#: links.py:26 links.py:34 links.py:50 views.py:52 +#: links.py:26 links.py:34 links.py:50 views.py:50 msgid "Groups" msgstr "用户组" -#: links.py:38 views.py:197 +#: links.py:38 views.py:116 msgid "Create new user" msgstr "" -#: links.py:54 links.py:70 views.py:169 +#: links.py:54 links.py:70 views.py:240 msgid "Users" msgstr "用户" #: links.py:62 links.py:66 -msgid "Reset password" +msgid "Set password" msgstr "" #: permissions.py:10 @@ -119,114 +120,147 @@ msgstr "编辑现有用户" msgid "View existing users" msgstr "查看现有用户" -#: views.py:45 +#: serializers.py:29 +msgid "Comma separated list of group primary keys to assign this user to." +msgstr "" + +#: serializers.py:51 +msgid "List of group primary keys to which to add the user." +msgstr "" + +#: views.py:43 #, python-format msgid "Edit group: %s" msgstr "" -#: views.py:66 +#: views.py:64 #, python-format -#| msgid "Delete existing groups" msgid "Delete the group: %s?" msgstr "" -#: views.py:72 +#: views.py:70 msgid "Available users" msgstr "" -#: views.py:73 +#: views.py:71 msgid "Members of groups" msgstr "" -#: views.py:94 +#: views.py:92 #, python-format msgid "Members of group: %s" msgstr "" -#: views.py:127 -#, python-format -msgid "Edit user: %s" -msgstr "" - -#: views.py:133 -msgid "Available groups" -msgstr "" - -#: views.py:134 -msgid "Groups joined" -msgstr "" - -#: views.py:143 -#, python-format -msgid "Groups of user: %s" -msgstr "" - -#: views.py:188 +#: views.py:126 #, python-format msgid "User \"%s\" created successfully." msgstr "创建用户\"%s\"成功" -#: views.py:213 views.py:284 -msgid "Must provide at least one user." -msgstr "必须提供至少一个用户" +#: views.py:135 +#, python-format +msgid "User delete request performed on %(count)d user" +msgstr "" -#: views.py:230 +#: views.py:137 +#, python-format +msgid "User delete request performed on %(count)d users" +msgstr "" + +#: views.py:146 +msgid "Delete user" +msgid_plural "Delete users" +msgstr[0] "" + +#: views.py:156 +#, python-format +msgid "Delete user: %s" +msgstr "" + +#: views.py:168 msgid "" "Super user and staff user deleting is not allowed, use the admin interface " "for these cases." msgstr "不允许删除超级和管理用户,请使用管理接口来操作。" -#: views.py:237 +#: views.py:176 #, python-format msgid "User \"%s\" deleted successfully." msgstr "删除用户\"%s\"成功" -#: views.py:241 +#: views.py:182 #, python-format msgid "Error deleting user \"%(user)s\": %(error)s" msgstr "删除用户: \"%(user)s\": %(error)s出错。" -#: views.py:255 +#: views.py:198 #, python-format -#| msgid "Delete existing users" -msgid "Delete the user: %s?" +msgid "Edit user: %s" msgstr "" -#: views.py:257 -#, python-format -#| msgid "Delete existing users" -msgid "Delete the users: %s?" +#: views.py:204 +msgid "Available groups" msgstr "" -#: views.py:300 -msgid "Passwords do not match, try again." -msgstr "密码不匹配,请再试一次" +#: views.py:205 +msgid "Groups joined" +msgstr "" -#: views.py:309 +#: views.py:214 +#, python-format +msgid "Groups of user: %s" +msgstr "" + +#: views.py:252 +#, python-format +msgid "Password change request performed on %(count)d user" +msgstr "" + +#: views.py:254 +#, python-format +msgid "Password change request performed on %(count)d users" +msgstr "" + +#: views.py:262 +msgid "Submit" +msgstr "提交" + +#: views.py:264 +msgid "Change user password" +msgid_plural "Change users passwords" +msgstr[0] "" + +#: views.py:274 +#, python-format +msgid "Change password for user: %s" +msgstr "" + +#: views.py:294 msgid "" "Super user and staff user password reseting is not allowed, use the admin " "interface for these cases." msgstr "不允许重置超级和管理用户的密码,请使用管理接口来操作。" -#: views.py:319 +#: views.py:304 #, python-format msgid "Successfull password reset for user: %s." msgstr "重置用户:%s密码成功" -#: views.py:325 +#: views.py:310 #, python-format msgid "Error reseting password for user \"%(user)s\": %(error)s" msgstr "重置用户\"%(user)s\"密码出错:%(error)s" -#: views.py:342 -#, python-format -msgid "Reseting password for user: %s" -msgstr "重置用户%s的密码" +#~ msgid "Must provide at least one user." +#~ msgstr "Must provide at least one user." -#: views.py:344 -#, python-format -msgid "Reseting password for users: %s" -msgstr "重置用户:%s的密码" +#~ msgid "Delete the users: %s?" +#~ msgstr "Delete existing users" + +#~ msgid "Passwords do not match, try again." +#~ msgstr "Passwords do not match, try again." + +#~ msgid "Reseting password for users: %s" +#~ msgstr "Reseting password for users: %s" #~ msgid "" #~ "Super user and staff user editing is not allowed, use the admin interface " diff --git a/mayan/apps/user_management/tests/test_api.py b/mayan/apps/user_management/tests/test_api.py index d5cb0284f9..7aec08c631 100644 --- a/mayan/apps/user_management/tests/test_api.py +++ b/mayan/apps/user_management/tests/test_api.py @@ -4,7 +4,7 @@ from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from django.core.urlresolvers import reverse -from rest_framework.test import APITestCase +from rest_api.tests import BaseAPITestCase from ..tests.literals import ( TEST_ADMIN_EMAIL, TEST_ADMIN_PASSWORD, TEST_ADMIN_USERNAME @@ -16,12 +16,10 @@ from .literals import ( ) -class UserManagementUserAPITestCase(APITestCase): - """ - Test the user API endpoints - """ - +class UserManagementUserAPITestCase(BaseAPITestCase): def setUp(self): + super(UserManagementUserAPITestCase, self).setUp() + self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -33,6 +31,7 @@ class UserManagementUserAPITestCase(APITestCase): def tearDown(self): get_user_model().objects.all().delete() + super(UserManagementUserAPITestCase, self).tearDown() def test_user_create(self): response = self.client.post( @@ -249,12 +248,9 @@ class UserManagementUserAPITestCase(APITestCase): self.assertEqual(group.user_set.first(), user) -class UserManagementGroupAPITestCase(APITestCase): - """ - Test the groups API endpoints - """ - +class UserManagementGroupAPITestCase(BaseAPITestCase): def setUp(self): + super(UserManagementGroupAPITestCase, self).setUp() self.admin_user = get_user_model().objects.create_superuser( username=TEST_ADMIN_USERNAME, email=TEST_ADMIN_EMAIL, password=TEST_ADMIN_PASSWORD @@ -266,6 +262,7 @@ class UserManagementGroupAPITestCase(APITestCase): def tearDown(self): get_user_model().objects.all().delete() + super(UserManagementGroupAPITestCase, self).tearDown() def test_group_create(self): response = self.client.post( diff --git a/mayan/celery.py b/mayan/celery.py index 4c3995bc8b..ca8fc9cdad 100644 --- a/mayan/celery.py +++ b/mayan/celery.py @@ -2,12 +2,13 @@ from __future__ import absolute_import, unicode_literals import os -from celery import Celery from django.conf import settings +from .runtime import celery_class + os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mayan.settings.production') -app = Celery('mayan') +app = celery_class('mayan') app.config_from_object('django.conf:settings') app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) diff --git a/mayan/conf.py b/mayan/conf.py new file mode 100644 index 0000000000..5ddcfc8185 --- /dev/null +++ b/mayan/conf.py @@ -0,0 +1,18 @@ +""" +This module should be called settings.py but is named conf.py to avoid a +class with the mayan/settings/* module +""" + +from __future__ import unicode_literals + +from django.utils.translation import ugettext_lazy as _ + +from smart_settings import Namespace + +namespace = Namespace(name='mayan', label=_('Mayan')) + +setting_celery_class = namespace.add_setting( + help_text=_('The class used to instanciate the main Celery app.'), + global_name='MAYAN_CELERY_CLASS', + default='celery.Celery' +) diff --git a/mayan/runtime.py b/mayan/runtime.py new file mode 100644 index 0000000000..16a382b63e --- /dev/null +++ b/mayan/runtime.py @@ -0,0 +1,5 @@ +from django.utils.module_loading import import_string + +from .conf import setting_celery_class + +celery_class = import_string(setting_celery_class.value) diff --git a/mayan/settings/base.py b/mayan/settings/base.py index d51aa6db70..485f19b51d 100644 --- a/mayan/settings/base.py +++ b/mayan/settings/base.py @@ -79,6 +79,7 @@ INSTALLED_APPS = ( 'smart_settings', 'user_management', # Mayan EDMS + 'cabinets', 'checkouts', 'document_comments', 'document_indexing', @@ -86,7 +87,9 @@ INSTALLED_APPS = ( 'document_states', 'documents', 'events', - 'folders', + # Disable the folders app by default + # Will be removed in the next version + # 'folders', 'linking', 'mailer', 'metadata', @@ -234,6 +237,8 @@ STATICFILES_FINDERS = ( 'compressor.finders.CompressorFinder', ) +TEST_RUNNER = 'common.tests.runner.MayanTestRunner' + # --------- Django compressor ------------- COMPRESS_CSS_FILTERS = ( 'compressor.filters.css_default.CssAbsoluteFilter', @@ -272,7 +277,6 @@ CELERY_ROUTES = {} CELERY_TASK_SERIALIZER = 'json' CELERY_TIMEZONE = 'UTC' CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler' -TEST_RUNNER = 'djcelery.contrib.test_runner.CeleryTestSuiteRunner' # ------------ CORS ------------ CORS_ORIGIN_ALLOW_ALL = True # ------ Django REST Swagger ----- diff --git a/mayan/settings/production.py b/mayan/settings/production.py index fa8a4c4ae6..908b6704e3 100644 --- a/mayan/settings/production.py +++ b/mayan/settings/production.py @@ -7,10 +7,12 @@ from . import * # NOQA ALLOWED_HOSTS = ['*'] TEMPLATES[0]['OPTIONS']['loaders'] = ( - 'django.template.loaders.cached.Loader', ( - 'django.template.loaders.filesystem.Loader', - 'django.template.loaders.app_directories.Loader', - ) + ( + 'django.template.loaders.cached.Loader', ( + 'django.template.loaders.filesystem.Loader', + 'django.template.loaders.app_directories.Loader', + ) + ), ) CELERY_ALWAYS_EAGER = False diff --git a/mayan/settings/testing/base.py b/mayan/settings/testing/base.py index 663ff4fb9b..47b8dce5c9 100644 --- a/mayan/settings/testing/base.py +++ b/mayan/settings/testing/base.py @@ -2,7 +2,6 @@ from __future__ import absolute_import, unicode_literals from .. import * # NOQA -DEBUG = True INSTALLED_APPS += ('test_without_migrations',) TEMPLATES[0]['OPTIONS']['loaders'] = ( 'django.template.loaders.filesystem.Loader', diff --git a/mayan/settings/testing/db_mysql.py b/mayan/settings/testing/db_mysql.py new file mode 100644 index 0000000000..c4f7801168 --- /dev/null +++ b/mayan/settings/testing/db_mysql.py @@ -0,0 +1,13 @@ +from __future__ import unicode_literals + +from .base import * # NOQA + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.mysql', + 'NAME': 'mayan_edms', + 'USER': 'root', + 'HOST': '127.0.0.1', + 'PORT': '3306', + } +} diff --git a/mayan/settings/testing/docker.py b/mayan/settings/testing/docker.py new file mode 100644 index 0000000000..7bfeca8048 --- /dev/null +++ b/mayan/settings/testing/docker.py @@ -0,0 +1,16 @@ +from __future__ import absolute_import + +from ..production import * # NOQA + +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'postgres', + 'USER': 'postgres', + 'HOST': 'localhost', + 'PORT': '5432', + } +} + +BROKER_URL = 'redis://127.0.0.1:6379/0' +CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/0' diff --git a/requirements/base.txt b/requirements/base.txt index 6c356cd62c..5b7ff5beee 100644 --- a/requirements/base.txt +++ b/requirements/base.txt @@ -6,15 +6,16 @@ cssmin==0.2.0 django-activity-stream==0.6.3 django-autoadmin==1.1.1 -django-celery==3.1.17 +django-celery==3.2.1 django-colorful==1.2 django-compressor==2.1 django-cors-headers==1.2.2 django-downloadview==1.9 django-formtools==2.0 django-pure-pagination==0.3.0 +django-mathfilters==0.4.0 django-model-utils==2.6.1 -django-mptt==0.8.7 +django-mptt>=0.8.7 django-qsstats-magic==0.7.2 django-rest-swagger==0.3.10 django-stronghold==0.2.8 @@ -30,7 +31,7 @@ pycountry==1.20 pyocr==0.4.5 python-dateutil==2.5.3 python-gnupg==0.3.9 -python-magic==0.4.12 +python-magic==0.4.13 pytz==2016.7 -sh==1.12.9 +sh==1.12.11 diff --git a/requirements/build.txt b/requirements/build.txt new file mode 100644 index 0000000000..f1edda5463 --- /dev/null +++ b/requirements/build.txt @@ -0,0 +1,4 @@ +# requirements/build.txt +twine==1.9.1 + +wheel==0.29.0 diff --git a/requirements/common.txt b/requirements/common.txt index c44993f923..95b179e0bf 100644 --- a/requirements/common.txt +++ b/requirements/common.txt @@ -1,2 +1,2 @@ -r base.txt -Django==1.10.5 +Django==1.10.7 diff --git a/requirements/development.txt b/requirements/development.txt index 5ccc8383f0..40266f5b6f 100644 --- a/requirements/development.txt +++ b/requirements/development.txt @@ -1,5 +1,4 @@ # requirements/development.txt --r common.txt Werkzeug==0.11.15 django-debug-toolbar==1.6 @@ -14,6 +13,5 @@ safety==0.5.1 transifex-client==0.12.2 -wheel==0.29.0 - +-r build.txt -r testing-base.txt diff --git a/requirements/documentation.txt b/requirements/documentation.txt index 39a179f93c..ad15512f47 100644 --- a/requirements/documentation.txt +++ b/requirements/documentation.txt @@ -1,4 +1,4 @@ -Sphinx==1.5.1 +Sphinx==1.5.3 sphinx-autobuild==0.6.0 sphinxcontrib-blockdiag==1.5.5 diff --git a/setup.py b/setup.py index 7572512447..d16d380c8c 100644 --- a/setup.py +++ b/setup.py @@ -56,43 +56,44 @@ def find_packages(directory): return packages install_requires = """ -Django==1.9.11 -Pillow==3.1.2 -PyYAML==3.11 -celery==3.1.19 +Pillow==4.0.0 +PyYAML==3.12 +celery==3.1.24 cssmin==0.2.0 -django-activity-stream==0.6.0 +Django==1.10.7 +django-activity-stream==0.6.3 django-autoadmin==1.1.1 -django-celery==3.1.17 -django-colorful==1.1.0 -django-compressor==2.0 -django-cors-headers==1.1.0 +django-celery==3.2.1 +django-colorful==1.2 +django-compressor==2.1 +django-cors-headers==1.2.2 django-downloadview==1.9 -django-filetransfers==0.1.0 -django-formtools==1.0 +django-formtools==2.0 django-pure-pagination==0.3.0 -django-model-utils==2.4 -django-mptt==0.8.0 +django-mathfilters==0.4.0 +django-model-utils==2.6.1 +django-mptt>=0.8.7 django-qsstats-magic==0.7.2 -django-rest-swagger==0.3.4 -django-stronghold==0.2.7 -django-suit==0.2.16 +django-rest-swagger==0.3.10 +django-stronghold==0.2.8 +django-suit==0.2.23 django-widget-tweaks==1.4.1 djangorestframework==3.3.2 djangorestframework-recursive==0.1.1 -fusepy==2.0.2 +fusepy==2.0.4 pdfminer==20140328 -pycountry==1.19 -pytesseract==0.1.6 -python-dateutil==2.4.2 +pycountry==1.20 +pyocr==0.4.5 +python-dateutil==2.5.3 python-gnupg==0.3.9 -python-magic==0.4.10 -pytz==2015.4 -sh==1.11 +python-magic==0.4.13 +pytz==2016.7 +sh==1.12.11 """.split() with open('README.rst') as f: readme = f.read() + with open('HISTORY.rst') as f: history = f.read() diff --git a/tox.ini b/tox.ini index a64387cd66..25f3cdf28e 100644 --- a/tox.ini +++ b/tox.ini @@ -12,7 +12,7 @@ basepython = py35: python3.5 commands= - coverage run {envdir}/bin/django-admin.py runtests --settings=mayan.settings.testing --nomigrations + coverage run {envdir}/bin/django-admin.py test --mayan-apps --settings=mayan.settings.testing --nomigrations deps = -rrequirements/testing-no-django.txt