Merge branch 'hotfix/v0.12.3'

This commit is contained in:
Roberto Rosario
2012-12-12 03:45:38 -04:00
847 changed files with 57548 additions and 7617 deletions

View File

@@ -1,262 +1,176 @@
[mayan-edms.apps-converter]
source_file = apps/converter/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/converter/locale/es/LC_MESSAGES/django.po
trans.pt = apps/converter/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/converter/locale/ru/LC_MESSAGES/django.po
trans.it = apps/converter/locale/it/LC_MESSAGES/django.po
trans.pl = apps/converter/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/converter/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-common]
source_file = apps/common/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/common/locale/es/LC_MESSAGES/django.po
trans.pt = apps/common/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/common/locale/ru/LC_MESSAGES/django.po
trans.it = apps/common/locale/it/LC_MESSAGES/django.po
trans.pl = apps/common/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/common/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-permissions]
source_file = apps/permissions/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/permissions/locale/es/LC_MESSAGES/django.po
trans.pt = apps/permissions/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/permissions/locale/ru/LC_MESSAGES/django.po
trans.it = apps/permissions/locale/it/LC_MESSAGES/django.po
trans.pl = apps/permissions/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/permissions/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-sources]
source_file = apps/sources/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/sources/locale/es/LC_MESSAGES/django.po
trans.pt = apps/sources/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/sources/locale/ru/LC_MESSAGES/django.po
trans.it = apps/sources/locale/it/LC_MESSAGES/django.po
trans.pl = apps/sources/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/sources/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-document_indexing]
source_file = apps/document_indexing/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/document_indexing/locale/es/LC_MESSAGES/django.po
trans.pt = apps/document_indexing/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/document_indexing/locale/ru/LC_MESSAGES/django.po
trans.it = apps/document_indexing/locale/it/LC_MESSAGES/django.po
trans.pl = apps/document_indexing/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/document_indexing/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-user_management]
source_file = apps/user_management/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/user_management/locale/es/LC_MESSAGES/django.po
trans.pt = apps/user_management/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/user_management/locale/ru/LC_MESSAGES/django.po
trans.it = apps/user_management/locale/it/LC_MESSAGES/django.po
trans.pl = apps/user_management/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/user_management/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-main]
source_file = apps/main/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/main/locale/es/LC_MESSAGES/django.po
trans.pt = apps/main/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/main/locale/ru/LC_MESSAGES/django.po
trans.it = apps/main/locale/it/LC_MESSAGES/django.po
trans.pl = apps/main/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/main/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-ocr]
source_file = apps/ocr/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/ocr/locale/es/LC_MESSAGES/django.po
trans.pt = apps/ocr/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/ocr/locale/ru/LC_MESSAGES/django.po
trans.it = apps/ocr/locale/it/LC_MESSAGES/django.po
trans.pl = apps/ocr/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/ocr/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-project_setup]
source_file = apps/project_setup/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/project_setup/locale/es/LC_MESSAGES/django.po
trans.pt = apps/project_setup/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/project_setup/locale/ru/LC_MESSAGES/django.po
trans.it = apps/project_setup/locale/it/LC_MESSAGES/django.po
trans.pl = apps/project_setup/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/project_setup/locale/de_DE/LC_MESSAGES/django.po
[main]
host = https://www.transifex.net
[mayan-edms.apps-folders]
source_file = apps/folders/locale/en/LC_MESSAGES/django.po
[mayan-edms.apps-acls]
file_filter = apps/acls/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/folders/locale/es/LC_MESSAGES/django.po
trans.pt = apps/folders/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/folders/locale/ru/LC_MESSAGES/django.po
trans.it = apps/folders/locale/it/LC_MESSAGES/django.po
trans.pl = apps/folders/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/folders/locale/de_DE/LC_MESSAGES/django.po
source_file = apps/acls/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-history]
source_file = apps/history/locale/en/LC_MESSAGES/django.po
[mayan-edms.apps-bootstrap]
file_filter = apps/bootstrap/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/history/locale/es/LC_MESSAGES/django.po
trans.pt = apps/history/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/history/locale/ru/LC_MESSAGES/django.po
trans.it = apps/history/locale/it/LC_MESSAGES/django.po
trans.pl = apps/history/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/history/locale/de_DE/LC_MESSAGES/django.po
source_file = apps/bootstrap/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-dynamic_search]
source_file = apps/dynamic_search/locale/en/LC_MESSAGES/django.po
[mayan-edms.apps-checkouts]
file_filter = apps/checkouts/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/dynamic_search/locale/es/LC_MESSAGES/django.po
trans.pt = apps/dynamic_search/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/dynamic_search/locale/ru/LC_MESSAGES/django.po
trans.it = apps/dynamic_search/locale/it/LC_MESSAGES/django.po
trans.pl = apps/dynamic_search/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/dynamic_search/locale/de_DE/LC_MESSAGES/django.po
source_file = apps/checkouts/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-smart_settings]
source_file = apps/smart_settings/locale/en/LC_MESSAGES/django.po
[mayan-edms.apps-common]
file_filter = apps/common/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/smart_settings/locale/es/LC_MESSAGES/django.po
trans.pt = apps/smart_settings/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/smart_settings/locale/ru/LC_MESSAGES/django.po
trans.it = apps/smart_settings/locale/it/LC_MESSAGES/django.po
trans.pl = apps/smart_settings/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/smart_settings/locale/de_DE/LC_MESSAGES/django.po
source_file = apps/common/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-navigation]
source_file = apps/navigation/locale/en/LC_MESSAGES/django.po
[mayan-edms.apps-converter]
file_filter = apps/converter/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/navigation/locale/es/LC_MESSAGES/django.po
trans.pt = apps/navigation/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/navigation/locale/ru/LC_MESSAGES/django.po
trans.it = apps/navigation/locale/it/LC_MESSAGES/django.po
trans.pl = apps/navigation/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/navigation/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-tags]
source_file = apps/tags/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/tags/locale/es/LC_MESSAGES/django.po
trans.pt = apps/tags/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/tags/locale/ru/LC_MESSAGES/django.po
trans.it = apps/tags/locale/it/LC_MESSAGES/django.po
trans.pl = apps/tags/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/tags/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-documents]
source_file = apps/documents/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/documents/locale/es/LC_MESSAGES/django.po
trans.pt = apps/documents/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/documents/locale/ru/LC_MESSAGES/django.po
trans.it = apps/documents/locale/it/LC_MESSAGES/django.po
trans.pl = apps/documents/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/documents/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-project_tools]
source_file = apps/project_tools/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/project_tools/locale/es/LC_MESSAGES/django.po
trans.pt = apps/project_tools/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/project_tools/locale/ru/LC_MESSAGES/django.po
trans.it = apps/project_tools/locale/it/LC_MESSAGES/django.po
trans.pl = apps/project_tools/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/project_tools/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-linking]
source_file = apps/linking/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/linking/locale/es/LC_MESSAGES/django.po
trans.pt = apps/linking/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/linking/locale/ru/LC_MESSAGES/django.po
trans.it = apps/linking/locale/it/LC_MESSAGES/django.po
trans.pl = apps/linking/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/linking/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-document_comments]
source_file = apps/document_comments/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/document_comments/locale/es/LC_MESSAGES/django.po
trans.pt = apps/document_comments/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/document_comments/locale/ru/LC_MESSAGES/django.po
trans.it = apps/document_comments/locale/it/LC_MESSAGES/django.po
trans.pl = apps/document_comments/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/document_comments/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-metadata]
source_file = apps/metadata/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/metadata/locale/es/LC_MESSAGES/django.po
trans.pt = apps/metadata/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/metadata/locale/ru/LC_MESSAGES/django.po
trans.it = apps/metadata/locale/it/LC_MESSAGES/django.po
trans.pl = apps/metadata/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/metadata/locale/de_DE/LC_MESSAGES/django.po
[mayan-edms.apps-web_theme]
source_file = apps/web_theme/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/web_theme/locale/es/LC_MESSAGES/django.po
trans.pt = apps/web_theme/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/web_theme/locale/ru/LC_MESSAGES/django.po
trans.it = apps/web_theme/locale/it/LC_MESSAGES/django.po
trans.pl = apps/web_theme/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/web_theme/locale/de_DE/LC_MESSAGES/django.po
source_file = apps/converter/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-django_gpg]
source_file = apps/django_gpg/locale/en/LC_MESSAGES/django.po
file_filter = apps/django_gpg/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/django_gpg/locale/es/LC_MESSAGES/django.po
trans.pt = apps/django_gpg/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/django_gpg/locale/ru/LC_MESSAGES/django.po
trans.it = apps/django_gpg/locale/it/LC_MESSAGES/django.po
trans.pl = apps/django_gpg/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/django_gpg/locale/de_DE/LC_MESSAGES/django.po
source_file = apps/django_gpg/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-documents]
file_filter = apps/documents/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/documents/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-document_comments]
file_filter = apps/document_comments/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/document_comments/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-document_indexing]
file_filter = apps/document_indexing/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/document_indexing/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-document_signatures]
file_filter = apps/document_signatures/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/document_signatures/locale/en/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/document_signatures/locale/es/LC_MESSAGES/django.po
trans.pt = apps/document_signatures/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/document_signatures/locale/ru/LC_MESSAGES/django.po
trans.it = apps/document_signatures/locale/it/LC_MESSAGES/django.po
trans.pl = apps/document_signatures/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/document_signatures/locale/de_DE/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-acls]
source_file = apps/acls/locale/en/LC_MESSAGES/django.po
[mayan-edms.apps-dynamic_search]
file_filter = apps/dynamic_search/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/acls/locale/es/LC_MESSAGES/django.po
trans.pt = apps/acls/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/acls/locale/ru/LC_MESSAGES/django.po
trans.it = apps/acls/locale/it/LC_MESSAGES/django.po
trans.pl = apps/acls/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/acls/locale/de_DE/LC_MESSAGES/django.po
source_file = apps/dynamic_search/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-folders]
file_filter = apps/folders/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/folders/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-history]
file_filter = apps/history/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/history/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-installation]
source_file = apps/installation/locale/en/LC_MESSAGES/django.po
file_filter = apps/installation/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/installation/locale/es/LC_MESSAGES/django.po
trans.pt = apps/installation/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/installation/locale/ru/LC_MESSAGES/django.po
trans.it = apps/installation/locale/it/LC_MESSAGES/django.po
trans.pl = apps/installation/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/installation/locale/de_DE/LC_MESSAGES/django.po
source_file = apps/installation/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-linking]
file_filter = apps/linking/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/linking/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-main]
file_filter = apps/main/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/main/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-metadata]
file_filter = apps/metadata/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/metadata/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-navigation]
file_filter = apps/navigation/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/navigation/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-ocr]
file_filter = apps/ocr/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/ocr/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-permissions]
file_filter = apps/permissions/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/permissions/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-project_setup]
file_filter = apps/project_setup/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/project_setup/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-project_tools]
file_filter = apps/project_tools/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/project_tools/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-registration]
file_filter = apps/registration/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/registration/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-scheduler]
source_file = apps/scheduler/locale/en/LC_MESSAGES/django.po
file_filter = apps/scheduler/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
trans.es = apps/scheduler/locale/es/LC_MESSAGES/django.po
trans.pt = apps/scheduler/locale/pt/LC_MESSAGES/django.po
trans.ru = apps/scheduler/locale/ru/LC_MESSAGES/django.po
trans.it = apps/scheduler/locale/it/LC_MESSAGES/django.po
trans.pl = apps/scheduler/locale/pl/LC_MESSAGES/django.po
trans.de_DE = apps/scheduler/locale/de_DE/LC_MESSAGES/django.po
source_file = apps/scheduler/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-smart_settings]
file_filter = apps/smart_settings/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/smart_settings/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-sources]
file_filter = apps/sources/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/sources/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-tags]
file_filter = apps/tags/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/tags/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-user_management]
file_filter = apps/user_management/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/user_management/locale/en/LC_MESSAGES/django.po
type = PO
[mayan-edms.apps-web_theme]
file_filter = apps/web_theme/locale/<lang>/LC_MESSAGES/django.po
source_lang = en
source_file = apps/web_theme/locale/en/LC_MESSAGES/django.po
type = PO

