Merge branch 'hotfix/v0.12.3' into development
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
This commit is contained in:
@@ -1,16 +1,23 @@
|
||||
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
|
||||
from .literals import FIXTURE_TYPE_PK_NULLIFIER
|
||||
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
|
||||
Class to store all the registered cleanup functions in one place.
|
||||
"""
|
||||
_registry = {}
|
||||
|
||||
@@ -19,18 +26,26 @@ class Cleanup(object):
|
||||
for cleanup in cls._registry.values():
|
||||
cleanup.function()
|
||||
|
||||
def __init__(self, name, function):
|
||||
self.name = name
|
||||
def __init__(self, function):
|
||||
self.function = function
|
||||
self.__class__._registry[self.name] = self
|
||||
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
|
||||
bootstrap setup from the current setup in use.
|
||||
"""
|
||||
_registry = SortedDict()#{}
|
||||
_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):
|
||||
@@ -40,16 +55,50 @@ class BootstrapModel(object):
|
||||
raise ExistingData
|
||||
|
||||
@classmethod
|
||||
def get_all(cls):
|
||||
return cls._registry.values()
|
||||
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):
|
||||
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('.')
|
||||
@@ -58,12 +107,66 @@ class BootstrapModel(object):
|
||||
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.__class__._registry[self.get_fullname()] = self
|
||||
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:])
|
||||
|
||||
@@ -5,6 +5,14 @@ class ExistingData(Exception):
|
||||
"""
|
||||
Raised when an attempt to execute a bootstrap setup is made and there is
|
||||
existing data that would be corrupted or damaged by the loading the
|
||||
bootstrap's fixture
|
||||
bootstrap's fixture.
|
||||
"""
|
||||
pass
|
||||
|
||||
|
||||
class NotABootstrapSetup(Exception):
|
||||
"""
|
||||
Raised when an attempting to import a bootstrap setup without a proper
|
||||
magic number metadata
|
||||
"""
|
||||
pass
|
||||
|
||||
@@ -15,14 +15,43 @@ logger = logging.getLogger(__name__)
|
||||
class BootstrapSetupForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = BootstrapSetup
|
||||
widgets = {
|
||||
'description': forms.widgets.Textarea(attrs={
|
||||
'rows': 5, 'cols': 80,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
class BootstrapSetupForm_view(DetailForm):
|
||||
class Meta:
|
||||
model = BootstrapSetup
|
||||
widgets = {
|
||||
'description': forms.widgets.Textarea(attrs={
|
||||
'rows': 5, 'cols': 80,
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
class BootstrapSetupForm_dump(forms.ModelForm):
|
||||
class Meta:
|
||||
class BootstrapSetupForm_edit(BootstrapSetupForm):
|
||||
class Meta(BootstrapSetupForm.Meta):
|
||||
model = BootstrapSetup
|
||||
exclude = ['fixture']
|
||||
exclude = ('type',)
|
||||
|
||||
|
||||
class BootstrapSetupForm_dump(BootstrapSetupForm):
|
||||
class Meta(BootstrapSetupForm.Meta):
|
||||
model = BootstrapSetup
|
||||
exclude = ('fixture',)
|
||||
|
||||
|
||||
class BootstrapFileImportForm(forms.Form):
|
||||
file = forms.FileField(
|
||||
label=_(u'Bootstrap setup file'),
|
||||
)
|
||||
|
||||
|
||||
class BootstrapURLImportForm(forms.Form):
|
||||
url = forms.URLField(
|
||||
label=_(u'Bootstrap setup URL'),
|
||||
)
|
||||
|
||||
@@ -7,7 +7,8 @@ from navigation import Link
|
||||
from .permissions import (PERMISSION_BOOTSTRAP_VIEW, PERMISSION_BOOTSTRAP_CREATE,
|
||||
PERMISSION_BOOTSTRAP_EDIT, PERMISSION_BOOTSTRAP_DELETE,
|
||||
PERMISSION_BOOTSTRAP_EXECUTE, PERMISSION_BOOTSTRAP_DUMP,
|
||||
PERMISSION_NUKE_DATABASE)
|
||||
PERMISSION_NUKE_DATABASE, PERMISSION_BOOTSTRAP_EXPORT,
|
||||
PERMISSION_BOOTSTRAP_IMPORT, PERMISSION_BOOTSTRAP_REPOSITORY_SYNC)
|
||||
from .icons import (icon_bootstrap_setup, icon_bootstrap_setup_execute, icon_bootstrap_setup_create,
|
||||
icon_bootstrap_setup_edit, icon_bootstrap_setup_delete, icon_bootstrap_setup_view,
|
||||
icon_bootstrap_setup_dump, icon_nuke_database)
|
||||
@@ -21,3 +22,9 @@ link_bootstrap_setup_view = Link(text=_(u'details'), view='bootstrap_setup_view'
|
||||
link_bootstrap_setup_execute = Link(text=_(u'execute'), view='bootstrap_setup_execute', args='object.pk', icon=icon_bootstrap_setup_execute, permissions=[PERMISSION_BOOTSTRAP_EXECUTE])
|
||||
link_bootstrap_setup_dump = Link(text=_(u'dump current setup'), view='bootstrap_setup_dump', icon=icon_bootstrap_setup_dump, permissions=[PERMISSION_BOOTSTRAP_DUMP])
|
||||
link_erase_database = Link(text=_(u'erase database'), view='erase_database_view', icon=icon_nuke_database, permissions=[PERMISSION_NUKE_DATABASE])
|
||||
|
||||
# TODO: convert to Link class and assign icon
|
||||
link_bootstrap_setup_export = {'text': _(u'export'), 'view': 'bootstrap_setup_export', 'args': 'object.pk', 'famfam': 'disk', 'permissions': [PERMISSION_BOOTSTRAP_EXPORT]}
|
||||
link_bootstrap_setup_import_from_file = {'text': _(u'import from file'), 'view': 'bootstrap_setup_import_from_file', 'famfam': 'folder', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]}
|
||||
link_bootstrap_setup_import_from_url = {'text': _(u'import from URL'), 'view': 'bootstrap_setup_import_from_url', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_IMPORT]}
|
||||
link_bootstrap_setup_repository_sync = {'text': _(u'sync with repository'), 'view': 'bootstrap_setup_repository_sync', 'famfam': 'world', 'permissions': [PERMISSION_BOOTSTRAP_REPOSITORY_SYNC]}
|
||||
|
||||
@@ -2,15 +2,22 @@ from __future__ import absolute_import
|
||||
|
||||
import re
|
||||
|
||||
try:
|
||||
import yaml
|
||||
except ImportError:
|
||||
YAML_AVAILABLE = False
|
||||
else:
|
||||
YAML_AVAILABLE = True
|
||||
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
FIXTURE_TYPE_JSON = 'json'
|
||||
FIXTURE_TYPE_YAML = 'yaml'
|
||||
FIXTURE_TYPE_BETTER_YAML = 'better_yaml'
|
||||
FIXTURE_TYPE_XML = 'xml'
|
||||
|
||||
FIXTURE_TYPES_CHOICES = (
|
||||
(FIXTURE_TYPE_JSON, _(u'JSON')),
|
||||
(FIXTURE_TYPE_YAML, _(u'YAML')),
|
||||
# Disabing XML until a way to specify a null pk is found
|
||||
#(FIXTURE_TYPE_XML, _(u'XML')),
|
||||
)
|
||||
@@ -18,13 +25,57 @@ FIXTURE_TYPES_CHOICES = (
|
||||
FIXTURE_FILE_TYPE = {
|
||||
FIXTURE_TYPE_JSON: 'json',
|
||||
FIXTURE_TYPE_YAML: 'yaml',
|
||||
FIXTURE_TYPE_BETTER_YAML: 'better_yaml',
|
||||
FIXTURE_TYPE_XML: 'xml',
|
||||
}
|
||||
|
||||
FIXTURE_TYPE_PK_NULLIFIER = {
|
||||
FIXTURE_TYPE_JSON: lambda x: re.sub('"pk": [0-9]{1,5}', '"pk": null', x),
|
||||
FIXTURE_TYPE_YAML: lambda x: re.sub('pk: [0-9]{1,5}', 'pk: null', x),
|
||||
FIXTURE_TYPE_BETTER_YAML: lambda x: re.sub('[0-9]{1,5}:', 'null:', x),
|
||||
FIXTURE_TYPE_XML: lambda x: re.sub('pk="[0-9]{1,5}"', 'pk=null', x),
|
||||
}
|
||||
|
||||
FIXTURE_TYPE_EMPTY_FIXTURE = {
|
||||
FIXTURE_TYPE_JSON: lambda x: x.startswith('[]') or x == ',',
|
||||
FIXTURE_TYPE_YAML: lambda x: x.startswith('[]'),
|
||||
FIXTURE_TYPE_BETTER_YAML: lambda x: x.startswith('{}'),
|
||||
FIXTURE_TYPE_XML: lambda x: x,
|
||||
}
|
||||
|
||||
FIXTURE_TYPE_MODEL_PROCESS = {
|
||||
FIXTURE_TYPE_JSON: lambda x: '%s,' % x[2:-2],
|
||||
FIXTURE_TYPE_YAML: lambda x: x,
|
||||
FIXTURE_TYPE_BETTER_YAML: lambda x: x,
|
||||
FIXTURE_TYPE_XML: lambda x: x,
|
||||
}
|
||||
|
||||
FIXTURE_TYPE_FIXTURE_PROCESS = {
|
||||
FIXTURE_TYPE_JSON: lambda x: '[\n%s\n]' % x[:-1], # Enclose in [], remove last comma
|
||||
FIXTURE_TYPE_YAML: lambda x: x,
|
||||
FIXTURE_TYPE_BETTER_YAML: lambda x: x,
|
||||
FIXTURE_TYPE_XML: lambda x: x,
|
||||
}
|
||||
|
||||
COMMAND_LOADDATA = 'loaddata'
|
||||
|
||||
if YAML_AVAILABLE:
|
||||
FIXTURE_TYPES_CHOICES += (FIXTURE_TYPE_YAML, _(u'YAML')),
|
||||
FIXTURE_TYPES_CHOICES += (FIXTURE_TYPE_BETTER_YAML, _(u'Better YAML')),
|
||||
# better_yaml is not working with natural keys
|
||||
|
||||
FIXTURE_METADATA_REMARK_CHARACTER = '#'
|
||||
DATETIME_STRING_FORMAT = '%a, %d %b %Y %H:%M:%S +0000'
|
||||
FIXTURE_METADATA_CREATED = 'created'
|
||||
FIXTURE_METADATA_EDITED = 'edited'
|
||||
FIXTURE_METADATA_MAYAN_VERSION = 'mayan_edms_version'
|
||||
FIXTURE_METADATA_FORMAT = 'format'
|
||||
FIXTURE_METADATA_NAME = 'name'
|
||||
FIXTURE_METADATA_SLUG = 'slug'
|
||||
FIXTURE_METADATA_DESCRIPTION = 'description'
|
||||
BOOTSTRAP_EXTENSION = 'txt'
|
||||
|
||||
BOOTSTRAP_SETUP_MAGIC_NUMBER = 'bootstrap setup'
|
||||
|
||||
BOOTSTRAP_REPOSITORY_URL = 'http://bootstrap.mayan-edms.com'
|
||||
BOOTSTRAP_REPOSITORY_INDEX_FILE = '_repo_index.txt'
|
||||
|
||||
@@ -3,12 +3,13 @@
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
# Translators:
|
||||
# <pkoldamov@gmail.com>, 2012.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"PO-Revision-Date: 2012-07-27 04:09+0000\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/"
|
||||
"language/bg/)\n"
|
||||
@@ -16,112 +17,115 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
msgstr ""
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr "редактиране"
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
msgstr ""
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr "изтриване"
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
msgstr ""
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr "детайли"
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr "изпълнение"
|
||||
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr "изпринтване на текущата настройка"
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr "изтриване на база данни"
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:11
|
||||
msgid "erase database"
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr "JSON"
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr "YAML"
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr "Подобрен YAML"
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr "име"
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr "описание"
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
"Това са текущите инструкции за създаване на структурата на базата данни."
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr "тип"
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr "дата и време на създаване"
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
@@ -129,56 +133,190 @@ msgid "Database bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr "Изтрийте цялата база данни за съхраняване и документното пространство"
|
||||
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
#, fuzzy
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr "изпринтване на текущата настройка"
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr ""
|
||||
msgstr "Грешка при изтриване на база данни; %s"
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr ""
|
||||
msgstr "Базата данни е изтрита успешно."
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
"Сигурен ли сте, че искате да изтриете цялата база данни и документното "
|
||||
"пространство?"
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"PO-Revision-Date: 2012-07-27 04:09+0000\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-"
|
||||
"edms/language/de_DE/)\n"
|
||||
@@ -16,169 +16,302 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@@ -17,167 +17,300 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -8,8 +8,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"PO-Revision-Date: 2012-07-27 04:35+0000\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 07:20+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: Spanish (http://www.transifex.com/projects/p/mayan-edms/"
|
||||
"language/es/)\n"
|
||||
@@ -17,175 +17,297 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
msgstr "Simple"
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
"Una configuración simple que proporciona una fecha de metadatos subida y el "
|
||||
"índice, más un índice alfabético basado en nombres de archivo de documentos."
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
msgstr "Fecha de envío"
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
msgstr "Índice de la fecha segmentado"
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
msgstr "Permisos"
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
"Una configuración para el manejo de los permisos y documentos relacionados."
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
msgstr "Formulario"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr "arranque"
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
msgstr "Formulario de construcción"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr "list de configuraciones de arranque"
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr "Formulario de uso"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr "crear nueva configuración de arranque"
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr "Planos"
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr "editar"
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr "Plano de edificio"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr "borrar"
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr "Plano de parcela"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr "detalles"
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr "Fecha"
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr "Cliente"
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr "Número de permiso"
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr "Proyecto"
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr "Usuario"
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr "Indice de permisos"
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr "Por permiso"
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr "Por proyecto"
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr "Por fecha"
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr "Por usuario"
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr "Por cliente"
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr "arranque de base de datos"
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr "ejecutar"
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr "grabar la configuración actual"
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr "borrar la base de datos"
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr "exportar"
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr "importar desde el archivo"
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr "importar desde URL"
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr "sincronizar con el repositorio"
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr "JSON"
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr "YAML"
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr "Better YAML"
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr "nombre"
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr "identificador"
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr "descripción"
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr "código"
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
"Estas son la instrucciones reales para la creación de las estructuras de la "
|
||||
"base de datos."
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr "tipo"
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr "fecha y hora de creación"
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr "configuración de arranque"
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr "configuraciones de arranque"
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr "Arranque de base de datos"
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgstr "Ejecutar arranque de datos de documentos"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr "Ver las configuraciones de arranque"
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr "Crear configuraciones de arranque"
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr "Editar las configuraciones de arranque"
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr "Eliminar las configuraciones de arranque"
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr "Ejecutar configuraciones de arranque"
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
"Grabar la configuración actual del projecto en una configuración de arranque"
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr "Borrar toda la base de datos y almacenamiento de documentos"
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
msgstr "configuraciones de arranque de bases de datos"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr "Arranque"
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
msgstr "descripción"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
"Proporciona configuraciones pre ajustadas para los índices, tipos de "
|
||||
"documentos, etiquetas, etc"
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr "Error al crear la configuración de arranque."
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr "crear configuración de arranque"
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr "Configuración de arranque editada exitosamente."
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr "Error editando la configuración de arranque."
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr "editar configuración de arranque: %s"
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr "Configuración de arranque :%s eliminada exitosamente."
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr "¿Seguro que desea borrar la configuración de arranque: %s?"
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr "Error al ejecutar la configuración de arranque; %s"
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr "Configuración de arranque \"%s\" ejecutada exitosamente."
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr "configuración de arranque"
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
"¿Seguro de que desea ejecutar la configuración de arranque de base de datos "
|
||||
"llamada: %s?"
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
#, fuzzy
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
"Grabar la configuración actual del projecto en una configuración de arranque"
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr "Error borrando la base de datos; %s"
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr "Base de datos borrada exitosamente."
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
"¿Está seguro que desea borrar de la base de datos completamente y el "
|
||||
"almacenamiento de documentos?"
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
@@ -193,3 +315,16 @@ msgstr ""
|
||||
"¡Todos los documentos, las fuentes, los metadatos, los tipos de metadatos, "
|
||||
"los conjuntos de metadatos, las etiquetas, los índices y vitacoras se "
|
||||
"perderán irreversiblemente!"
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,185 +1,324 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
#
|
||||
#
|
||||
# Translators:
|
||||
# <patrick.hetu@gmail.com>, 2012.
|
||||
# Pierre Lhoste <peter.cathbad.host@gmail.com>, 2012.
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
|
||||
"POT-Creation-Date: 2012-07-26 23:54-0400\n"
|
||||
"PO-Revision-Date: 2012-07-28 19:41+0000\n"
|
||||
"Last-Translator: Pierre Lhoste <peter.cathbad.host@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/mayan-edms/language/fr/)\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: French (http://www.transifex.com/projects/p/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"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
msgstr "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
msgstr "Une configuration simple fournissant un l'import d'un index et métadonnées de dates, ainsi qu'un index alphabétique construit à partir des noms de fichiers des documents."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
msgstr "Date d'importation"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
msgstr "Index segmenté des dates"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
msgstr "Permis/Autorisations"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
msgstr "Une configuration permettant gérer les documents de type permis/autorisations et apparentés"
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
msgstr "Fomulaire"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
msgstr "Formulaire de construction"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr "Formulaire d'utilisation"
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr "Plan général"
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr "Plan d'étage"
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr "Plan de parcelle"
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr "Date"
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr "Client"
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr "Numéro de permis/autorisation"
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr "Projet"
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr "Utilisateur"
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr "Index des permis"
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr "Par permis/autorisation"
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr "Par projet"
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr "Par date"
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr "Par utilisateur"
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr "Par client"
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr "pré-configurer la base de données"
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr "exécuter"
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr "Supprimer la base de données"
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr "description"
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr "pré-configuration"
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr "Pré-configuration de base de données"
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgstr "Exécuter la pré-configuration de documents"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr "Effacer l'ensemble de la base de donnée et tous les documents stockés"
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
msgstr "bases de données pré-configurées"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
msgstr "description"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr "Erreur lors de l'exécution de la pré-configuration; %s"
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr "Pré-configuration \"%s\" effectuée avec succès."
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr "pré-configuration"
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgstr "Êtes vous certain de vouloir exécuter la précofiguration de base de données nommée: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
#, fuzzy
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr "Erreur lors de l'exécution de la pré-configuration; %s"
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr "Erreur lors de l'effacement de la base de données; %s"
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr "Base de Données effacée avec succès."
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr "Êtes vous certain de vouloir effacer l'intégralité de la base de données et des documents stockés?"
|
||||
msgstr ""
|
||||
"Êtes vous certain de vouloir effacer l'intégralité de la base de données et "
|
||||
"des documents stockés?"
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr "Tous les documents, sources, métadonnées, types de métadonnées, jeux, étiquettes, indexes et logs seron définitivement perdus!"
|
||||
msgstr ""
|
||||
"Tous les documents, sources, métadonnées, types de métadonnées, jeux, "
|
||||
"étiquettes, indexes et logs seron définitivement perdus!"
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"PO-Revision-Date: 2012-07-27 04:09+0000\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: Italian (http://www.transifex.com/projects/p/mayan-edms/"
|
||||
"language/it/)\n"
|
||||
@@ -16,169 +16,302 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"PO-Revision-Date: 2012-07-27 04:09+0000\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
|
||||
"mayan-edms/language/nl_NL/)\n"
|
||||
@@ -16,169 +16,302 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"PO-Revision-Date: 2012-07-27 04:09+0000\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: Polish (http://www.transifex.com/projects/p/mayan-edms/"
|
||||
"language/pl/)\n"
|
||||
@@ -17,169 +17,302 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
|
||||
"|| n%100>=20) ? 1 : 2)\n"
|
||||
"|| n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"PO-Revision-Date: 2012-07-27 04:09+0000\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: Portuguese (http://www.transifex.com/projects/p/mayan-edms/"
|
||||
"language/pt/)\n"
|
||||
@@ -16,169 +16,302 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"PO-Revision-Date: 2012-07-27 04:09+0000\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
|
||||
"mayan-edms/language/pt_BR/)\n"
|
||||
@@ -16,169 +16,302 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
@@ -7,8 +7,8 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Mayan EDMS\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-07-27 00:45-0400\n"
|
||||
"PO-Revision-Date: 2012-07-27 04:09+0000\n"
|
||||
"POT-Creation-Date: 2012-12-14 04:18-0400\n"
|
||||
"PO-Revision-Date: 2012-12-12 06:04+0000\n"
|
||||
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
|
||||
"Language-Team: Russian (http://www.transifex.com/projects/p/mayan-edms/"
|
||||
"language/ru/)\n"
|
||||
@@ -17,169 +17,302 @@ msgstr ""
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
|
||||
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||
|
||||
#: api.py:113
|
||||
msgid "Simple"
|
||||
#: forms.py:50
|
||||
msgid "Bootstrap setup file"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:114
|
||||
msgid ""
|
||||
"A simple setup providing an uploaded date metadata and index plus an "
|
||||
"alphabetic index based on document filenames."
|
||||
#: forms.py:56
|
||||
msgid "Bootstrap setup URL"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:118
|
||||
msgid "Upload date"
|
||||
#: links.py:16
|
||||
msgid "bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:121
|
||||
msgid "Segmented date index"
|
||||
#: links.py:17
|
||||
msgid "bootstrap setup list"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:132
|
||||
msgid "Permits"
|
||||
#: links.py:18
|
||||
msgid "create new bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:133
|
||||
msgid "A setup for handling permits and related documents."
|
||||
#: links.py:19
|
||||
msgid "edit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:137
|
||||
msgid "Form"
|
||||
#: links.py:20
|
||||
msgid "delete"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:138
|
||||
msgid "Building construction form"
|
||||
#: links.py:21
|
||||
msgid "details"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:139
|
||||
msgid "Building usage form"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:141
|
||||
msgid "Blueprint"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:142
|
||||
msgid "Floorplan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:143
|
||||
msgid "Plot plan"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:146
|
||||
msgid "Date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:147
|
||||
msgid "Client"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:148
|
||||
msgid "Permit number"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:149
|
||||
msgid "Project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:150
|
||||
msgid "User"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:153
|
||||
msgid "Permit index"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:156 api.py:161
|
||||
msgid "Per permit"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:159
|
||||
msgid "Per project"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:164
|
||||
msgid "Per date"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:167
|
||||
msgid "Per user"
|
||||
msgstr ""
|
||||
|
||||
#: api.py:170
|
||||
msgid "Per client"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:9
|
||||
msgid "bootstrap database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:10
|
||||
#: links.py:22
|
||||
msgid "execute"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:11
|
||||
#: links.py:23
|
||||
msgid "dump current setup"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:24
|
||||
msgid "erase database"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:27
|
||||
msgid "export"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:28
|
||||
msgid "import from file"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:29
|
||||
msgid "import from URL"
|
||||
msgstr ""
|
||||
|
||||
#: links.py:30
|
||||
msgid "sync with repository"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:20
|
||||
msgid "JSON"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:63
|
||||
msgid "YAML"
|
||||
msgstr ""
|
||||
|
||||
#: literals.py:64
|
||||
msgid "Better YAML"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:30
|
||||
msgid "name"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:31
|
||||
msgid "slug"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:32 views.py:35
|
||||
msgid "description"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "fixture"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:33
|
||||
msgid "These are the actual database structure creation instructions."
|
||||
msgstr ""
|
||||
|
||||
#: models.py:34 views.py:36
|
||||
msgid "type"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:35
|
||||
msgid "creation date and time"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:104 views.py:91 views.py:120 views.py:145 views.py:173
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: models.py:105 views.py:32
|
||||
msgid "bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:7
|
||||
msgid "Database bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:9
|
||||
msgid "Execute document bootstraps"
|
||||
msgid "View bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:10
|
||||
msgid "Create bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:11
|
||||
msgid "Edit bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:12
|
||||
msgid "Delete bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:13
|
||||
msgid "Execute bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:14
|
||||
msgid "Dump the current project\\s setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:15
|
||||
msgid "Export bootstrap setups as files"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:16
|
||||
msgid "Import new bootstrap setups"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:17
|
||||
msgid "Sync the local bootstrap setups with a published repository"
|
||||
msgstr ""
|
||||
|
||||
#: permissions.py:18
|
||||
msgid "Erase the entire database and document storage"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:21
|
||||
msgid "database bootstrap setups"
|
||||
#: registry.py:8
|
||||
msgid "Bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:24
|
||||
msgid "description"
|
||||
#: registry.py:9
|
||||
msgid "Provides pre configured setups for indexes, document types, tags, etc."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:45
|
||||
#: views.py:51
|
||||
msgid "Bootstrap setup created successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:54
|
||||
msgid "Error creating bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
msgid "create bootstrap"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
msgid "Bootstrap setup edited successfully"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:82
|
||||
msgid "Error editing bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:87
|
||||
#, python-format
|
||||
msgid "edit bootstrap setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:112
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %s deleted successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:114
|
||||
#, python-format
|
||||
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:125
|
||||
#, python-format
|
||||
msgid "Are you sure you with to delete the bootstrap setup: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:165
|
||||
msgid ""
|
||||
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
|
||||
"try again."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:167
|
||||
#, python-format
|
||||
msgid "Error executing bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:47
|
||||
#: views.py:169
|
||||
#, python-format
|
||||
msgid "Bootstrap setup \"%s\" executed successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:51
|
||||
msgid "bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:59
|
||||
#: views.py:181
|
||||
#, python-format
|
||||
msgid "Are you sure you wish to execute the database bootstrap named: %s?"
|
||||
msgid ""
|
||||
"Are you sure you wish to execute the database bootstrap setup named: %s?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:77
|
||||
#: views.py:197
|
||||
#, python-format
|
||||
msgid "Error dumping configuration into a bootstrap setup; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:201
|
||||
msgid "Bootstrap setup created successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:207
|
||||
msgid "dump current setup into a bootstrap setup"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:241 views.py:269
|
||||
msgid "Bootstrap setup imported successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:244
|
||||
msgid "File is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:246
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from file; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:252
|
||||
msgid "Import bootstrap setup from file"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:272
|
||||
msgid "Data from URL is not a bootstrap setup."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:274
|
||||
#, python-format
|
||||
msgid "Error importing bootstrap setup from URL; %s."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:280
|
||||
msgid "Import bootstrap setup from URL"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:299
|
||||
#, python-format
|
||||
msgid "Error erasing database; %s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:79
|
||||
#: views.py:301
|
||||
msgid "Database erased successfully."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:89
|
||||
#: views.py:311
|
||||
msgid ""
|
||||
"Are you sure you wish to erase the entire database and document storage?"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:90
|
||||
#: views.py:312
|
||||
msgid ""
|
||||
"All documents, sources, metadata, metadata types, set, tags, indexes and "
|
||||
"logs will be lost irreversibly!"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:329
|
||||
msgid "Bootstrap repository successfully synchronized."
|
||||
msgstr ""
|
||||
|
||||
#: views.py:331
|
||||
#, python-format
|
||||
msgid "Bootstrap repository synchronization error: %(error)s"
|
||||
msgstr ""
|
||||
|
||||
#: views.py:338
|
||||
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
|
||||
msgstr ""
|
||||
|
||||
0
apps/bootstrap/management/__init__.py
Normal file
0
apps/bootstrap/management/__init__.py
Normal file
0
apps/bootstrap/management/commands/__init__.py
Normal file
0
apps/bootstrap/management/commands/__init__.py
Normal file
64
apps/bootstrap/management/commands/erase_data.py
Normal file
64
apps/bootstrap/management/commands/erase_data.py
Normal file
@@ -0,0 +1,64 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from optparse import make_option
|
||||
|
||||
from django.db import models, router, connections, DEFAULT_DB_ALIAS
|
||||
from django.core.management import call_command
|
||||
from django.core.management.base import NoArgsCommand, CommandError
|
||||
from django.core.management.color import no_style
|
||||
from django.core.management.sql import emit_post_sync_signal
|
||||
|
||||
from ...classes import Cleanup
|
||||
|
||||
|
||||
class Command(NoArgsCommand):
|
||||
option_list = NoArgsCommand.option_list + (
|
||||
make_option('--noinput', action='store_false', dest='interactive', default=True,
|
||||
help='Tells Django to NOT prompt the user for input of any kind.'),
|
||||
make_option('--database', action='store', dest='database',
|
||||
default=DEFAULT_DB_ALIAS, help='Nominates a database to erase. '
|
||||
'Defaults to the "default" database.'),
|
||||
)
|
||||
help = 'Erases all data in a Mayan EDMS installation.'
|
||||
|
||||
def handle_noargs(self, **options):
|
||||
db = options.get('database', DEFAULT_DB_ALIAS)
|
||||
connection = connections[db]
|
||||
verbosity = int(options.get('verbosity', 1))
|
||||
interactive = options.get('interactive')
|
||||
|
||||
self.style = no_style()
|
||||
|
||||
if interactive:
|
||||
confirm = raw_input("""You have requested a erase all the data in the current Mayan EDMS installation.
|
||||
This will IRREVERSIBLY ERASE all user data currently in the database,
|
||||
and return each table to the state it was in after syncdb.
|
||||
Are you sure you want to do this?
|
||||
|
||||
Type 'yes' to continue, or 'no' to cancel: """)
|
||||
else:
|
||||
confirm = 'yes'
|
||||
|
||||
if confirm == 'yes':
|
||||
try:
|
||||
Cleanup.execute_all()
|
||||
except Exception, e:
|
||||
raise CommandError("""Unable to erase data. Possible reasons:
|
||||
* The database isn't running or isn't configured correctly.
|
||||
* At least one of the expected database tables doesn't exist.""")
|
||||
# Emit the post sync signal. This allows individual
|
||||
# applications to respond as if the database had been
|
||||
# sync'd from scratch.
|
||||
all_models = []
|
||||
for app in models.get_apps():
|
||||
all_models.extend([
|
||||
m for m in models.get_models(app, include_auto_created=True)
|
||||
if router.allow_syncdb(db, m)
|
||||
])
|
||||
emit_post_sync_signal(set(all_models), verbosity, interactive, db)
|
||||
|
||||
# Reinstall the initial_data fixture.
|
||||
kwargs = options.copy()
|
||||
kwargs['database'] = db
|
||||
else:
|
||||
print 'Erase data cancelled.'
|
||||
31
apps/bootstrap/management/commands/execute_bootstrap.py
Normal file
31
apps/bootstrap/management/commands/execute_bootstrap.py
Normal file
@@ -0,0 +1,31 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
from optparse import make_option
|
||||
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
|
||||
from ...models import BootstrapSetup
|
||||
from ...exceptions import ExistingData
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = 'Execute a bootstrap setup by the given slug.'
|
||||
args = '[bootstrap setup slug]'
|
||||
|
||||
def handle(self, bootstrap_setup_slug=None, **options):
|
||||
if not bootstrap_setup_slug:
|
||||
raise CommandError('Enter one bootstrap setup slug.')
|
||||
|
||||
# Get corresponding bootstrap setup instance
|
||||
try:
|
||||
bootstrap_setup = BootstrapSetup.objects.get(slug=bootstrap_setup_slug)
|
||||
except BootstrapSetup.DoesNotExist:
|
||||
raise CommandError('No bootstrap setup with such a slug.')
|
||||
|
||||
# Try to execute bootstrap setup, catch errors
|
||||
try:
|
||||
bootstrap_setup.execute()
|
||||
except ExistingData:
|
||||
raise CommandError('Cannot execute bootstrap setup, there is existing data. Erase all data and try again.')
|
||||
except Exception as exception:
|
||||
raise CommandError('Unhandled exception: %s' % exception)
|
||||
@@ -2,35 +2,73 @@ from __future__ import absolute_import
|
||||
|
||||
import logging
|
||||
|
||||
#try:
|
||||
# from cStringIO import StringIO
|
||||
#except ImportError:
|
||||
# from StringIO import StringIO
|
||||
import requests
|
||||
|
||||
from django.db import models
|
||||
from django.core import serializers
|
||||
from django.utils.simplejson import loads
|
||||
from django.db import IntegrityError
|
||||
from django.db.models import Q
|
||||
|
||||
from .classes import BootstrapModel
|
||||
from .classes import BootstrapModel, FixtureMetadata
|
||||
from .literals import (FIXTURE_TYPE_FIXTURE_PROCESS, FIXTURE_TYPE_EMPTY_FIXTURE,
|
||||
BOOTSTRAP_REPOSITORY_URL, BOOTSTRAP_REPOSITORY_INDEX_FILE)
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class BootstrapSetupManager(models.Manager):
|
||||
def explode(self, data):
|
||||
"""
|
||||
Gets a compressed and compacted bootstrap setup and creates a new
|
||||
database BootstrapSetup instance
|
||||
"""
|
||||
pass
|
||||
|
||||
def dump(self, serialization_format):
|
||||
"""
|
||||
Get the current setup of Mayan in bootstrap format fixture
|
||||
"""
|
||||
result = []
|
||||
#models = [instance.get_fullname()
|
||||
for bootstrap_model in BootstrapModel.get_all():
|
||||
#logger.debug('models: %s' % models)
|
||||
#options = dict(indent=4, format=format, use_natural_keys=True, interactive=False, verbosity=0, stdout=result)
|
||||
#management.call_command(COMMAND_DUMPDATA, *models, **options)
|
||||
#logger.debug('result: %s' % result)
|
||||
result.append(bootstrap_model.dump(serialization_format))
|
||||
#return result.read()
|
||||
return '\n'.join(result)
|
||||
logger.debug('start dumping data')
|
||||
for bootstrap_model in BootstrapModel.get_all(sort_by_dependencies=True):
|
||||
logger.debug('dumping model: %s' % bootstrap_model.get_fullname())
|
||||
model_fixture = bootstrap_model.dump(serialization_format)
|
||||
# Only add non empty model fixtures
|
||||
if not FIXTURE_TYPE_EMPTY_FIXTURE[serialization_format](model_fixture):
|
||||
result.append(model_fixture)
|
||||
return FIXTURE_TYPE_FIXTURE_PROCESS[serialization_format]('\n'.join(result))
|
||||
|
||||
def import_setup(self, file_data, overwrite=False):
|
||||
BootstrapModel.check_magic_number(file_data)
|
||||
metadata = FixtureMetadata.read_all(file_data)
|
||||
instance = self.model(fixture=file_data, **metadata)
|
||||
try:
|
||||
instance.save(update_metadata=False)
|
||||
except IntegrityError:
|
||||
if not overwrite:
|
||||
raise
|
||||
else:
|
||||
# Delete conflicting bootstrap setups
|
||||
query = Q()
|
||||
if 'slug' in metadata:
|
||||
query = query | Q(slug=metadata['slug'])
|
||||
|
||||
if 'name' in metadata:
|
||||
query = query | Q(name=metadata['name'])
|
||||
|
||||
self.model.objects.filter(query).delete()
|
||||
self.import_setup(file_data)
|
||||
|
||||
def import_from_file(self, files):
|
||||
file_data = files.read()
|
||||
self.import_setup(file_data)
|
||||
|
||||
def import_from_url(self, url, **kwargs):
|
||||
response = requests.get(url)
|
||||
if response.status_code == requests.codes.ok:
|
||||
self.import_setup(response.text, **kwargs)
|
||||
else:
|
||||
response.raise_for_status()
|
||||
|
||||
def repository_sync(self):
|
||||
response = requests.get('%s/%s' % (BOOTSTRAP_REPOSITORY_URL, BOOTSTRAP_REPOSITORY_INDEX_FILE))
|
||||
if response.status_code == requests.codes.ok:
|
||||
for entry in loads(response.text):
|
||||
bootstrap_setup_url = '%s/%s' % (BOOTSTRAP_REPOSITORY_URL, entry['filename'])
|
||||
self.import_from_url(bootstrap_setup_url, overwrite=True)
|
||||
else:
|
||||
response.raise_for_status()
|
||||
|
||||
@@ -14,6 +14,7 @@ class Migration(SchemaMigration):
|
||||
('name', self.gf('django.db.models.fields.CharField')(unique=True, max_length=128)),
|
||||
('description', self.gf('django.db.models.fields.TextField')(blank=True)),
|
||||
('fixture', self.gf('django.db.models.fields.TextField')()),
|
||||
('type', self.gf('django.db.models.fields.CharField')(max_length=16)),
|
||||
))
|
||||
db.send_create_signal('bootstrap', ['BootstrapSetup'])
|
||||
|
||||
@@ -25,12 +26,13 @@ class Migration(SchemaMigration):
|
||||
|
||||
models = {
|
||||
'bootstrap.bootstrapsetup': {
|
||||
'Meta': {'object_name': 'BootstrapSetup'},
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'},
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'fixture': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'})
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['bootstrap']
|
||||
complete_apps = ['bootstrap']
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding field 'BootstrapSetup.created'
|
||||
db.add_column('bootstrap_bootstrapsetup', 'created',
|
||||
self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime(2012, 10, 8, 0, 0)),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'BootstrapSetup.created'
|
||||
db.delete_column('bootstrap_bootstrapsetup', 'created')
|
||||
|
||||
|
||||
models = {
|
||||
'bootstrap.bootstrapsetup': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'},
|
||||
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 10, 8, 0, 0)'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'fixture': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['bootstrap']
|
||||
@@ -0,0 +1,35 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
import datetime
|
||||
from south.db import db
|
||||
from south.v2 import SchemaMigration
|
||||
from django.db import models
|
||||
|
||||
|
||||
class Migration(SchemaMigration):
|
||||
|
||||
def forwards(self, orm):
|
||||
# Adding field 'BootstrapSetup.slug'
|
||||
db.add_column('bootstrap_bootstrapsetup', 'slug',
|
||||
self.gf('django.db.models.fields.SlugField')(default='', unique=True, max_length=128, blank=True),
|
||||
keep_default=False)
|
||||
|
||||
|
||||
def backwards(self, orm):
|
||||
# Deleting field 'BootstrapSetup.slug'
|
||||
db.delete_column('bootstrap_bootstrapsetup', 'slug')
|
||||
|
||||
|
||||
models = {
|
||||
'bootstrap.bootstrapsetup': {
|
||||
'Meta': {'ordering': "['name']", 'object_name': 'BootstrapSetup'},
|
||||
'created': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime(2012, 10, 16, 0, 0)'}),
|
||||
'description': ('django.db.models.fields.TextField', [], {'blank': 'True'}),
|
||||
'fixture': ('django.db.models.fields.TextField', [], {}),
|
||||
'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
|
||||
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '128'}),
|
||||
'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '128', 'blank': 'True'}),
|
||||
'type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
|
||||
}
|
||||
}
|
||||
|
||||
complete_apps = ['bootstrap']
|
||||
@@ -2,14 +2,25 @@ from __future__ import absolute_import
|
||||
|
||||
import os
|
||||
import tempfile
|
||||
import re
|
||||
import datetime
|
||||
|
||||
import slugify
|
||||
|
||||
try:
|
||||
from cStringIO import StringIO
|
||||
except ImportError:
|
||||
from StringIO import StringIO
|
||||
|
||||
from django.db import models
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
from django.core import management
|
||||
from django.core.files.uploadedfile import SimpleUploadedFile
|
||||
|
||||
from .literals import (FIXTURE_TYPES_CHOICES, FIXTURE_FILE_TYPE, COMMAND_LOADDATA)
|
||||
from .literals import (FIXTURE_TYPES_CHOICES, FIXTURE_FILE_TYPE, COMMAND_LOADDATA,
|
||||
BOOTSTRAP_EXTENSION, FIXTURE_METADATA_REMARK_CHARACTER)
|
||||
from .managers import BootstrapSetupManager
|
||||
from .classes import BootstrapModel
|
||||
from .classes import BootstrapModel, FixtureMetadata
|
||||
|
||||
|
||||
class BootstrapSetup(models.Model):
|
||||
@@ -17,9 +28,11 @@ class BootstrapSetup(models.Model):
|
||||
Model to store the fixture for a pre configured setup.
|
||||
"""
|
||||
name = models.CharField(max_length=128, verbose_name=_(u'name'), unique=True)
|
||||
slug = models.SlugField(max_length=128, verbose_name=_(u'slug'), unique=True, blank=True)
|
||||
description = models.TextField(verbose_name=_(u'description'), blank=True)
|
||||
fixture = models.TextField(verbose_name=_(u'fixture'), help_text=_(u'These are the actual database structure creation instructions.'))
|
||||
type = models.CharField(max_length=16, verbose_name=_(u'type'), choices=FIXTURE_TYPES_CHOICES)
|
||||
created = models.DateTimeField(verbose_name=_('creation date and time'), default=lambda: datetime.datetime.now(), editable=False)
|
||||
|
||||
objects = BootstrapSetupManager()
|
||||
|
||||
@@ -27,9 +40,16 @@ class BootstrapSetup(models.Model):
|
||||
return self.name
|
||||
|
||||
def get_extension(self):
|
||||
"""
|
||||
Return the fixture file extension based on the fixture type.
|
||||
"""
|
||||
return FIXTURE_FILE_TYPE[self.type]
|
||||
|
||||
def execute(self):
|
||||
"""
|
||||
Read a bootstrap's fixture and create the corresponding model
|
||||
instances based on it.
|
||||
"""
|
||||
BootstrapModel.check_for_data()
|
||||
handle, filepath = tempfile.mkstemp()
|
||||
# Just need the filepath, close the file description
|
||||
@@ -38,19 +58,46 @@ class BootstrapSetup(models.Model):
|
||||
filepath = os.path.extsep.join([filepath, self.get_extension()])
|
||||
|
||||
with open(filepath, 'w') as file_handle:
|
||||
file_handle.write(self.fixture)
|
||||
file_handle.write(self.cleaned_fixture)
|
||||
|
||||
content = StringIO()
|
||||
management.call_command(COMMAND_LOADDATA, filepath, verbosity=0, stderr=content)
|
||||
content.seek(0, os.SEEK_END)
|
||||
if content.tell():
|
||||
content.seek(0)
|
||||
raise Exception(content.readlines()[-2])
|
||||
|
||||
management.call_command(COMMAND_LOADDATA, filepath, verbosity=0)
|
||||
os.unlink(filepath)
|
||||
|
||||
def compress(self):
|
||||
@property
|
||||
def cleaned_fixture(self):
|
||||
"""
|
||||
Return a compacted and compressed version of the BootstrapSetup
|
||||
instance, meant for download.
|
||||
Return the bootstrap setup's fixture without comments.
|
||||
"""
|
||||
return ''
|
||||
return re.sub(re.compile('%s.*?\n' % FIXTURE_METADATA_REMARK_CHARACTER), '', self.fixture)
|
||||
|
||||
def get_metadata_string(self):
|
||||
"""
|
||||
Return all the metadata for the current bootstrap fixture.
|
||||
"""
|
||||
return FixtureMetadata.generate_all(self)
|
||||
|
||||
def get_filename(self):
|
||||
return os.extsep.join([self.name, BOOTSTRAP_EXTENSION])
|
||||
|
||||
def as_file(self):
|
||||
return SimpleUploadedFile(name=self.get_filename(), content=self.fixture)
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
update_metadata = kwargs.pop('update_metadata', True)
|
||||
if update_metadata:
|
||||
self.fixture = '%s\n%s\n%s' % (
|
||||
BootstrapModel.get_magic_number(),
|
||||
self.get_metadata_string(),
|
||||
self.cleaned_fixture
|
||||
)
|
||||
if not self.slug:
|
||||
self.slug = slugify.slugify(self.name)
|
||||
return super(BootstrapSetup, self).save(*args, **kwargs)
|
||||
|
||||
class Meta:
|
||||
|
||||
@@ -12,4 +12,7 @@ PERMISSION_BOOTSTRAP_EDIT = Permission.objects.register(namespace, 'bootstrap_ed
|
||||
PERMISSION_BOOTSTRAP_DELETE = Permission.objects.register(namespace, 'bootstrap_delete', _(u'Delete bootstrap setups'))
|
||||
PERMISSION_BOOTSTRAP_EXECUTE = Permission.objects.register(namespace, 'bootstrap_execute', _(u'Execute bootstrap setups'))
|
||||
PERMISSION_BOOTSTRAP_DUMP = Permission.objects.register(namespace, 'bootstrap_dump', _(u'Dump the current project\s setup into a bootstrap setup'))
|
||||
PERMISSION_BOOTSTRAP_EXPORT = Permission.objects.register(namespace, 'bootstrap_export', _(u'Export bootstrap setups as files'))
|
||||
PERMISSION_BOOTSTRAP_IMPORT = Permission.objects.register(namespace, 'bootstrap_import', _(u'Import new bootstrap setups'))
|
||||
PERMISSION_BOOTSTRAP_REPOSITORY_SYNC = Permission.objects.register(namespace, 'bootstrap_repo_sync', _(u'Sync the local bootstrap setups with a published repository'))
|
||||
PERMISSION_NUKE_DATABASE = Permission.objects.register(namespace, 'nuke_database', _(u'Erase the entire database and document storage'))
|
||||
|
||||
@@ -1,12 +1,29 @@
|
||||
from __future__ import absolute_import
|
||||
|
||||
import datetime
|
||||
|
||||
from navigation.api import bind_links
|
||||
from main import __version__
|
||||
|
||||
from .links import (link_bootstrap_setup_create, link_bootstrap_setup_execute,
|
||||
link_bootstrap_setup_list, link_bootstrap_setup_edit, link_bootstrap_setup_delete,
|
||||
link_bootstrap_setup_view, link_bootstrap_setup_dump)
|
||||
link_bootstrap_setup_view, link_bootstrap_setup_dump, link_bootstrap_setup_export,
|
||||
link_bootstrap_setup_import_from_url, link_bootstrap_setup_import_from_file,
|
||||
link_bootstrap_setup_repository_sync)
|
||||
from .models import BootstrapSetup
|
||||
from .classes import FixtureMetadata
|
||||
from .literals import (FIXTURE_METADATA_CREATED, FIXTURE_METADATA_EDITED,
|
||||
FIXTURE_METADATA_MAYAN_VERSION, FIXTURE_METADATA_FORMAT, FIXTURE_METADATA_NAME,
|
||||
FIXTURE_METADATA_DESCRIPTION, DATETIME_STRING_FORMAT, FIXTURE_METADATA_SLUG)
|
||||
|
||||
bind_links([BootstrapSetup], [link_bootstrap_setup_view, link_bootstrap_setup_edit, link_bootstrap_setup_delete, link_bootstrap_setup_execute])
|
||||
bind_links([BootstrapSetup], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump], menu_name='secondary_menu')
|
||||
bind_links(['bootstrap_setup_list', 'bootstrap_setup_create', 'bootstrap_setup_dump'], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump], menu_name='secondary_menu')
|
||||
bind_links([BootstrapSetup], [link_bootstrap_setup_view, link_bootstrap_setup_edit, link_bootstrap_setup_delete, link_bootstrap_setup_execute, link_bootstrap_setup_export])
|
||||
bind_links([BootstrapSetup], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu')
|
||||
bind_links(['bootstrap_setup_list', 'bootstrap_setup_create', 'bootstrap_setup_dump', 'bootstrap_setup_import_from_file', 'bootstrap_setup_import_from_url', 'bootstrap_setup_repository_sync'], [link_bootstrap_setup_list, link_bootstrap_setup_create, link_bootstrap_setup_dump, link_bootstrap_setup_import_from_file, link_bootstrap_setup_import_from_url, link_bootstrap_setup_repository_sync], menu_name='secondary_menu')
|
||||
|
||||
FixtureMetadata(FIXTURE_METADATA_CREATED, generate_function=lambda fixture_instance: fixture_instance.created.strftime(DATETIME_STRING_FORMAT), read_function=lambda x: datetime.datetime.strptime(x, DATETIME_STRING_FORMAT), property_name='created')
|
||||
FixtureMetadata(FIXTURE_METADATA_EDITED, generate_function=lambda fixture_instance: datetime.datetime.now().strftime(DATETIME_STRING_FORMAT))
|
||||
FixtureMetadata(FIXTURE_METADATA_MAYAN_VERSION, generate_function=lambda fixture_instance: __version__)
|
||||
FixtureMetadata(FIXTURE_METADATA_FORMAT, generate_function=lambda fixture_instance: fixture_instance.type, property_name='type')
|
||||
FixtureMetadata(FIXTURE_METADATA_NAME, generate_function=lambda fixture_instance: fixture_instance.name, property_name='name')
|
||||
FixtureMetadata(FIXTURE_METADATA_SLUG, generate_function=lambda fixture_instance: fixture_instance.slug, property_name='slug')
|
||||
FixtureMetadata(FIXTURE_METADATA_DESCRIPTION, generate_function=lambda fixture_instance: fixture_instance.description, property_name='description')
|
||||
|
||||
BIN
apps/bootstrap/static/images/icons/lightning.png
Normal file
BIN
apps/bootstrap/static/images/icons/lightning.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 KiB |
BIN
apps/bootstrap/static/images/icons/lightning_delete.png
Normal file
BIN
apps/bootstrap/static/images/icons/lightning_delete.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.9 KiB |
BIN
apps/bootstrap/static/images/icons/lightning_go.png
Normal file
BIN
apps/bootstrap/static/images/icons/lightning_go.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.1 KiB |
BIN
apps/bootstrap/static/images/icons/world.png
Executable file
BIN
apps/bootstrap/static/images/icons/world.png
Executable file
Binary file not shown.
|
After Width: | Height: | Size: 2.5 KiB |
@@ -7,6 +7,10 @@ urlpatterns = patterns('bootstrap.views',
|
||||
url(r'^setup/(?P<bootstrap_setup_pk>\d+)/delete/$', 'bootstrap_setup_delete', (), 'bootstrap_setup_delete'),
|
||||
url(r'^setup/(?P<bootstrap_setup_pk>\d+)/$', 'bootstrap_setup_view', (), 'bootstrap_setup_view'),
|
||||
url(r'^setup/(?P<bootstrap_setup_pk>\d+)/execute/$', 'bootstrap_setup_execute', (), 'bootstrap_setup_execute'),
|
||||
url(r'^setup/(?P<bootstrap_setup_pk>\d+)/export/$', 'bootstrap_setup_export', (), 'bootstrap_setup_export'),
|
||||
url(r'^setup/dump/$', 'bootstrap_setup_dump', (), 'bootstrap_setup_dump'),
|
||||
url(r'^setup/import/file/$', 'bootstrap_setup_import_from_file', (), 'bootstrap_setup_import_from_file'),
|
||||
url(r'^setup/import/url/$', 'bootstrap_setup_import_from_url', (), 'bootstrap_setup_import_from_url'),
|
||||
url(r'^setup/repository/sync/$', 'bootstrap_setup_repository_sync', (), 'bootstrap_setup_repository_sync'),
|
||||
url(r'^nuke/$', 'erase_database_view', (), 'erase_database_view'),
|
||||
)
|
||||
|
||||
@@ -1 +1,40 @@
|
||||
## {{{ http://code.activestate.com/recipes/578272/ (r1)
|
||||
def toposort2(data):
|
||||
"""Dependencies are expressed as a dictionary whose keys are items
|
||||
and whose values are a set of dependent items. Output is a list of
|
||||
sets in topological order. The first set consists of items with no
|
||||
dependences, each subsequent set consists of items that depend upon
|
||||
items in the preceeding sets.
|
||||
|
||||
>>> print '\\n'.join(repr(sorted(x)) for x in toposort2({
|
||||
... 2: set([11]),
|
||||
... 9: set([11,8]),
|
||||
... 10: set([11,3]),
|
||||
... 11: set([7,5]),
|
||||
... 8: set([7,3]),
|
||||
... }) )
|
||||
[3, 5, 7]
|
||||
[8, 11]
|
||||
[2, 9, 10]
|
||||
|
||||
"""
|
||||
|
||||
from functools import reduce
|
||||
|
||||
# Ignore self dependencies.
|
||||
for k, v in data.items():
|
||||
v.discard(k)
|
||||
# Find all items that don't depend on anything.
|
||||
extra_items_in_deps = reduce(set.union, data.itervalues()) - set(data.iterkeys())
|
||||
# Add empty dependences where needed
|
||||
data.update({item:set() for item in extra_items_in_deps})
|
||||
while True:
|
||||
ordered = set(item for item, dep in data.iteritems() if not dep)
|
||||
if not ordered:
|
||||
break
|
||||
yield ordered
|
||||
data = {item: (dep - ordered)
|
||||
for item, dep in data.iteritems()
|
||||
if item not in ordered}
|
||||
assert not data, "Cyclic dependencies exist among these items:\n%s" % '\n'.join(repr(x) for x in data.iteritems())
|
||||
## end of http://code.activestate.com/recipes/578272/ }}}
|
||||
|
||||
@@ -6,6 +6,9 @@ from django.shortcuts import render_to_response, get_object_or_404
|
||||
from django.template import RequestContext
|
||||
from django.contrib import messages
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.core.files import File
|
||||
|
||||
from filetransfers.api import serve_file
|
||||
|
||||
from permissions.models import Permission
|
||||
|
||||
@@ -13,10 +16,12 @@ from .models import BootstrapSetup
|
||||
from .classes import Cleanup, BootstrapModel
|
||||
from .permissions import (PERMISSION_BOOTSTRAP_VIEW, PERMISSION_BOOTSTRAP_CREATE,
|
||||
PERMISSION_BOOTSTRAP_EDIT, PERMISSION_BOOTSTRAP_DELETE,
|
||||
PERMISSION_BOOTSTRAP_EXECUTE, PERMISSION_NUKE_DATABASE, PERMISSION_BOOTSTRAP_DUMP)
|
||||
PERMISSION_BOOTSTRAP_EXECUTE, PERMISSION_NUKE_DATABASE, PERMISSION_BOOTSTRAP_DUMP,
|
||||
PERMISSION_BOOTSTRAP_EXPORT, PERMISSION_BOOTSTRAP_IMPORT, PERMISSION_BOOTSTRAP_REPOSITORY_SYNC)
|
||||
from .icons import icon_bootstrap_setup_execute, icon_nuke_database, icon_bootstrap_setup_delete
|
||||
from .forms import BootstrapSetupForm, BootstrapSetupForm_view, BootstrapSetupForm_dump
|
||||
from .exceptions import ExistingData
|
||||
from .forms import (BootstrapSetupForm, BootstrapSetupForm_view, BootstrapSetupForm_dump,
|
||||
BootstrapSetupForm_edit, BootstrapFileImportForm, BootstrapURLImportForm)
|
||||
from .exceptions import ExistingData, NotABootstrapSetup
|
||||
|
||||
|
||||
def bootstrap_setup_list(request):
|
||||
@@ -43,7 +48,7 @@ def bootstrap_setup_create(request):
|
||||
form = BootstrapSetupForm(request.POST)
|
||||
if form.is_valid():
|
||||
bootstrap = form.save()
|
||||
messages.success(request, _(u'Bootstrap created successfully'))
|
||||
messages.success(request, _(u'Bootstrap setup created successfully'))
|
||||
return HttpResponseRedirect(reverse('bootstrap_setup_list'))
|
||||
else:
|
||||
messages.error(request, _(u'Error creating bootstrap setup.'))
|
||||
@@ -68,7 +73,7 @@ def bootstrap_setup_edit(request, bootstrap_setup_pk):
|
||||
AccessEntry.objects.check_access(PERMISSION_BOOTSTRAP_EDIT, request.user, bootstrap)
|
||||
|
||||
if request.method == 'POST':
|
||||
form = BootstrapSetupForm(instance=bootstrap, data=request.POST)
|
||||
form = BootstrapSetupForm_edit(instance=bootstrap, data=request.POST)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
messages.success(request, _(u'Bootstrap setup edited successfully'))
|
||||
@@ -76,7 +81,7 @@ def bootstrap_setup_edit(request, bootstrap_setup_pk):
|
||||
else:
|
||||
messages.error(request, _(u'Error editing bootstrap setup.'))
|
||||
else:
|
||||
form = BootstrapSetupForm(instance=bootstrap)
|
||||
form = BootstrapSetupForm_edit(instance=bootstrap)
|
||||
|
||||
return render_to_response('generic_form.html', {
|
||||
'title': _(u'edit bootstrap setup: %s') % bootstrap,
|
||||
@@ -106,7 +111,7 @@ def bootstrap_setup_delete(request, bootstrap_setup_pk):
|
||||
bootstrap.delete()
|
||||
messages.success(request, _(u'Bootstrap setup: %s deleted successfully.') % bootstrap)
|
||||
except Exception, e:
|
||||
messages.error(request, _(u'Bootstrap setup: %(bootstrap)s delete error: %(error)s') % {
|
||||
messages.error(request, _(u'Bootstrap setup: %(bootstrap)s, delete error: %(error)s') % {
|
||||
'bootstrap': bootstrap, 'error': e})
|
||||
|
||||
return HttpResponseRedirect(reverse('bootstrap_setup_list'))
|
||||
@@ -157,7 +162,7 @@ def bootstrap_setup_execute(request, bootstrap_setup_pk):
|
||||
try:
|
||||
bootstrap_setup.execute()
|
||||
except ExistingData:
|
||||
messages.error(request, _(u'Cannot execute bootstrap setup, there is existing data. Erase database and try again.'))
|
||||
messages.error(request, _(u'Cannot execute bootstrap setup, there is existing data. Erase all data and try again.'))
|
||||
except Exception, exc:
|
||||
messages.error(request, _(u'Error executing bootstrap setup; %s') % exc)
|
||||
else:
|
||||
@@ -173,7 +178,7 @@ def bootstrap_setup_execute(request, bootstrap_setup_pk):
|
||||
'object': bootstrap_setup,
|
||||
}
|
||||
|
||||
context['title'] = _(u'Are you sure you wish to execute the database bootstrap named: %s?') % bootstrap_setup
|
||||
context['title'] = _(u'Are you sure you wish to execute the database bootstrap setup named: %s?') % bootstrap_setup
|
||||
|
||||
return render_to_response('generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
@@ -189,11 +194,11 @@ def bootstrap_setup_dump(request):
|
||||
try:
|
||||
bootstrap.fixture = BootstrapSetup.objects.dump(serialization_format=bootstrap.type)
|
||||
except Exception as exception:
|
||||
messages.error(request, _(u'Error dumping bootstrap setup; %s') % exception)
|
||||
messages.error(request, _(u'Error dumping configuration into a bootstrap setup; %s') % exception)
|
||||
raise
|
||||
else:
|
||||
bootstrap.save()
|
||||
messages.success(request, _(u'Bootstrap created successfully.'))
|
||||
messages.success(request, _(u'Bootstrap setup created successfully.'))
|
||||
return HttpResponseRedirect(reverse('bootstrap_setup_list'))
|
||||
else:
|
||||
form = BootstrapSetupForm_dump()
|
||||
@@ -205,6 +210,80 @@ def bootstrap_setup_dump(request):
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def bootstrap_setup_export(request, bootstrap_setup_pk):
|
||||
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/')))
|
||||
|
||||
bootstrap = get_object_or_404(BootstrapSetup, pk=bootstrap_setup_pk)
|
||||
|
||||
try:
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_EXPORT])
|
||||
except PermissionDenied:
|
||||
AccessEntry.objects.check_access(PERMISSION_BOOTSTRAP_EXPORT, request.user, bootstrap)
|
||||
|
||||
return serve_file(
|
||||
request,
|
||||
bootstrap.as_file(),
|
||||
save_as=u'"%s"' % bootstrap.get_filename(),
|
||||
content_type='text/plain; charset=us-ascii'
|
||||
)
|
||||
|
||||
|
||||
def bootstrap_setup_import_from_file(request):
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_IMPORT])
|
||||
|
||||
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/')))
|
||||
|
||||
if request.method == 'POST':
|
||||
form = BootstrapFileImportForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
try:
|
||||
BootstrapSetup.objects.import_from_file(request.FILES['file'])
|
||||
messages.success(request, _(u'Bootstrap setup imported successfully.'))
|
||||
return HttpResponseRedirect(reverse('bootstrap_setup_list'))
|
||||
except NotABootstrapSetup:
|
||||
messages.error(request, _(u'File is not a bootstrap setup.'))
|
||||
except Exception as exception:
|
||||
messages.error(request, _(u'Error importing bootstrap setup from file; %s.') % exception)
|
||||
return HttpResponseRedirect(previous)
|
||||
else:
|
||||
form = BootstrapFileImportForm()
|
||||
|
||||
return render_to_response('generic_form.html', {
|
||||
'title': _(u'Import bootstrap setup from file'),
|
||||
'form_icon': 'folder.png',
|
||||
'form': form,
|
||||
'previous': previous,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def bootstrap_setup_import_from_url(request):
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_IMPORT])
|
||||
|
||||
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/')))
|
||||
|
||||
if request.method == 'POST':
|
||||
form = BootstrapURLImportForm(request.POST, request.FILES)
|
||||
if form.is_valid():
|
||||
try:
|
||||
BootstrapSetup.objects.import_from_url(form.cleaned_data['url'])
|
||||
messages.success(request, _(u'Bootstrap setup imported successfully.'))
|
||||
return HttpResponseRedirect(reverse('bootstrap_setup_list'))
|
||||
except NotABootstrapSetup:
|
||||
messages.error(request, _(u'Data from URL is not a bootstrap setup.'))
|
||||
except Exception as exception:
|
||||
messages.error(request, _(u'Error importing bootstrap setup from URL; %s.') % exception)
|
||||
return HttpResponseRedirect(previous)
|
||||
else:
|
||||
form = BootstrapURLImportForm()
|
||||
|
||||
return render_to_response('generic_form.html', {
|
||||
'title': _(u'Import bootstrap setup from URL'),
|
||||
'form_icon': 'folder.png',
|
||||
'form': form,
|
||||
'previous': previous,
|
||||
}, context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def erase_database_view(request):
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_NUKE_DATABASE])
|
||||
|
||||
@@ -234,3 +313,31 @@ def erase_database_view(request):
|
||||
|
||||
return render_to_response('generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
|
||||
def bootstrap_setup_repository_sync(request):
|
||||
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_REPOSITORY_SYNC])
|
||||
|
||||
post_action_redirect = reverse('bootstrap_setup_list')
|
||||
|
||||
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/')))
|
||||
next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/')))
|
||||
|
||||
if request.method == 'POST':
|
||||
try:
|
||||
BootstrapSetup.objects.repository_sync()
|
||||
messages.success(request, _(u'Bootstrap repository successfully synchronized.'))
|
||||
except Exception, e:
|
||||
messages.error(request, _(u'Bootstrap repository synchronization error: %(error)s') % {'error': e})
|
||||
|
||||
return HttpResponseRedirect(reverse('bootstrap_setup_list'))
|
||||
|
||||
context = {
|
||||
'previous': previous,
|
||||
'next': next,
|
||||
'title': _(u'Are you sure you wish to synchronize with the bootstrap repository?'),
|
||||
'form_icon': 'world.png',
|
||||
}
|
||||
|
||||
return render_to_response('generic_confirm.html', context,
|
||||
context_instance=RequestContext(request))
|
||||
|
||||
Reference in New Issue
Block a user