Conflicts: .gitignore .tx/config apps/acls/locale/bg/LC_MESSAGES/django.mo apps/acls/locale/bg/LC_MESSAGES/django.po apps/acls/locale/de_DE/LC_MESSAGES/django.mo apps/acls/locale/de_DE/LC_MESSAGES/django.po apps/acls/locale/en/LC_MESSAGES/django.mo apps/acls/locale/en/LC_MESSAGES/django.po apps/acls/locale/es/LC_MESSAGES/django.mo apps/acls/locale/es/LC_MESSAGES/django.po apps/acls/locale/fr/LC_MESSAGES/django.mo apps/acls/locale/fr/LC_MESSAGES/django.po apps/acls/locale/it/LC_MESSAGES/django.mo apps/acls/locale/it/LC_MESSAGES/django.po apps/acls/locale/nl_NL/LC_MESSAGES/django.mo apps/acls/locale/nl_NL/LC_MESSAGES/django.po apps/acls/locale/pl/LC_MESSAGES/django.mo apps/acls/locale/pl/LC_MESSAGES/django.po apps/acls/locale/pt/LC_MESSAGES/django.mo apps/acls/locale/pt/LC_MESSAGES/django.po apps/acls/locale/pt_BR/LC_MESSAGES/django.mo apps/acls/locale/pt_BR/LC_MESSAGES/django.po apps/acls/locale/ru/LC_MESSAGES/django.mo apps/acls/locale/ru/LC_MESSAGES/django.po apps/acls/registry.py apps/app_registry/__init__.py apps/app_registry/models.py apps/bootstrap/classes.py apps/bootstrap/exceptions.py apps/bootstrap/forms.py apps/bootstrap/links.py apps/bootstrap/literals.py apps/bootstrap/locale/bg/LC_MESSAGES/django.mo apps/bootstrap/locale/bg/LC_MESSAGES/django.po apps/bootstrap/locale/de_DE/LC_MESSAGES/django.mo apps/bootstrap/locale/de_DE/LC_MESSAGES/django.po apps/bootstrap/locale/en/LC_MESSAGES/django.mo apps/bootstrap/locale/en/LC_MESSAGES/django.po apps/bootstrap/locale/es/LC_MESSAGES/django.mo apps/bootstrap/locale/es/LC_MESSAGES/django.po apps/bootstrap/locale/fr/LC_MESSAGES/django.mo apps/bootstrap/locale/fr/LC_MESSAGES/django.po apps/bootstrap/locale/it/LC_MESSAGES/django.mo apps/bootstrap/locale/it/LC_MESSAGES/django.po apps/bootstrap/locale/nl_NL/LC_MESSAGES/django.mo apps/bootstrap/locale/nl_NL/LC_MESSAGES/django.po apps/bootstrap/locale/pl/LC_MESSAGES/django.mo apps/bootstrap/locale/pl/LC_MESSAGES/django.po apps/bootstrap/locale/pt/LC_MESSAGES/django.mo apps/bootstrap/locale/pt/LC_MESSAGES/django.po apps/bootstrap/locale/pt_BR/LC_MESSAGES/django.mo apps/bootstrap/locale/pt_BR/LC_MESSAGES/django.po apps/bootstrap/locale/ru/LC_MESSAGES/django.mo apps/bootstrap/locale/ru/LC_MESSAGES/django.po apps/bootstrap/managers.py apps/bootstrap/migrations/0001_initial.py apps/bootstrap/models.py apps/bootstrap/permissions.py apps/bootstrap/post_init.py apps/bootstrap/registry.py apps/bootstrap/static/images/icons/radioactivity.png apps/bootstrap/urls.py apps/bootstrap/utils.py apps/bootstrap/views.py apps/checkouts/locale/bg/LC_MESSAGES/django.mo apps/checkouts/locale/bg/LC_MESSAGES/django.po apps/checkouts/locale/de_DE/LC_MESSAGES/django.mo apps/checkouts/locale/de_DE/LC_MESSAGES/django.po apps/checkouts/locale/en/LC_MESSAGES/django.mo apps/checkouts/locale/en/LC_MESSAGES/django.po apps/checkouts/locale/es/LC_MESSAGES/django.mo apps/checkouts/locale/es/LC_MESSAGES/django.po apps/checkouts/locale/fr/LC_MESSAGES/django.mo apps/checkouts/locale/fr/LC_MESSAGES/django.po apps/checkouts/locale/it/LC_MESSAGES/django.mo apps/checkouts/locale/it/LC_MESSAGES/django.po apps/checkouts/locale/nl_NL/LC_MESSAGES/django.mo apps/checkouts/locale/nl_NL/LC_MESSAGES/django.po apps/checkouts/locale/pl/LC_MESSAGES/django.mo apps/checkouts/locale/pl/LC_MESSAGES/django.po apps/checkouts/locale/pt/LC_MESSAGES/django.mo apps/checkouts/locale/pt/LC_MESSAGES/django.po apps/checkouts/locale/pt_BR/LC_MESSAGES/django.mo apps/checkouts/locale/pt_BR/LC_MESSAGES/django.po apps/checkouts/locale/ru/LC_MESSAGES/django.mo apps/checkouts/locale/ru/LC_MESSAGES/django.po apps/common/__init__.py apps/common/locale/bg/LC_MESSAGES/django.mo apps/common/locale/bg/LC_MESSAGES/django.po apps/common/locale/de_DE/LC_MESSAGES/django.mo apps/common/locale/de_DE/LC_MESSAGES/django.po apps/common/locale/en/LC_MESSAGES/django.mo apps/common/locale/en/LC_MESSAGES/django.po apps/common/locale/es/LC_MESSAGES/django.mo apps/common/locale/es/LC_MESSAGES/django.po apps/common/locale/fr/LC_MESSAGES/django.mo apps/common/locale/fr/LC_MESSAGES/django.po apps/common/locale/it/LC_MESSAGES/django.mo apps/common/locale/it/LC_MESSAGES/django.po apps/common/locale/nl_NL/LC_MESSAGES/django.mo apps/common/locale/nl_NL/LC_MESSAGES/django.po apps/common/locale/pl/LC_MESSAGES/django.mo apps/common/locale/pl/LC_MESSAGES/django.po apps/common/locale/pt/LC_MESSAGES/django.mo apps/common/locale/pt/LC_MESSAGES/django.po apps/common/locale/pt_BR/LC_MESSAGES/django.mo apps/common/locale/pt_BR/LC_MESSAGES/django.po apps/common/locale/ru/LC_MESSAGES/django.mo apps/common/locale/ru/LC_MESSAGES/django.po apps/common/templates/generic_list_subtemplate.html apps/common/utils.py apps/common/widgets.py apps/converter/conf/settings.py apps/converter/locale/bg/LC_MESSAGES/django.mo apps/converter/locale/bg/LC_MESSAGES/django.po apps/converter/locale/de_DE/LC_MESSAGES/django.mo apps/converter/locale/de_DE/LC_MESSAGES/django.po apps/converter/locale/en/LC_MESSAGES/django.mo apps/converter/locale/en/LC_MESSAGES/django.po apps/converter/locale/es/LC_MESSAGES/django.mo apps/converter/locale/es/LC_MESSAGES/django.po apps/converter/locale/fr/LC_MESSAGES/django.mo apps/converter/locale/fr/LC_MESSAGES/django.po apps/converter/locale/it/LC_MESSAGES/django.mo apps/converter/locale/it/LC_MESSAGES/django.po apps/converter/locale/nl_NL/LC_MESSAGES/django.mo apps/converter/locale/nl_NL/LC_MESSAGES/django.po apps/converter/locale/pl/LC_MESSAGES/django.mo apps/converter/locale/pl/LC_MESSAGES/django.po apps/converter/locale/pt/LC_MESSAGES/django.mo apps/converter/locale/pt/LC_MESSAGES/django.po apps/converter/locale/pt_BR/LC_MESSAGES/django.mo apps/converter/locale/pt_BR/LC_MESSAGES/django.po apps/converter/locale/ru/LC_MESSAGES/django.mo apps/converter/locale/ru/LC_MESSAGES/django.po apps/converter/office_converter.py apps/converter/utils.py apps/django_gpg/locale/bg/LC_MESSAGES/django.mo apps/django_gpg/locale/bg/LC_MESSAGES/django.po apps/django_gpg/locale/de_DE/LC_MESSAGES/django.mo apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po apps/django_gpg/locale/en/LC_MESSAGES/django.mo apps/django_gpg/locale/en/LC_MESSAGES/django.po apps/django_gpg/locale/es/LC_MESSAGES/django.mo apps/django_gpg/locale/es/LC_MESSAGES/django.po apps/django_gpg/locale/fr/LC_MESSAGES/django.mo apps/django_gpg/locale/fr/LC_MESSAGES/django.po apps/django_gpg/locale/it/LC_MESSAGES/django.mo apps/django_gpg/locale/it/LC_MESSAGES/django.po apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.mo apps/django_gpg/locale/nl_NL/LC_MESSAGES/django.po apps/django_gpg/locale/pl/LC_MESSAGES/django.mo apps/django_gpg/locale/pl/LC_MESSAGES/django.po apps/django_gpg/locale/pt/LC_MESSAGES/django.mo apps/django_gpg/locale/pt/LC_MESSAGES/django.po apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.mo apps/django_gpg/locale/pt_BR/LC_MESSAGES/django.po apps/django_gpg/locale/ru/LC_MESSAGES/django.mo apps/django_gpg/locale/ru/LC_MESSAGES/django.po apps/document_comments/locale/bg/LC_MESSAGES/django.mo apps/document_comments/locale/bg/LC_MESSAGES/django.po apps/document_comments/locale/de_DE/LC_MESSAGES/django.mo apps/document_comments/locale/de_DE/LC_MESSAGES/django.po apps/document_comments/locale/en/LC_MESSAGES/django.mo apps/document_comments/locale/en/LC_MESSAGES/django.po apps/document_comments/locale/es/LC_MESSAGES/django.mo apps/document_comments/locale/es/LC_MESSAGES/django.po apps/document_comments/locale/fr/LC_MESSAGES/django.mo apps/document_comments/locale/fr/LC_MESSAGES/django.po apps/document_comments/locale/it/LC_MESSAGES/django.mo apps/document_comments/locale/it/LC_MESSAGES/django.po apps/document_comments/locale/nl_NL/LC_MESSAGES/django.mo apps/document_comments/locale/nl_NL/LC_MESSAGES/django.po apps/document_comments/locale/pl/LC_MESSAGES/django.mo apps/document_comments/locale/pl/LC_MESSAGES/django.po apps/document_comments/locale/pt/LC_MESSAGES/django.mo apps/document_comments/locale/pt/LC_MESSAGES/django.po apps/document_comments/locale/pt_BR/LC_MESSAGES/django.mo apps/document_comments/locale/pt_BR/LC_MESSAGES/django.po apps/document_comments/locale/ru/LC_MESSAGES/django.mo apps/document_comments/locale/ru/LC_MESSAGES/django.po apps/document_indexing/__init__.py apps/document_indexing/locale/bg/LC_MESSAGES/django.mo apps/document_indexing/locale/bg/LC_MESSAGES/django.po apps/document_indexing/locale/de_DE/LC_MESSAGES/django.mo apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po apps/document_indexing/locale/en/LC_MESSAGES/django.mo apps/document_indexing/locale/en/LC_MESSAGES/django.po apps/document_indexing/locale/es/LC_MESSAGES/django.mo apps/document_indexing/locale/es/LC_MESSAGES/django.po apps/document_indexing/locale/fr/LC_MESSAGES/django.mo apps/document_indexing/locale/fr/LC_MESSAGES/django.po apps/document_indexing/locale/it/LC_MESSAGES/django.mo apps/document_indexing/locale/it/LC_MESSAGES/django.po apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.mo apps/document_indexing/locale/nl_NL/LC_MESSAGES/django.po apps/document_indexing/locale/pl/LC_MESSAGES/django.mo apps/document_indexing/locale/pl/LC_MESSAGES/django.po apps/document_indexing/locale/pt/LC_MESSAGES/django.mo apps/document_indexing/locale/pt/LC_MESSAGES/django.po apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.mo apps/document_indexing/locale/pt_BR/LC_MESSAGES/django.po apps/document_indexing/locale/ru/LC_MESSAGES/django.mo apps/document_indexing/locale/ru/LC_MESSAGES/django.po apps/document_indexing/models.py apps/document_indexing/registry.py apps/document_indexing/urls.py apps/document_indexing/views.py apps/document_signatures/locale/bg/LC_MESSAGES/django.mo apps/document_signatures/locale/bg/LC_MESSAGES/django.po apps/document_signatures/locale/de_DE/LC_MESSAGES/django.mo apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po apps/document_signatures/locale/en/LC_MESSAGES/django.mo apps/document_signatures/locale/en/LC_MESSAGES/django.po apps/document_signatures/locale/es/LC_MESSAGES/django.mo apps/document_signatures/locale/es/LC_MESSAGES/django.po apps/document_signatures/locale/fr/LC_MESSAGES/django.mo apps/document_signatures/locale/fr/LC_MESSAGES/django.po apps/document_signatures/locale/it/LC_MESSAGES/django.mo apps/document_signatures/locale/it/LC_MESSAGES/django.po apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.mo apps/document_signatures/locale/nl_NL/LC_MESSAGES/django.po apps/document_signatures/locale/pl/LC_MESSAGES/django.mo apps/document_signatures/locale/pl/LC_MESSAGES/django.po apps/document_signatures/locale/pt/LC_MESSAGES/django.mo apps/document_signatures/locale/pt/LC_MESSAGES/django.po apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.mo apps/document_signatures/locale/pt_BR/LC_MESSAGES/django.po apps/document_signatures/locale/ru/LC_MESSAGES/django.mo apps/document_signatures/locale/ru/LC_MESSAGES/django.po apps/documents/__init__.py apps/documents/forms.py apps/documents/locale/bg/LC_MESSAGES/django.mo apps/documents/locale/bg/LC_MESSAGES/django.po apps/documents/locale/de_DE/LC_MESSAGES/django.mo apps/documents/locale/de_DE/LC_MESSAGES/django.po apps/documents/locale/en/LC_MESSAGES/django.mo apps/documents/locale/en/LC_MESSAGES/django.po apps/documents/locale/es/LC_MESSAGES/django.mo apps/documents/locale/es/LC_MESSAGES/django.po apps/documents/locale/fr/LC_MESSAGES/django.mo apps/documents/locale/fr/LC_MESSAGES/django.po apps/documents/locale/it/LC_MESSAGES/django.mo apps/documents/locale/it/LC_MESSAGES/django.po apps/documents/locale/nl_NL/LC_MESSAGES/django.mo apps/documents/locale/nl_NL/LC_MESSAGES/django.po apps/documents/locale/pl/LC_MESSAGES/django.mo apps/documents/locale/pl/LC_MESSAGES/django.po apps/documents/locale/pt/LC_MESSAGES/django.mo apps/documents/locale/pt/LC_MESSAGES/django.po apps/documents/locale/pt_BR/LC_MESSAGES/django.mo apps/documents/locale/pt_BR/LC_MESSAGES/django.po apps/documents/locale/ru/LC_MESSAGES/django.mo apps/documents/locale/ru/LC_MESSAGES/django.po apps/documents/managers.py apps/documents/migrations/0015_auto__add_unique_documenttype_name.py apps/documents/models.py apps/documents/registry.py apps/dynamic_search/locale/bg/LC_MESSAGES/django.mo apps/dynamic_search/locale/bg/LC_MESSAGES/django.po apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.mo apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po apps/dynamic_search/locale/en/LC_MESSAGES/django.mo apps/dynamic_search/locale/en/LC_MESSAGES/django.po apps/dynamic_search/locale/es/LC_MESSAGES/django.mo apps/dynamic_search/locale/es/LC_MESSAGES/django.po apps/dynamic_search/locale/fr/LC_MESSAGES/django.mo apps/dynamic_search/locale/fr/LC_MESSAGES/django.po apps/dynamic_search/locale/it/LC_MESSAGES/django.mo apps/dynamic_search/locale/it/LC_MESSAGES/django.po apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.mo apps/dynamic_search/locale/nl_NL/LC_MESSAGES/django.po apps/dynamic_search/locale/pl/LC_MESSAGES/django.mo apps/dynamic_search/locale/pl/LC_MESSAGES/django.po apps/dynamic_search/locale/pt/LC_MESSAGES/django.mo apps/dynamic_search/locale/pt/LC_MESSAGES/django.po apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.mo apps/dynamic_search/locale/pt_BR/LC_MESSAGES/django.po apps/dynamic_search/locale/ru/LC_MESSAGES/django.mo apps/dynamic_search/locale/ru/LC_MESSAGES/django.po apps/dynamic_search/registry.py apps/folders/__init__.py apps/folders/locale/bg/LC_MESSAGES/django.mo apps/folders/locale/bg/LC_MESSAGES/django.po apps/folders/locale/de_DE/LC_MESSAGES/django.mo apps/folders/locale/de_DE/LC_MESSAGES/django.po apps/folders/locale/en/LC_MESSAGES/django.mo apps/folders/locale/en/LC_MESSAGES/django.po apps/folders/locale/es/LC_MESSAGES/django.mo apps/folders/locale/es/LC_MESSAGES/django.po apps/folders/locale/fr/LC_MESSAGES/django.mo apps/folders/locale/fr/LC_MESSAGES/django.po apps/folders/locale/it/LC_MESSAGES/django.mo apps/folders/locale/it/LC_MESSAGES/django.po apps/folders/locale/nl_NL/LC_MESSAGES/django.mo apps/folders/locale/nl_NL/LC_MESSAGES/django.po apps/folders/locale/pl/LC_MESSAGES/django.mo apps/folders/locale/pl/LC_MESSAGES/django.po apps/folders/locale/pt/LC_MESSAGES/django.mo apps/folders/locale/pt/LC_MESSAGES/django.po apps/folders/locale/pt_BR/LC_MESSAGES/django.mo apps/folders/locale/pt_BR/LC_MESSAGES/django.po apps/folders/locale/ru/LC_MESSAGES/django.mo apps/folders/locale/ru/LC_MESSAGES/django.po apps/folders/registry.py apps/history/locale/bg/LC_MESSAGES/django.mo apps/history/locale/bg/LC_MESSAGES/django.po apps/history/locale/de_DE/LC_MESSAGES/django.mo apps/history/locale/de_DE/LC_MESSAGES/django.po apps/history/locale/en/LC_MESSAGES/django.mo apps/history/locale/en/LC_MESSAGES/django.po apps/history/locale/es/LC_MESSAGES/django.mo apps/history/locale/es/LC_MESSAGES/django.po apps/history/locale/fr/LC_MESSAGES/django.mo apps/history/locale/fr/LC_MESSAGES/django.po apps/history/locale/it/LC_MESSAGES/django.mo apps/history/locale/it/LC_MESSAGES/django.po apps/history/locale/nl_NL/LC_MESSAGES/django.mo apps/history/locale/nl_NL/LC_MESSAGES/django.po apps/history/locale/pl/LC_MESSAGES/django.mo apps/history/locale/pl/LC_MESSAGES/django.po apps/history/locale/pt/LC_MESSAGES/django.mo apps/history/locale/pt/LC_MESSAGES/django.po apps/history/locale/pt_BR/LC_MESSAGES/django.mo apps/history/locale/pt_BR/LC_MESSAGES/django.po apps/history/locale/ru/LC_MESSAGES/django.mo apps/history/locale/ru/LC_MESSAGES/django.po apps/history/registry.py apps/installation/__init__.py apps/installation/locale/bg/LC_MESSAGES/django.mo apps/installation/locale/bg/LC_MESSAGES/django.po apps/installation/locale/de_DE/LC_MESSAGES/django.mo apps/installation/locale/de_DE/LC_MESSAGES/django.po apps/installation/locale/en/LC_MESSAGES/django.mo apps/installation/locale/en/LC_MESSAGES/django.po apps/installation/locale/es/LC_MESSAGES/django.mo apps/installation/locale/es/LC_MESSAGES/django.po apps/installation/locale/fr/LC_MESSAGES/django.mo apps/installation/locale/fr/LC_MESSAGES/django.po apps/installation/locale/it/LC_MESSAGES/django.mo apps/installation/locale/it/LC_MESSAGES/django.po apps/installation/locale/nl_NL/LC_MESSAGES/django.mo apps/installation/locale/nl_NL/LC_MESSAGES/django.po apps/installation/locale/pl/LC_MESSAGES/django.mo apps/installation/locale/pl/LC_MESSAGES/django.po apps/installation/locale/pt/LC_MESSAGES/django.mo apps/installation/locale/pt/LC_MESSAGES/django.po apps/installation/locale/pt_BR/LC_MESSAGES/django.mo apps/installation/locale/pt_BR/LC_MESSAGES/django.po apps/installation/locale/ru/LC_MESSAGES/django.mo apps/installation/locale/ru/LC_MESSAGES/django.po apps/installation/models.py apps/installation/views.py apps/linking/locale/bg/LC_MESSAGES/django.mo apps/linking/locale/bg/LC_MESSAGES/django.po apps/linking/locale/de_DE/LC_MESSAGES/django.mo apps/linking/locale/de_DE/LC_MESSAGES/django.po apps/linking/locale/en/LC_MESSAGES/django.mo apps/linking/locale/en/LC_MESSAGES/django.po apps/linking/locale/es/LC_MESSAGES/django.mo apps/linking/locale/es/LC_MESSAGES/django.po apps/linking/locale/fr/LC_MESSAGES/django.mo apps/linking/locale/fr/LC_MESSAGES/django.po apps/linking/locale/it/LC_MESSAGES/django.mo apps/linking/locale/it/LC_MESSAGES/django.po apps/linking/locale/nl_NL/LC_MESSAGES/django.mo apps/linking/locale/nl_NL/LC_MESSAGES/django.po apps/linking/locale/pl/LC_MESSAGES/django.mo apps/linking/locale/pl/LC_MESSAGES/django.po apps/linking/locale/pt/LC_MESSAGES/django.mo apps/linking/locale/pt/LC_MESSAGES/django.po apps/linking/locale/pt_BR/LC_MESSAGES/django.mo apps/linking/locale/pt_BR/LC_MESSAGES/django.po apps/linking/locale/ru/LC_MESSAGES/django.mo apps/linking/locale/ru/LC_MESSAGES/django.po apps/linking/registry.py apps/main/__init__.py apps/main/locale/bg/LC_MESSAGES/django.mo apps/main/locale/bg/LC_MESSAGES/django.po apps/main/locale/de_DE/LC_MESSAGES/django.mo apps/main/locale/de_DE/LC_MESSAGES/django.po apps/main/locale/en/LC_MESSAGES/django.mo apps/main/locale/en/LC_MESSAGES/django.po apps/main/locale/es/LC_MESSAGES/django.mo apps/main/locale/es/LC_MESSAGES/django.po apps/main/locale/fr/LC_MESSAGES/django.mo apps/main/locale/fr/LC_MESSAGES/django.po apps/main/locale/it/LC_MESSAGES/django.mo apps/main/locale/it/LC_MESSAGES/django.po apps/main/locale/nl_NL/LC_MESSAGES/django.mo apps/main/locale/nl_NL/LC_MESSAGES/django.po apps/main/locale/pl/LC_MESSAGES/django.mo apps/main/locale/pl/LC_MESSAGES/django.po apps/main/locale/pt/LC_MESSAGES/django.mo apps/main/locale/pt/LC_MESSAGES/django.po apps/main/locale/pt_BR/LC_MESSAGES/django.mo apps/main/locale/pt_BR/LC_MESSAGES/django.po apps/main/locale/ru/LC_MESSAGES/django.mo apps/main/locale/ru/LC_MESSAGES/django.po apps/main/templates/base.html apps/metadata/__init__.py apps/metadata/locale/bg/LC_MESSAGES/django.mo apps/metadata/locale/bg/LC_MESSAGES/django.po apps/metadata/locale/de_DE/LC_MESSAGES/django.mo apps/metadata/locale/de_DE/LC_MESSAGES/django.po apps/metadata/locale/en/LC_MESSAGES/django.mo apps/metadata/locale/en/LC_MESSAGES/django.po apps/metadata/locale/es/LC_MESSAGES/django.mo apps/metadata/locale/es/LC_MESSAGES/django.po apps/metadata/locale/fr/LC_MESSAGES/django.mo apps/metadata/locale/fr/LC_MESSAGES/django.po apps/metadata/locale/it/LC_MESSAGES/django.mo apps/metadata/locale/it/LC_MESSAGES/django.po apps/metadata/locale/nl_NL/LC_MESSAGES/django.mo apps/metadata/locale/nl_NL/LC_MESSAGES/django.po apps/metadata/locale/pl/LC_MESSAGES/django.mo apps/metadata/locale/pl/LC_MESSAGES/django.po apps/metadata/locale/pt/LC_MESSAGES/django.mo apps/metadata/locale/pt/LC_MESSAGES/django.po apps/metadata/locale/pt_BR/LC_MESSAGES/django.mo apps/metadata/locale/pt_BR/LC_MESSAGES/django.po apps/metadata/locale/ru/LC_MESSAGES/django.mo apps/metadata/locale/ru/LC_MESSAGES/django.po apps/metadata/migrations/0001_initial.py apps/metadata/models.py apps/metadata/registry.py apps/navigation/locale/bg/LC_MESSAGES/django.mo apps/navigation/locale/bg/LC_MESSAGES/django.po apps/navigation/locale/de_DE/LC_MESSAGES/django.mo apps/navigation/locale/de_DE/LC_MESSAGES/django.po apps/navigation/locale/en/LC_MESSAGES/django.mo apps/navigation/locale/en/LC_MESSAGES/django.po apps/navigation/locale/es/LC_MESSAGES/django.mo apps/navigation/locale/es/LC_MESSAGES/django.po apps/navigation/locale/fr/LC_MESSAGES/django.mo apps/navigation/locale/fr/LC_MESSAGES/django.po apps/navigation/locale/it/LC_MESSAGES/django.mo apps/navigation/locale/it/LC_MESSAGES/django.po apps/navigation/locale/nl_NL/LC_MESSAGES/django.mo apps/navigation/locale/nl_NL/LC_MESSAGES/django.po apps/navigation/locale/pl/LC_MESSAGES/django.mo apps/navigation/locale/pl/LC_MESSAGES/django.po apps/navigation/locale/pt/LC_MESSAGES/django.mo apps/navigation/locale/pt/LC_MESSAGES/django.po apps/navigation/locale/pt_BR/LC_MESSAGES/django.mo apps/navigation/locale/pt_BR/LC_MESSAGES/django.po apps/navigation/locale/ru/LC_MESSAGES/django.mo apps/navigation/locale/ru/LC_MESSAGES/django.po apps/navigation/templatetags/navigation_tags.py apps/ocr/__init__.py apps/ocr/locale/bg/LC_MESSAGES/django.mo apps/ocr/locale/bg/LC_MESSAGES/django.po apps/ocr/locale/de_DE/LC_MESSAGES/django.mo apps/ocr/locale/de_DE/LC_MESSAGES/django.po apps/ocr/locale/en/LC_MESSAGES/django.mo apps/ocr/locale/en/LC_MESSAGES/django.po apps/ocr/locale/es/LC_MESSAGES/django.mo apps/ocr/locale/es/LC_MESSAGES/django.po apps/ocr/locale/fr/LC_MESSAGES/django.mo apps/ocr/locale/fr/LC_MESSAGES/django.po apps/ocr/locale/it/LC_MESSAGES/django.mo apps/ocr/locale/it/LC_MESSAGES/django.po apps/ocr/locale/nl_NL/LC_MESSAGES/django.mo apps/ocr/locale/nl_NL/LC_MESSAGES/django.po apps/ocr/locale/pl/LC_MESSAGES/django.mo apps/ocr/locale/pl/LC_MESSAGES/django.po apps/ocr/locale/pt/LC_MESSAGES/django.mo apps/ocr/locale/pt/LC_MESSAGES/django.po apps/ocr/locale/pt_BR/LC_MESSAGES/django.mo apps/ocr/locale/pt_BR/LC_MESSAGES/django.po apps/ocr/locale/ru/LC_MESSAGES/django.mo apps/ocr/locale/ru/LC_MESSAGES/django.po apps/permissions/locale/bg/LC_MESSAGES/django.mo apps/permissions/locale/bg/LC_MESSAGES/django.po apps/permissions/locale/de_DE/LC_MESSAGES/django.mo apps/permissions/locale/de_DE/LC_MESSAGES/django.po apps/permissions/locale/en/LC_MESSAGES/django.mo apps/permissions/locale/en/LC_MESSAGES/django.po apps/permissions/locale/es/LC_MESSAGES/django.mo apps/permissions/locale/es/LC_MESSAGES/django.po apps/permissions/locale/fr/LC_MESSAGES/django.mo apps/permissions/locale/fr/LC_MESSAGES/django.po apps/permissions/locale/it/LC_MESSAGES/django.mo apps/permissions/locale/it/LC_MESSAGES/django.po apps/permissions/locale/nl_NL/LC_MESSAGES/django.mo apps/permissions/locale/nl_NL/LC_MESSAGES/django.po apps/permissions/locale/pl/LC_MESSAGES/django.mo apps/permissions/locale/pl/LC_MESSAGES/django.po apps/permissions/locale/pt/LC_MESSAGES/django.mo apps/permissions/locale/pt/LC_MESSAGES/django.po apps/permissions/locale/pt_BR/LC_MESSAGES/django.mo apps/permissions/locale/pt_BR/LC_MESSAGES/django.po apps/permissions/locale/ru/LC_MESSAGES/django.mo apps/permissions/locale/ru/LC_MESSAGES/django.po apps/permissions/models.py apps/permissions/registry.py apps/project_setup/locale/bg/LC_MESSAGES/django.mo apps/project_setup/locale/bg/LC_MESSAGES/django.po apps/project_setup/locale/de_DE/LC_MESSAGES/django.mo apps/project_setup/locale/de_DE/LC_MESSAGES/django.po apps/project_setup/locale/en/LC_MESSAGES/django.mo apps/project_setup/locale/en/LC_MESSAGES/django.po apps/project_setup/locale/es/LC_MESSAGES/django.mo apps/project_setup/locale/es/LC_MESSAGES/django.po apps/project_setup/locale/fr/LC_MESSAGES/django.mo apps/project_setup/locale/fr/LC_MESSAGES/django.po apps/project_setup/locale/it/LC_MESSAGES/django.mo apps/project_setup/locale/it/LC_MESSAGES/django.po apps/project_setup/locale/nl_NL/LC_MESSAGES/django.mo apps/project_setup/locale/nl_NL/LC_MESSAGES/django.po apps/project_setup/locale/pl/LC_MESSAGES/django.mo apps/project_setup/locale/pl/LC_MESSAGES/django.po apps/project_setup/locale/pt/LC_MESSAGES/django.mo apps/project_setup/locale/pt/LC_MESSAGES/django.po apps/project_setup/locale/pt_BR/LC_MESSAGES/django.mo apps/project_setup/locale/pt_BR/LC_MESSAGES/django.po apps/project_setup/locale/ru/LC_MESSAGES/django.mo apps/project_setup/locale/ru/LC_MESSAGES/django.po apps/project_tools/locale/bg/LC_MESSAGES/django.mo apps/project_tools/locale/bg/LC_MESSAGES/django.po apps/project_tools/locale/de_DE/LC_MESSAGES/django.mo apps/project_tools/locale/de_DE/LC_MESSAGES/django.po apps/project_tools/locale/en/LC_MESSAGES/django.mo apps/project_tools/locale/en/LC_MESSAGES/django.po apps/project_tools/locale/es/LC_MESSAGES/django.mo apps/project_tools/locale/es/LC_MESSAGES/django.po apps/project_tools/locale/fr/LC_MESSAGES/django.mo apps/project_tools/locale/fr/LC_MESSAGES/django.po apps/project_tools/locale/it/LC_MESSAGES/django.mo apps/project_tools/locale/it/LC_MESSAGES/django.po apps/project_tools/locale/nl_NL/LC_MESSAGES/django.mo apps/project_tools/locale/nl_NL/LC_MESSAGES/django.po apps/project_tools/locale/pl/LC_MESSAGES/django.mo apps/project_tools/locale/pl/LC_MESSAGES/django.po apps/project_tools/locale/pt/LC_MESSAGES/django.mo apps/project_tools/locale/pt/LC_MESSAGES/django.po apps/project_tools/locale/pt_BR/LC_MESSAGES/django.mo apps/project_tools/locale/pt_BR/LC_MESSAGES/django.po apps/project_tools/locale/ru/LC_MESSAGES/django.mo apps/project_tools/locale/ru/LC_MESSAGES/django.po apps/scheduler/__init__.py apps/scheduler/locale/bg/LC_MESSAGES/django.mo apps/scheduler/locale/bg/LC_MESSAGES/django.po apps/scheduler/locale/de_DE/LC_MESSAGES/django.mo apps/scheduler/locale/de_DE/LC_MESSAGES/django.po apps/scheduler/locale/en/LC_MESSAGES/django.mo apps/scheduler/locale/en/LC_MESSAGES/django.po apps/scheduler/locale/es/LC_MESSAGES/django.mo apps/scheduler/locale/es/LC_MESSAGES/django.po apps/scheduler/locale/fr/LC_MESSAGES/django.mo apps/scheduler/locale/fr/LC_MESSAGES/django.po apps/scheduler/locale/it/LC_MESSAGES/django.mo apps/scheduler/locale/it/LC_MESSAGES/django.po apps/scheduler/locale/nl_NL/LC_MESSAGES/django.mo apps/scheduler/locale/nl_NL/LC_MESSAGES/django.po apps/scheduler/locale/pl/LC_MESSAGES/django.mo apps/scheduler/locale/pl/LC_MESSAGES/django.po apps/scheduler/locale/pt/LC_MESSAGES/django.mo apps/scheduler/locale/pt/LC_MESSAGES/django.po apps/scheduler/locale/pt_BR/LC_MESSAGES/django.mo apps/scheduler/locale/pt_BR/LC_MESSAGES/django.po apps/scheduler/locale/ru/LC_MESSAGES/django.mo apps/scheduler/locale/ru/LC_MESSAGES/django.po apps/scheduler/runtime.py apps/smart_settings/locale/bg/LC_MESSAGES/django.mo apps/smart_settings/locale/bg/LC_MESSAGES/django.po apps/smart_settings/locale/de_DE/LC_MESSAGES/django.mo apps/smart_settings/locale/de_DE/LC_MESSAGES/django.po apps/smart_settings/locale/en/LC_MESSAGES/django.mo apps/smart_settings/locale/en/LC_MESSAGES/django.po apps/smart_settings/locale/es/LC_MESSAGES/django.mo apps/smart_settings/locale/es/LC_MESSAGES/django.po apps/smart_settings/locale/fr/LC_MESSAGES/django.mo apps/smart_settings/locale/fr/LC_MESSAGES/django.po apps/smart_settings/locale/it/LC_MESSAGES/django.mo apps/smart_settings/locale/it/LC_MESSAGES/django.po apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.mo apps/smart_settings/locale/nl_NL/LC_MESSAGES/django.po apps/smart_settings/locale/pl/LC_MESSAGES/django.mo apps/smart_settings/locale/pl/LC_MESSAGES/django.po apps/smart_settings/locale/pt/LC_MESSAGES/django.mo apps/smart_settings/locale/pt/LC_MESSAGES/django.po apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.mo apps/smart_settings/locale/pt_BR/LC_MESSAGES/django.po apps/smart_settings/locale/ru/LC_MESSAGES/django.mo apps/smart_settings/locale/ru/LC_MESSAGES/django.po apps/sources/locale/bg/LC_MESSAGES/django.mo apps/sources/locale/bg/LC_MESSAGES/django.po apps/sources/locale/de_DE/LC_MESSAGES/django.mo apps/sources/locale/de_DE/LC_MESSAGES/django.po apps/sources/locale/en/LC_MESSAGES/django.mo apps/sources/locale/en/LC_MESSAGES/django.po apps/sources/locale/es/LC_MESSAGES/django.mo apps/sources/locale/es/LC_MESSAGES/django.po apps/sources/locale/fr/LC_MESSAGES/django.mo apps/sources/locale/fr/LC_MESSAGES/django.po apps/sources/locale/it/LC_MESSAGES/django.mo apps/sources/locale/it/LC_MESSAGES/django.po apps/sources/locale/nl_NL/LC_MESSAGES/django.mo apps/sources/locale/nl_NL/LC_MESSAGES/django.po apps/sources/locale/pl/LC_MESSAGES/django.mo apps/sources/locale/pl/LC_MESSAGES/django.po apps/sources/locale/pt/LC_MESSAGES/django.mo apps/sources/locale/pt/LC_MESSAGES/django.po apps/sources/locale/pt_BR/LC_MESSAGES/django.mo apps/sources/locale/pt_BR/LC_MESSAGES/django.po apps/sources/locale/ru/LC_MESSAGES/django.mo apps/sources/locale/ru/LC_MESSAGES/django.po apps/sources/registry.py apps/tags/__init__.py apps/tags/links.py apps/tags/locale/bg/LC_MESSAGES/django.mo apps/tags/locale/bg/LC_MESSAGES/django.po apps/tags/locale/de_DE/LC_MESSAGES/django.mo apps/tags/locale/de_DE/LC_MESSAGES/django.po apps/tags/locale/en/LC_MESSAGES/django.mo apps/tags/locale/en/LC_MESSAGES/django.po apps/tags/locale/es/LC_MESSAGES/django.mo apps/tags/locale/es/LC_MESSAGES/django.po apps/tags/locale/fr/LC_MESSAGES/django.mo apps/tags/locale/fr/LC_MESSAGES/django.po apps/tags/locale/it/LC_MESSAGES/django.mo apps/tags/locale/it/LC_MESSAGES/django.po apps/tags/locale/nl_NL/LC_MESSAGES/django.mo apps/tags/locale/nl_NL/LC_MESSAGES/django.po apps/tags/locale/pl/LC_MESSAGES/django.mo apps/tags/locale/pl/LC_MESSAGES/django.po apps/tags/locale/pt/LC_MESSAGES/django.mo apps/tags/locale/pt/LC_MESSAGES/django.po apps/tags/locale/pt_BR/LC_MESSAGES/django.mo apps/tags/locale/pt_BR/LC_MESSAGES/django.po apps/tags/locale/ru/LC_MESSAGES/django.mo apps/tags/locale/ru/LC_MESSAGES/django.po apps/tags/registry.py apps/tags/views.py apps/user_management/__init__.py apps/user_management/locale/bg/LC_MESSAGES/django.mo apps/user_management/locale/bg/LC_MESSAGES/django.po apps/user_management/locale/de_DE/LC_MESSAGES/django.mo apps/user_management/locale/de_DE/LC_MESSAGES/django.po apps/user_management/locale/en/LC_MESSAGES/django.mo apps/user_management/locale/en/LC_MESSAGES/django.po apps/user_management/locale/es/LC_MESSAGES/django.mo apps/user_management/locale/es/LC_MESSAGES/django.po apps/user_management/locale/fr/LC_MESSAGES/django.mo apps/user_management/locale/fr/LC_MESSAGES/django.po apps/user_management/locale/it/LC_MESSAGES/django.mo apps/user_management/locale/it/LC_MESSAGES/django.po apps/user_management/locale/nl_NL/LC_MESSAGES/django.mo apps/user_management/locale/nl_NL/LC_MESSAGES/django.po apps/user_management/locale/pl/LC_MESSAGES/django.mo apps/user_management/locale/pl/LC_MESSAGES/django.po apps/user_management/locale/pt/LC_MESSAGES/django.mo apps/user_management/locale/pt/LC_MESSAGES/django.po apps/user_management/locale/pt_BR/LC_MESSAGES/django.mo apps/user_management/locale/pt_BR/LC_MESSAGES/django.po apps/user_management/locale/ru/LC_MESSAGES/django.mo apps/user_management/locale/ru/LC_MESSAGES/django.po apps/user_management/registry.py apps/web_theme/locale/bg/LC_MESSAGES/django.mo apps/web_theme/locale/bg/LC_MESSAGES/django.po apps/web_theme/locale/de_DE/LC_MESSAGES/django.mo apps/web_theme/locale/de_DE/LC_MESSAGES/django.po apps/web_theme/locale/en/LC_MESSAGES/django.mo apps/web_theme/locale/en/LC_MESSAGES/django.po apps/web_theme/locale/es/LC_MESSAGES/django.mo apps/web_theme/locale/es/LC_MESSAGES/django.po apps/web_theme/locale/fr/LC_MESSAGES/django.mo apps/web_theme/locale/fr/LC_MESSAGES/django.po apps/web_theme/locale/it/LC_MESSAGES/django.mo apps/web_theme/locale/it/LC_MESSAGES/django.po apps/web_theme/locale/nl_NL/LC_MESSAGES/django.mo apps/web_theme/locale/nl_NL/LC_MESSAGES/django.po apps/web_theme/locale/pl/LC_MESSAGES/django.mo apps/web_theme/locale/pl/LC_MESSAGES/django.po apps/web_theme/locale/pt/LC_MESSAGES/django.mo apps/web_theme/locale/pt/LC_MESSAGES/django.po apps/web_theme/locale/pt_BR/LC_MESSAGES/django.mo apps/web_theme/locale/pt_BR/LC_MESSAGES/django.po apps/web_theme/locale/ru/LC_MESSAGES/django.mo apps/web_theme/locale/ru/LC_MESSAGES/django.po docs/credits/contributors.rst docs/faq/index.rst docs/intro/requirements.rst docs/releases/index.rst docs/topics/document_visualization.rst docs/topics/ocr.rst fabfile/platforms/linux.py misc/process_messages.py requirements/development.txt requirements/production.txt settings.py urls.py
173 lines
5.6 KiB
Python
173 lines
5.6 KiB
Python
from __future__ import absolute_import
|
|
|
|
import logging
|
|
from itertools import chain
|
|
|
|
from django.db import models
|
|
from django.core import serializers
|
|
from django.utils.datastructures import SortedDict
|
|
|
|
from .exceptions import ExistingData, NotABootstrapSetup
|
|
from .literals import (FIXTURE_TYPE_PK_NULLIFIER, FIXTURE_TYPE_MODEL_PROCESS,
|
|
FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER)
|
|
from .utils import toposort2
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
class Cleanup(object):
|
|
"""
|
|
Class to store all the registered cleanup functions in one place.
|
|
"""
|
|
_registry = {}
|
|
|
|
@classmethod
|
|
def execute_all(cls):
|
|
for cleanup in cls._registry.values():
|
|
cleanup.function()
|
|
|
|
def __init__(self, function):
|
|
self.function = function
|
|
self.__class__._registry[id(self)] = self
|
|
|
|
|
|
class BootstrapModel(object):
|
|
"""
|
|
Class used to keep track of all the models to be dumped to create a
|
|
bootstrap setup from the current setup in use.
|
|
"""
|
|
_registry = SortedDict()
|
|
|
|
@classmethod
|
|
def get_magic_number(cls):
|
|
return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER)
|
|
|
|
@classmethod
|
|
def check_magic_number(cls, data):
|
|
if not data.startswith(cls.get_magic_number()):
|
|
raise NotABootstrapSetup
|
|
|
|
@classmethod
|
|
def check_for_data(cls):
|
|
for model in cls.get_all():
|
|
model_instance = models.get_model(model.app_name, model.model_name)
|
|
if model_instance.objects.all().count():
|
|
raise ExistingData
|
|
|
|
@classmethod
|
|
def get_all(cls, sort_by_dependencies=False):
|
|
"""
|
|
Return all boostrap models, sorted by dependencies optionally.
|
|
"""
|
|
if not sort_by_dependencies:
|
|
return cls._registry.values()
|
|
else:
|
|
return (cls.get_by_name(name) for name in list(chain.from_iterable(toposort2(cls.get_dependency_dict()))))
|
|
|
|
@classmethod
|
|
def get_dependency_dict(cls):
|
|
"""
|
|
Return a dictionary where the key is the model name and it's value
|
|
is a list of models upon which it depends.
|
|
"""
|
|
result = {}
|
|
for instance in cls.get_all():
|
|
result[instance.get_fullname()] = set(instance.dependencies)
|
|
|
|
logger.debug('result: %s' % result)
|
|
return result
|
|
|
|
@classmethod
|
|
def get_by_name(cls, name):
|
|
"""
|
|
Return a BootstrapModel instance by the fullname of the model it
|
|
represents.
|
|
"""
|
|
return cls._registry[name]
|
|
|
|
def get_fullname(self):
|
|
"""
|
|
Return a the full app name + model name of the model represented
|
|
by the instance.
|
|
"""
|
|
return '.'.join([self.app_name, self.model_name])
|
|
|
|
def get_model_instance(self):
|
|
"""
|
|
Returns an actual Model class instance of the model.
|
|
"""
|
|
return models.get_model(self.app_name, self.model_name)
|
|
|
|
def __init__(self, model_name, app_name=None, sanitize=True, dependencies=None):
|
|
app_name_splitted = None
|
|
if '.' in model_name:
|
|
app_name_splitted, model_name = model_name.split('.')
|
|
|
|
self.app_name = app_name_splitted or app_name
|
|
if not self.app_name:
|
|
raise Exception('Pass either a dotted app plus model name or a model name and a separate app name')
|
|
self.model_name = model_name
|
|
self.sanitize = sanitize
|
|
self.dependencies = dependencies if dependencies else []
|
|
self.__class__._registry[self.get_fullname()] = self
|
|
|
|
def dump(self, serialization_format):
|
|
result = serializers.serialize(serialization_format, self.get_model_instance().objects.all(), indent=4, use_natural_keys=True)
|
|
logger.debug('result: "%s"' % result)
|
|
if self.sanitize:
|
|
# Remove primary key values
|
|
result = FIXTURE_TYPE_PK_NULLIFIER[serialization_format](result)
|
|
# Do any clean up required on the fixture
|
|
result = FIXTURE_TYPE_MODEL_PROCESS[serialization_format](result)
|
|
return result
|
|
|
|
|
|
class FixtureMetadata(object):
|
|
"""
|
|
Class to automatically create and extract metadata from a bootstrap
|
|
fixture.
|
|
"""
|
|
_registry = SortedDict()
|
|
|
|
@classmethod
|
|
def get_all(cls):
|
|
return cls._registry.values()
|
|
|
|
@classmethod
|
|
def generate_all(cls, fixture_instance):
|
|
result = []
|
|
for fixture_metadata in cls.get_all():
|
|
result.append(fixture_metadata.generate(fixture_instance))
|
|
|
|
return '\n'.join(result)
|
|
|
|
@classmethod
|
|
def read_all(cls, data):
|
|
result = {}
|
|
for instance in cls.get_all():
|
|
single_result = instance.read_value(data)
|
|
if single_result:
|
|
result[instance.property_name] = single_result
|
|
|
|
return result
|
|
|
|
def __init__(self, literal, generate_function, read_function=None, property_name=None):
|
|
self.literal = literal
|
|
self.generate_function = generate_function
|
|
self.property_name = property_name
|
|
self.read_function = read_function or (lambda x: x)
|
|
self.__class__._registry[id(self)] = self
|
|
|
|
def get_with_remark(self):
|
|
return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, self.literal)
|
|
|
|
def generate(self, fixture_instance):
|
|
return '%s: %s' % (self.get_with_remark(), self.generate_function(fixture_instance))
|
|
|
|
def read_value(self, fixture_data):
|
|
if self.property_name:
|
|
for line in fixture_data.splitlines(False):
|
|
if line.startswith(self.get_with_remark()):
|
|
# TODO: replace the "+ 4" with a space and next character finding algo
|
|
return self.read_function(line[len(self.literal) + 4:])
|