8
apps/acls/cleanup.py Normal file
View File

@@ -0,0 +1,8 @@
from __future__ import absolute_import
from .models import AccessEntry, DefaultAccessEntry
def cleanup():
AccessEntry.objects.all().delete()
DefaultAccessEntry.objects.all().delete()

Binary file not shown.

View File

@@ -0,0 +1,246 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Iliya Georgiev <ikgeorgiev@gmail.com>, 2012.
# <pkoldamov@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-10-15 10:27+0000\n"
"Last-Translator: Pavlin Koldamov <pkoldamov@gmail.com>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/"
"language/bg/)\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr "Контролни списъци за достъп"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr "детайли"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr "предоставяне"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr "отменя"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr "Нов притежател"
#: __init__.py:20
msgid "Default ACLs"
msgstr "Контролни списъци за достъп по подразбиране"
#: __init__.py:21
msgid "List of classes"
msgstr "Списък на класовете"
#: __init__.py:22
msgid "ACLs for class"
msgstr "Контролни списъци за клас"
#: forms.py:38
msgid "Users"
msgstr "Потребители"
#: forms.py:41
msgid "Groups"
msgstr "Групи"
#: forms.py:44
msgid "Roles"
msgstr "Роли"
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr "Недостатъчен достъп."
#: models.py:25 models.py:67
msgid "permission"
msgstr "разрешение"
#: models.py:51
msgid "access entry"
msgstr "достъп за влизане"
#: models.py:52
msgid "access entries"
msgstr "достъп вписвания"
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Контролни списъци за достъп"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr "разрешения"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr " за %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr " към %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Сигурни ли сте, че искате да дадете разрешение за %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Сигурни ли сте, че искате да дадете разрешения за %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr " от %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
"Сигурни ли сте, че искате да отнемете разрешението за %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
"Сигурни ли сте, че искате да отнемете разрешенията за %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr "класове"
#: views.py:388
msgid "class"
msgstr "клас"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "правила за достъп по подразбиране за клас: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,22 +1,24 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# <sl@suchreflex.de>, 2012.
# <tilmann.sittig@web.de>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
"POT-Creation-Date: 2012-06-17 18:09-0400\n"
"PO-Revision-Date: 2012-06-10 13:06+0000\n"
"Last-Translator: tilmannsittig <tilmann.sittig@web.de>\n"
"Language-Team: German (Germany) (http://www.transifex.net/projects/p/mayan-edms/language/de_DE/)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-09-20 07:40+0000\n"
"Last-Translator: Manticor <sl@suchreflex.de>\n"
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-"
"edms/language/de_DE/)\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: de_DE\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
@@ -100,7 +102,7 @@ msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Zugriffs-Berechtigungs-Listen (ACLs)"
msgstr "Zugriffsberechtigungslisten (ACLs)"
#: permissions.py:10
msgid "Edit ACLs"
@@ -121,7 +123,7 @@ msgstr "Standard-ACLs für Klasse anzeigen"
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "Standard-ACLs für: %s"
msgstr "Zugriffberechtigungsliste für: %s"
#: views.py:49 views.py:409
msgid "holder"
@@ -165,12 +167,16 @@ msgstr "zu %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr "Sind Sie sicher, dass Sie Berechtigung %(title_suffix)s erteilen möchten?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigung %(title_suffix)s erteilen "
"möchten?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr "Sind Sie sicher, dass Sie Berechtigungen %(title_suffix)s erteilen möchten?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigungen %(title_suffix)s erteilen "
"möchten?"
#: views.py:198 views.py:539
#, python-format
@@ -192,12 +198,16 @@ msgstr "von %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Sind Sie sicher, dass Sie Berechtigung %(title_suffix)s enziehen möchten?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigung %(title_suffix)s enziehen "
"möchten?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr "Sind Sie sicher, dass Sie Berechtigungen %(title_suffix)s enziehen möchten?"
msgstr ""
"Sind Sie sicher, dass Sie die Berechtigungen %(title_suffix)s enziehen "
"möchten?"
#: views.py:291 views.py:618
#, python-format

Binary file not shown.

View File

@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-06-17 19:03-0400\n"
"POT-Creation-Date: 2012-12-12 03:19-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"

View File

@@ -1,22 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Roberto Rosario <roberto.rosario.gonzalez@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-06-17 18:09-0400\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-02-12 00:16+0000\n"
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
"Language-Team: Spanish (Castilian) (http://www.transifex.net/projects/p/mayan-edms/language/es/)\n"
"Language-Team: Spanish (http://www.transifex.com/projects/p/mayan-edms/"
"language/es/)\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
@@ -182,7 +183,8 @@ msgstr "Permiso \"%(permission)s\" otorgado a %(actor)s para %(object)s."
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr "%(actor)s, ya tenía el permiso \"%(permission)s\", otorgado para %(object)s."
msgstr ""
"%(actor)s, ya tenía el permiso \"%(permission)s\", otorgado para %(object)s."
#: views.py:279 views.py:606
#, python-format

Binary file not shown.

View File

@@ -0,0 +1,249 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Pierre Lhoste <peter.cathbad.host@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-28 15:20+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"
"Language: fr\n"
"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"
#: __init__.py:14
msgid "ACLs"
msgstr "ACLs"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr "détails"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr "autoriser"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr "révoquer"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr "Nouveau détenteur"
#: __init__.py:20
msgid "Default ACLs"
msgstr "ACLs par défaut"
#: __init__.py:21
msgid "List of classes"
msgstr "Liste des classes"
#: __init__.py:22
msgid "ACLs for class"
msgstr "ACLs pour la classe"
#: forms.py:38
msgid "Users"
msgstr "Utilisateurs"
#: forms.py:41
msgid "Groups"
msgstr "Groupes"
#: forms.py:44
msgid "Roles"
msgstr "Rôles"
#: forms.py:47
msgid "Special"
msgstr "Spécial"
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr "Autorisations insuffisantes."
#: models.py:25 models.py:67
msgid "permission"
msgstr "autorisation"
#: models.py:51
msgid "access entry"
msgstr "autorisation d'accès"
#: models.py:52
msgid "access entries"
msgstr "autorisations d'accès"
#: models.py:88
msgid "default access entry"
msgstr "autorisation d'accès par défaut"
#: models.py:89
msgid "default access entries"
msgstr "autorisations d'accès par défaut"
#: models.py:108
msgid "Creator"
msgstr "Créateur"
#: models.py:111 models.py:112
msgid "creator"
msgstr "créateur"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr "Listes de contrôle d'accès (ACL)"
#: permissions.py:10
msgid "Edit ACLs"
msgstr "Modifier ACLs"
#: permissions.py:11
msgid "View ACLs"
msgstr "Afficher ACLs"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr "Modifier ACLs par défaut"
#: permissions.py:14
msgid "View class default ACLs"
msgstr "Afficher ACLs par défaut pour la classe"
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr "Liste de contrôle d'accès (ACL) pour: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr "détenteur"
#: views.py:50 views.py:410
msgid "permissions"
msgstr "autorisations"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr "autorisations pour: %(actor)s for %(obj)s"
#: views.py:104 views.py:442
msgid "namespace"
msgstr "espace de nommage"
#: views.py:105 views.py:443
msgid "label"
msgstr "label"
#: views.py:107 views.py:445
msgid "has permission"
msgstr "autorisation accordée "
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ","
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr "à %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr "sur %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
"Êtes vous certain de vouloir attribuer l'autorisation %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
"Êtes vous certain de vouloir attribuer les autorisations %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr "Autorisation \"%(permission)s\" accordée à %(actor)s sur %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
"%(actor)s, dispose déjà de l'autorisation \"%(permission)s\" accordée sur "
"%(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr "de %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr "Êtes vous certain de vouloir révoquer l'autorisation %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
"Êtes vous certain de vouloir révoquer les autorisations %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
"Autorisation \"%(permission)s\" révoquée pour %(actor)s sur %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr "%(actor)s, n'a pas l'autorisation \"%(permission)s\" sur %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr "ajouter un nouveau détenteur pour: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr "Sélectionner"
#: views.py:386
msgid "classes"
msgstr "classes"
#: views.py:388
msgid "class"
msgstr "classe"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr "liste de contrôle d'accès (ACL) par défaut pour: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr "autorisations attribuées à: %(actor)s sur la classe %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr "ajouter un nouveau détenteur sur la classe: %s"

View File

@@ -1,7 +1,7 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Carlo Zanatto <>, 2012.
# Pierpaolo Baldan <pierpaolo.baldan@gmail.com>, 2012.
@@ -9,16 +9,17 @@
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
"POT-Creation-Date: 2012-06-17 18:09-0400\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-06-08 07:20+0000\n"
"Last-Translator: Carlo Zanatto <>\n"
"Language-Team: Italian (http://www.transifex.net/projects/p/mayan-edms/language/it/)\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/mayan-edms/"
"language/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: it\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"

Binary file not shown.

View File

@@ -0,0 +1,242 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
"mayan-edms/language/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr ""
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr ""
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr ""
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr ""
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr ""
#: __init__.py:20
msgid "Default ACLs"
msgstr ""
#: __init__.py:21
msgid "List of classes"
msgstr ""
#: __init__.py:22
msgid "ACLs for class"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,21 +1,23 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
"POT-Creation-Date: 2012-06-17 18:09-0400\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Polish (http://www.transifex.net/projects/p/mayan-edms/language/pl/)\n"
"Language-Team: Polish (http://www.transifex.com/projects/p/mayan-edms/"
"language/pl/)\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pl\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2);\n"
#: __init__.py:14
msgid "ACLs"

View File

@@ -1,241 +1,243 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Vítor Figueiró <vfigueiro@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-06-17 18:09-0400\n"
"PO-Revision-Date: 2012-02-02 18:20+0000\n"
"Last-Translator: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.net/projects/p/mayan-edms/language/pt/)\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-03 19:01+0000\n"
"Last-Translator: Vítor Figueiró <vfigueiro@gmail.com>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/mayan-edms/"
"language/pt/)\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: pt\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr ""
msgstr "ACL's"
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr ""
msgstr "detalhes"
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr ""
msgstr "conceder"
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr ""
msgstr "revogar"
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr ""
msgstr "Novo detentor"
#: __init__.py:20
msgid "Default ACLs"
msgstr ""
msgstr "ACL's padrão"
#: __init__.py:21
msgid "List of classes"
msgstr ""
msgstr "Lista de classes"
#: __init__.py:22
msgid "ACLs for class"
msgstr ""
msgstr "ACL's para a classe"
#: forms.py:38
msgid "Users"
msgstr ""
msgstr "Utilizadores"
#: forms.py:41
msgid "Groups"
msgstr ""
msgstr "Grupos"
#: forms.py:44
msgid "Roles"
msgstr ""
msgstr "Funções"
#: forms.py:47
msgid "Special"
msgstr ""
msgstr "Especial"
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr ""
msgstr "Acesso insuficiente."
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
msgstr "permissão"
#: models.py:51
msgid "access entry"
msgstr ""
msgstr "entrada de acesso"
#: models.py:52
msgid "access entries"
msgstr ""
msgstr "entradas de acesso"
#: models.py:88
msgid "default access entry"
msgstr ""
msgstr "entrada de acesso padrão"
#: models.py:89
msgid "default access entries"
msgstr ""
msgstr "entradas de acesso padrão"
#: models.py:108
msgid "Creator"
msgstr ""
msgstr "Criador"
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
msgstr "criador"
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
msgstr "Listas de controlo de acesso"
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
msgstr "Editar ACL's"
#: permissions.py:11
msgid "View ACLs"
msgstr ""
msgstr "Ver ACL's"
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
msgstr "Editar os ACL's padrão da classe"
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
msgstr "Ver os ACL's padrão da classe"
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
msgstr "listas de controlo de acesso para: %s"
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
msgstr "detentor"
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
msgstr "permissões"
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
msgstr "permissões disponíveis para: %(actor)s para %(obj)s"
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
msgstr "escopo"
#: views.py:105 views.py:443
msgid "label"
msgstr ""
msgstr "rótulo"
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
msgstr "tem a permissão"
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
msgstr ", "
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
msgstr " para %s"
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
msgstr " a %s"
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
msgstr "Tem a certeza de que pretende conceder a permissão %(title_suffix)s?"
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
msgstr "Tem a certeza de que pretende conceder as permissões %(title_suffix)s?"
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
msgstr "Permissão \"%(permission)s\" concedida a %(actor)s para %(object)s."
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
msgstr "%(actor)s, já possuia a permissão \"%(permission)s\" para %(object)s."
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
msgstr " de %s"
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
msgstr "Tem a certeza de que pretende revogar a permissão %(title_suffix)s?"
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
msgstr "Tem a certeza de que pretende revogar as permissões %(title_suffix)s?"
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
msgstr "Permissão \"%(permission)s\" revogada para %(actor)s para %(object)s."
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
msgstr "%(actor)s, não tinha a permissão \"%(permission)s\" para %(object)s."
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
msgstr "adicionar novo detentor para: %s"
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
msgstr "Selecionar"
#: views.py:386
msgid "classes"
msgstr ""
msgstr "classes"
#: views.py:388
msgid "class"
msgstr ""
msgstr "classe"
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
msgstr "Listas de controlo de acesso padrão para a classe: %s"
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
msgstr "permissões disponíveis para: %(actor)s para a classe %(class)s"
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""
msgstr "adicionar novo detentor para a classe: %s"

Binary file not shown.

View File

@@ -0,0 +1,242 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
"mayan-edms/language/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: __init__.py:14
msgid "ACLs"
msgstr ""
#: __init__.py:15 __init__.py:23
msgid "details"
msgstr ""
#: __init__.py:16 __init__.py:25
msgid "grant"
msgstr ""
#: __init__.py:17 __init__.py:26
msgid "revoke"
msgstr ""
#: __init__.py:18 __init__.py:24 forms.py:21
msgid "New holder"
msgstr ""
#: __init__.py:20
msgid "Default ACLs"
msgstr ""
#: __init__.py:21
msgid "List of classes"
msgstr ""
#: __init__.py:22
msgid "ACLs for class"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: managers.py:118 managers.py:130
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

View File

@@ -1,22 +1,24 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
#
# Translators:
# Sergey Glita <gsv70@mail.ru>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
"POT-Creation-Date: 2012-06-17 18:09-0400\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-02-27 04:26+0000\n"
"Last-Translator: Sergey Glita <gsv70@mail.ru>\n"
"Language-Team: Russian (http://www.transifex.net/projects/p/mayan-edms/language/ru/)\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/mayan-edms/"
"language/ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: ru\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
#: __init__.py:14
msgid "ACLs"

View File

@@ -0,0 +1,241 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: http://github.com/rosarior/mayan/issues\n"
"POT-Creation-Date: 2012-07-26 23:54-0400\n"
"PO-Revision-Date: 2012-01-02 09:45+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Slovenian (Slovenia) (http://www.transifex.com/projects/p/mayan-edms/language/sl_SI/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: sl_SI\n"
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n"
#: forms.py:21 links.py:14 links.py:20
msgid "New holder"
msgstr ""
#: forms.py:38
msgid "Users"
msgstr ""
#: forms.py:41
msgid "Groups"
msgstr ""
#: forms.py:44
msgid "Roles"
msgstr ""
#: forms.py:47
msgid "Special"
msgstr ""
#: links.py:10
msgid "ACLs"
msgstr ""
#: links.py:11 links.py:19
msgid "details"
msgstr ""
#: links.py:12 links.py:21
msgid "grant"
msgstr ""
#: links.py:13 links.py:22
msgid "revoke"
msgstr ""
#: links.py:16
msgid "Default ACLs"
msgstr ""
#: links.py:17
msgid "List of classes"
msgstr ""
#: links.py:18
msgid "ACLs for class"
msgstr ""
#: managers.py:119 managers.py:131
msgid "Insufficient access."
msgstr ""
#: models.py:25 models.py:67
msgid "permission"
msgstr ""
#: models.py:51
msgid "access entry"
msgstr ""
#: models.py:52
msgid "access entries"
msgstr ""
#: models.py:88
msgid "default access entry"
msgstr ""
#: models.py:89
msgid "default access entries"
msgstr ""
#: models.py:108
msgid "Creator"
msgstr ""
#: models.py:111 models.py:112
msgid "creator"
msgstr ""
#: permissions.py:7 permissions.py:8
msgid "Access control lists"
msgstr ""
#: permissions.py:10
msgid "Edit ACLs"
msgstr ""
#: permissions.py:11
msgid "View ACLs"
msgstr ""
#: permissions.py:13
msgid "Edit class default ACLs"
msgstr ""
#: permissions.py:14
msgid "View class default ACLs"
msgstr ""
#: views.py:47
#, python-format
msgid "access control lists for: %s"
msgstr ""
#: views.py:49 views.py:409
msgid "holder"
msgstr ""
#: views.py:50 views.py:410
msgid "permissions"
msgstr ""
#: views.py:97
#, python-format
msgid "permissions available to: %(actor)s for %(obj)s"
msgstr ""
#: views.py:104 views.py:442
msgid "namespace"
msgstr ""
#: views.py:105 views.py:443
msgid "label"
msgstr ""
#: views.py:107 views.py:445
msgid "has permission"
msgstr ""
#: views.py:184 views.py:277 views.py:525 views.py:604
msgid ", "
msgstr ""
#: views.py:185 views.py:278 views.py:526 views.py:605
#, python-format
msgid " for %s"
msgstr ""
#: views.py:186 views.py:527
#, python-format
msgid " to %s"
msgstr ""
#: views.py:189 views.py:530
#, python-format
msgid "Are you sure you wish to grant the permission %(title_suffix)s?"
msgstr ""
#: views.py:191 views.py:532
#, python-format
msgid "Are you sure you wish to grant the permissions %(title_suffix)s?"
msgstr ""
#: views.py:198 views.py:539
#, python-format
msgid "Permission \"%(permission)s\" granted to %(actor)s for %(object)s."
msgstr ""
#: views.py:204 views.py:545
#, python-format
msgid ""
"%(actor)s, already had the permission \"%(permission)s\" granted for "
"%(object)s."
msgstr ""
#: views.py:279 views.py:606
#, python-format
msgid " from %s"
msgstr ""
#: views.py:282 views.py:609
#, python-format
msgid "Are you sure you wish to revoke the permission %(title_suffix)s?"
msgstr ""
#: views.py:284 views.py:611
#, python-format
msgid "Are you sure you wish to revoke the permissions %(title_suffix)s?"
msgstr ""
#: views.py:291 views.py:618
#, python-format
msgid "Permission \"%(permission)s\" revoked of %(actor)s for %(object)s."
msgstr ""
#: views.py:297 views.py:624
#, python-format
msgid "%(actor)s, didn't had the permission \"%(permission)s\" for %(object)s."
msgstr ""
#: views.py:353
#, python-format
msgid "add new holder for: %s"
msgstr ""
#: views.py:354 views.py:486
msgid "Select"
msgstr ""
#: views.py:386
msgid "classes"
msgstr ""
#: views.py:388
msgid "class"
msgstr ""
#: views.py:407
#, python-format
msgid "default access control lists for class: %s"
msgstr ""
#: views.py:435
#, python-format
msgid "permissions available to: %(actor)s for class %(class)s"
msgstr ""
#: views.py:484
#, python-format
msgid "add new holder for class: %s"
msgstr ""

10
apps/acls/registry.py Normal file
View File

@@ -0,0 +1,10 @@
from __future__ import absolute_import
from .cleanup import cleanup
bootstrap_models = [
{
'name': 'defaultaccessentry',
},
]
cleanup_functions = [cleanup]

View File

@@ -0,0 +1,23 @@
from __future__ import absolute_import
import logging
from django.conf import settings
from django.utils.importlib import import_module
from .models import App
logger = logging.getLogger(__name__)
def register_apps():
for app_name in settings.INSTALLED_APPS:
logger.debug('registering: %s' % app_name)
App.register(app_name)
try:
post_init = import_module('%s.post_init' % app_name)
except ImportError:
logger.debug('Unable to import post_init module from: %s' % app_name)
register_apps()

View File

@@ -0,0 +1,62 @@
from __future__ import absolute_import
import logging
import imp
import sys
from django.db import models
from django.utils.translation import ugettext_lazy as _
from django.utils.importlib import import_module
from project_setup.api import register_setup
from project_tools.api import register_tool
from navigation.api import register_top_menu
from bootstrap.classes import Cleanup, BootstrapModel
logger = logging.getLogger(__name__)
class App(object):
@classmethod
def register(cls, app_name):
logger.debug('Trying to import: %s' % app_name)
try:
app_module = import_module(app_name)
except ImportError:
logger.debug('Unable to import app: %s' % app_name)
else:
logger.debug('Trying to import registry from: %s' % app_name)
try:
registration = import_module('%s.registry' % app_name)
except ImportError:
logger.debug('Unable to import registry for app: %s' % app_name)
else:
if not getattr(registration, 'disabled', False):
app = App()
app.name=app_name
# If there are not error go ahead with the stored app instance
app.label = getattr(registration, 'label', app_name)
app.description = getattr(registration, 'description', u'')
for link in getattr(registration, 'setup_links', []):
logger.debug('setup link: %s' % link)
register_setup(link)
for link in getattr(registration, 'tool_links', []):
logger.debug('tool link: %s' % link)
register_tool(link)
for index, link in enumerate(getattr(registration, 'menu_links', [])):
logger.debug('menu_link: %s' % link)
register_top_menu(name='%s.%s' % (app_name, index), link=link)
for cleanup_function in getattr(registration, 'cleanup_functions', []):
logger.debug('cleanup_function: %s' % cleanup_function)
Cleanup(cleanup_function)
for bootstrap_model in getattr(registration, 'bootstrap_models', []):
logger.debug('bootstrap_model: %s' % bootstrap_model)
BootstrapModel(model_name=bootstrap_model.get('name'), app_name=app_name, sanitize=bootstrap_model.get('sanitize', True), dependencies=bootstrap_model.get('dependencies'))
def __unicode__(self):
return unicode(self.label)

View File

7
apps/bootstrap/admin.py Normal file
View File

@@ -0,0 +1,7 @@
from __future__ import absolute_import
from django.contrib import admin
from .models import BootstrapSetup
admin.site.register(BootstrapSetup)

172
apps/bootstrap/classes.py Normal file
View File

@@ -0,0 +1,172 @@
from __future__ import absolute_import
import logging
from itertools import chain
from django.db import models
from django.core import serializers
from django.utils.datastructures import SortedDict
from .exceptions import ExistingData, NotABootstrapSetup
from .literals import (FIXTURE_TYPE_PK_NULLIFIER, FIXTURE_TYPE_MODEL_PROCESS,
FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER)
from .utils import toposort2
logger = logging.getLogger(__name__)
class Cleanup(object):
"""
Class to store all the registered cleanup functions in one place.
"""
_registry = {}
@classmethod
def execute_all(cls):
for cleanup in cls._registry.values():
cleanup.function()
def __init__(self, function):
self.function = function
self.__class__._registry[id(self)] = self
class BootstrapModel(object):
"""
Class used to keep track of all the models to be dumped to create a
bootstrap setup from the current setup in use.
"""
_registry = SortedDict()
@classmethod
def get_magic_number(cls):
return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, BOOTSTRAP_SETUP_MAGIC_NUMBER)
@classmethod
def check_magic_number(cls, data):
if not data.startswith(cls.get_magic_number()):
raise NotABootstrapSetup
@classmethod
def check_for_data(cls):
for model in cls.get_all():
model_instance = models.get_model(model.app_name, model.model_name)
if model_instance.objects.all().count():
raise ExistingData
@classmethod
def get_all(cls, sort_by_dependencies=False):
"""
Return all boostrap models, sorted by dependencies optionally.
"""
if not sort_by_dependencies:
return cls._registry.values()
else:
return (cls.get_by_name(name) for name in list(chain.from_iterable(toposort2(cls.get_dependency_dict()))))
@classmethod
def get_dependency_dict(cls):
"""
Return a dictionary where the key is the model name and it's value
is a list of models upon which it depends.
"""
result = {}
for instance in cls.get_all():
result[instance.get_fullname()] = set(instance.dependencies)
logger.debug('result: %s' % result)
return result
@classmethod
def get_by_name(cls, name):
"""
Return a BootstrapModel instance by the fullname of the model it
represents.
"""
return cls._registry[name]
def get_fullname(self):
"""
Return a the full app name + model name of the model represented
by the instance.
"""
return '.'.join([self.app_name, self.model_name])
def get_model_instance(self):
"""
Returns an actual Model class instance of the model.
"""
return models.get_model(self.app_name, self.model_name)
def __init__(self, model_name, app_name=None, sanitize=True, dependencies=None):
app_name_splitted = None
if '.' in model_name:
app_name_splitted, model_name = model_name.split('.')
self.app_name = app_name_splitted or app_name
if not self.app_name:
raise Exception('Pass either a dotted app plus model name or a model name and a separate app name')
self.model_name = model_name
self.sanitize = sanitize
self.dependencies = dependencies if dependencies else []
self.__class__._registry[self.get_fullname()] = self
def dump(self, serialization_format):
result = serializers.serialize(serialization_format, self.get_model_instance().objects.all(), indent=4, use_natural_keys=True)
logger.debug('result: "%s"' % result)
if self.sanitize:
# Remove primary key values
result = FIXTURE_TYPE_PK_NULLIFIER[serialization_format](result)
# Do any clean up required on the fixture
result = FIXTURE_TYPE_MODEL_PROCESS[serialization_format](result)
return result
class FixtureMetadata(object):
"""
Class to automatically create and extract metadata from a bootstrap
fixture.
"""
_registry = SortedDict()
@classmethod
def get_all(cls):
return cls._registry.values()
@classmethod
def generate_all(cls, fixture_instance):
result = []
for fixture_metadata in cls.get_all():
result.append(fixture_metadata.generate(fixture_instance))
return '\n'.join(result)
@classmethod
def read_all(cls, data):
result = {}
for instance in cls.get_all():
single_result = instance.read_value(data)
if single_result:
result[instance.property_name] = single_result
return result
def __init__(self, literal, generate_function, read_function=None, property_name=None):
self.literal = literal
self.generate_function = generate_function
self.property_name = property_name
self.read_function = read_function or (lambda x: x)
self.__class__._registry[id(self)] = self
def get_with_remark(self):
return '%s %s' % (FIXTURE_METADATA_REMARK_CHARACTER, self.literal)
def generate(self, fixture_instance):
return '%s: %s' % (self.get_with_remark(), self.generate_function(fixture_instance))
def read_value(self, fixture_data):
if self.property_name:
for line in fixture_data.splitlines(False):
if line.startswith(self.get_with_remark()):
# TODO: replace the "+ 4" with a space and next character finding algo
return self.read_function(line[len(self.literal) + 4:])

View File

@@ -0,0 +1,18 @@
from __future__ import absolute_import
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.
"""
pass
class NotABootstrapSetup(Exception):
"""
Raised when an attempting to import a bootstrap setup without a proper
magic number metadata
"""
pass

57
apps/bootstrap/forms.py Normal file
View File

@@ -0,0 +1,57 @@
from __future__ import absolute_import
import logging
from django import forms
from django.utils.translation import ugettext_lazy as _
from common.forms import DetailForm
from .models import BootstrapSetup
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_edit(BootstrapSetupForm):
class Meta(BootstrapSetupForm.Meta):
model = BootstrapSetup
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'),
)

23
apps/bootstrap/links.py Normal file
View File

@@ -0,0 +1,23 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
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_BOOTSTRAP_EXPORT,
PERMISSION_BOOTSTRAP_IMPORT, PERMISSION_BOOTSTRAP_REPOSITORY_SYNC)
link_bootstrap_setup_tool = {'text': _(u'bootstrap'), 'view': 'bootstrap_setup_list', 'icon': 'lightning.png', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]}
link_bootstrap_setup_list = {'text': _(u'bootstrap setup list'), 'view': 'bootstrap_setup_list', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]}
link_bootstrap_setup_create = {'text': _(u'create new bootstrap setup'), 'view': 'bootstrap_setup_create', 'famfam': 'lightning_add', 'permissions': [PERMISSION_BOOTSTRAP_CREATE]}
link_bootstrap_setup_edit = {'text': _(u'edit'), 'view': 'bootstrap_setup_edit', 'args': 'object.pk', 'famfam': 'pencil', 'permissions': [PERMISSION_BOOTSTRAP_EDIT]}
link_bootstrap_setup_delete = {'text': _(u'delete'), 'view': 'bootstrap_setup_delete', 'args': 'object.pk', 'famfam': 'lightning_delete', 'permissions': [PERMISSION_BOOTSTRAP_DELETE]}
link_bootstrap_setup_view = {'text': _(u'details'), 'view': 'bootstrap_setup_view', 'args': 'object.pk', 'famfam': 'lightning', 'permissions': [PERMISSION_BOOTSTRAP_VIEW]}
link_bootstrap_setup_execute = {'text': _(u'execute'), 'view': 'bootstrap_setup_execute', 'args': 'object.pk', 'famfam': 'lightning_go', 'permissions': [PERMISSION_BOOTSTRAP_EXECUTE]}
link_bootstrap_setup_dump = {'text': _(u'dump current setup'), 'view': 'bootstrap_setup_dump', 'famfam': 'arrow_down', 'permissions': [PERMISSION_BOOTSTRAP_DUMP]}
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]}
link_erase_database = {'text': _(u'erase database'), 'view': 'erase_database_view', 'icon': 'radioactivity.png', 'permissions': [PERMISSION_NUKE_DATABASE]}

View File

@@ -0,0 +1,81 @@
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')),
# Disabing XML until a way to specify a null pk is found
#(FIXTURE_TYPE_XML, _(u'XML')),
)
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'

Binary file not shown.

View File

@@ -0,0 +1,329 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# 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-12-12 03:20-0400\n"
"PO-Revision-Date: 2012-10-17 10:27+0000\n"
"Last-Translator: Pavlin Koldamov <pkoldamov@gmail.com>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/"
"language/bg/)\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr "редактиране"
#: links.py:15
msgid "delete"
msgstr "изтриване"
#: links.py:16
msgid "details"
msgstr "детайли"
#: links.py:17
msgid "execute"
msgstr "изпълнение"
#: links.py:18
msgid "dump current setup"
msgstr "изпринтване на текущата настройка"
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr "тип"
#: models.py:35
msgid "creation date and time"
msgstr "дата и време на създаване"
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
#, fuzzy
msgid "Bootstrap setup created successfully"
msgstr "Базата данни е изтрита успешно."
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, fuzzy, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
"Сигурен ли сте, че искате да изтриете цялата база данни и документното "
"пространство?"
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
#, fuzzy
msgid "Bootstrap setup created successfully."
msgstr "Базата данни е изтрита успешно."
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
#, fuzzy
msgid "Bootstrap setup imported successfully."
msgstr "Базата данни е изтрита успешно."
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr "Грешка при изтриване на база данни; %s"
#: views.py:300
msgid "Database erased successfully."
msgstr "Базата данни е изтрита успешно."
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
"Сигурен ли сте, че искате да изтриете цялата база данни и документното "
"пространство?"
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
#, fuzzy
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""
"Сигурен ли сте, че искате да изтриете цялата база данни и документното "
"пространство?"

Binary file not shown.

View File

@@ -0,0 +1,316 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,316 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,328 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Roberto Rosario <roberto.rosario.gonzalez@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-0400\n"
"PO-Revision-Date: 2012-12-12 06:04+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"
"Language: es\n"
"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"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr "arranque"
#: links.py:12
msgid "bootstrap setup list"
msgstr "list de configuraciones de arranque"
#: links.py:13
msgid "create new bootstrap setup"
msgstr "crear nueva configuración de arranque"
#: links.py:14
msgid "edit"
msgstr "editar"
#: links.py:15
msgid "delete"
msgstr "borrar"
#: links.py:16
msgid "details"
msgstr "detalles"
#: links.py:17
msgid "execute"
msgstr "ejecutar"
#: links.py:18
msgid "dump current setup"
msgstr "grabar la configuración actual"
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
msgstr "borrar la base de datos"
#: 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 ""
#: models.py:32 views.py:34
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:35
msgid "type"
msgstr "tipo"
#: models.py:35
msgid "creation date and time"
msgstr "fecha y hora de creación"
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr "configuración de arranque"
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr "configuraciones de arranque"
#: permissions.py:7
msgid "Database bootstrap"
msgstr "Arranque de base de datos"
#: permissions.py:9
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"
#: registry.py:7
msgid "Bootstrap"
msgstr "Arranque"
#: registry.py:8
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:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr "Error al crear la configuración de arranque."
#: views.py:58
msgid "create bootstrap"
msgstr "crear configuración de arranque"
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr "Configuración de arranque editada exitosamente."
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr "Error editando la configuración de arranque."
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr "editar configuración de arranque: %s"
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr "Configuración de arranque :%s eliminada exitosamente."
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, 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:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr "Error al ejecutar la configuración de arranque; %s"
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr "Configuración de arranque \"%s\" ejecutada exitosamente."
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr "Error borrando la base de datos; %s"
#: views.py:300
msgid "Database erased successfully."
msgstr "Base de datos borrada exitosamente."
#: views.py:310
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:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
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:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,317 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-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"
"Language: \n"
"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"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,317 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-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"
"Language: \n"
"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"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,316 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,318 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2)\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,317 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-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"
"Language: \n"
"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"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,317 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-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"
"Language: \n"
"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"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,318 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:20-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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
#: forms.py:50
msgid "Bootstrap setup file"
msgstr ""
#: forms.py:56
msgid "Bootstrap setup URL"
msgstr ""
#: links.py:11
msgid "bootstrap"
msgstr ""
#: links.py:12
msgid "bootstrap setup list"
msgstr ""
#: links.py:13
msgid "create new bootstrap setup"
msgstr ""
#: links.py:14
msgid "edit"
msgstr ""
#: links.py:15
msgid "delete"
msgstr ""
#: links.py:16
msgid "details"
msgstr ""
#: links.py:17
msgid "execute"
msgstr ""
#: links.py:18
msgid "dump current setup"
msgstr ""
#: links.py:19
msgid "export"
msgstr ""
#: links.py:20
msgid "import from file"
msgstr ""
#: links.py:21
msgid "import from URL"
msgstr ""
#: links.py:22
msgid "sync with repository"
msgstr ""
#: links.py:23
msgid "erase database"
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:34
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:35
msgid "type"
msgstr ""
#: models.py:35
msgid "creation date and time"
msgstr ""
#: models.py:104 views.py:90 views.py:119 views.py:144 views.py:172
msgid "bootstrap setup"
msgstr ""
#: models.py:105 views.py:31
msgid "bootstrap setups"
msgstr ""
#: permissions.py:7
msgid "Database bootstrap"
msgstr ""
#: permissions.py:9
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:7
msgid "Bootstrap"
msgstr ""
#: registry.py:8
msgid "Provides pre configured setups for indexes, document types, tags, etc."
msgstr ""
#: views.py:50
msgid "Bootstrap setup created successfully"
msgstr ""
#: views.py:53
msgid "Error creating bootstrap setup."
msgstr ""
#: views.py:58
msgid "create bootstrap"
msgstr ""
#: views.py:78
msgid "Bootstrap setup edited successfully"
msgstr ""
#: views.py:81
msgid "Error editing bootstrap setup."
msgstr ""
#: views.py:86
#, python-format
msgid "edit bootstrap setup: %s"
msgstr ""
#: views.py:111
#, python-format
msgid "Bootstrap setup: %s deleted successfully."
msgstr ""
#: views.py:113
#, python-format
msgid "Bootstrap setup: %(bootstrap)s, delete error: %(error)s"
msgstr ""
#: views.py:124
#, python-format
msgid "Are you sure you with to delete the bootstrap setup: %s?"
msgstr ""
#: views.py:164
msgid ""
"Cannot execute bootstrap setup, there is existing data. Erase all data and "
"try again."
msgstr ""
#: views.py:166
#, python-format
msgid "Error executing bootstrap setup; %s"
msgstr ""
#: views.py:168
#, python-format
msgid "Bootstrap setup \"%s\" executed successfully."
msgstr ""
#: views.py:180
#, python-format
msgid ""
"Are you sure you wish to execute the database bootstrap setup named: %s?"
msgstr ""
#: views.py:196
#, python-format
msgid "Error dumping configuration into a bootstrap setup; %s"
msgstr ""
#: views.py:200
msgid "Bootstrap setup created successfully."
msgstr ""
#: views.py:206
msgid "dump current configuration into a bootstrap setup"
msgstr ""
#: views.py:240 views.py:268
msgid "Bootstrap setup imported successfully."
msgstr ""
#: views.py:243
msgid "File is not a bootstrap setup."
msgstr ""
#: views.py:245
#, python-format
msgid "Error importing bootstrap setup from file; %s."
msgstr ""
#: views.py:251
msgid "Import bootstrap setup from file"
msgstr ""
#: views.py:271
msgid "Data from URL is not a bootstrap setup."
msgstr ""
#: views.py:273
#, python-format
msgid "Error importing bootstrap setup from URL; %s."
msgstr ""
#: views.py:279
msgid "Import bootstrap setup from URL"
msgstr ""
#: views.py:298
#, python-format
msgid "Error erasing database; %s"
msgstr ""
#: views.py:300
msgid "Database erased successfully."
msgstr ""
#: views.py:310
msgid ""
"Are you sure you wish to erase the entire database and document storage?"
msgstr ""
#: views.py:311
msgid ""
"All documents, sources, metadata, metadata types, set, tags, indexes and "
"logs will be lost irreversibly!"
msgstr ""
#: views.py:328
msgid "Bootstrap repository successfully synchronized."
msgstr ""
#: views.py:330
#, python-format
msgid "Bootstrap repository synchronization error: %(error)s"
msgstr ""
#: views.py:337
msgid "Are you sure you wish to synchronize with the bootstrap repository?"
msgstr ""

View File

View 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.'

View 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)

View File

@@ -0,0 +1,75 @@
from __future__ import absolute_import
import logging
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, 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 dump(self, serialization_format):
"""
Get the current setup of Mayan in bootstrap format fixture
"""
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()

View File

@@ -0,0 +1,38 @@
# -*- 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 model 'BootstrapSetup'
db.create_table('bootstrap_bootstrapsetup', (
('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
('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'])
def backwards(self, orm):
# Deleting model 'BootstrapSetup'
db.delete_table('bootstrap_bootstrapsetup')
models = {
'bootstrap.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'}),
'type': ('django.db.models.fields.CharField', [], {'max_length': '16'})
}
}
complete_apps = ['bootstrap']

View File

@@ -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']

View File

@@ -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']

View File

106
apps/bootstrap/models.py Normal file
View File

@@ -0,0 +1,106 @@
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,
BOOTSTRAP_EXTENSION, FIXTURE_METADATA_REMARK_CHARACTER)
from .managers import BootstrapSetupManager
from .classes import BootstrapModel, FixtureMetadata
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()
def __unicode__(self):
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
os.close(handle)
filepath = os.path.extsep.join([filepath, self.get_extension()])
with open(filepath, 'w') as file_handle:
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])
os.unlink(filepath)
@property
def cleaned_fixture(self):
"""
Return the bootstrap setup's fixture without comments.
"""
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:
verbose_name = _(u'bootstrap setup')
verbose_name_plural = _(u'bootstrap setups')
ordering = ['name']

View File

@@ -0,0 +1,18 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from permissions.models import PermissionNamespace, Permission
namespace = PermissionNamespace('bootstrap', _(u'Database bootstrap'))
PERMISSION_BOOTSTRAP_VIEW = Permission.objects.register(namespace, 'bootstrap_view', _(u'View bootstrap setups'))
PERMISSION_BOOTSTRAP_CREATE = Permission.objects.register(namespace, 'bootstrap_create', _(u'Create bootstrap setups'))
PERMISSION_BOOTSTRAP_EDIT = Permission.objects.register(namespace, 'bootstrap_edit', _(u'Edit bootstrap setups'))
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'))

View File

@@ -0,0 +1,29 @@
from __future__ import absolute_import
import datetime
from navigation.api import register_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_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)
register_links([BootstrapSetup], [link_bootstrap_setup_view, link_bootstrap_setup_edit, link_bootstrap_setup_delete, link_bootstrap_setup_execute, link_bootstrap_setup_export])
register_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')
register_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')

View File

@@ -0,0 +1,10 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from .links import link_bootstrap_setup_tool, link_erase_database
label = _(u'Bootstrap')
description = _(u'Provides pre configured setups for indexes, document types, tags, etc.')
dependencies = ['app_registry', 'icons', 'navigation', 'documents', 'indexing', 'metadata', 'tags']
setup_links = [link_bootstrap_setup_tool, link_erase_database]

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

16
apps/bootstrap/urls.py Normal file
View File

@@ -0,0 +1,16 @@
from django.conf.urls.defaults import patterns, url
urlpatterns = patterns('bootstrap.views',
url(r'^setup/list/$', 'bootstrap_setup_list', (), 'bootstrap_setup_list'),
url(r'^setup/create/$', 'bootstrap_setup_create', (), 'bootstrap_setup_create'),
url(r'^setup/(?P<bootstrap_setup_pk>\d+)/edit/$', 'bootstrap_setup_edit', (), 'bootstrap_setup_edit'),
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'),
)

40
apps/bootstrap/utils.py Normal file
View File

@@ -0,0 +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/ }}}

342
apps/bootstrap/views.py Normal file
View File

@@ -0,0 +1,342 @@
from __future__ import absolute_import
from django.utils.translation import ugettext_lazy as _
from django.http import HttpResponseRedirect
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
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_EXPORT, PERMISSION_BOOTSTRAP_IMPORT, PERMISSION_BOOTSTRAP_REPOSITORY_SYNC)
from .forms import (BootstrapSetupForm, BootstrapSetupForm_view, BootstrapSetupForm_dump,
BootstrapSetupForm_edit, BootstrapFileImportForm, BootstrapURLImportForm)
from .exceptions import ExistingData, NotABootstrapSetup
def bootstrap_setup_list(request):
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_VIEW])
context = {
'object_list': BootstrapSetup.objects.all(),
'title': _(u'bootstrap setups'),
'hide_link': True,
'extra_columns': [
{'name': _(u'description'), 'attribute': 'description'},
{'name': _(u'type'), 'attribute': 'get_type_display'},
],
}
return render_to_response('generic_list.html', context,
context_instance=RequestContext(request))
def bootstrap_setup_create(request):
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_CREATE])
if request.method == 'POST':
form = BootstrapSetupForm(request.POST)
if form.is_valid():
bootstrap = form.save()
messages.success(request, _(u'Bootstrap setup created successfully'))
return HttpResponseRedirect(reverse('bootstrap_setup_list'))
else:
messages.error(request, _(u'Error creating bootstrap setup.'))
else:
form = BootstrapSetupForm()
return render_to_response('generic_form.html', {
'title': _(u'create bootstrap'),
'form': form,
},
context_instance=RequestContext(request))
def bootstrap_setup_edit(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_EDIT])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_BOOTSTRAP_EDIT, request.user, bootstrap)
if request.method == 'POST':
form = BootstrapSetupForm_edit(instance=bootstrap, data=request.POST)
if form.is_valid():
form.save()
messages.success(request, _(u'Bootstrap setup edited successfully'))
return HttpResponseRedirect(previous)
else:
messages.error(request, _(u'Error editing bootstrap setup.'))
else:
form = BootstrapSetupForm_edit(instance=bootstrap)
return render_to_response('generic_form.html', {
'title': _(u'edit bootstrap setup: %s') % bootstrap,
'form': form,
'object': bootstrap,
'previous': previous,
'object_name': _(u'bootstrap setup'),
},
context_instance=RequestContext(request))
def bootstrap_setup_delete(request, bootstrap_setup_pk):
bootstrap = get_object_or_404(BootstrapSetup, pk=bootstrap_setup_pk)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_DELETE])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_BOOTSTRAP_DELETE, request.user, bootstrap)
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:
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') % {
'bootstrap': bootstrap, 'error': e})
return HttpResponseRedirect(reverse('bootstrap_setup_list'))
context = {
'object_name': _(u'bootstrap setup'),
'delete_view': True,
'previous': previous,
'next': next,
'object': bootstrap,
'title': _(u'Are you sure you with to delete the bootstrap setup: %s?') % bootstrap,
'form_icon': 'lightning_delete.png',
}
return render_to_response('generic_confirm.html', context,
context_instance=RequestContext(request))
def bootstrap_setup_view(request, bootstrap_setup_pk):
bootstrap = get_object_or_404(BootstrapSetup, pk=bootstrap_setup_pk)
try:
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_VIEW])
except PermissionDenied:
AccessEntry.objects.check_access(PERMISSION_BOOTSTRAP_VIEW, request.user, bootstrap)
form = BootstrapSetupForm_view(instance=bootstrap)
context = {
'form': form,
'object': bootstrap,
'object_name': _(u'bootstrap setup'),
}
return render_to_response('generic_detail.html', context,
context_instance=RequestContext(request))
def bootstrap_setup_execute(request, bootstrap_setup_pk):
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_EXECUTE])
bootstrap_setup = get_object_or_404(BootstrapSetup, pk=bootstrap_setup_pk)
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:
bootstrap_setup.execute()
except ExistingData:
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:
messages.success(request, _(u'Bootstrap setup "%s" executed successfully.') % bootstrap_setup)
return HttpResponseRedirect(next)
context = {
'object_name': _(u'bootstrap setup'),
'delete_view': False,
'previous': previous,
'next': next,
'form_icon': 'lightning_go.png',
'object': 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))
def bootstrap_setup_dump(request):
Permission.objects.check_permissions(request.user, [PERMISSION_BOOTSTRAP_DUMP])
if request.method == 'POST':
form = BootstrapSetupForm_dump(request.POST)
if form.is_valid():
bootstrap = form.save(commit=False)
try:
bootstrap.fixture = BootstrapSetup.objects.dump(serialization_format=bootstrap.type)
except Exception as exception:
messages.error(request, _(u'Error dumping configuration into a bootstrap setup; %s') % exception)
raise
else:
bootstrap.save()
messages.success(request, _(u'Bootstrap setup created successfully.'))
return HttpResponseRedirect(reverse('bootstrap_setup_list'))
else:
form = BootstrapSetupForm_dump()
return render_to_response('generic_form.html', {
'title': _(u'dump current configuration into a bootstrap setup'),
'form': form,
},
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])
post_action_redirect = None
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:
Cleanup.execute_all()
except Exception, exc:
messages.error(request, _(u'Error erasing database; %s') % exc)
else:
messages.success(request, _(u'Database erased successfully.'))
return HttpResponseRedirect(next)
context = {
'delete_view': False,
'previous': previous,
'next': next,
'form_icon': 'radioactivity.png',
}
context['title'] = _(u'Are you sure you wish to erase the entire database and document storage?')
context['message'] = _(u'All documents, sources, metadata, metadata types, set, tags, indexes and logs will be lost irreversibly!')
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))

Binary file not shown.

View File

@@ -0,0 +1,277 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# 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-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-10-17 09:35+0000\n"
"Last-Translator: Pavlin Koldamov <pkoldamov@gmail.com>\n"
"Language-Team: Bulgarian (http://www.transifex.com/projects/p/mayan-edms/"
"language/bg/)\n"
"Language: bg\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr "Проверете изтеклите за проверки документи и ги регистрирайте отново."
#: events.py:5
msgid "Document checked out"
msgstr "Документът е проверен."
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr "Докумнетът \"%(document)s\" е проверен от %(fullname)s."
#: events.py:12
msgid "Document checked in"
msgstr "Докъментът е регистриран"
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr "Документът \"%(document)s\" е регистриран от %(fullname)s."
#: events.py:19
msgid "Document automatically checked in"
msgstr "Автоматично регистрирани документи"
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr "Документ \"%(document)s\" е автоматично регистриран."
#: events.py:25
msgid "Document forcefully checked in"
msgstr "Документът е принудително регистриран"
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr "Документът \"%(document)s\" принудително регистриран от %(fullname)s."
#: links.py:18
msgid "checkouts"
msgstr "проверки"
#: links.py:19
msgid "check out document"
msgstr "проверка на документ"
#: links.py:20
msgid "check in document"
msgstr "регистриране на документ"
#: links.py:21
msgid "check in/out"
msgstr "регистриране/проверяване"
#: literals.py:14
msgid "checked out"
msgstr "проверен"
#: literals.py:15
msgid "checked in/available"
msgstr "регистриран/наличен"
#: models.py:25 views.py:133
msgid "document"
msgstr "документ"
#: models.py:26
msgid "check out date and time"
msgstr "дата и час на проверка"
#: models.py:27
msgid "check out expiration date and time"
msgstr "проверка на срока на валидност, дата и час"
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr "Време за задържане на проверения документ в минути."
#: models.py:32
msgid "block new version upload"
msgstr "блокиране качването на нова версия"
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr "Забранете качването на нова версия на този документ."
#: models.py:55
msgid "document checkout"
msgstr "проверка на документ"
#: models.py:56
msgid "document checkouts"
msgstr "проверки на документ"
#: permissions.py:7
msgid "Document checkout"
msgstr "Проверка на документ"
#: permissions.py:9
msgid "Check out documents"
msgstr "Провери документи"
#: permissions.py:10
msgid "Check in documents"
msgstr "Регистрирай документи"
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr "Регистрирай принудилтелно документи"
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr "Разреши проверки незвисимо от забрана"
#: views.py:33
msgid "checked out documents"
msgstr "проверени документи"
#: views.py:36
msgid "checkout user"
msgstr "отписване потребител"
#: views.py:37
msgid "checkout time and date"
msgstr "отписване, час и дата"
#: views.py:38
msgid "checkout expiration"
msgstr "проверка срок на валидност"
#: views.py:55
#, python-format
msgid "User: %s"
msgstr "Потребител: %s"
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr "Време на отписване: %s"
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr "Проверка срок на валидност: %s"
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr "Разрешени нови версии: %s"
#: views.py:58
msgid "yes"
msgstr "да"
#: views.py:58
msgid "no"
msgstr "не"
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr "Данни от проверката на документ: %s"
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr "Грешка при проверка на документ; %s"
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr "Документ \"%s\" проверен успешно."
#: views.py:88
msgid "Document already checked out."
msgstr "Документът вече е проверен."
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr "Провери документ: %s"
#: views.py:125
msgid "Document has not been checked out."
msgstr "Документът не е проверяван."
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr "Грешка при регистрация на документ; %s"
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr "Документ \"%s\" е регистриран успешно."
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
"Проверката на този документ не е извършвана от Вас. Сигурни ли сте, че "
"искате принудително да регистрирате документа: %s?"
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr "Сигурни ли сте, че искате да регистрирате този документ: %s?"
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr "Статус на документа: %(widget)s %(text)s"
#: widgets.py:30
msgid "Days"
msgstr "Дни"
#: widgets.py:31
msgid "Hours"
msgstr "Часове"
#: widgets.py:32
msgid "Minutes"
msgstr "Минути"
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr "Въведете валиден брой дни."
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr "Въведете валиден брой часове."
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr "Въведете валиден брой минути."
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr "Въведете валидна времева разлика."
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
"Време за задържане на документа в състояние проверен, в дни, часове и/или "
"минути."
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr "Проверете срока на валидност"

Binary file not shown.

View File

@@ -0,0 +1,272 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-10 15:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: German (Germany) (http://www.transifex.com/projects/p/mayan-"
"edms/language/de_DE/)\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
#: events.py:5
msgid "Document checked out"
msgstr ""
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr ""
#: events.py:12
msgid "Document checked in"
msgstr ""
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr ""
#: events.py:19
msgid "Document automatically checked in"
msgstr ""
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr ""
#: events.py:25
msgid "Document forcefully checked in"
msgstr ""
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr ""
#: links.py:18
msgid "checkouts"
msgstr ""
#: links.py:19
msgid "check out document"
msgstr ""
#: links.py:20
msgid "check in document"
msgstr ""
#: links.py:21
msgid "check in/out"
msgstr ""
#: literals.py:14
msgid "checked out"
msgstr ""
#: literals.py:15
msgid "checked in/available"
msgstr ""
#: models.py:25 views.py:133
msgid "document"
msgstr ""
#: models.py:26
msgid "check out date and time"
msgstr ""
#: models.py:27
msgid "check out expiration date and time"
msgstr ""
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr ""
#: models.py:32
msgid "block new version upload"
msgstr ""
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr ""
#: models.py:55
msgid "document checkout"
msgstr ""
#: models.py:56
msgid "document checkouts"
msgstr ""
#: permissions.py:7
msgid "Document checkout"
msgstr ""
#: permissions.py:9
msgid "Check out documents"
msgstr ""
#: permissions.py:10
msgid "Check in documents"
msgstr ""
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr ""
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr ""
#: views.py:33
msgid "checked out documents"
msgstr ""
#: views.py:36
msgid "checkout user"
msgstr ""
#: views.py:37
msgid "checkout time and date"
msgstr ""
#: views.py:38
msgid "checkout expiration"
msgstr ""
#: views.py:55
#, python-format
msgid "User: %s"
msgstr ""
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr ""
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr ""
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr ""
#: views.py:58
msgid "yes"
msgstr ""
#: views.py:58
msgid "no"
msgstr ""
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr ""
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr ""
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr ""
#: views.py:88
msgid "Document already checked out."
msgstr ""
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr ""
#: views.py:125
msgid "Document has not been checked out."
msgstr ""
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr ""
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr ""
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr ""
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr ""
#: widgets.py:30
msgid "Days"
msgstr ""
#: widgets.py:31
msgid "Hours"
msgstr ""
#: widgets.py:32
msgid "Minutes"
msgstr ""
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr ""
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr ""
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr ""
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr ""
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,271 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-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"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
#: events.py:5
msgid "Document checked out"
msgstr ""
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr ""
#: events.py:12
msgid "Document checked in"
msgstr ""
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr ""
#: events.py:19
msgid "Document automatically checked in"
msgstr ""
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr ""
#: events.py:25
msgid "Document forcefully checked in"
msgstr ""
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr ""
#: links.py:18
msgid "checkouts"
msgstr ""
#: links.py:19
msgid "check out document"
msgstr ""
#: links.py:20
msgid "check in document"
msgstr ""
#: links.py:21
msgid "check in/out"
msgstr ""
#: literals.py:14
msgid "checked out"
msgstr ""
#: literals.py:15
msgid "checked in/available"
msgstr ""
#: models.py:25 views.py:133
msgid "document"
msgstr ""
#: models.py:26
msgid "check out date and time"
msgstr ""
#: models.py:27
msgid "check out expiration date and time"
msgstr ""
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr ""
#: models.py:32
msgid "block new version upload"
msgstr ""
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr ""
#: models.py:55
msgid "document checkout"
msgstr ""
#: models.py:56
msgid "document checkouts"
msgstr ""
#: permissions.py:7
msgid "Document checkout"
msgstr ""
#: permissions.py:9
msgid "Check out documents"
msgstr ""
#: permissions.py:10
msgid "Check in documents"
msgstr ""
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr ""
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr ""
#: views.py:33
msgid "checked out documents"
msgstr ""
#: views.py:36
msgid "checkout user"
msgstr ""
#: views.py:37
msgid "checkout time and date"
msgstr ""
#: views.py:38
msgid "checkout expiration"
msgstr ""
#: views.py:55
#, python-format
msgid "User: %s"
msgstr ""
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr ""
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr ""
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr ""
#: views.py:58
msgid "yes"
msgstr ""
#: views.py:58
msgid "no"
msgstr ""
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr ""
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr ""
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr ""
#: views.py:88
msgid "Document already checked out."
msgstr ""
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr ""
#: views.py:125
msgid "Document has not been checked out."
msgstr ""
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr ""
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr ""
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr ""
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr ""
#: widgets.py:30
msgid "Days"
msgstr ""
#: widgets.py:31
msgid "Hours"
msgstr ""
#: widgets.py:32
msgid "Minutes"
msgstr ""
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr ""
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr ""
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr ""
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr ""
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,278 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Roberto Rosario <roberto.rosario.gonzalez@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-10 16:11+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"
"Language: es\n"
"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"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
"Verifica reservaciones de documentos expiradas y los devuelve "
"estomáticamente."
#: events.py:5
msgid "Document checked out"
msgstr "Documento reservado"
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr "Documento \"%(document)s\" reservado por %(fullname)s."
#: events.py:12
msgid "Document checked in"
msgstr "Documento devuelto"
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr "Documento \"%(document)s\" devuelto por %(fullname)s."
#: events.py:19
msgid "Document automatically checked in"
msgstr "Documento devuelto automáticamente"
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr "Documento \"%(document)s\" devuelto automáticamente."
#: events.py:25
msgid "Document forcefully checked in"
msgstr "Documento devuelto forzosamente"
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr "Documento \"%(document)s\" devuelto forzosamente por %(fullname)s."
#: links.py:18
msgid "checkouts"
msgstr "reservaciones"
#: links.py:19
msgid "check out document"
msgstr "reservar documento"
#: links.py:20
msgid "check in document"
msgstr "devolver documento"
#: links.py:21
msgid "check in/out"
msgstr "reservas"
#: literals.py:14
msgid "checked out"
msgstr "reservado"
#: literals.py:15
msgid "checked in/available"
msgstr "devuelto/disponible"
#: models.py:25 views.py:133
msgid "document"
msgstr "documento"
#: models.py:26
msgid "check out date and time"
msgstr "fecha y hora de la reservación"
#: models.py:27
msgid "check out expiration date and time"
msgstr "fecha y hora de expiración de reservación"
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr "Cantidad de tiempo para mantener el documento reservado, en minutos."
#: models.py:32
msgid "block new version upload"
msgstr "restringir la subida de nuevas versiones"
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr "No permitir que nuevas versiones de este documento sean cargadas."
#: models.py:55
msgid "document checkout"
msgstr "reservación de documento"
#: models.py:56
msgid "document checkouts"
msgstr "reservaciones de documentos"
#: permissions.py:7
msgid "Document checkout"
msgstr "Reservación de documentos"
#: permissions.py:9
msgid "Check out documents"
msgstr "Reservar documentos"
#: permissions.py:10
msgid "Check in documents"
msgstr "Devolver documentos"
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr "Devolver documentos forzosamente"
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr "Evadir restricciones de documentos reservados"
#: views.py:33
msgid "checked out documents"
msgstr "documentos reservados"
#: views.py:36
msgid "checkout user"
msgstr "usuario"
#: views.py:37
msgid "checkout time and date"
msgstr "fecha y hora de reservación"
#: views.py:38
msgid "checkout expiration"
msgstr "expiración de la reservación"
#: views.py:55
#, python-format
msgid "User: %s"
msgstr "Usuario: %s"
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr "Tiempo de la reservación: %s"
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr "Expiración de la reservación: %s"
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr "Nuevas versiones permitidas: %s"
#: views.py:58
msgid "yes"
msgstr "sí"
#: views.py:58
msgid "no"
msgstr "no"
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr "Detalles de reservación para el documento: %s"
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr "Error tratando de reservar documento: %s"
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr "Document \"%s\" reservador exitosamente."
#: views.py:88
msgid "Document already checked out."
msgstr "El documento ya esta reservado."
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr "Reservar el documento: %s"
#: views.py:125
msgid "Document has not been checked out."
msgstr "El documento no ha sido reservado."
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr "Error tratando de devolver documento: %s"
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr "Documento \"%s\" devuelto exitosamente."
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
"Usted reservo originalemente este document. ¿Está seguro que desea devolver "
"forzosamente el documento: %s?"
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr "¿Está seguro que desea devolver el documento: %s?"
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr "Estado del documento: %(widget)s %(text)s"
#: widgets.py:30
msgid "Days"
msgstr "Dias"
#: widgets.py:31
msgid "Hours"
msgstr "Horas"
#: widgets.py:32
msgid "Minutes"
msgstr "Minutos"
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr "Entre un número de dias válido."
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr "Entre un número de horas válido."
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr "Entre un número de minutos válido."
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr "Entre una diferencia de tiempo válida."
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
"Cantidad de tiempo para reservar el documento, en días, horas y / o minutos."
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr "Fecha y hora de la expiración de la reservación."

Binary file not shown.

View File

@@ -0,0 +1,279 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
# Pierre Lhoste <peter.cathbad.host@gmail.com>, 2012.
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-28 14:44+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"
"Language: fr\n"
"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"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
"Vérifier les documents retirés aux modifications, dont la période de verrou "
"expiré, et les remettre dans l'état modifiable."
#: events.py:5
msgid "Document checked out"
msgstr "Documents verrouillés"
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr "Document \"%(document)s\" verrouillé par %(fullname)s."
#: events.py:12
msgid "Document checked in"
msgstr "Document déverrouillé"
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr "Documents \"%(document)s\" déverrouillés par %(fullname)s."
#: events.py:19
msgid "Document automatically checked in"
msgstr "Document déverrouillé automatiquement"
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr "Document \"%(document)s\" déverrouillé automatiquement."
#: events.py:25
msgid "Document forcefully checked in"
msgstr "Document déverrouillé de force"
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr "Document \"%(document)s\" dévérouillé de force par %(fullname)s."
#: links.py:18
msgid "checkouts"
msgstr "Verrous"
#: links.py:19
msgid "check out document"
msgstr "Poser un verrou sur le document"
#: links.py:20
msgid "check in document"
msgstr "Déverrouiller le document"
#: links.py:21
msgid "check in/out"
msgstr "verrouiller/déverrouiller"
#: literals.py:14
msgid "checked out"
msgstr "verrouillé"
#: literals.py:15
msgid "checked in/available"
msgstr "déverrouillé/disponible"
#: models.py:25 views.py:133
msgid "document"
msgstr "document"
#: models.py:26
msgid "check out date and time"
msgstr "date et heure du verrouillage"
#: models.py:27
msgid "check out expiration date and time"
msgstr "date d'expiration du verrouillage"
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr "Durée en minutes pendant laquelle le document doit être verrouillé"
#: models.py:32
msgid "block new version upload"
msgstr "empêcher import nouvelle version"
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr "Ne pas autoriser l'importation d'une nouvelle version de ce document"
#: models.py:55
msgid "document checkout"
msgstr "verrouillage du document"
#: models.py:56
msgid "document checkouts"
msgstr "verrouillages du document"
#: permissions.py:7
msgid "Document checkout"
msgstr "Verrouillage du document"
#: permissions.py:9
msgid "Check out documents"
msgstr "Verrouiller les documents"
#: permissions.py:10
msgid "Check in documents"
msgstr "Déverrouiller les documents"
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr "Déverrouiller de force les documents"
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr "Permettre de révoquer le verrouillage"
#: views.py:33
msgid "checked out documents"
msgstr "documents verrouillés"
#: views.py:36
msgid "checkout user"
msgstr "utilisateur ayant verrouillé"
#: views.py:37
msgid "checkout time and date"
msgstr "date et heure du verrou"
#: views.py:38
msgid "checkout expiration"
msgstr "expiration du verrou"
#: views.py:55
#, python-format
msgid "User: %s"
msgstr "Utilisateur: %s"
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr "Heure du verrou: %s"
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr "Expiration du verrou: %s"
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr "Nouvelles versions autorisées: %s"
#: views.py:58
msgid "yes"
msgstr "oui"
#: views.py:58
msgid "no"
msgstr "non"
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr "Détails du verrou pour le document; %s"
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr "Erreur lors de l'essai de verrouillage du document; %s"
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr "Document \"%s\" verouillé avec succès."
#: views.py:88
msgid "Document already checked out."
msgstr "Document déjà verrouillé."
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr "Verrouiller le document: %s"
#: views.py:125
msgid "Document has not been checked out."
msgstr "Ce document n'a pas été verrouillé."
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr "Erreur lors de la tentative de déverrouillage du document; %s "
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr "Document \"%s\" déverrouillé avec succès."
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
"Ce n'est pas vous qui avec posé le verrou sur ce document. Êtes vous certain "
"de vouloir forcer le déverrouillage de: %s?"
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr "Êtes vous certain de vouloir verrouiller le document: %s?"
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr "Etat du document:%(widget)s %(text)s"
#: widgets.py:30
msgid "Days"
msgstr "Jours"
#: widgets.py:31
msgid "Hours"
msgstr "Heures"
#: widgets.py:32
msgid "Minutes"
msgstr "Minutes"
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr "Saisissez un nombre de jours valide."
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr "Saisissez un nombre d'heures valide."
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr "Saisissez un nombre de minutes valide."
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr "Saisissez un intervalle de temps valide."
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
"Durée pendant laquelle conserver le verrou sur le document en jours, heures "
"et/ou minutes."
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr "Date et heure de l'expiration du verrou"

Binary file not shown.

View File

@@ -0,0 +1,272 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-10 15:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Italian (http://www.transifex.com/projects/p/mayan-edms/"
"language/it/)\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
#: events.py:5
msgid "Document checked out"
msgstr ""
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr ""
#: events.py:12
msgid "Document checked in"
msgstr ""
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr ""
#: events.py:19
msgid "Document automatically checked in"
msgstr ""
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr ""
#: events.py:25
msgid "Document forcefully checked in"
msgstr ""
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr ""
#: links.py:18
msgid "checkouts"
msgstr ""
#: links.py:19
msgid "check out document"
msgstr ""
#: links.py:20
msgid "check in document"
msgstr ""
#: links.py:21
msgid "check in/out"
msgstr ""
#: literals.py:14
msgid "checked out"
msgstr ""
#: literals.py:15
msgid "checked in/available"
msgstr ""
#: models.py:25 views.py:133
msgid "document"
msgstr ""
#: models.py:26
msgid "check out date and time"
msgstr ""
#: models.py:27
msgid "check out expiration date and time"
msgstr ""
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr ""
#: models.py:32
msgid "block new version upload"
msgstr ""
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr ""
#: models.py:55
msgid "document checkout"
msgstr ""
#: models.py:56
msgid "document checkouts"
msgstr ""
#: permissions.py:7
msgid "Document checkout"
msgstr ""
#: permissions.py:9
msgid "Check out documents"
msgstr ""
#: permissions.py:10
msgid "Check in documents"
msgstr ""
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr ""
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr ""
#: views.py:33
msgid "checked out documents"
msgstr ""
#: views.py:36
msgid "checkout user"
msgstr ""
#: views.py:37
msgid "checkout time and date"
msgstr ""
#: views.py:38
msgid "checkout expiration"
msgstr ""
#: views.py:55
#, python-format
msgid "User: %s"
msgstr ""
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr ""
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr ""
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr ""
#: views.py:58
msgid "yes"
msgstr ""
#: views.py:58
msgid "no"
msgstr ""
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr ""
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr ""
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr ""
#: views.py:88
msgid "Document already checked out."
msgstr ""
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr ""
#: views.py:125
msgid "Document has not been checked out."
msgstr ""
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr ""
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr ""
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr ""
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr ""
#: widgets.py:30
msgid "Days"
msgstr ""
#: widgets.py:31
msgid "Hours"
msgstr ""
#: widgets.py:32
msgid "Minutes"
msgstr ""
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr ""
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr ""
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr ""
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr ""
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,272 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-10 15:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Dutch (Netherlands) (http://www.transifex.com/projects/p/"
"mayan-edms/language/nl_NL/)\n"
"Language: nl_NL\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
#: events.py:5
msgid "Document checked out"
msgstr ""
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr ""
#: events.py:12
msgid "Document checked in"
msgstr ""
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr ""
#: events.py:19
msgid "Document automatically checked in"
msgstr ""
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr ""
#: events.py:25
msgid "Document forcefully checked in"
msgstr ""
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr ""
#: links.py:18
msgid "checkouts"
msgstr ""
#: links.py:19
msgid "check out document"
msgstr ""
#: links.py:20
msgid "check in document"
msgstr ""
#: links.py:21
msgid "check in/out"
msgstr ""
#: literals.py:14
msgid "checked out"
msgstr ""
#: literals.py:15
msgid "checked in/available"
msgstr ""
#: models.py:25 views.py:133
msgid "document"
msgstr ""
#: models.py:26
msgid "check out date and time"
msgstr ""
#: models.py:27
msgid "check out expiration date and time"
msgstr ""
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr ""
#: models.py:32
msgid "block new version upload"
msgstr ""
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr ""
#: models.py:55
msgid "document checkout"
msgstr ""
#: models.py:56
msgid "document checkouts"
msgstr ""
#: permissions.py:7
msgid "Document checkout"
msgstr ""
#: permissions.py:9
msgid "Check out documents"
msgstr ""
#: permissions.py:10
msgid "Check in documents"
msgstr ""
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr ""
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr ""
#: views.py:33
msgid "checked out documents"
msgstr ""
#: views.py:36
msgid "checkout user"
msgstr ""
#: views.py:37
msgid "checkout time and date"
msgstr ""
#: views.py:38
msgid "checkout expiration"
msgstr ""
#: views.py:55
#, python-format
msgid "User: %s"
msgstr ""
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr ""
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr ""
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr ""
#: views.py:58
msgid "yes"
msgstr ""
#: views.py:58
msgid "no"
msgstr ""
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr ""
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr ""
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr ""
#: views.py:88
msgid "Document already checked out."
msgstr ""
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr ""
#: views.py:125
msgid "Document has not been checked out."
msgstr ""
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr ""
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr ""
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr ""
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr ""
#: widgets.py:30
msgid "Days"
msgstr ""
#: widgets.py:31
msgid "Hours"
msgstr ""
#: widgets.py:32
msgid "Minutes"
msgstr ""
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr ""
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr ""
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr ""
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr ""
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,273 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-10 15:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Polish (http://www.transifex.com/projects/p/mayan-edms/"
"language/pl/)\n"
"Language: pl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
"|| n%100>=20) ? 1 : 2)\n"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
#: events.py:5
msgid "Document checked out"
msgstr ""
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr ""
#: events.py:12
msgid "Document checked in"
msgstr ""
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr ""
#: events.py:19
msgid "Document automatically checked in"
msgstr ""
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr ""
#: events.py:25
msgid "Document forcefully checked in"
msgstr ""
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr ""
#: links.py:18
msgid "checkouts"
msgstr ""
#: links.py:19
msgid "check out document"
msgstr ""
#: links.py:20
msgid "check in document"
msgstr ""
#: links.py:21
msgid "check in/out"
msgstr ""
#: literals.py:14
msgid "checked out"
msgstr ""
#: literals.py:15
msgid "checked in/available"
msgstr ""
#: models.py:25 views.py:133
msgid "document"
msgstr ""
#: models.py:26
msgid "check out date and time"
msgstr ""
#: models.py:27
msgid "check out expiration date and time"
msgstr ""
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr ""
#: models.py:32
msgid "block new version upload"
msgstr ""
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr ""
#: models.py:55
msgid "document checkout"
msgstr ""
#: models.py:56
msgid "document checkouts"
msgstr ""
#: permissions.py:7
msgid "Document checkout"
msgstr ""
#: permissions.py:9
msgid "Check out documents"
msgstr ""
#: permissions.py:10
msgid "Check in documents"
msgstr ""
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr ""
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr ""
#: views.py:33
msgid "checked out documents"
msgstr ""
#: views.py:36
msgid "checkout user"
msgstr ""
#: views.py:37
msgid "checkout time and date"
msgstr ""
#: views.py:38
msgid "checkout expiration"
msgstr ""
#: views.py:55
#, python-format
msgid "User: %s"
msgstr ""
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr ""
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr ""
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr ""
#: views.py:58
msgid "yes"
msgstr ""
#: views.py:58
msgid "no"
msgstr ""
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr ""
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr ""
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr ""
#: views.py:88
msgid "Document already checked out."
msgstr ""
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr ""
#: views.py:125
msgid "Document has not been checked out."
msgstr ""
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr ""
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr ""
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr ""
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr ""
#: widgets.py:30
msgid "Days"
msgstr ""
#: widgets.py:31
msgid "Hours"
msgstr ""
#: widgets.py:32
msgid "Minutes"
msgstr ""
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr ""
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr ""
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr ""
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr ""
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,272 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-10 15:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese (http://www.transifex.com/projects/p/mayan-edms/"
"language/pt/)\n"
"Language: pt\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1)\n"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
#: events.py:5
msgid "Document checked out"
msgstr ""
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr ""
#: events.py:12
msgid "Document checked in"
msgstr ""
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr ""
#: events.py:19
msgid "Document automatically checked in"
msgstr ""
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr ""
#: events.py:25
msgid "Document forcefully checked in"
msgstr ""
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr ""
#: links.py:18
msgid "checkouts"
msgstr ""
#: links.py:19
msgid "check out document"
msgstr ""
#: links.py:20
msgid "check in document"
msgstr ""
#: links.py:21
msgid "check in/out"
msgstr ""
#: literals.py:14
msgid "checked out"
msgstr ""
#: literals.py:15
msgid "checked in/available"
msgstr ""
#: models.py:25 views.py:133
msgid "document"
msgstr ""
#: models.py:26
msgid "check out date and time"
msgstr ""
#: models.py:27
msgid "check out expiration date and time"
msgstr ""
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr ""
#: models.py:32
msgid "block new version upload"
msgstr ""
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr ""
#: models.py:55
msgid "document checkout"
msgstr ""
#: models.py:56
msgid "document checkouts"
msgstr ""
#: permissions.py:7
msgid "Document checkout"
msgstr ""
#: permissions.py:9
msgid "Check out documents"
msgstr ""
#: permissions.py:10
msgid "Check in documents"
msgstr ""
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr ""
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr ""
#: views.py:33
msgid "checked out documents"
msgstr ""
#: views.py:36
msgid "checkout user"
msgstr ""
#: views.py:37
msgid "checkout time and date"
msgstr ""
#: views.py:38
msgid "checkout expiration"
msgstr ""
#: views.py:55
#, python-format
msgid "User: %s"
msgstr ""
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr ""
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr ""
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr ""
#: views.py:58
msgid "yes"
msgstr ""
#: views.py:58
msgid "no"
msgstr ""
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr ""
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr ""
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr ""
#: views.py:88
msgid "Document already checked out."
msgstr ""
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr ""
#: views.py:125
msgid "Document has not been checked out."
msgstr ""
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr ""
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr ""
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr ""
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr ""
#: widgets.py:30
msgid "Days"
msgstr ""
#: widgets.py:31
msgid "Hours"
msgstr ""
#: widgets.py:32
msgid "Minutes"
msgstr ""
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr ""
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr ""
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr ""
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr ""
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,272 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-10 15:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/"
"mayan-edms/language/pt_BR/)\n"
"Language: pt_BR\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
#: events.py:5
msgid "Document checked out"
msgstr ""
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr ""
#: events.py:12
msgid "Document checked in"
msgstr ""
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr ""
#: events.py:19
msgid "Document automatically checked in"
msgstr ""
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr ""
#: events.py:25
msgid "Document forcefully checked in"
msgstr ""
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr ""
#: links.py:18
msgid "checkouts"
msgstr ""
#: links.py:19
msgid "check out document"
msgstr ""
#: links.py:20
msgid "check in document"
msgstr ""
#: links.py:21
msgid "check in/out"
msgstr ""
#: literals.py:14
msgid "checked out"
msgstr ""
#: literals.py:15
msgid "checked in/available"
msgstr ""
#: models.py:25 views.py:133
msgid "document"
msgstr ""
#: models.py:26
msgid "check out date and time"
msgstr ""
#: models.py:27
msgid "check out expiration date and time"
msgstr ""
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr ""
#: models.py:32
msgid "block new version upload"
msgstr ""
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr ""
#: models.py:55
msgid "document checkout"
msgstr ""
#: models.py:56
msgid "document checkouts"
msgstr ""
#: permissions.py:7
msgid "Document checkout"
msgstr ""
#: permissions.py:9
msgid "Check out documents"
msgstr ""
#: permissions.py:10
msgid "Check in documents"
msgstr ""
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr ""
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr ""
#: views.py:33
msgid "checked out documents"
msgstr ""
#: views.py:36
msgid "checkout user"
msgstr ""
#: views.py:37
msgid "checkout time and date"
msgstr ""
#: views.py:38
msgid "checkout expiration"
msgstr ""
#: views.py:55
#, python-format
msgid "User: %s"
msgstr ""
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr ""
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr ""
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr ""
#: views.py:58
msgid "yes"
msgstr ""
#: views.py:58
msgid "no"
msgstr ""
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr ""
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr ""
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr ""
#: views.py:88
msgid "Document already checked out."
msgstr ""
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr ""
#: views.py:125
msgid "Document has not been checked out."
msgstr ""
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr ""
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr ""
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr ""
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr ""
#: widgets.py:30
msgid "Days"
msgstr ""
#: widgets.py:31
msgid "Hours"
msgstr ""
#: widgets.py:32
msgid "Minutes"
msgstr ""
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr ""
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr ""
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr ""
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr ""
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr ""

Binary file not shown.

View File

@@ -0,0 +1,273 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
# This file is distributed under the same license as the PACKAGE package.
#
# Translators:
msgid ""
msgstr ""
"Project-Id-Version: Mayan EDMS\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-12-12 03:19-0400\n"
"PO-Revision-Date: 2012-07-10 15:47+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Russian (http://www.transifex.com/projects/p/mayan-edms/"
"language/ru/)\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"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"
#: __init__.py:43
msgid "Check expired check out documents and checks them in."
msgstr ""
#: events.py:5
msgid "Document checked out"
msgstr ""
#: events.py:6
#, python-format
msgid "Document \"%(document)s\" checked out by %(fullname)s."
msgstr ""
#: events.py:12
msgid "Document checked in"
msgstr ""
#: events.py:13
#, python-format
msgid "Document \"%(document)s\" checked in by %(fullname)s."
msgstr ""
#: events.py:19
msgid "Document automatically checked in"
msgstr ""
#: events.py:20
#, python-format
msgid "Document \"%(document)s\" automatically checked in."
msgstr ""
#: events.py:25
msgid "Document forcefully checked in"
msgstr ""
#: events.py:26
#, python-format
msgid "Document \"%(document)s\" forcefully checked in by %(fullname)s."
msgstr ""
#: links.py:18
msgid "checkouts"
msgstr ""
#: links.py:19
msgid "check out document"
msgstr ""
#: links.py:20
msgid "check in document"
msgstr ""
#: links.py:21
msgid "check in/out"
msgstr ""
#: literals.py:14
msgid "checked out"
msgstr ""
#: literals.py:15
msgid "checked in/available"
msgstr ""
#: models.py:25 views.py:133
msgid "document"
msgstr ""
#: models.py:26
msgid "check out date and time"
msgstr ""
#: models.py:27
msgid "check out expiration date and time"
msgstr ""
#: models.py:27
msgid "Amount of time to hold the document checked out in minutes."
msgstr ""
#: models.py:32
msgid "block new version upload"
msgstr ""
#: models.py:32
msgid "Do not allow new version of this document to be uploaded."
msgstr ""
#: models.py:55
msgid "document checkout"
msgstr ""
#: models.py:56
msgid "document checkouts"
msgstr ""
#: permissions.py:7
msgid "Document checkout"
msgstr ""
#: permissions.py:9
msgid "Check out documents"
msgstr ""
#: permissions.py:10
msgid "Check in documents"
msgstr ""
#: permissions.py:11
msgid "Forcefully check in documents"
msgstr ""
#: permissions.py:12
msgid "Allow overriding check out restrictions"
msgstr ""
#: views.py:33
msgid "checked out documents"
msgstr ""
#: views.py:36
msgid "checkout user"
msgstr ""
#: views.py:37
msgid "checkout time and date"
msgstr ""
#: views.py:38
msgid "checkout expiration"
msgstr ""
#: views.py:55
#, python-format
msgid "User: %s"
msgstr ""
#: views.py:56
#, python-format
msgid "Check out time: %s"
msgstr ""
#: views.py:57
#, python-format
msgid "Check out expiration: %s"
msgstr ""
#: views.py:58
#, python-format
msgid "New versions allowed: %s"
msgstr ""
#: views.py:58
msgid "yes"
msgstr ""
#: views.py:58
msgid "no"
msgstr ""
#: views.py:63
#, python-format
msgid "Check out details for document: %s"
msgstr ""
#: views.py:83
#, python-format
msgid "Error trying to check out document; %s"
msgstr ""
#: views.py:85
#, python-format
msgid "Document \"%s\" checked out successfully."
msgstr ""
#: views.py:88
msgid "Document already checked out."
msgstr ""
#: views.py:96
#, python-format
msgid "Check out document: %s"
msgstr ""
#: views.py:125
msgid "Document has not been checked out."
msgstr ""
#: views.py:127
#, python-format
msgid "Error trying to check in document; %s"
msgstr ""
#: views.py:129
#, python-format
msgid "Document \"%s\" checked in successfully."
msgstr ""
#: views.py:142
#, python-format
msgid ""
"You didn't originally checked out this document. Are you sure you wish to "
"forcefully check in document: %s?"
msgstr ""
#: views.py:144
#, python-format
msgid "Are you sure you wish to check in document: %s?"
msgstr ""
#: widgets.py:18
#, python-format
msgid "Document status: %(widget)s %(text)s"
msgstr ""
#: widgets.py:30
msgid "Days"
msgstr ""
#: widgets.py:31
msgid "Hours"
msgstr ""
#: widgets.py:32
msgid "Minutes"
msgstr ""
#: widgets.py:62
msgid "Enter a valid number of days."
msgstr ""
#: widgets.py:63
msgid "Enter a valid number of hours."
msgstr ""
#: widgets.py:64
msgid "Enter a valid number of minutes."
msgstr ""
#: widgets.py:65
msgid "Enter a valid time difference."
msgstr ""
#: widgets.py:88
msgid ""
"Amount of time to hold the document in the checked out state in days, hours "
"and/or minutes."
msgstr ""
#: widgets.py:89
msgid "Check out expiration date and time"
msgstr ""

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