From a0a64af3438c1bacc5c9944b667f572faab8cdaa Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 14:01:26 +0200 Subject: [PATCH 01/34] refactor directories --- apps/accounts/__init__.py | 1 - apps/conditions/__init__.py | 1 - apps/domain/__init__.py | 1 - apps/options/__init__.py | 1 - apps/projects/__init__.py | 1 - apps/questions/__init__.py | 1 - apps/tasks/__init__.py | 1 - apps/views/__init__.py | 1 - {apps => config}/__init__.py | 0 {rdmo => config}/settings/__init__.py | 0 {rdmo => config}/settings/base.py | 22 +-- config/settings/local.py | 157 ++++++++++++++++++ {rdmo => config}/settings/sample.local.py | 0 {rdmo => config}/urls.py | 20 +-- {rdmo => config}/wsgi.py | 2 +- manage.py | 2 +- rdmo/accounts/__init__.py | 1 + {apps => rdmo}/accounts/adapter.py | 0 {apps => rdmo}/accounts/admin.py | 0 {apps => rdmo}/accounts/app_config.py | 2 +- {apps => rdmo}/accounts/forms.py | 0 .../accounts/migrations/0001_initial.py | 0 ..._detail_key_type_field_length_increased.py | 0 .../0003_hint_renamed_to_help_text.py | 0 .../migrations/0004_permission_added.py | 0 .../accounts/migrations/0005_field_type.py | 0 .../migrations/0006_permissions_removed.py | 0 .../migrations/0007_additional_fields.py | 8 +- .../accounts/migrations/0008_related_name.py | 0 .../accounts/migrations/0009_proxyuser.py | 0 .../accounts/migrations/__init__.py | 0 {apps => rdmo}/accounts/models.py | 2 +- .../accounts/serializers/__init__.py | 0 {apps => rdmo}/accounts/serializers/api.py | 0 {apps => rdmo}/accounts/settings.py | 0 .../accounts/templates/account/email.html | 0 .../email/password_reset_key_message.txt | 0 .../email/password_reset_key_subject.txt | 0 .../templates/account/email_confirm.html | 0 .../accounts/templates/account/login.html | 0 .../templates/account/login_form.html | 0 .../templates/account/login_form_account.html | 0 .../account/login_form_socialaccount.html | 0 .../accounts/templates/account/logout.html | 0 .../templates/account/logout_form.html | 0 .../templates/account/password_change.html | 0 .../templates/account/password_reset.html | 0 .../account/password_reset_done.html | 0 .../account/password_reset_from_key.html | 0 .../account/password_reset_from_key_done.html | 0 .../templates/account/password_set.html | 0 .../accounts/templates/account/signup.html | 0 .../templates/account/signup_closed.html | 0 .../templates/account/verification_sent.html | 0 .../account/verified_email_required.html | 0 .../profile/profile_update_closed.html | 0 .../profile/profile_update_form.html | 0 .../socialaccount/authentication_error.html | 0 .../templates/socialaccount/connections.html | 0 .../socialaccount/login_cancelled.html | 0 .../templates/socialaccount/signup.html | 0 .../socialaccount/snippets/provider_list.html | 0 .../accounts/templatetags/__init__.py | 0 .../accounts/templatetags/accounts_tags.py | 0 {apps => rdmo}/accounts/tests.py | 2 +- {apps => rdmo}/accounts/urls.py | 0 {apps => rdmo}/accounts/utils.py | 0 {apps => rdmo}/accounts/views.py | 2 +- {apps => rdmo}/accounts/viewsets.py | 2 +- rdmo/conditions/__init__.py | 1 + {apps => rdmo}/conditions/admin.py | 0 {apps => rdmo}/conditions/app_config.py | 2 +- .../conditions/migrations/0001_initial.py | 0 .../0002_many_to_many_for_conditions.py | 0 .../conditions/migrations/0003_meta.py | 0 .../migrations/0004_condition_title.py | 0 .../migrations/0005_empty_relation.py | 0 .../migrations/0006_db_constraint_false.py | 0 .../conditions/migrations/0007_ordering.py | 0 .../conditions/migrations/0008_validator.py | 0 .../conditions/migrations/0009_options.py | 0 .../conditions/migrations/0010_refactoring.py | 0 .../conditions/migrations/0011_refactoring.py | 0 .../conditions/migrations/0012_permissions.py | 0 .../conditions/migrations/0013_meta.py | 0 .../conditions/migrations/__init__.py | 0 {apps => rdmo}/conditions/models.py | 2 +- {apps => rdmo}/conditions/renderers.py | 2 +- .../conditions/serializers/__init__.py | 4 +- {apps => rdmo}/conditions/serializers/api.py | 0 .../conditions/serializers/export.py | 0 .../static/conditions/css/conditions.scss | 0 .../static/conditions/js/conditions.js | 0 .../templates/conditions/conditions.html | 0 .../conditions/conditions_export.html | 0 .../conditions_modal_delete_conditions.html | 0 .../conditions_modal_form_conditions.html | 0 {apps => rdmo}/conditions/tests.py | 6 +- {apps => rdmo}/conditions/urls.py | 0 {apps => rdmo}/conditions/utils.py | 6 +- {apps => rdmo}/conditions/validators.py | 2 +- {apps => rdmo}/conditions/views.py | 4 +- {apps => rdmo}/conditions/viewsets.py | 10 +- {apps => rdmo}/core/__init__.py | 0 {apps => rdmo}/core/exceptions.py | 0 {apps => rdmo}/core/management/__init__.py | 0 .../core/management/commands/__init__.py | 0 .../core/management/commands/coverage.py | 0 .../management/commands/create-admin-user.py | 0 .../core/management/commands/create-groups.py | 2 +- .../core/management/commands/deploy.py | 0 .../core/management/commands/import.py | 14 +- .../core/management/commands/poedit.py | 0 .../commands/promote-user-to-superuser.py | 0 .../management/commands/set-uri-prefix.py | 12 +- {apps => rdmo}/core/models.py | 2 +- {apps => rdmo}/core/permissions.py | 0 {apps => rdmo}/core/renderers.py | 0 {apps => rdmo}/core/serializers.py | 0 {apps => rdmo}/core/static/core/css/base.scss | 0 .../core/static/core/css/codemirror.scss | 0 .../core/static/core/css/fonts.scss | 0 .../core/static/core/css/footer.scss | 0 .../core/static/core/css/header.scss | 0 .../core/static/core/css/style.scss | 0 .../core/static/core/css/variables.scss | 0 .../core/static/core/fonts/DroidSans-Bold.ttf | Bin .../core/static/core/fonts/DroidSans.ttf | Bin .../core/static/core/fonts/DroidSansMono.ttf | Bin .../static/core/fonts/DroidSerif-Bold.ttf | Bin .../core/fonts/DroidSerif-BoldItalic.ttf | Bin .../static/core/fonts/DroidSerif-Italic.ttf | Bin .../core/static/core/fonts/DroidSerif.ttf | Bin .../static/core/html/formgroup_checkbox.html | 0 .../core/html/formgroup_codemirror.html | 0 .../static/core/html/formgroup_number.html | 0 .../static/core/html/formgroup_select.html | 0 .../core/html/formgroup_selectmultiple.html | 0 .../core/html/formgroup_selectnumber.html | 0 .../core/static/core/html/formgroup_text.html | 0 .../static/core/html/formgroup_textarea.html | 0 .../core/static/core/img/favicon.png | Bin .../static/core/img/header/collection.jpg | Bin .../core/static/core/img/header/library.jpg | Bin .../static/core/img/header/supercomputer.jpg | Bin {apps => rdmo}/core/static/core/js/core.js | 0 {apps => rdmo}/core/static/core/js/header.js | 0 {apps => rdmo}/core/templates/core/404.html | 0 {apps => rdmo}/core/templates/core/base.html | 0 .../core/templates/core/base_analytics.html | 0 .../core/templates/core/base_footer.html | 0 .../core/templates/core/base_head.html | 0 .../core/templates/core/base_navigation.html | 0 .../core/base_navigation_account.html | 0 .../core/base_navigation_socialaccount.html | 0 .../templates/core/bootstrap_delete_form.html | 0 .../core/templates/core/bootstrap_form.html | 0 .../templates/core/bootstrap_form_fields.html | 0 .../core/templates/core/export.html | 0 {apps => rdmo}/core/templates/core/home.html | 0 .../core/templates/core/home_text_de.html | 0 .../core/templates/core/home_text_en.html | 0 {apps => rdmo}/core/templates/core/page.html | 0 {apps => rdmo}/core/templatetags/__init__.py | 0 {apps => rdmo}/core/templatetags/core_tags.py | 0 {apps => rdmo}/core/testing/__init__.py | 0 {apps => rdmo}/core/testing/mixins.py | 0 {apps => rdmo}/core/tests.py | 2 +- {apps => rdmo}/core/utils.py | 0 {apps => rdmo}/core/validators.py | 0 {apps => rdmo}/core/views.py | 0 rdmo/domain/__init__.py | 1 + {apps => rdmo}/domain/admin.py | 0 {apps => rdmo}/domain/app_config.py | 2 +- .../migrations/0001_initial_after_reset.py | 6 +- .../migrations/0002_additional_input.py | 0 .../domain/migrations/0003_condition.py | 0 .../domain/migrations/0004_verbosename.py | 4 +- {apps => rdmo}/domain/migrations/0005_meta.py | 0 .../0006_attributeentity_parent_collection.py | 0 .../domain/migrations/0007_db_index.py | 0 {apps => rdmo}/domain/migrations/0008_meta.py | 0 .../migrations/0009_remove_condition.py | 0 .../0010_many_to_many_for_conditions.py | 0 {apps => rdmo}/domain/migrations/0011_meta.py | 0 .../domain/migrations/0012_renaming.py | 0 {apps => rdmo}/domain/migrations/0013_mptt.py | 0 .../domain/migrations/0014_is_attribute.py | 0 .../domain/migrations/0015_label.py | 0 .../domain/migrations/0016_label.py | 0 .../domain/migrations/0017_url_value_type.py | 0 .../domain/migrations/0018_validator.py | 0 {apps => rdmo}/domain/migrations/0019_meta.py | 0 {apps => rdmo}/domain/migrations/0020_meta.py | 0 .../domain/migrations/0021_options.py | 0 .../domain/migrations/0022_options.py | 0 .../domain/migrations/0023_fix_label.py | 0 {apps => rdmo}/domain/migrations/0024_meta.py | 0 .../domain/migrations/0025_refactoring.py | 0 .../domain/migrations/0026_refactoring.py | 0 {apps => rdmo}/domain/migrations/0027_meta.py | 0 {apps => rdmo}/domain/migrations/0028_path.py | 0 {apps => rdmo}/domain/migrations/0029_meta.py | 0 .../domain/migrations/0030_permissions.py | 0 {apps => rdmo}/domain/migrations/0031_meta.py | 0 {apps => rdmo}/domain/migrations/__init__.py | 0 {apps => rdmo}/domain/models.py | 6 +- {apps => rdmo}/domain/renderers.py | 2 +- {apps => rdmo}/domain/serializers/__init__.py | 4 +- {apps => rdmo}/domain/serializers/api.py | 0 {apps => rdmo}/domain/serializers/export.py | 0 .../domain/static/domain/css/domain.scss | 0 .../domain/static/domain/js/domain.js | 0 .../domain/templates/domain/domain.html | 0 .../templates/domain/domain_export.html | 0 .../domain_modal_delete_attributes.html | 0 .../domain/domain_modal_delete_entities.html | 0 .../domain/domain_modal_form_attributes.html | 0 .../domain/domain_modal_form_conditions.html | 0 .../domain/domain_modal_form_entities.html | 0 .../domain/domain_modal_form_optionsets.html | 0 .../domain/domain_modal_form_ranges.html | 0 .../domain_modal_form_verbosenames.html | 0 .../templates/domain/domain_options.html | 0 {apps => rdmo}/domain/tests.py | 8 +- {apps => rdmo}/domain/urls.py | 0 {apps => rdmo}/domain/utils.py | 6 +- {apps => rdmo}/domain/validators.py | 2 +- {apps => rdmo}/domain/views.py | 4 +- {apps => rdmo}/domain/viewsets.py | 8 +- rdmo/options/__init__.py | 1 + {apps => rdmo}/options/admin.py | 0 {apps => rdmo}/options/app_config.py | 2 +- .../options/migrations/0001_initial.py | 4 +- .../options/migrations/0002_meta.py | 0 .../options/migrations/0003_data_migration.py | 0 .../options/migrations/0004_conditions.py | 0 .../options/migrations/0005_refactoring.py | 0 .../options/migrations/0006_refactoring.py | 0 .../options/migrations/0007_meta.py | 0 .../options/migrations/0008_option_path.py | 0 .../options/migrations/0009_data_migration.py | 0 .../options/migrations/0010_meta.py | 0 .../options/migrations/0011_permissions.py | 0 .../options/migrations/0012_meta.py | 0 {apps => rdmo}/options/migrations/__init__.py | 0 {apps => rdmo}/options/models.py | 6 +- {apps => rdmo}/options/renderers.py | 2 +- .../options/serializers/__init__.py | 2 +- {apps => rdmo}/options/serializers/api.py | 0 {apps => rdmo}/options/serializers/export.py | 2 +- .../options/static/options/css/options.scss | 0 .../options/static/options/js/options.js | 0 .../options/templates/options/options.html | 0 .../templates/options/options_export.html | 0 .../options/options_modal_delete_options.html | 0 .../options_modal_delete_optionsets.html | 0 .../options_modal_form_conditions.html | 0 .../options/options_modal_form_options.html | 0 .../options_modal_form_optionsets.html | 0 {apps => rdmo}/options/tests.py | 6 +- {apps => rdmo}/options/urls.py | 0 {apps => rdmo}/options/utils.py | 2 +- {apps => rdmo}/options/validators.py | 2 +- {apps => rdmo}/options/views.py | 4 +- {apps => rdmo}/options/viewsets.py | 4 +- rdmo/projects/__init__.py | 1 + {apps => rdmo}/projects/admin.py | 0 {apps => rdmo}/projects/app_config.py | 2 +- {apps => rdmo}/projects/forms.py | 0 .../migrations/0001_initial_after_reset.py | 0 .../projects/migrations/0002_meta.py | 0 .../projects/migrations/0003_meta.py | 0 .../0004_remove_current_snapshot.py | 0 .../projects/migrations/0005_snapshot.py | 0 .../migrations/0006_project_values.py | 0 .../migrations/0007_data_migration.py | 0 .../projects/migrations/0008_not_null.py | 0 .../projects/migrations/0009_options.py | 0 .../migrations/0010_add_db_contraint.py | 0 .../projects/migrations/0011_refactoring.py | 0 .../projects/migrations/0012_membership.py | 0 .../migrations/0013_data_migration.py | 0 .../projects/migrations/0014_remove_owner.py | 0 .../projects/migrations/0015_permissions.py | 0 .../projects/migrations/__init__.py | 0 {apps => rdmo}/projects/models.py | 8 +- {apps => rdmo}/projects/renderers.py | 2 +- {apps => rdmo}/projects/rules.py | 0 .../projects/serializers/__init__.py | 0 {apps => rdmo}/projects/serializers/api.py | 0 .../projects/serializers/catalog.py | 2 +- {apps => rdmo}/projects/serializers/export.py | 0 .../projects/serializers/question_entity.py | 10 +- .../projects/css/project_questions.scss | 0 .../projects/js/project_questions/app.js | 0 .../js/project_questions/controllers.js | 0 .../js/project_questions/directives.js | 0 .../projects/js/project_questions/services.js | 0 .../projects/membership_confirm_delete.html | 0 .../templates/projects/membership_form.html | 0 .../templates/projects/project_answers.html | 0 .../projects/project_answers_export.html | 0 .../projects/project_answers_tree.html | 0 .../projects/project_confirm_delete.html | 0 .../templates/projects/project_detail.html | 0 .../projects/project_detail_memberships.html | 0 .../projects/project_detail_snapshots.html | 0 .../projects/project_detail_tasks.html | 0 .../projects/project_detail_views.html | 0 .../templates/projects/project_form.html | 0 .../templates/projects/project_questions.html | 0 .../project_questions_add_field_button.html | 0 .../project_questions_add_field_help.html | 0 .../projects/project_questions_done.html | 0 ...project_questions_form_group_checkbox.html | 0 .../project_questions_form_group_date.html | 0 .../project_questions_form_group_radio.html | 0 .../project_questions_form_group_range.html | 0 .../project_questions_form_group_select.html | 0 .../project_questions_form_group_text.html | 0 ...project_questions_form_group_textarea.html | 0 .../project_questions_form_group_yesno.html | 0 ...ject_questions_modal_delete_valuesets.html | 0 ...roject_questions_modal_form_valuesets.html | 0 .../project_questions_questionset_head.html | 0 .../project_questions_remove_field.html | 0 .../projects/project_questions_sidebar.html | 0 .../templates/projects/project_view.html | 0 .../projects/project_view_export.html | 0 .../projects/templates/projects/projects.html | 0 .../templates/projects/snapshot_form.html | 0 .../templates/projects/snapshot_rollback.html | 0 {apps => rdmo}/projects/tests.py | 4 +- {apps => rdmo}/projects/urls.py | 0 {apps => rdmo}/projects/utils.py | 8 +- {apps => rdmo}/projects/views.py | 8 +- {apps => rdmo}/projects/viewsets.py | 6 +- rdmo/questions/__init__.py | 1 + {apps => rdmo}/questions/admin.py | 0 {apps => rdmo}/questions/app_config.py | 2 +- {apps => rdmo}/questions/managers.py | 0 .../migrations/0001_initial_after_reset.py | 10 +- .../questions/migrations/0002_meta.py | 0 .../questions/migrations/0003_renaming.py | 0 .../questions/migrations/0004_full_title.py | 0 .../questions/migrations/0005_label.py | 0 .../migrations/0006_auto_20160803_1619.py | 0 .../questions/migrations/0007_refactoring.py | 0 .../migrations/0008_data_migration.py | 0 .../questions/migrations/0009_meta.py | 0 .../questions/migrations/0010_label.py | 0 .../questions/migrations/0011_path.py | 0 .../questions/migrations/0012_meta.py | 0 .../questions/migrations/0013_permissions.py | 0 .../questions/migrations/0014_meta.py | 0 .../questions/migrations/__init__.py | 0 {apps => rdmo}/questions/models.py | 6 +- {apps => rdmo}/questions/renderers.py | 2 +- .../questions/serializers/__init__.py | 2 +- {apps => rdmo}/questions/serializers/api.py | 0 .../questions/serializers/export.py | 0 .../questions/serializers/nested.py | 2 +- .../static/questions/css/catalogs.scss | 0 .../questions/static/questions/js/catalogs.js | 0 .../templates/questions/catalog_export.html | 0 .../templates/questions/catalog_tree.html | 0 .../templates/questions/catalogs.html | 0 .../catalogs_modal_delete_catalogs.html | 0 .../catalogs_modal_delete_questions.html | 0 .../catalogs_modal_delete_questionsets.html | 0 .../catalogs_modal_delete_sections.html | 0 .../catalogs_modal_delete_subsections.html | 0 .../catalogs_modal_form_catalogs.html | 0 .../catalogs_modal_form_questions.html | 0 .../catalogs_modal_form_questionsets.html | 0 .../catalogs_modal_form_sections.html | 0 .../catalogs_modal_form_subsections.html | 0 .../questions/catalogs_options_questions.html | 0 .../catalogs_options_questionsets.html | 0 .../questions/catalogs_options_sections.html | 0 .../catalogs_options_subsections.html | 0 .../templates/questions/catalogs_sidebar.html | 0 {apps => rdmo}/questions/tests.py | 4 +- {apps => rdmo}/questions/urls.py | 0 {apps => rdmo}/questions/utils.py | 4 +- {apps => rdmo}/questions/validators.py | 2 +- {apps => rdmo}/questions/views.py | 4 +- {apps => rdmo}/questions/viewsets.py | 6 +- rdmo/tasks/__init__.py | 1 + {apps => rdmo}/tasks/admin.py | 0 {apps => rdmo}/tasks/app_config.py | 2 +- {apps => rdmo}/tasks/managers.py | 0 .../tasks/migrations/0001_initial.py | 4 +- .../0002_many_to_many_for_conditions.py | 0 {apps => rdmo}/tasks/migrations/0003_meta.py | 0 .../tasks/migrations/0004_refactoring.py | 0 .../tasks/migrations/0005_data_migration.py | 0 {apps => rdmo}/tasks/migrations/0006_meta.py | 0 .../tasks/migrations/0007_permissions.py | 0 .../migrations/0008_remove_time_period.py | 0 .../tasks/migrations/0009_timeframe.py | 0 {apps => rdmo}/tasks/migrations/0010_meta.py | 0 .../tasks/migrations/0011_task_text.py | 0 {apps => rdmo}/tasks/migrations/__init__.py | 0 {apps => rdmo}/tasks/models.py | 10 +- {apps => rdmo}/tasks/renderers.py | 2 +- {apps => rdmo}/tasks/serializers/__init__.py | 4 +- {apps => rdmo}/tasks/serializers/api.py | 4 +- {apps => rdmo}/tasks/serializers/export.py | 0 .../tasks/static/tasks/css/tasks.scss | 0 {apps => rdmo}/tasks/static/tasks/js/tasks.js | 0 .../tasks/templates/tasks/tasks.html | 0 .../tasks/templates/tasks/tasks_export.html | 0 .../tasks/tasks_modal_delete_tasks.html | 0 .../tasks/tasks_modal_form_conditions.html | 0 .../tasks/tasks_modal_form_tasks.html | 0 .../tasks/tasks_modal_form_timeframes.html | 0 {apps => rdmo}/tasks/tests.py | 6 +- {apps => rdmo}/tasks/urls.py | 0 {apps => rdmo}/tasks/utils.py | 6 +- {apps => rdmo}/tasks/validators.py | 2 +- {apps => rdmo}/tasks/views.py | 4 +- {apps => rdmo}/tasks/viewsets.py | 6 +- rdmo/views/__init__.py | 1 + {apps => rdmo}/views/admin.py | 0 {apps => rdmo}/views/app_config.py | 2 +- .../views/migrations/0001_initial.py | 0 .../views/migrations/0002_view_template.py | 0 .../views/migrations/0003_refactoring.py | 0 .../views/migrations/0004_refactoring.py | 0 {apps => rdmo}/views/migrations/0005_meta.py | 0 .../views/migrations/0006_title_and_help.py | 0 .../views/migrations/0007_data_migration.py | 0 .../views/migrations/0008_permissions.py | 0 {apps => rdmo}/views/migrations/0009_meta.py | 0 {apps => rdmo}/views/migrations/__init__.py | 0 {apps => rdmo}/views/models.py | 8 +- {apps => rdmo}/views/renderers.py | 2 +- {apps => rdmo}/views/serializers/__init__.py | 0 {apps => rdmo}/views/serializers/api.py | 0 {apps => rdmo}/views/serializers/export.py | 0 .../views/static/views/css/views.scss | 0 {apps => rdmo}/views/static/views/js/views.js | 0 .../views/templates/views/views.html | 0 .../views/templates/views/views_export.html | 0 .../views/views_modal_delete_views.html | 0 .../views/views_modal_form_templates.html | 0 .../views/views_modal_form_views.html | 0 {apps => rdmo}/views/tests.py | 4 +- {apps => rdmo}/views/urls.py | 0 {apps => rdmo}/views/utils.py | 4 +- {apps => rdmo}/views/validators.py | 2 +- {apps => rdmo}/views/views.py | 4 +- {apps => rdmo}/views/viewsets.py | 2 +- 455 files changed, 364 insertions(+), 203 deletions(-) delete mode 100644 apps/accounts/__init__.py delete mode 100644 apps/conditions/__init__.py delete mode 100644 apps/domain/__init__.py delete mode 100644 apps/options/__init__.py delete mode 100644 apps/projects/__init__.py delete mode 100644 apps/questions/__init__.py delete mode 100644 apps/tasks/__init__.py delete mode 100644 apps/views/__init__.py rename {apps => config}/__init__.py (100%) rename {rdmo => config}/settings/__init__.py (100%) rename {rdmo => config}/settings/base.py (95%) create mode 100644 config/settings/local.py rename {rdmo => config}/settings/sample.local.py (100%) rename {rdmo => config}/urls.py (81%) rename {rdmo => config}/wsgi.py (59%) create mode 100644 rdmo/accounts/__init__.py rename {apps => rdmo}/accounts/adapter.py (100%) rename {apps => rdmo}/accounts/admin.py (100%) rename {apps => rdmo}/accounts/app_config.py (85%) rename {apps => rdmo}/accounts/forms.py (100%) rename {apps => rdmo}/accounts/migrations/0001_initial.py (100%) rename {apps => rdmo}/accounts/migrations/0002_detail_key_type_field_length_increased.py (100%) rename {apps => rdmo}/accounts/migrations/0003_hint_renamed_to_help_text.py (100%) rename {apps => rdmo}/accounts/migrations/0004_permission_added.py (100%) rename {apps => rdmo}/accounts/migrations/0005_field_type.py (100%) rename {apps => rdmo}/accounts/migrations/0006_permissions_removed.py (100%) rename {apps => rdmo}/accounts/migrations/0007_additional_fields.py (94%) rename {apps => rdmo}/accounts/migrations/0008_related_name.py (100%) rename {apps => rdmo}/accounts/migrations/0009_proxyuser.py (100%) rename {apps => rdmo}/accounts/migrations/__init__.py (100%) rename {apps => rdmo}/accounts/models.py (97%) rename {apps => rdmo}/accounts/serializers/__init__.py (100%) rename {apps => rdmo}/accounts/serializers/api.py (100%) rename {apps => rdmo}/accounts/settings.py (100%) rename {apps => rdmo}/accounts/templates/account/email.html (100%) rename {apps => rdmo}/accounts/templates/account/email/password_reset_key_message.txt (100%) rename {apps => rdmo}/accounts/templates/account/email/password_reset_key_subject.txt (100%) rename {apps => rdmo}/accounts/templates/account/email_confirm.html (100%) rename {apps => rdmo}/accounts/templates/account/login.html (100%) rename {apps => rdmo}/accounts/templates/account/login_form.html (100%) rename {apps => rdmo}/accounts/templates/account/login_form_account.html (100%) rename {apps => rdmo}/accounts/templates/account/login_form_socialaccount.html (100%) rename {apps => rdmo}/accounts/templates/account/logout.html (100%) rename {apps => rdmo}/accounts/templates/account/logout_form.html (100%) rename {apps => rdmo}/accounts/templates/account/password_change.html (100%) rename {apps => rdmo}/accounts/templates/account/password_reset.html (100%) rename {apps => rdmo}/accounts/templates/account/password_reset_done.html (100%) rename {apps => rdmo}/accounts/templates/account/password_reset_from_key.html (100%) rename {apps => rdmo}/accounts/templates/account/password_reset_from_key_done.html (100%) rename {apps => rdmo}/accounts/templates/account/password_set.html (100%) rename {apps => rdmo}/accounts/templates/account/signup.html (100%) rename {apps => rdmo}/accounts/templates/account/signup_closed.html (100%) rename {apps => rdmo}/accounts/templates/account/verification_sent.html (100%) rename {apps => rdmo}/accounts/templates/account/verified_email_required.html (100%) rename {apps => rdmo}/accounts/templates/profile/profile_update_closed.html (100%) rename {apps => rdmo}/accounts/templates/profile/profile_update_form.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/authentication_error.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/connections.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/login_cancelled.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/signup.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/snippets/provider_list.html (100%) rename {apps => rdmo}/accounts/templatetags/__init__.py (100%) rename {apps => rdmo}/accounts/templatetags/accounts_tags.py (100%) rename {apps => rdmo}/accounts/tests.py (99%) rename {apps => rdmo}/accounts/urls.py (100%) rename {apps => rdmo}/accounts/utils.py (100%) rename {apps => rdmo}/accounts/views.py (93%) rename {apps => rdmo}/accounts/viewsets.py (92%) create mode 100644 rdmo/conditions/__init__.py rename {apps => rdmo}/conditions/admin.py (100%) rename {apps => rdmo}/conditions/app_config.py (84%) rename {apps => rdmo}/conditions/migrations/0001_initial.py (100%) rename {apps => rdmo}/conditions/migrations/0002_many_to_many_for_conditions.py (100%) rename {apps => rdmo}/conditions/migrations/0003_meta.py (100%) rename {apps => rdmo}/conditions/migrations/0004_condition_title.py (100%) rename {apps => rdmo}/conditions/migrations/0005_empty_relation.py (100%) rename {apps => rdmo}/conditions/migrations/0006_db_constraint_false.py (100%) rename {apps => rdmo}/conditions/migrations/0007_ordering.py (100%) rename {apps => rdmo}/conditions/migrations/0008_validator.py (100%) rename {apps => rdmo}/conditions/migrations/0009_options.py (100%) rename {apps => rdmo}/conditions/migrations/0010_refactoring.py (100%) rename {apps => rdmo}/conditions/migrations/0011_refactoring.py (100%) rename {apps => rdmo}/conditions/migrations/0012_permissions.py (100%) rename {apps => rdmo}/conditions/migrations/0013_meta.py (100%) rename {apps => rdmo}/conditions/migrations/__init__.py (100%) rename {apps => rdmo}/conditions/models.py (99%) rename {apps => rdmo}/conditions/renderers.py (95%) rename {apps => rdmo}/conditions/serializers/__init__.py (95%) rename {apps => rdmo}/conditions/serializers/api.py (100%) rename {apps => rdmo}/conditions/serializers/export.py (100%) rename {apps => rdmo}/conditions/static/conditions/css/conditions.scss (100%) rename {apps => rdmo}/conditions/static/conditions/js/conditions.js (100%) rename {apps => rdmo}/conditions/templates/conditions/conditions.html (100%) rename {apps => rdmo}/conditions/templates/conditions/conditions_export.html (100%) rename {apps => rdmo}/conditions/templates/conditions/conditions_modal_delete_conditions.html (100%) rename {apps => rdmo}/conditions/templates/conditions/conditions_modal_form_conditions.html (100%) rename {apps => rdmo}/conditions/tests.py (94%) rename {apps => rdmo}/conditions/urls.py (100%) rename {apps => rdmo}/conditions/utils.py (91%) rename {apps => rdmo}/conditions/validators.py (69%) rename {apps => rdmo}/conditions/views.py (93%) rename {apps => rdmo}/conditions/viewsets.py (92%) rename {apps => rdmo}/core/__init__.py (100%) rename {apps => rdmo}/core/exceptions.py (100%) rename {apps => rdmo}/core/management/__init__.py (100%) rename {apps => rdmo}/core/management/commands/__init__.py (100%) rename {apps => rdmo}/core/management/commands/coverage.py (100%) rename {apps => rdmo}/core/management/commands/create-admin-user.py (100%) rename {apps => rdmo}/core/management/commands/create-groups.py (92%) rename {apps => rdmo}/core/management/commands/deploy.py (100%) rename {apps => rdmo}/core/management/commands/import.py (81%) rename {apps => rdmo}/core/management/commands/poedit.py (100%) rename {apps => rdmo}/core/management/commands/promote-user-to-superuser.py (100%) rename {apps => rdmo}/core/management/commands/set-uri-prefix.py (84%) rename {apps => rdmo}/core/models.py (95%) rename {apps => rdmo}/core/permissions.py (100%) rename {apps => rdmo}/core/renderers.py (100%) rename {apps => rdmo}/core/serializers.py (100%) rename {apps => rdmo}/core/static/core/css/base.scss (100%) rename {apps => rdmo}/core/static/core/css/codemirror.scss (100%) rename {apps => rdmo}/core/static/core/css/fonts.scss (100%) rename {apps => rdmo}/core/static/core/css/footer.scss (100%) rename {apps => rdmo}/core/static/core/css/header.scss (100%) rename {apps => rdmo}/core/static/core/css/style.scss (100%) rename {apps => rdmo}/core/static/core/css/variables.scss (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSans-Bold.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSans.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSansMono.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSerif-Bold.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSerif-BoldItalic.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSerif-Italic.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSerif.ttf (100%) rename {apps => rdmo}/core/static/core/html/formgroup_checkbox.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_codemirror.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_number.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_select.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_selectmultiple.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_selectnumber.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_text.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_textarea.html (100%) rename {apps => rdmo}/core/static/core/img/favicon.png (100%) rename {apps => rdmo}/core/static/core/img/header/collection.jpg (100%) rename {apps => rdmo}/core/static/core/img/header/library.jpg (100%) rename {apps => rdmo}/core/static/core/img/header/supercomputer.jpg (100%) rename {apps => rdmo}/core/static/core/js/core.js (100%) rename {apps => rdmo}/core/static/core/js/header.js (100%) rename {apps => rdmo}/core/templates/core/404.html (100%) rename {apps => rdmo}/core/templates/core/base.html (100%) rename {apps => rdmo}/core/templates/core/base_analytics.html (100%) rename {apps => rdmo}/core/templates/core/base_footer.html (100%) rename {apps => rdmo}/core/templates/core/base_head.html (100%) rename {apps => rdmo}/core/templates/core/base_navigation.html (100%) rename {apps => rdmo}/core/templates/core/base_navigation_account.html (100%) rename {apps => rdmo}/core/templates/core/base_navigation_socialaccount.html (100%) rename {apps => rdmo}/core/templates/core/bootstrap_delete_form.html (100%) rename {apps => rdmo}/core/templates/core/bootstrap_form.html (100%) rename {apps => rdmo}/core/templates/core/bootstrap_form_fields.html (100%) rename {apps => rdmo}/core/templates/core/export.html (100%) rename {apps => rdmo}/core/templates/core/home.html (100%) rename {apps => rdmo}/core/templates/core/home_text_de.html (100%) rename {apps => rdmo}/core/templates/core/home_text_en.html (100%) rename {apps => rdmo}/core/templates/core/page.html (100%) rename {apps => rdmo}/core/templatetags/__init__.py (100%) rename {apps => rdmo}/core/templatetags/core_tags.py (100%) rename {apps => rdmo}/core/testing/__init__.py (100%) rename {apps => rdmo}/core/testing/mixins.py (100%) rename {apps => rdmo}/core/tests.py (98%) rename {apps => rdmo}/core/utils.py (100%) rename {apps => rdmo}/core/validators.py (100%) rename {apps => rdmo}/core/views.py (100%) create mode 100644 rdmo/domain/__init__.py rename {apps => rdmo}/domain/admin.py (100%) rename {apps => rdmo}/domain/app_config.py (86%) rename {apps => rdmo}/domain/migrations/0001_initial_after_reset.py (97%) rename {apps => rdmo}/domain/migrations/0002_additional_input.py (100%) rename {apps => rdmo}/domain/migrations/0003_condition.py (100%) rename {apps => rdmo}/domain/migrations/0004_verbosename.py (91%) rename {apps => rdmo}/domain/migrations/0005_meta.py (100%) rename {apps => rdmo}/domain/migrations/0006_attributeentity_parent_collection.py (100%) rename {apps => rdmo}/domain/migrations/0007_db_index.py (100%) rename {apps => rdmo}/domain/migrations/0008_meta.py (100%) rename {apps => rdmo}/domain/migrations/0009_remove_condition.py (100%) rename {apps => rdmo}/domain/migrations/0010_many_to_many_for_conditions.py (100%) rename {apps => rdmo}/domain/migrations/0011_meta.py (100%) rename {apps => rdmo}/domain/migrations/0012_renaming.py (100%) rename {apps => rdmo}/domain/migrations/0013_mptt.py (100%) rename {apps => rdmo}/domain/migrations/0014_is_attribute.py (100%) rename {apps => rdmo}/domain/migrations/0015_label.py (100%) rename {apps => rdmo}/domain/migrations/0016_label.py (100%) rename {apps => rdmo}/domain/migrations/0017_url_value_type.py (100%) rename {apps => rdmo}/domain/migrations/0018_validator.py (100%) rename {apps => rdmo}/domain/migrations/0019_meta.py (100%) rename {apps => rdmo}/domain/migrations/0020_meta.py (100%) rename {apps => rdmo}/domain/migrations/0021_options.py (100%) rename {apps => rdmo}/domain/migrations/0022_options.py (100%) rename {apps => rdmo}/domain/migrations/0023_fix_label.py (100%) rename {apps => rdmo}/domain/migrations/0024_meta.py (100%) rename {apps => rdmo}/domain/migrations/0025_refactoring.py (100%) rename {apps => rdmo}/domain/migrations/0026_refactoring.py (100%) rename {apps => rdmo}/domain/migrations/0027_meta.py (100%) rename {apps => rdmo}/domain/migrations/0028_path.py (100%) rename {apps => rdmo}/domain/migrations/0029_meta.py (100%) rename {apps => rdmo}/domain/migrations/0030_permissions.py (100%) rename {apps => rdmo}/domain/migrations/0031_meta.py (100%) rename {apps => rdmo}/domain/migrations/__init__.py (100%) rename {apps => rdmo}/domain/models.py (98%) rename {apps => rdmo}/domain/renderers.py (98%) rename {apps => rdmo}/domain/serializers/__init__.py (97%) rename {apps => rdmo}/domain/serializers/api.py (100%) rename {apps => rdmo}/domain/serializers/export.py (100%) rename {apps => rdmo}/domain/static/domain/css/domain.scss (100%) rename {apps => rdmo}/domain/static/domain/js/domain.js (100%) rename {apps => rdmo}/domain/templates/domain/domain.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_export.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_delete_attributes.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_delete_entities.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_attributes.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_conditions.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_entities.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_optionsets.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_ranges.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_verbosenames.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_options.html (100%) rename {apps => rdmo}/domain/tests.py (95%) rename {apps => rdmo}/domain/urls.py (100%) rename {apps => rdmo}/domain/utils.py (97%) rename {apps => rdmo}/domain/validators.py (85%) rename {apps => rdmo}/domain/views.py (95%) rename {apps => rdmo}/domain/viewsets.py (95%) create mode 100644 rdmo/options/__init__.py rename {apps => rdmo}/options/admin.py (100%) rename {apps => rdmo}/options/app_config.py (85%) rename {apps => rdmo}/options/migrations/0001_initial.py (95%) rename {apps => rdmo}/options/migrations/0002_meta.py (100%) rename {apps => rdmo}/options/migrations/0003_data_migration.py (100%) rename {apps => rdmo}/options/migrations/0004_conditions.py (100%) rename {apps => rdmo}/options/migrations/0005_refactoring.py (100%) rename {apps => rdmo}/options/migrations/0006_refactoring.py (100%) rename {apps => rdmo}/options/migrations/0007_meta.py (100%) rename {apps => rdmo}/options/migrations/0008_option_path.py (100%) rename {apps => rdmo}/options/migrations/0009_data_migration.py (100%) rename {apps => rdmo}/options/migrations/0010_meta.py (100%) rename {apps => rdmo}/options/migrations/0011_permissions.py (100%) rename {apps => rdmo}/options/migrations/0012_meta.py (100%) rename {apps => rdmo}/options/migrations/__init__.py (100%) rename {apps => rdmo}/options/models.py (97%) rename {apps => rdmo}/options/renderers.py (97%) rename {apps => rdmo}/options/serializers/__init__.py (97%) rename {apps => rdmo}/options/serializers/api.py (100%) rename {apps => rdmo}/options/serializers/export.py (94%) rename {apps => rdmo}/options/static/options/css/options.scss (100%) rename {apps => rdmo}/options/static/options/js/options.js (100%) rename {apps => rdmo}/options/templates/options/options.html (100%) rename {apps => rdmo}/options/templates/options/options_export.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_delete_options.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_delete_optionsets.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_form_conditions.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_form_options.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_form_optionsets.html (100%) rename {apps => rdmo}/options/tests.py (95%) rename {apps => rdmo}/options/urls.py (100%) rename {apps => rdmo}/options/utils.py (97%) rename {apps => rdmo}/options/validators.py (83%) rename {apps => rdmo}/options/views.py (93%) rename {apps => rdmo}/options/viewsets.py (95%) create mode 100644 rdmo/projects/__init__.py rename {apps => rdmo}/projects/admin.py (100%) rename {apps => rdmo}/projects/app_config.py (88%) rename {apps => rdmo}/projects/forms.py (100%) rename {apps => rdmo}/projects/migrations/0001_initial_after_reset.py (100%) rename {apps => rdmo}/projects/migrations/0002_meta.py (100%) rename {apps => rdmo}/projects/migrations/0003_meta.py (100%) rename {apps => rdmo}/projects/migrations/0004_remove_current_snapshot.py (100%) rename {apps => rdmo}/projects/migrations/0005_snapshot.py (100%) rename {apps => rdmo}/projects/migrations/0006_project_values.py (100%) rename {apps => rdmo}/projects/migrations/0007_data_migration.py (100%) rename {apps => rdmo}/projects/migrations/0008_not_null.py (100%) rename {apps => rdmo}/projects/migrations/0009_options.py (100%) rename {apps => rdmo}/projects/migrations/0010_add_db_contraint.py (100%) rename {apps => rdmo}/projects/migrations/0011_refactoring.py (100%) rename {apps => rdmo}/projects/migrations/0012_membership.py (100%) rename {apps => rdmo}/projects/migrations/0013_data_migration.py (100%) rename {apps => rdmo}/projects/migrations/0014_remove_owner.py (100%) rename {apps => rdmo}/projects/migrations/0015_permissions.py (100%) rename {apps => rdmo}/projects/migrations/__init__.py (100%) rename {apps => rdmo}/projects/models.py (98%) rename {apps => rdmo}/projects/renderers.py (98%) rename {apps => rdmo}/projects/rules.py (100%) rename {apps => rdmo}/projects/serializers/__init__.py (100%) rename {apps => rdmo}/projects/serializers/api.py (100%) rename {apps => rdmo}/projects/serializers/catalog.py (95%) rename {apps => rdmo}/projects/serializers/export.py (100%) rename {apps => rdmo}/projects/serializers/question_entity.py (95%) rename {apps => rdmo}/projects/static/projects/css/project_questions.scss (100%) rename {apps => rdmo}/projects/static/projects/js/project_questions/app.js (100%) rename {apps => rdmo}/projects/static/projects/js/project_questions/controllers.js (100%) rename {apps => rdmo}/projects/static/projects/js/project_questions/directives.js (100%) rename {apps => rdmo}/projects/static/projects/js/project_questions/services.js (100%) rename {apps => rdmo}/projects/templates/projects/membership_confirm_delete.html (100%) rename {apps => rdmo}/projects/templates/projects/membership_form.html (100%) rename {apps => rdmo}/projects/templates/projects/project_answers.html (100%) rename {apps => rdmo}/projects/templates/projects/project_answers_export.html (100%) rename {apps => rdmo}/projects/templates/projects/project_answers_tree.html (100%) rename {apps => rdmo}/projects/templates/projects/project_confirm_delete.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail_memberships.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail_snapshots.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail_tasks.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail_views.html (100%) rename {apps => rdmo}/projects/templates/projects/project_form.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_add_field_button.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_add_field_help.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_done.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_checkbox.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_date.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_radio.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_range.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_select.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_text.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_textarea.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_yesno.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_modal_delete_valuesets.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_modal_form_valuesets.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_questionset_head.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_remove_field.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_sidebar.html (100%) rename {apps => rdmo}/projects/templates/projects/project_view.html (100%) rename {apps => rdmo}/projects/templates/projects/project_view_export.html (100%) rename {apps => rdmo}/projects/templates/projects/projects.html (100%) rename {apps => rdmo}/projects/templates/projects/snapshot_form.html (100%) rename {apps => rdmo}/projects/templates/projects/snapshot_rollback.html (100%) rename {apps => rdmo}/projects/tests.py (98%) rename {apps => rdmo}/projects/urls.py (100%) rename {apps => rdmo}/projects/utils.py (98%) rename {apps => rdmo}/projects/views.py (98%) rename {apps => rdmo}/projects/viewsets.py (97%) create mode 100644 rdmo/questions/__init__.py rename {apps => rdmo}/questions/admin.py (100%) rename {apps => rdmo}/questions/app_config.py (85%) rename {apps => rdmo}/questions/managers.py (100%) rename {apps => rdmo}/questions/migrations/0001_initial_after_reset.py (95%) rename {apps => rdmo}/questions/migrations/0002_meta.py (100%) rename {apps => rdmo}/questions/migrations/0003_renaming.py (100%) rename {apps => rdmo}/questions/migrations/0004_full_title.py (100%) rename {apps => rdmo}/questions/migrations/0005_label.py (100%) rename {apps => rdmo}/questions/migrations/0006_auto_20160803_1619.py (100%) rename {apps => rdmo}/questions/migrations/0007_refactoring.py (100%) rename {apps => rdmo}/questions/migrations/0008_data_migration.py (100%) rename {apps => rdmo}/questions/migrations/0009_meta.py (100%) rename {apps => rdmo}/questions/migrations/0010_label.py (100%) rename {apps => rdmo}/questions/migrations/0011_path.py (100%) rename {apps => rdmo}/questions/migrations/0012_meta.py (100%) rename {apps => rdmo}/questions/migrations/0013_permissions.py (100%) rename {apps => rdmo}/questions/migrations/0014_meta.py (100%) rename {apps => rdmo}/questions/migrations/__init__.py (100%) rename {apps => rdmo}/questions/models.py (98%) rename {apps => rdmo}/questions/renderers.py (98%) rename {apps => rdmo}/questions/serializers/__init__.py (98%) rename {apps => rdmo}/questions/serializers/api.py (100%) rename {apps => rdmo}/questions/serializers/export.py (100%) rename {apps => rdmo}/questions/serializers/nested.py (98%) rename {apps => rdmo}/questions/static/questions/css/catalogs.scss (100%) rename {apps => rdmo}/questions/static/questions/js/catalogs.js (100%) rename {apps => rdmo}/questions/templates/questions/catalog_export.html (100%) rename {apps => rdmo}/questions/templates/questions/catalog_tree.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_catalogs.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_questions.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_questionsets.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_sections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_subsections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_catalogs.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_questions.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_questionsets.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_sections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_subsections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_options_questions.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_options_questionsets.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_options_sections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_options_subsections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_sidebar.html (100%) rename {apps => rdmo}/questions/tests.py (98%) rename {apps => rdmo}/questions/urls.py (100%) rename {apps => rdmo}/questions/utils.py (98%) rename {apps => rdmo}/questions/validators.py (94%) rename {apps => rdmo}/questions/views.py (93%) rename {apps => rdmo}/questions/viewsets.py (97%) create mode 100644 rdmo/tasks/__init__.py rename {apps => rdmo}/tasks/admin.py (100%) rename {apps => rdmo}/tasks/app_config.py (86%) rename {apps => rdmo}/tasks/managers.py (100%) rename {apps => rdmo}/tasks/migrations/0001_initial.py (93%) rename {apps => rdmo}/tasks/migrations/0002_many_to_many_for_conditions.py (100%) rename {apps => rdmo}/tasks/migrations/0003_meta.py (100%) rename {apps => rdmo}/tasks/migrations/0004_refactoring.py (100%) rename {apps => rdmo}/tasks/migrations/0005_data_migration.py (100%) rename {apps => rdmo}/tasks/migrations/0006_meta.py (100%) rename {apps => rdmo}/tasks/migrations/0007_permissions.py (100%) rename {apps => rdmo}/tasks/migrations/0008_remove_time_period.py (100%) rename {apps => rdmo}/tasks/migrations/0009_timeframe.py (100%) rename {apps => rdmo}/tasks/migrations/0010_meta.py (100%) rename {apps => rdmo}/tasks/migrations/0011_task_text.py (100%) rename {apps => rdmo}/tasks/migrations/__init__.py (100%) rename {apps => rdmo}/tasks/models.py (96%) rename {apps => rdmo}/tasks/renderers.py (97%) rename {apps => rdmo}/tasks/serializers/__init__.py (93%) rename {apps => rdmo}/tasks/serializers/api.py (91%) rename {apps => rdmo}/tasks/serializers/export.py (100%) rename {apps => rdmo}/tasks/static/tasks/css/tasks.scss (100%) rename {apps => rdmo}/tasks/static/tasks/js/tasks.js (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_export.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_modal_delete_tasks.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_modal_form_conditions.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_modal_form_tasks.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_modal_form_timeframes.html (100%) rename {apps => rdmo}/tasks/tests.py (94%) rename {apps => rdmo}/tasks/urls.py (100%) rename {apps => rdmo}/tasks/utils.py (91%) rename {apps => rdmo}/tasks/validators.py (66%) rename {apps => rdmo}/tasks/views.py (92%) rename {apps => rdmo}/tasks/viewsets.py (93%) create mode 100644 rdmo/views/__init__.py rename {apps => rdmo}/views/admin.py (100%) rename {apps => rdmo}/views/app_config.py (86%) rename {apps => rdmo}/views/migrations/0001_initial.py (100%) rename {apps => rdmo}/views/migrations/0002_view_template.py (100%) rename {apps => rdmo}/views/migrations/0003_refactoring.py (100%) rename {apps => rdmo}/views/migrations/0004_refactoring.py (100%) rename {apps => rdmo}/views/migrations/0005_meta.py (100%) rename {apps => rdmo}/views/migrations/0006_title_and_help.py (100%) rename {apps => rdmo}/views/migrations/0007_data_migration.py (100%) rename {apps => rdmo}/views/migrations/0008_permissions.py (100%) rename {apps => rdmo}/views/migrations/0009_meta.py (100%) rename {apps => rdmo}/views/migrations/__init__.py (100%) rename {apps => rdmo}/views/models.py (97%) rename {apps => rdmo}/views/renderers.py (95%) rename {apps => rdmo}/views/serializers/__init__.py (100%) rename {apps => rdmo}/views/serializers/api.py (100%) rename {apps => rdmo}/views/serializers/export.py (100%) rename {apps => rdmo}/views/static/views/css/views.scss (100%) rename {apps => rdmo}/views/static/views/js/views.js (100%) rename {apps => rdmo}/views/templates/views/views.html (100%) rename {apps => rdmo}/views/templates/views/views_export.html (100%) rename {apps => rdmo}/views/templates/views/views_modal_delete_views.html (100%) rename {apps => rdmo}/views/templates/views/views_modal_form_templates.html (100%) rename {apps => rdmo}/views/templates/views/views_modal_form_views.html (100%) rename {apps => rdmo}/views/tests.py (95%) rename {apps => rdmo}/views/urls.py (100%) rename {apps => rdmo}/views/utils.py (89%) rename {apps => rdmo}/views/validators.py (66%) rename {apps => rdmo}/views/views.py (92%) rename {apps => rdmo}/views/viewsets.py (95%) diff --git a/apps/accounts/__init__.py b/apps/accounts/__init__.py deleted file mode 100644 index 6e06525b9..000000000 --- a/apps/accounts/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.accounts.app_config.AccountsConfig' diff --git a/apps/conditions/__init__.py b/apps/conditions/__init__.py deleted file mode 100644 index e7a64215d..000000000 --- a/apps/conditions/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.conditions.app_config.ConditionsConfig' diff --git a/apps/domain/__init__.py b/apps/domain/__init__.py deleted file mode 100644 index d68550164..000000000 --- a/apps/domain/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.domain.app_config.DomainConfig' diff --git a/apps/options/__init__.py b/apps/options/__init__.py deleted file mode 100644 index 48f8b231a..000000000 --- a/apps/options/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.options.app_config.OptionsConfig' diff --git a/apps/projects/__init__.py b/apps/projects/__init__.py deleted file mode 100644 index db9141a74..000000000 --- a/apps/projects/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.projects.app_config.ProjectsConfig' diff --git a/apps/questions/__init__.py b/apps/questions/__init__.py deleted file mode 100644 index 3fde3709c..000000000 --- a/apps/questions/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.questions.app_config.QuestionsConfig' diff --git a/apps/tasks/__init__.py b/apps/tasks/__init__.py deleted file mode 100644 index 00803b70b..000000000 --- a/apps/tasks/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.tasks.app_config.TasksConfig' diff --git a/apps/views/__init__.py b/apps/views/__init__.py deleted file mode 100644 index 0bb989e90..000000000 --- a/apps/views/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.views.app_config.ViewsConfig' diff --git a/apps/__init__.py b/config/__init__.py similarity index 100% rename from apps/__init__.py rename to config/__init__.py diff --git a/rdmo/settings/__init__.py b/config/settings/__init__.py similarity index 100% rename from rdmo/settings/__init__.py rename to config/settings/__init__.py diff --git a/rdmo/settings/base.py b/config/settings/base.py similarity index 95% rename from rdmo/settings/base.py rename to config/settings/base.py index 778810ab2..fcc4e0ae0 100644 --- a/rdmo/settings/base.py +++ b/config/settings/base.py @@ -25,15 +25,15 @@ 'django.contrib.staticfiles', 'django.contrib.sites', # rdmo modules - 'apps.core', - 'apps.accounts', - 'apps.domain', - 'apps.options', - 'apps.conditions', - 'apps.questions', - 'apps.tasks', - 'apps.views', - 'apps.projects', + 'rdmo.core', + 'rdmo.accounts', + 'rdmo.domain', + 'rdmo.options', + 'rdmo.conditions', + 'rdmo.questions', + 'rdmo.tasks', + 'rdmo.views', + 'rdmo.projects', # 3rd party modules 'rest_framework', 'rest_framework.authtoken', @@ -59,7 +59,7 @@ 'django.contrib.sites.middleware.CurrentSiteMiddleware' ] -ROOT_URLCONF = 'rdmo.urls' +ROOT_URLCONF = 'config.urls' TEMPLATES = [ { @@ -82,7 +82,7 @@ ('text/x-scss', 'django_libsass.SassCompiler'), ) -WSGI_APPLICATION = 'rdmo.wsgi.application' +WSGI_APPLICATION = 'config.wsgi.application' DATABASES = { 'default': { diff --git a/config/settings/local.py b/config/settings/local.py new file mode 100644 index 000000000..ea748d21b --- /dev/null +++ b/config/settings/local.py @@ -0,0 +1,157 @@ +import os +from .base import BASE_DIR, INSTALLED_APPS, AUTHENTICATION_BACKENDS, MIDDLEWARE_CLASSES + +DEBUG = True + +ALLOWED_HOSTS = ['localhost', 'ip6-localhost', '127.0.0.1', '[::1]'] + +# BASE_URL = '/foo' + +# THEME_DIR = os.path.join(BASE_DIR, 'themes/bwFDM-info') + +# DATABASES = { +# 'default': { +# 'ENGINE': 'django.db.backends.postgresql_psycopg2', +# 'NAME': 'rdmo', +# # 'NAME': 'rdmo_catalog' +# } +# } + +# DATABASES = { +# 'default': { +# 'ENGINE': 'django.db.backends.mysql', +# 'NAME': 'rdmo', +# 'USER': 'rdmo', +# 'PASSWORD': 'rdmo', +# } +# } + +''' +ALLAUTH +''' + +# INSTALLED_APPS += [ +# 'allauth', +# 'allauth.account', +# # 'allauth.socialaccount' +# # 'allauth.socialaccount.providers.facebook', +# # 'allauth.socialaccount.providers.github', +# # 'allauth.socialaccount.providers.google', +# # 'allauth.socialaccount.providers.orcid', +# # 'allauth.socialaccount.providers.twitter', +# ] + +# ACCOUNT = True +# ACCOUNT_SIGNUP = True +# SOCIALACCOUNT = False + +''' +LDAP +''' + +# PROFILE_UPDATE = False +# +# import ldap +# from django_auth_ldap.config import LDAPSearch +# +# AUTH_LDAP_SERVER_URI = "ldap://idp.vbox" +# AUTH_LDAP_BIND_DN = "cn=admin,dc=ldap,dc=vbox" +# AUTH_LDAP_BIND_PASSWORD = "admin" +# AUTH_LDAP_USER_SEARCH = LDAPSearch("dc=ldap,dc=vbox", ldap.SCOPE_SUBTREE, "(uid=%(user)s)") +# +# AUTH_LDAP_USER_ATTR_MAP = { +# "first_name": "givenName", +# "last_name": "sn", +# 'email': 'mail' +# } +# +# AUTHENTICATION_BACKENDS.insert( +# AUTHENTICATION_BACKENDS.index('django.contrib.auth.backends.ModelBackend'), +# 'django_auth_ldap.backend.LDAPBackend' +# ) + +''' +Shibboleth +''' + +# SHIBBOLETH = True +# PROFILE_UPDATE = False +# +# INSTALLED_APPS += ['shibboleth'] +# +# SHIBBOLETH_ATTRIBUTE_MAP = { +# 'uid': (True, 'username'), +# 'givenName': (True, 'first_name'), +# 'sn': (True, 'last_name'), +# 'mail': (True, 'email'), +# } +# +# AUTHENTICATION_BACKENDS.append('shibboleth.backends.ShibbolethRemoteUserBackend') +# +# MIDDLEWARE_CLASSES.insert( +# MIDDLEWARE_CLASSES.index('django.contrib.auth.middleware.AuthenticationMiddleware') + 1, +# 'shibboleth.middleware.ShibbolethRemoteUserMiddleware' +# ) +# +# LOGIN_URL = '/Shibboleth.sso/Login?target=/projects' +# LOGOUT_URL = '/Shibboleth.sso/Logout' + +''' +Cache +''' + +# CACHES = { +# 'default': { +# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', +# 'LOCATION': '127.0.0.1:11211', +# 'KEY_PREFIX': 'rdmo' +# }, +# 'api': { +# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', +# 'LOCATION': '127.0.0.1:11211', +# 'KEY_PREFIX': 'rdmo_api' +# } +# } + +''' +Logging +''' + +# LOGGING = { +# 'disable_existing_loggers': False, +# 'version': 1, +# 'handlers': { +# 'sql': { +# 'class': 'logging.FileHandler', +# 'level': 'DEBUG', +# 'filename': '/var/log/django/sql.log', +# }, +# 'rules': { +# 'class': 'logging.FileHandler', +# 'level': 'DEBUG', +# 'filename': '/var/log/django/rules.log', +# }, +# 'ldap': { +# 'class': 'logging.FileHandler', +# 'level': 'DEBUG', +# 'filename': '/var/log/django/ldap.log', +# }, +# }, +# 'loggers': { +# 'django.db.backends': { +# 'handlers': ['sql'], +# 'level': 'DEBUG', +# 'propagate': False, +# }, +# 'rules': { +# 'handlers': ['rules'], +# 'level': 'DEBUG', +# 'propagate': True, +# }, +# 'django_auth_ldap': { +# 'handlers': ['ldap'], +# 'level': 'DEBUG', +# 'propagate': False, +# }, +# }, +# } diff --git a/rdmo/settings/sample.local.py b/config/settings/sample.local.py similarity index 100% rename from rdmo/settings/sample.local.py rename to config/settings/sample.local.py diff --git a/rdmo/urls.py b/config/urls.py similarity index 81% rename from rdmo/urls.py rename to config/urls.py index 5684dfe0f..095885056 100644 --- a/rdmo/urls.py +++ b/config/urls.py @@ -1,16 +1,16 @@ from django.conf.urls import include, url from django.contrib import admin -from apps.core.views import home, i18n_switcher - -from apps.accounts.urls import accounts_patterns, accounts_patterns_api -from apps.conditions.urls import conditions_patterns, conditions_patterns_internal, conditions_patterns_api -from apps.domain.urls import domain_patterns, domain_patterns_internal, domain_patterns_api -from apps.options.urls import options_patterns, options_patterns_internal, options_patterns_api -from apps.projects.urls import projects_patterns, projects_patterns_internal, projects_patterns_api -from apps.questions.urls import questions_patterns, questions_patterns_internal, questions_patterns_api -from apps.tasks.urls import tasks_patterns, tasks_patterns_internal, tasks_patterns_api -from apps.views.urls import views_patterns, views_patterns_internal, views_patterns_api +from rdmo.core.views import home, i18n_switcher + +from rdmo.accounts.urls import accounts_patterns, accounts_patterns_api +from rdmo.conditions.urls import conditions_patterns, conditions_patterns_internal, conditions_patterns_api +from rdmo.domain.urls import domain_patterns, domain_patterns_internal, domain_patterns_api +from rdmo.options.urls import options_patterns, options_patterns_internal, options_patterns_api +from rdmo.projects.urls import projects_patterns, projects_patterns_internal, projects_patterns_api +from rdmo.questions.urls import questions_patterns, questions_patterns_internal, questions_patterns_api +from rdmo.tasks.urls import tasks_patterns, tasks_patterns_internal, tasks_patterns_api +from rdmo.views.urls import views_patterns, views_patterns_internal, views_patterns_api urlpatterns = [ diff --git a/rdmo/wsgi.py b/config/wsgi.py similarity index 59% rename from rdmo/wsgi.py rename to config/wsgi.py index 578412e7e..850933564 100644 --- a/rdmo/wsgi.py +++ b/config/wsgi.py @@ -2,6 +2,6 @@ from django.core.wsgi import get_wsgi_application -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rdmo.settings") +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings") application = get_wsgi_application() diff --git a/manage.py b/manage.py index 36f1459e9..5ec273e19 100755 --- a/manage.py +++ b/manage.py @@ -3,7 +3,7 @@ import sys if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rdmo.settings") + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings") from django.core.management import execute_from_command_line diff --git a/rdmo/accounts/__init__.py b/rdmo/accounts/__init__.py new file mode 100644 index 000000000..ded192917 --- /dev/null +++ b/rdmo/accounts/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.accounts.app_config.AccountsConfig' diff --git a/apps/accounts/adapter.py b/rdmo/accounts/adapter.py similarity index 100% rename from apps/accounts/adapter.py rename to rdmo/accounts/adapter.py diff --git a/apps/accounts/admin.py b/rdmo/accounts/admin.py similarity index 100% rename from apps/accounts/admin.py rename to rdmo/accounts/admin.py diff --git a/apps/accounts/app_config.py b/rdmo/accounts/app_config.py similarity index 85% rename from apps/accounts/app_config.py rename to rdmo/accounts/app_config.py index 02704c503..40e2233ca 100644 --- a/apps/accounts/app_config.py +++ b/rdmo/accounts/app_config.py @@ -3,5 +3,5 @@ class AccountsConfig(AppConfig): - name = 'apps.accounts' + name = 'rdmo.accounts' verbose_name = _('Accounts') diff --git a/apps/accounts/forms.py b/rdmo/accounts/forms.py similarity index 100% rename from apps/accounts/forms.py rename to rdmo/accounts/forms.py diff --git a/apps/accounts/migrations/0001_initial.py b/rdmo/accounts/migrations/0001_initial.py similarity index 100% rename from apps/accounts/migrations/0001_initial.py rename to rdmo/accounts/migrations/0001_initial.py diff --git a/apps/accounts/migrations/0002_detail_key_type_field_length_increased.py b/rdmo/accounts/migrations/0002_detail_key_type_field_length_increased.py similarity index 100% rename from apps/accounts/migrations/0002_detail_key_type_field_length_increased.py rename to rdmo/accounts/migrations/0002_detail_key_type_field_length_increased.py diff --git a/apps/accounts/migrations/0003_hint_renamed_to_help_text.py b/rdmo/accounts/migrations/0003_hint_renamed_to_help_text.py similarity index 100% rename from apps/accounts/migrations/0003_hint_renamed_to_help_text.py rename to rdmo/accounts/migrations/0003_hint_renamed_to_help_text.py diff --git a/apps/accounts/migrations/0004_permission_added.py b/rdmo/accounts/migrations/0004_permission_added.py similarity index 100% rename from apps/accounts/migrations/0004_permission_added.py rename to rdmo/accounts/migrations/0004_permission_added.py diff --git a/apps/accounts/migrations/0005_field_type.py b/rdmo/accounts/migrations/0005_field_type.py similarity index 100% rename from apps/accounts/migrations/0005_field_type.py rename to rdmo/accounts/migrations/0005_field_type.py diff --git a/apps/accounts/migrations/0006_permissions_removed.py b/rdmo/accounts/migrations/0006_permissions_removed.py similarity index 100% rename from apps/accounts/migrations/0006_permissions_removed.py rename to rdmo/accounts/migrations/0006_permissions_removed.py diff --git a/apps/accounts/migrations/0007_additional_fields.py b/rdmo/accounts/migrations/0007_additional_fields.py similarity index 94% rename from apps/accounts/migrations/0007_additional_fields.py rename to rdmo/accounts/migrations/0007_additional_fields.py index 8faf7bf2e..e87eb0d06 100644 --- a/apps/accounts/migrations/0007_additional_fields.py +++ b/rdmo/accounts/migrations/0007_additional_fields.py @@ -2,7 +2,11 @@ # Generated by Django 1.9 on 2016-11-14 12:13 from __future__ import unicode_literals -import apps.core.models +try: + import rdmo.core.models +except ImportError: + import rdmo.core.models + from django.conf import settings from django.db import migrations, models import django.db.models.deletion @@ -33,7 +37,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Additional field', 'verbose_name_plural': 'Additional fields', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='AdditionalFieldValue', diff --git a/apps/accounts/migrations/0008_related_name.py b/rdmo/accounts/migrations/0008_related_name.py similarity index 100% rename from apps/accounts/migrations/0008_related_name.py rename to rdmo/accounts/migrations/0008_related_name.py diff --git a/apps/accounts/migrations/0009_proxyuser.py b/rdmo/accounts/migrations/0009_proxyuser.py similarity index 100% rename from apps/accounts/migrations/0009_proxyuser.py rename to rdmo/accounts/migrations/0009_proxyuser.py diff --git a/apps/accounts/migrations/__init__.py b/rdmo/accounts/migrations/__init__.py similarity index 100% rename from apps/accounts/migrations/__init__.py rename to rdmo/accounts/migrations/__init__.py diff --git a/apps/accounts/models.py b/rdmo/accounts/models.py similarity index 97% rename from apps/accounts/models.py rename to rdmo/accounts/models.py index ebc5e5212..e7a0e26ad 100644 --- a/apps/accounts/models.py +++ b/rdmo/accounts/models.py @@ -5,7 +5,7 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.models import TranslationMixin +from rdmo.core.models import TranslationMixin class ProxyUser(User): diff --git a/apps/accounts/serializers/__init__.py b/rdmo/accounts/serializers/__init__.py similarity index 100% rename from apps/accounts/serializers/__init__.py rename to rdmo/accounts/serializers/__init__.py diff --git a/apps/accounts/serializers/api.py b/rdmo/accounts/serializers/api.py similarity index 100% rename from apps/accounts/serializers/api.py rename to rdmo/accounts/serializers/api.py diff --git a/apps/accounts/settings.py b/rdmo/accounts/settings.py similarity index 100% rename from apps/accounts/settings.py rename to rdmo/accounts/settings.py diff --git a/apps/accounts/templates/account/email.html b/rdmo/accounts/templates/account/email.html similarity index 100% rename from apps/accounts/templates/account/email.html rename to rdmo/accounts/templates/account/email.html diff --git a/apps/accounts/templates/account/email/password_reset_key_message.txt b/rdmo/accounts/templates/account/email/password_reset_key_message.txt similarity index 100% rename from apps/accounts/templates/account/email/password_reset_key_message.txt rename to rdmo/accounts/templates/account/email/password_reset_key_message.txt diff --git a/apps/accounts/templates/account/email/password_reset_key_subject.txt b/rdmo/accounts/templates/account/email/password_reset_key_subject.txt similarity index 100% rename from apps/accounts/templates/account/email/password_reset_key_subject.txt rename to rdmo/accounts/templates/account/email/password_reset_key_subject.txt diff --git a/apps/accounts/templates/account/email_confirm.html b/rdmo/accounts/templates/account/email_confirm.html similarity index 100% rename from apps/accounts/templates/account/email_confirm.html rename to rdmo/accounts/templates/account/email_confirm.html diff --git a/apps/accounts/templates/account/login.html b/rdmo/accounts/templates/account/login.html similarity index 100% rename from apps/accounts/templates/account/login.html rename to rdmo/accounts/templates/account/login.html diff --git a/apps/accounts/templates/account/login_form.html b/rdmo/accounts/templates/account/login_form.html similarity index 100% rename from apps/accounts/templates/account/login_form.html rename to rdmo/accounts/templates/account/login_form.html diff --git a/apps/accounts/templates/account/login_form_account.html b/rdmo/accounts/templates/account/login_form_account.html similarity index 100% rename from apps/accounts/templates/account/login_form_account.html rename to rdmo/accounts/templates/account/login_form_account.html diff --git a/apps/accounts/templates/account/login_form_socialaccount.html b/rdmo/accounts/templates/account/login_form_socialaccount.html similarity index 100% rename from apps/accounts/templates/account/login_form_socialaccount.html rename to rdmo/accounts/templates/account/login_form_socialaccount.html diff --git a/apps/accounts/templates/account/logout.html b/rdmo/accounts/templates/account/logout.html similarity index 100% rename from apps/accounts/templates/account/logout.html rename to rdmo/accounts/templates/account/logout.html diff --git a/apps/accounts/templates/account/logout_form.html b/rdmo/accounts/templates/account/logout_form.html similarity index 100% rename from apps/accounts/templates/account/logout_form.html rename to rdmo/accounts/templates/account/logout_form.html diff --git a/apps/accounts/templates/account/password_change.html b/rdmo/accounts/templates/account/password_change.html similarity index 100% rename from apps/accounts/templates/account/password_change.html rename to rdmo/accounts/templates/account/password_change.html diff --git a/apps/accounts/templates/account/password_reset.html b/rdmo/accounts/templates/account/password_reset.html similarity index 100% rename from apps/accounts/templates/account/password_reset.html rename to rdmo/accounts/templates/account/password_reset.html diff --git a/apps/accounts/templates/account/password_reset_done.html b/rdmo/accounts/templates/account/password_reset_done.html similarity index 100% rename from apps/accounts/templates/account/password_reset_done.html rename to rdmo/accounts/templates/account/password_reset_done.html diff --git a/apps/accounts/templates/account/password_reset_from_key.html b/rdmo/accounts/templates/account/password_reset_from_key.html similarity index 100% rename from apps/accounts/templates/account/password_reset_from_key.html rename to rdmo/accounts/templates/account/password_reset_from_key.html diff --git a/apps/accounts/templates/account/password_reset_from_key_done.html b/rdmo/accounts/templates/account/password_reset_from_key_done.html similarity index 100% rename from apps/accounts/templates/account/password_reset_from_key_done.html rename to rdmo/accounts/templates/account/password_reset_from_key_done.html diff --git a/apps/accounts/templates/account/password_set.html b/rdmo/accounts/templates/account/password_set.html similarity index 100% rename from apps/accounts/templates/account/password_set.html rename to rdmo/accounts/templates/account/password_set.html diff --git a/apps/accounts/templates/account/signup.html b/rdmo/accounts/templates/account/signup.html similarity index 100% rename from apps/accounts/templates/account/signup.html rename to rdmo/accounts/templates/account/signup.html diff --git a/apps/accounts/templates/account/signup_closed.html b/rdmo/accounts/templates/account/signup_closed.html similarity index 100% rename from apps/accounts/templates/account/signup_closed.html rename to rdmo/accounts/templates/account/signup_closed.html diff --git a/apps/accounts/templates/account/verification_sent.html b/rdmo/accounts/templates/account/verification_sent.html similarity index 100% rename from apps/accounts/templates/account/verification_sent.html rename to rdmo/accounts/templates/account/verification_sent.html diff --git a/apps/accounts/templates/account/verified_email_required.html b/rdmo/accounts/templates/account/verified_email_required.html similarity index 100% rename from apps/accounts/templates/account/verified_email_required.html rename to rdmo/accounts/templates/account/verified_email_required.html diff --git a/apps/accounts/templates/profile/profile_update_closed.html b/rdmo/accounts/templates/profile/profile_update_closed.html similarity index 100% rename from apps/accounts/templates/profile/profile_update_closed.html rename to rdmo/accounts/templates/profile/profile_update_closed.html diff --git a/apps/accounts/templates/profile/profile_update_form.html b/rdmo/accounts/templates/profile/profile_update_form.html similarity index 100% rename from apps/accounts/templates/profile/profile_update_form.html rename to rdmo/accounts/templates/profile/profile_update_form.html diff --git a/apps/accounts/templates/socialaccount/authentication_error.html b/rdmo/accounts/templates/socialaccount/authentication_error.html similarity index 100% rename from apps/accounts/templates/socialaccount/authentication_error.html rename to rdmo/accounts/templates/socialaccount/authentication_error.html diff --git a/apps/accounts/templates/socialaccount/connections.html b/rdmo/accounts/templates/socialaccount/connections.html similarity index 100% rename from apps/accounts/templates/socialaccount/connections.html rename to rdmo/accounts/templates/socialaccount/connections.html diff --git a/apps/accounts/templates/socialaccount/login_cancelled.html b/rdmo/accounts/templates/socialaccount/login_cancelled.html similarity index 100% rename from apps/accounts/templates/socialaccount/login_cancelled.html rename to rdmo/accounts/templates/socialaccount/login_cancelled.html diff --git a/apps/accounts/templates/socialaccount/signup.html b/rdmo/accounts/templates/socialaccount/signup.html similarity index 100% rename from apps/accounts/templates/socialaccount/signup.html rename to rdmo/accounts/templates/socialaccount/signup.html diff --git a/apps/accounts/templates/socialaccount/snippets/provider_list.html b/rdmo/accounts/templates/socialaccount/snippets/provider_list.html similarity index 100% rename from apps/accounts/templates/socialaccount/snippets/provider_list.html rename to rdmo/accounts/templates/socialaccount/snippets/provider_list.html diff --git a/apps/accounts/templatetags/__init__.py b/rdmo/accounts/templatetags/__init__.py similarity index 100% rename from apps/accounts/templatetags/__init__.py rename to rdmo/accounts/templatetags/__init__.py diff --git a/apps/accounts/templatetags/accounts_tags.py b/rdmo/accounts/templatetags/accounts_tags.py similarity index 100% rename from apps/accounts/templatetags/accounts_tags.py rename to rdmo/accounts/templatetags/accounts_tags.py diff --git a/apps/accounts/tests.py b/rdmo/accounts/tests.py similarity index 99% rename from apps/accounts/tests.py rename to rdmo/accounts/tests.py index 57ca030c9..b59af79f1 100644 --- a/apps/accounts/tests.py +++ b/rdmo/accounts/tests.py @@ -10,7 +10,7 @@ from test_generator.core import TestModelStringMixin from test_generator.viewsets import TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.accounts.utils import set_group_permissions +from rdmo.accounts.utils import set_group_permissions class AccountsTestCase(TestCase): diff --git a/apps/accounts/urls.py b/rdmo/accounts/urls.py similarity index 100% rename from apps/accounts/urls.py rename to rdmo/accounts/urls.py diff --git a/apps/accounts/utils.py b/rdmo/accounts/utils.py similarity index 100% rename from apps/accounts/utils.py rename to rdmo/accounts/utils.py diff --git a/apps/accounts/views.py b/rdmo/accounts/views.py similarity index 93% rename from apps/accounts/views.py rename to rdmo/accounts/views.py index c75a679d2..397a48f0c 100644 --- a/apps/accounts/views.py +++ b/rdmo/accounts/views.py @@ -2,7 +2,7 @@ from django.shortcuts import render from django.contrib.auth.decorators import login_required from django.http import HttpResponseRedirect -from apps.core.utils import get_referer_path_info, get_next +from rdmo.core.utils import get_referer_path_info, get_next from .forms import ProfileForm diff --git a/apps/accounts/viewsets.py b/rdmo/accounts/viewsets.py similarity index 92% rename from apps/accounts/viewsets.py rename to rdmo/accounts/viewsets.py index 22a583c96..fc87912c1 100644 --- a/apps/accounts/viewsets.py +++ b/rdmo/accounts/viewsets.py @@ -4,7 +4,7 @@ from rest_framework.filters import DjangoFilterBackend from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.permissions import HasModelPermission +from rdmo.core.permissions import HasModelPermission from .serializers.api import ( UserSerializer as UserApiSerializer, diff --git a/rdmo/conditions/__init__.py b/rdmo/conditions/__init__.py new file mode 100644 index 000000000..5a1e57750 --- /dev/null +++ b/rdmo/conditions/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.conditions.app_config.ConditionsConfig' diff --git a/apps/conditions/admin.py b/rdmo/conditions/admin.py similarity index 100% rename from apps/conditions/admin.py rename to rdmo/conditions/admin.py diff --git a/apps/conditions/app_config.py b/rdmo/conditions/app_config.py similarity index 84% rename from apps/conditions/app_config.py rename to rdmo/conditions/app_config.py index 26084152c..b03842b3a 100644 --- a/apps/conditions/app_config.py +++ b/rdmo/conditions/app_config.py @@ -3,5 +3,5 @@ class ConditionsConfig(AppConfig): - name = 'apps.conditions' + name = 'rdmo.conditions' verbose_name = _('Conditions') diff --git a/apps/conditions/migrations/0001_initial.py b/rdmo/conditions/migrations/0001_initial.py similarity index 100% rename from apps/conditions/migrations/0001_initial.py rename to rdmo/conditions/migrations/0001_initial.py diff --git a/apps/conditions/migrations/0002_many_to_many_for_conditions.py b/rdmo/conditions/migrations/0002_many_to_many_for_conditions.py similarity index 100% rename from apps/conditions/migrations/0002_many_to_many_for_conditions.py rename to rdmo/conditions/migrations/0002_many_to_many_for_conditions.py diff --git a/apps/conditions/migrations/0003_meta.py b/rdmo/conditions/migrations/0003_meta.py similarity index 100% rename from apps/conditions/migrations/0003_meta.py rename to rdmo/conditions/migrations/0003_meta.py diff --git a/apps/conditions/migrations/0004_condition_title.py b/rdmo/conditions/migrations/0004_condition_title.py similarity index 100% rename from apps/conditions/migrations/0004_condition_title.py rename to rdmo/conditions/migrations/0004_condition_title.py diff --git a/apps/conditions/migrations/0005_empty_relation.py b/rdmo/conditions/migrations/0005_empty_relation.py similarity index 100% rename from apps/conditions/migrations/0005_empty_relation.py rename to rdmo/conditions/migrations/0005_empty_relation.py diff --git a/apps/conditions/migrations/0006_db_constraint_false.py b/rdmo/conditions/migrations/0006_db_constraint_false.py similarity index 100% rename from apps/conditions/migrations/0006_db_constraint_false.py rename to rdmo/conditions/migrations/0006_db_constraint_false.py diff --git a/apps/conditions/migrations/0007_ordering.py b/rdmo/conditions/migrations/0007_ordering.py similarity index 100% rename from apps/conditions/migrations/0007_ordering.py rename to rdmo/conditions/migrations/0007_ordering.py diff --git a/apps/conditions/migrations/0008_validator.py b/rdmo/conditions/migrations/0008_validator.py similarity index 100% rename from apps/conditions/migrations/0008_validator.py rename to rdmo/conditions/migrations/0008_validator.py diff --git a/apps/conditions/migrations/0009_options.py b/rdmo/conditions/migrations/0009_options.py similarity index 100% rename from apps/conditions/migrations/0009_options.py rename to rdmo/conditions/migrations/0009_options.py diff --git a/apps/conditions/migrations/0010_refactoring.py b/rdmo/conditions/migrations/0010_refactoring.py similarity index 100% rename from apps/conditions/migrations/0010_refactoring.py rename to rdmo/conditions/migrations/0010_refactoring.py diff --git a/apps/conditions/migrations/0011_refactoring.py b/rdmo/conditions/migrations/0011_refactoring.py similarity index 100% rename from apps/conditions/migrations/0011_refactoring.py rename to rdmo/conditions/migrations/0011_refactoring.py diff --git a/apps/conditions/migrations/0012_permissions.py b/rdmo/conditions/migrations/0012_permissions.py similarity index 100% rename from apps/conditions/migrations/0012_permissions.py rename to rdmo/conditions/migrations/0012_permissions.py diff --git a/apps/conditions/migrations/0013_meta.py b/rdmo/conditions/migrations/0013_meta.py similarity index 100% rename from apps/conditions/migrations/0013_meta.py rename to rdmo/conditions/migrations/0013_meta.py diff --git a/apps/conditions/migrations/__init__.py b/rdmo/conditions/migrations/__init__.py similarity index 100% rename from apps/conditions/migrations/__init__.py rename to rdmo/conditions/migrations/__init__.py diff --git a/apps/conditions/models.py b/rdmo/conditions/models.py similarity index 99% rename from apps/conditions/models.py rename to rdmo/conditions/models.py index 84134307f..43490a14f 100644 --- a/apps/conditions/models.py +++ b/rdmo/conditions/models.py @@ -4,7 +4,7 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_uri_prefix +from rdmo.core.utils import get_uri_prefix from .validators import ConditionUniqueKeyValidator diff --git a/apps/conditions/renderers.py b/rdmo/conditions/renderers.py similarity index 95% rename from apps/conditions/renderers.py rename to rdmo/conditions/renderers.py index 3374af8fe..f22a3ff55 100644 --- a/apps/conditions/renderers.py +++ b/rdmo/conditions/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/conditions/serializers/__init__.py b/rdmo/conditions/serializers/__init__.py similarity index 95% rename from apps/conditions/serializers/__init__.py rename to rdmo/conditions/serializers/__init__.py index 2995f2052..c94cd2966 100644 --- a/apps/conditions/serializers/__init__.py +++ b/rdmo/conditions/serializers/__init__.py @@ -1,7 +1,7 @@ from rest_framework import serializers -from apps.domain.models import Attribute -from apps.options.models import OptionSet, Option +from rdmo.domain.models import Attribute +from rdmo.options.models import OptionSet, Option from ..models import Condition from ..validators import ConditionUniqueKeyValidator diff --git a/apps/conditions/serializers/api.py b/rdmo/conditions/serializers/api.py similarity index 100% rename from apps/conditions/serializers/api.py rename to rdmo/conditions/serializers/api.py diff --git a/apps/conditions/serializers/export.py b/rdmo/conditions/serializers/export.py similarity index 100% rename from apps/conditions/serializers/export.py rename to rdmo/conditions/serializers/export.py diff --git a/apps/conditions/static/conditions/css/conditions.scss b/rdmo/conditions/static/conditions/css/conditions.scss similarity index 100% rename from apps/conditions/static/conditions/css/conditions.scss rename to rdmo/conditions/static/conditions/css/conditions.scss diff --git a/apps/conditions/static/conditions/js/conditions.js b/rdmo/conditions/static/conditions/js/conditions.js similarity index 100% rename from apps/conditions/static/conditions/js/conditions.js rename to rdmo/conditions/static/conditions/js/conditions.js diff --git a/apps/conditions/templates/conditions/conditions.html b/rdmo/conditions/templates/conditions/conditions.html similarity index 100% rename from apps/conditions/templates/conditions/conditions.html rename to rdmo/conditions/templates/conditions/conditions.html diff --git a/apps/conditions/templates/conditions/conditions_export.html b/rdmo/conditions/templates/conditions/conditions_export.html similarity index 100% rename from apps/conditions/templates/conditions/conditions_export.html rename to rdmo/conditions/templates/conditions/conditions_export.html diff --git a/apps/conditions/templates/conditions/conditions_modal_delete_conditions.html b/rdmo/conditions/templates/conditions/conditions_modal_delete_conditions.html similarity index 100% rename from apps/conditions/templates/conditions/conditions_modal_delete_conditions.html rename to rdmo/conditions/templates/conditions/conditions_modal_delete_conditions.html diff --git a/apps/conditions/templates/conditions/conditions_modal_form_conditions.html b/rdmo/conditions/templates/conditions/conditions_modal_form_conditions.html similarity index 100% rename from apps/conditions/templates/conditions/conditions_modal_form_conditions.html rename to rdmo/conditions/templates/conditions/conditions_modal_form_conditions.html diff --git a/apps/conditions/tests.py b/rdmo/conditions/tests.py similarity index 94% rename from apps/conditions/tests.py rename to rdmo/conditions/tests.py index 1fe160466..1ff107148 100644 --- a/apps/conditions/tests.py +++ b/rdmo/conditions/tests.py @@ -3,9 +3,9 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions -from apps.domain.models import Attribute +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions +from rdmo.domain.models import Attribute from .models import Condition diff --git a/apps/conditions/urls.py b/rdmo/conditions/urls.py similarity index 100% rename from apps/conditions/urls.py rename to rdmo/conditions/urls.py diff --git a/apps/conditions/utils.py b/rdmo/conditions/utils.py similarity index 91% rename from apps/conditions/utils.py rename to rdmo/conditions/utils.py index 13c3527bb..50b807695 100644 --- a/apps/conditions/utils.py +++ b/rdmo/conditions/utils.py @@ -1,6 +1,6 @@ -from apps.core.utils import get_ns_tag -from apps.domain.models import Attribute -from apps.options.models import Option +from rdmo.core.utils import get_ns_tag +from rdmo.domain.models import Attribute +from rdmo.options.models import Option from .models import Condition diff --git a/apps/conditions/validators.py b/rdmo/conditions/validators.py similarity index 69% rename from apps/conditions/validators.py rename to rdmo/conditions/validators.py index cd0483e60..7ff3aaa18 100644 --- a/apps/conditions/validators.py +++ b/rdmo/conditions/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator +from rdmo.core.validators import UniqueKeyValidator class ConditionUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/conditions/views.py b/rdmo/conditions/views.py similarity index 93% rename from apps/conditions/views.py rename to rdmo/conditions/views.py index ced83c38a..d28c32d39 100644 --- a/apps/conditions/views.py +++ b/rdmo/conditions/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import Condition from .serializers.export import ConditionSerializer as ExportSerializer diff --git a/apps/conditions/viewsets.py b/rdmo/conditions/viewsets.py similarity index 92% rename from apps/conditions/viewsets.py rename to rdmo/conditions/viewsets.py index a55b61fed..2b210e766 100644 --- a/apps/conditions/viewsets.py +++ b/rdmo/conditions/viewsets.py @@ -6,12 +6,12 @@ from rest_framework.status import HTTP_400_BAD_REQUEST, HTTP_404_NOT_FOUND from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.views import ChoicesViewSet -from apps.core.permissions import HasModelPermission +from rdmo.core.views import ChoicesViewSet +from rdmo.core.permissions import HasModelPermission -from apps.domain.models import Attribute -from apps.options.models import OptionSet -from apps.projects.models import Snapshot +from rdmo.domain.models import Attribute +from rdmo.options.models import OptionSet +from rdmo.projects.models import Snapshot from .models import Condition from .serializers import ( diff --git a/apps/core/__init__.py b/rdmo/core/__init__.py similarity index 100% rename from apps/core/__init__.py rename to rdmo/core/__init__.py diff --git a/apps/core/exceptions.py b/rdmo/core/exceptions.py similarity index 100% rename from apps/core/exceptions.py rename to rdmo/core/exceptions.py diff --git a/apps/core/management/__init__.py b/rdmo/core/management/__init__.py similarity index 100% rename from apps/core/management/__init__.py rename to rdmo/core/management/__init__.py diff --git a/apps/core/management/commands/__init__.py b/rdmo/core/management/commands/__init__.py similarity index 100% rename from apps/core/management/commands/__init__.py rename to rdmo/core/management/commands/__init__.py diff --git a/apps/core/management/commands/coverage.py b/rdmo/core/management/commands/coverage.py similarity index 100% rename from apps/core/management/commands/coverage.py rename to rdmo/core/management/commands/coverage.py diff --git a/apps/core/management/commands/create-admin-user.py b/rdmo/core/management/commands/create-admin-user.py similarity index 100% rename from apps/core/management/commands/create-admin-user.py rename to rdmo/core/management/commands/create-admin-user.py diff --git a/apps/core/management/commands/create-groups.py b/rdmo/core/management/commands/create-groups.py similarity index 92% rename from apps/core/management/commands/create-groups.py rename to rdmo/core/management/commands/create-groups.py index f41ec6e06..5b2aa7b28 100644 --- a/apps/core/management/commands/create-groups.py +++ b/rdmo/core/management/commands/create-groups.py @@ -1,7 +1,7 @@ from django.core.management.base import BaseCommand from django.contrib.auth.models import Group, Permission -from apps.accounts.settings import GROUPS +from rdmo.accounts.settings import GROUPS class Command(BaseCommand): diff --git a/apps/core/management/commands/deploy.py b/rdmo/core/management/commands/deploy.py similarity index 100% rename from apps/core/management/commands/deploy.py rename to rdmo/core/management/commands/deploy.py diff --git a/apps/core/management/commands/import.py b/rdmo/core/management/commands/import.py similarity index 81% rename from apps/core/management/commands/import.py rename to rdmo/core/management/commands/import.py index 53e327611..0a1c8a7ae 100644 --- a/apps/core/management/commands/import.py +++ b/rdmo/core/management/commands/import.py @@ -3,13 +3,13 @@ from django.contrib.auth.models import User from django.core.management.base import BaseCommand, CommandError -from apps.conditions.utils import import_conditions -from apps.options.utils import import_options -from apps.domain.utils import import_domain -from apps.questions.utils import import_catalog -from apps.tasks.utils import import_tasks -from apps.views.utils import import_views -from apps.projects.utils import import_projects +from rdmo.conditions.utils import import_conditions +from rdmo.options.utils import import_options +from rdmo.domain.utils import import_domain +from rdmo.questions.utils import import_catalog +from rdmo.tasks.utils import import_tasks +from rdmo.views.utils import import_views +from rdmo.projects.utils import import_projects class Command(BaseCommand): diff --git a/apps/core/management/commands/poedit.py b/rdmo/core/management/commands/poedit.py similarity index 100% rename from apps/core/management/commands/poedit.py rename to rdmo/core/management/commands/poedit.py diff --git a/apps/core/management/commands/promote-user-to-superuser.py b/rdmo/core/management/commands/promote-user-to-superuser.py similarity index 100% rename from apps/core/management/commands/promote-user-to-superuser.py rename to rdmo/core/management/commands/promote-user-to-superuser.py diff --git a/apps/core/management/commands/set-uri-prefix.py b/rdmo/core/management/commands/set-uri-prefix.py similarity index 84% rename from apps/core/management/commands/set-uri-prefix.py rename to rdmo/core/management/commands/set-uri-prefix.py index 3a4e1690e..d95231381 100644 --- a/apps/core/management/commands/set-uri-prefix.py +++ b/rdmo/core/management/commands/set-uri-prefix.py @@ -3,12 +3,12 @@ from django.contrib.auth.models import User from django.core.management.base import BaseCommand -from apps.conditions.models import Condition -from apps.options.models import OptionSet, Option -from apps.domain.models import AttributeEntity -from apps.questions.models import Catalog, Section, Subsection, QuestionEntity -from apps.tasks.models import Task -from apps.views.models import View +from rdmo.conditions.models import Condition +from rdmo.options.models import OptionSet, Option +from rdmo.domain.models import AttributeEntity +from rdmo.questions.models import Catalog, Section, Subsection, QuestionEntity +from rdmo.tasks.models import Task +from rdmo.views.models import View class Command(BaseCommand): diff --git a/apps/core/models.py b/rdmo/core/models.py similarity index 95% rename from apps/core/models.py rename to rdmo/core/models.py index 844d8e723..9b6bd612c 100644 --- a/apps/core/models.py +++ b/rdmo/core/models.py @@ -5,7 +5,7 @@ from django.utils.translation import ugettext_lazy as _ from django.utils.translation import get_language -from apps.core.exceptions import RDMOException +from rdmo.core.exceptions import RDMOException class Model(models.Model): diff --git a/apps/core/permissions.py b/rdmo/core/permissions.py similarity index 100% rename from apps/core/permissions.py rename to rdmo/core/permissions.py diff --git a/apps/core/renderers.py b/rdmo/core/renderers.py similarity index 100% rename from apps/core/renderers.py rename to rdmo/core/renderers.py diff --git a/apps/core/serializers.py b/rdmo/core/serializers.py similarity index 100% rename from apps/core/serializers.py rename to rdmo/core/serializers.py diff --git a/apps/core/static/core/css/base.scss b/rdmo/core/static/core/css/base.scss similarity index 100% rename from apps/core/static/core/css/base.scss rename to rdmo/core/static/core/css/base.scss diff --git a/apps/core/static/core/css/codemirror.scss b/rdmo/core/static/core/css/codemirror.scss similarity index 100% rename from apps/core/static/core/css/codemirror.scss rename to rdmo/core/static/core/css/codemirror.scss diff --git a/apps/core/static/core/css/fonts.scss b/rdmo/core/static/core/css/fonts.scss similarity index 100% rename from apps/core/static/core/css/fonts.scss rename to rdmo/core/static/core/css/fonts.scss diff --git a/apps/core/static/core/css/footer.scss b/rdmo/core/static/core/css/footer.scss similarity index 100% rename from apps/core/static/core/css/footer.scss rename to rdmo/core/static/core/css/footer.scss diff --git a/apps/core/static/core/css/header.scss b/rdmo/core/static/core/css/header.scss similarity index 100% rename from apps/core/static/core/css/header.scss rename to rdmo/core/static/core/css/header.scss diff --git a/apps/core/static/core/css/style.scss b/rdmo/core/static/core/css/style.scss similarity index 100% rename from apps/core/static/core/css/style.scss rename to rdmo/core/static/core/css/style.scss diff --git a/apps/core/static/core/css/variables.scss b/rdmo/core/static/core/css/variables.scss similarity index 100% rename from apps/core/static/core/css/variables.scss rename to rdmo/core/static/core/css/variables.scss diff --git a/apps/core/static/core/fonts/DroidSans-Bold.ttf b/rdmo/core/static/core/fonts/DroidSans-Bold.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSans-Bold.ttf rename to rdmo/core/static/core/fonts/DroidSans-Bold.ttf diff --git a/apps/core/static/core/fonts/DroidSans.ttf b/rdmo/core/static/core/fonts/DroidSans.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSans.ttf rename to rdmo/core/static/core/fonts/DroidSans.ttf diff --git a/apps/core/static/core/fonts/DroidSansMono.ttf b/rdmo/core/static/core/fonts/DroidSansMono.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSansMono.ttf rename to rdmo/core/static/core/fonts/DroidSansMono.ttf diff --git a/apps/core/static/core/fonts/DroidSerif-Bold.ttf b/rdmo/core/static/core/fonts/DroidSerif-Bold.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSerif-Bold.ttf rename to rdmo/core/static/core/fonts/DroidSerif-Bold.ttf diff --git a/apps/core/static/core/fonts/DroidSerif-BoldItalic.ttf b/rdmo/core/static/core/fonts/DroidSerif-BoldItalic.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSerif-BoldItalic.ttf rename to rdmo/core/static/core/fonts/DroidSerif-BoldItalic.ttf diff --git a/apps/core/static/core/fonts/DroidSerif-Italic.ttf b/rdmo/core/static/core/fonts/DroidSerif-Italic.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSerif-Italic.ttf rename to rdmo/core/static/core/fonts/DroidSerif-Italic.ttf diff --git a/apps/core/static/core/fonts/DroidSerif.ttf b/rdmo/core/static/core/fonts/DroidSerif.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSerif.ttf rename to rdmo/core/static/core/fonts/DroidSerif.ttf diff --git a/apps/core/static/core/html/formgroup_checkbox.html b/rdmo/core/static/core/html/formgroup_checkbox.html similarity index 100% rename from apps/core/static/core/html/formgroup_checkbox.html rename to rdmo/core/static/core/html/formgroup_checkbox.html diff --git a/apps/core/static/core/html/formgroup_codemirror.html b/rdmo/core/static/core/html/formgroup_codemirror.html similarity index 100% rename from apps/core/static/core/html/formgroup_codemirror.html rename to rdmo/core/static/core/html/formgroup_codemirror.html diff --git a/apps/core/static/core/html/formgroup_number.html b/rdmo/core/static/core/html/formgroup_number.html similarity index 100% rename from apps/core/static/core/html/formgroup_number.html rename to rdmo/core/static/core/html/formgroup_number.html diff --git a/apps/core/static/core/html/formgroup_select.html b/rdmo/core/static/core/html/formgroup_select.html similarity index 100% rename from apps/core/static/core/html/formgroup_select.html rename to rdmo/core/static/core/html/formgroup_select.html diff --git a/apps/core/static/core/html/formgroup_selectmultiple.html b/rdmo/core/static/core/html/formgroup_selectmultiple.html similarity index 100% rename from apps/core/static/core/html/formgroup_selectmultiple.html rename to rdmo/core/static/core/html/formgroup_selectmultiple.html diff --git a/apps/core/static/core/html/formgroup_selectnumber.html b/rdmo/core/static/core/html/formgroup_selectnumber.html similarity index 100% rename from apps/core/static/core/html/formgroup_selectnumber.html rename to rdmo/core/static/core/html/formgroup_selectnumber.html diff --git a/apps/core/static/core/html/formgroup_text.html b/rdmo/core/static/core/html/formgroup_text.html similarity index 100% rename from apps/core/static/core/html/formgroup_text.html rename to rdmo/core/static/core/html/formgroup_text.html diff --git a/apps/core/static/core/html/formgroup_textarea.html b/rdmo/core/static/core/html/formgroup_textarea.html similarity index 100% rename from apps/core/static/core/html/formgroup_textarea.html rename to rdmo/core/static/core/html/formgroup_textarea.html diff --git a/apps/core/static/core/img/favicon.png b/rdmo/core/static/core/img/favicon.png similarity index 100% rename from apps/core/static/core/img/favicon.png rename to rdmo/core/static/core/img/favicon.png diff --git a/apps/core/static/core/img/header/collection.jpg b/rdmo/core/static/core/img/header/collection.jpg similarity index 100% rename from apps/core/static/core/img/header/collection.jpg rename to rdmo/core/static/core/img/header/collection.jpg diff --git a/apps/core/static/core/img/header/library.jpg b/rdmo/core/static/core/img/header/library.jpg similarity index 100% rename from apps/core/static/core/img/header/library.jpg rename to rdmo/core/static/core/img/header/library.jpg diff --git a/apps/core/static/core/img/header/supercomputer.jpg b/rdmo/core/static/core/img/header/supercomputer.jpg similarity index 100% rename from apps/core/static/core/img/header/supercomputer.jpg rename to rdmo/core/static/core/img/header/supercomputer.jpg diff --git a/apps/core/static/core/js/core.js b/rdmo/core/static/core/js/core.js similarity index 100% rename from apps/core/static/core/js/core.js rename to rdmo/core/static/core/js/core.js diff --git a/apps/core/static/core/js/header.js b/rdmo/core/static/core/js/header.js similarity index 100% rename from apps/core/static/core/js/header.js rename to rdmo/core/static/core/js/header.js diff --git a/apps/core/templates/core/404.html b/rdmo/core/templates/core/404.html similarity index 100% rename from apps/core/templates/core/404.html rename to rdmo/core/templates/core/404.html diff --git a/apps/core/templates/core/base.html b/rdmo/core/templates/core/base.html similarity index 100% rename from apps/core/templates/core/base.html rename to rdmo/core/templates/core/base.html diff --git a/apps/core/templates/core/base_analytics.html b/rdmo/core/templates/core/base_analytics.html similarity index 100% rename from apps/core/templates/core/base_analytics.html rename to rdmo/core/templates/core/base_analytics.html diff --git a/apps/core/templates/core/base_footer.html b/rdmo/core/templates/core/base_footer.html similarity index 100% rename from apps/core/templates/core/base_footer.html rename to rdmo/core/templates/core/base_footer.html diff --git a/apps/core/templates/core/base_head.html b/rdmo/core/templates/core/base_head.html similarity index 100% rename from apps/core/templates/core/base_head.html rename to rdmo/core/templates/core/base_head.html diff --git a/apps/core/templates/core/base_navigation.html b/rdmo/core/templates/core/base_navigation.html similarity index 100% rename from apps/core/templates/core/base_navigation.html rename to rdmo/core/templates/core/base_navigation.html diff --git a/apps/core/templates/core/base_navigation_account.html b/rdmo/core/templates/core/base_navigation_account.html similarity index 100% rename from apps/core/templates/core/base_navigation_account.html rename to rdmo/core/templates/core/base_navigation_account.html diff --git a/apps/core/templates/core/base_navigation_socialaccount.html b/rdmo/core/templates/core/base_navigation_socialaccount.html similarity index 100% rename from apps/core/templates/core/base_navigation_socialaccount.html rename to rdmo/core/templates/core/base_navigation_socialaccount.html diff --git a/apps/core/templates/core/bootstrap_delete_form.html b/rdmo/core/templates/core/bootstrap_delete_form.html similarity index 100% rename from apps/core/templates/core/bootstrap_delete_form.html rename to rdmo/core/templates/core/bootstrap_delete_form.html diff --git a/apps/core/templates/core/bootstrap_form.html b/rdmo/core/templates/core/bootstrap_form.html similarity index 100% rename from apps/core/templates/core/bootstrap_form.html rename to rdmo/core/templates/core/bootstrap_form.html diff --git a/apps/core/templates/core/bootstrap_form_fields.html b/rdmo/core/templates/core/bootstrap_form_fields.html similarity index 100% rename from apps/core/templates/core/bootstrap_form_fields.html rename to rdmo/core/templates/core/bootstrap_form_fields.html diff --git a/apps/core/templates/core/export.html b/rdmo/core/templates/core/export.html similarity index 100% rename from apps/core/templates/core/export.html rename to rdmo/core/templates/core/export.html diff --git a/apps/core/templates/core/home.html b/rdmo/core/templates/core/home.html similarity index 100% rename from apps/core/templates/core/home.html rename to rdmo/core/templates/core/home.html diff --git a/apps/core/templates/core/home_text_de.html b/rdmo/core/templates/core/home_text_de.html similarity index 100% rename from apps/core/templates/core/home_text_de.html rename to rdmo/core/templates/core/home_text_de.html diff --git a/apps/core/templates/core/home_text_en.html b/rdmo/core/templates/core/home_text_en.html similarity index 100% rename from apps/core/templates/core/home_text_en.html rename to rdmo/core/templates/core/home_text_en.html diff --git a/apps/core/templates/core/page.html b/rdmo/core/templates/core/page.html similarity index 100% rename from apps/core/templates/core/page.html rename to rdmo/core/templates/core/page.html diff --git a/apps/core/templatetags/__init__.py b/rdmo/core/templatetags/__init__.py similarity index 100% rename from apps/core/templatetags/__init__.py rename to rdmo/core/templatetags/__init__.py diff --git a/apps/core/templatetags/core_tags.py b/rdmo/core/templatetags/core_tags.py similarity index 100% rename from apps/core/templatetags/core_tags.py rename to rdmo/core/templatetags/core_tags.py diff --git a/apps/core/testing/__init__.py b/rdmo/core/testing/__init__.py similarity index 100% rename from apps/core/testing/__init__.py rename to rdmo/core/testing/__init__.py diff --git a/apps/core/testing/mixins.py b/rdmo/core/testing/mixins.py similarity index 100% rename from apps/core/testing/mixins.py rename to rdmo/core/testing/mixins.py diff --git a/apps/core/tests.py b/rdmo/core/tests.py similarity index 98% rename from apps/core/tests.py rename to rdmo/core/tests.py index 2fde6eccc..c62cb53d4 100644 --- a/apps/core/tests.py +++ b/rdmo/core/tests.py @@ -5,7 +5,7 @@ from django.test.client import RequestFactory from django.utils import translation -from apps.accounts.utils import set_group_permissions +from rdmo.accounts.utils import set_group_permissions class CoreTestCase(TestCase): diff --git a/apps/core/utils.py b/rdmo/core/utils.py similarity index 100% rename from apps/core/utils.py rename to rdmo/core/utils.py diff --git a/apps/core/validators.py b/rdmo/core/validators.py similarity index 100% rename from apps/core/validators.py rename to rdmo/core/validators.py diff --git a/apps/core/views.py b/rdmo/core/views.py similarity index 100% rename from apps/core/views.py rename to rdmo/core/views.py diff --git a/rdmo/domain/__init__.py b/rdmo/domain/__init__.py new file mode 100644 index 000000000..7f512f20f --- /dev/null +++ b/rdmo/domain/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.domain.app_config.DomainConfig' diff --git a/apps/domain/admin.py b/rdmo/domain/admin.py similarity index 100% rename from apps/domain/admin.py rename to rdmo/domain/admin.py diff --git a/apps/domain/app_config.py b/rdmo/domain/app_config.py similarity index 86% rename from apps/domain/app_config.py rename to rdmo/domain/app_config.py index 717a40b9b..5143c2f8d 100644 --- a/apps/domain/app_config.py +++ b/rdmo/domain/app_config.py @@ -3,5 +3,5 @@ class DomainConfig(AppConfig): - name = 'apps.domain' + name = 'rdmo.domain' verbose_name = _('Domain') diff --git a/apps/domain/migrations/0001_initial_after_reset.py b/rdmo/domain/migrations/0001_initial_after_reset.py similarity index 97% rename from apps/domain/migrations/0001_initial_after_reset.py rename to rdmo/domain/migrations/0001_initial_after_reset.py index 4c1139a42..029b059b2 100644 --- a/apps/domain/migrations/0001_initial_after_reset.py +++ b/rdmo/domain/migrations/0001_initial_after_reset.py @@ -3,8 +3,8 @@ from django.db import models, migrations import django.db.models.deletion -import apps.core.models +import rdmo.core.models class Migration(migrations.Migration): @@ -53,7 +53,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Option', 'verbose_name_plural': 'Options', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Range', @@ -68,7 +68,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Range', 'verbose_name_plural': 'Ranges', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Attribute', diff --git a/apps/domain/migrations/0002_additional_input.py b/rdmo/domain/migrations/0002_additional_input.py similarity index 100% rename from apps/domain/migrations/0002_additional_input.py rename to rdmo/domain/migrations/0002_additional_input.py diff --git a/apps/domain/migrations/0003_condition.py b/rdmo/domain/migrations/0003_condition.py similarity index 100% rename from apps/domain/migrations/0003_condition.py rename to rdmo/domain/migrations/0003_condition.py diff --git a/apps/domain/migrations/0004_verbosename.py b/rdmo/domain/migrations/0004_verbosename.py similarity index 91% rename from apps/domain/migrations/0004_verbosename.py rename to rdmo/domain/migrations/0004_verbosename.py index e8dbf6bc3..52677ba66 100644 --- a/apps/domain/migrations/0004_verbosename.py +++ b/rdmo/domain/migrations/0004_verbosename.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import models, migrations -import apps.core.models +import rdmo.core.models class Migration(migrations.Migration): @@ -26,6 +26,6 @@ class Migration(migrations.Migration): 'verbose_name': 'VerboseName', 'verbose_name_plural': 'VerboseNames', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), ] diff --git a/apps/domain/migrations/0005_meta.py b/rdmo/domain/migrations/0005_meta.py similarity index 100% rename from apps/domain/migrations/0005_meta.py rename to rdmo/domain/migrations/0005_meta.py diff --git a/apps/domain/migrations/0006_attributeentity_parent_collection.py b/rdmo/domain/migrations/0006_attributeentity_parent_collection.py similarity index 100% rename from apps/domain/migrations/0006_attributeentity_parent_collection.py rename to rdmo/domain/migrations/0006_attributeentity_parent_collection.py diff --git a/apps/domain/migrations/0007_db_index.py b/rdmo/domain/migrations/0007_db_index.py similarity index 100% rename from apps/domain/migrations/0007_db_index.py rename to rdmo/domain/migrations/0007_db_index.py diff --git a/apps/domain/migrations/0008_meta.py b/rdmo/domain/migrations/0008_meta.py similarity index 100% rename from apps/domain/migrations/0008_meta.py rename to rdmo/domain/migrations/0008_meta.py diff --git a/apps/domain/migrations/0009_remove_condition.py b/rdmo/domain/migrations/0009_remove_condition.py similarity index 100% rename from apps/domain/migrations/0009_remove_condition.py rename to rdmo/domain/migrations/0009_remove_condition.py diff --git a/apps/domain/migrations/0010_many_to_many_for_conditions.py b/rdmo/domain/migrations/0010_many_to_many_for_conditions.py similarity index 100% rename from apps/domain/migrations/0010_many_to_many_for_conditions.py rename to rdmo/domain/migrations/0010_many_to_many_for_conditions.py diff --git a/apps/domain/migrations/0011_meta.py b/rdmo/domain/migrations/0011_meta.py similarity index 100% rename from apps/domain/migrations/0011_meta.py rename to rdmo/domain/migrations/0011_meta.py diff --git a/apps/domain/migrations/0012_renaming.py b/rdmo/domain/migrations/0012_renaming.py similarity index 100% rename from apps/domain/migrations/0012_renaming.py rename to rdmo/domain/migrations/0012_renaming.py diff --git a/apps/domain/migrations/0013_mptt.py b/rdmo/domain/migrations/0013_mptt.py similarity index 100% rename from apps/domain/migrations/0013_mptt.py rename to rdmo/domain/migrations/0013_mptt.py diff --git a/apps/domain/migrations/0014_is_attribute.py b/rdmo/domain/migrations/0014_is_attribute.py similarity index 100% rename from apps/domain/migrations/0014_is_attribute.py rename to rdmo/domain/migrations/0014_is_attribute.py diff --git a/apps/domain/migrations/0015_label.py b/rdmo/domain/migrations/0015_label.py similarity index 100% rename from apps/domain/migrations/0015_label.py rename to rdmo/domain/migrations/0015_label.py diff --git a/apps/domain/migrations/0016_label.py b/rdmo/domain/migrations/0016_label.py similarity index 100% rename from apps/domain/migrations/0016_label.py rename to rdmo/domain/migrations/0016_label.py diff --git a/apps/domain/migrations/0017_url_value_type.py b/rdmo/domain/migrations/0017_url_value_type.py similarity index 100% rename from apps/domain/migrations/0017_url_value_type.py rename to rdmo/domain/migrations/0017_url_value_type.py diff --git a/apps/domain/migrations/0018_validator.py b/rdmo/domain/migrations/0018_validator.py similarity index 100% rename from apps/domain/migrations/0018_validator.py rename to rdmo/domain/migrations/0018_validator.py diff --git a/apps/domain/migrations/0019_meta.py b/rdmo/domain/migrations/0019_meta.py similarity index 100% rename from apps/domain/migrations/0019_meta.py rename to rdmo/domain/migrations/0019_meta.py diff --git a/apps/domain/migrations/0020_meta.py b/rdmo/domain/migrations/0020_meta.py similarity index 100% rename from apps/domain/migrations/0020_meta.py rename to rdmo/domain/migrations/0020_meta.py diff --git a/apps/domain/migrations/0021_options.py b/rdmo/domain/migrations/0021_options.py similarity index 100% rename from apps/domain/migrations/0021_options.py rename to rdmo/domain/migrations/0021_options.py diff --git a/apps/domain/migrations/0022_options.py b/rdmo/domain/migrations/0022_options.py similarity index 100% rename from apps/domain/migrations/0022_options.py rename to rdmo/domain/migrations/0022_options.py diff --git a/apps/domain/migrations/0023_fix_label.py b/rdmo/domain/migrations/0023_fix_label.py similarity index 100% rename from apps/domain/migrations/0023_fix_label.py rename to rdmo/domain/migrations/0023_fix_label.py diff --git a/apps/domain/migrations/0024_meta.py b/rdmo/domain/migrations/0024_meta.py similarity index 100% rename from apps/domain/migrations/0024_meta.py rename to rdmo/domain/migrations/0024_meta.py diff --git a/apps/domain/migrations/0025_refactoring.py b/rdmo/domain/migrations/0025_refactoring.py similarity index 100% rename from apps/domain/migrations/0025_refactoring.py rename to rdmo/domain/migrations/0025_refactoring.py diff --git a/apps/domain/migrations/0026_refactoring.py b/rdmo/domain/migrations/0026_refactoring.py similarity index 100% rename from apps/domain/migrations/0026_refactoring.py rename to rdmo/domain/migrations/0026_refactoring.py diff --git a/apps/domain/migrations/0027_meta.py b/rdmo/domain/migrations/0027_meta.py similarity index 100% rename from apps/domain/migrations/0027_meta.py rename to rdmo/domain/migrations/0027_meta.py diff --git a/apps/domain/migrations/0028_path.py b/rdmo/domain/migrations/0028_path.py similarity index 100% rename from apps/domain/migrations/0028_path.py rename to rdmo/domain/migrations/0028_path.py diff --git a/apps/domain/migrations/0029_meta.py b/rdmo/domain/migrations/0029_meta.py similarity index 100% rename from apps/domain/migrations/0029_meta.py rename to rdmo/domain/migrations/0029_meta.py diff --git a/apps/domain/migrations/0030_permissions.py b/rdmo/domain/migrations/0030_permissions.py similarity index 100% rename from apps/domain/migrations/0030_permissions.py rename to rdmo/domain/migrations/0030_permissions.py diff --git a/apps/domain/migrations/0031_meta.py b/rdmo/domain/migrations/0031_meta.py similarity index 100% rename from apps/domain/migrations/0031_meta.py rename to rdmo/domain/migrations/0031_meta.py diff --git a/apps/domain/migrations/__init__.py b/rdmo/domain/migrations/__init__.py similarity index 100% rename from apps/domain/migrations/__init__.py rename to rdmo/domain/migrations/__init__.py diff --git a/apps/domain/models.py b/rdmo/domain/models.py similarity index 98% rename from apps/domain/models.py rename to rdmo/domain/models.py index f560497b5..15f2bfa06 100644 --- a/apps/domain/models.py +++ b/rdmo/domain/models.py @@ -6,9 +6,9 @@ from mptt.models import MPTTModel, TreeForeignKey -from apps.core.utils import get_uri_prefix -from apps.core.models import TranslationMixin -from apps.conditions.models import Condition +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import TranslationMixin +from rdmo.conditions.models import Condition from .validators import AttributeEntityUniquePathValidator diff --git a/apps/domain/renderers.py b/rdmo/domain/renderers.py similarity index 98% rename from apps/domain/renderers.py rename to rdmo/domain/renderers.py index a7d27c432..733575b8e 100644 --- a/apps/domain/renderers.py +++ b/rdmo/domain/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/domain/serializers/__init__.py b/rdmo/domain/serializers/__init__.py similarity index 97% rename from apps/domain/serializers/__init__.py rename to rdmo/domain/serializers/__init__.py index 024dcab4b..8d885e15b 100644 --- a/apps/domain/serializers/__init__.py +++ b/rdmo/domain/serializers/__init__.py @@ -1,7 +1,7 @@ from rest_framework import serializers -from apps.options.models import OptionSet -from apps.conditions.models import Condition +from rdmo.options.models import OptionSet +from rdmo.conditions.models import Condition from ..models import AttributeEntity, Attribute, Range, VerboseName from ..validators import AttributeEntityUniquePathValidator diff --git a/apps/domain/serializers/api.py b/rdmo/domain/serializers/api.py similarity index 100% rename from apps/domain/serializers/api.py rename to rdmo/domain/serializers/api.py diff --git a/apps/domain/serializers/export.py b/rdmo/domain/serializers/export.py similarity index 100% rename from apps/domain/serializers/export.py rename to rdmo/domain/serializers/export.py diff --git a/apps/domain/static/domain/css/domain.scss b/rdmo/domain/static/domain/css/domain.scss similarity index 100% rename from apps/domain/static/domain/css/domain.scss rename to rdmo/domain/static/domain/css/domain.scss diff --git a/apps/domain/static/domain/js/domain.js b/rdmo/domain/static/domain/js/domain.js similarity index 100% rename from apps/domain/static/domain/js/domain.js rename to rdmo/domain/static/domain/js/domain.js diff --git a/apps/domain/templates/domain/domain.html b/rdmo/domain/templates/domain/domain.html similarity index 100% rename from apps/domain/templates/domain/domain.html rename to rdmo/domain/templates/domain/domain.html diff --git a/apps/domain/templates/domain/domain_export.html b/rdmo/domain/templates/domain/domain_export.html similarity index 100% rename from apps/domain/templates/domain/domain_export.html rename to rdmo/domain/templates/domain/domain_export.html diff --git a/apps/domain/templates/domain/domain_modal_delete_attributes.html b/rdmo/domain/templates/domain/domain_modal_delete_attributes.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_delete_attributes.html rename to rdmo/domain/templates/domain/domain_modal_delete_attributes.html diff --git a/apps/domain/templates/domain/domain_modal_delete_entities.html b/rdmo/domain/templates/domain/domain_modal_delete_entities.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_delete_entities.html rename to rdmo/domain/templates/domain/domain_modal_delete_entities.html diff --git a/apps/domain/templates/domain/domain_modal_form_attributes.html b/rdmo/domain/templates/domain/domain_modal_form_attributes.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_attributes.html rename to rdmo/domain/templates/domain/domain_modal_form_attributes.html diff --git a/apps/domain/templates/domain/domain_modal_form_conditions.html b/rdmo/domain/templates/domain/domain_modal_form_conditions.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_conditions.html rename to rdmo/domain/templates/domain/domain_modal_form_conditions.html diff --git a/apps/domain/templates/domain/domain_modal_form_entities.html b/rdmo/domain/templates/domain/domain_modal_form_entities.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_entities.html rename to rdmo/domain/templates/domain/domain_modal_form_entities.html diff --git a/apps/domain/templates/domain/domain_modal_form_optionsets.html b/rdmo/domain/templates/domain/domain_modal_form_optionsets.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_optionsets.html rename to rdmo/domain/templates/domain/domain_modal_form_optionsets.html diff --git a/apps/domain/templates/domain/domain_modal_form_ranges.html b/rdmo/domain/templates/domain/domain_modal_form_ranges.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_ranges.html rename to rdmo/domain/templates/domain/domain_modal_form_ranges.html diff --git a/apps/domain/templates/domain/domain_modal_form_verbosenames.html b/rdmo/domain/templates/domain/domain_modal_form_verbosenames.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_verbosenames.html rename to rdmo/domain/templates/domain/domain_modal_form_verbosenames.html diff --git a/apps/domain/templates/domain/domain_options.html b/rdmo/domain/templates/domain/domain_options.html similarity index 100% rename from apps/domain/templates/domain/domain_options.html rename to rdmo/domain/templates/domain/domain_options.html diff --git a/apps/domain/tests.py b/rdmo/domain/tests.py similarity index 95% rename from apps/domain/tests.py rename to rdmo/domain/tests.py index db2d59485..18abc13a0 100644 --- a/apps/domain/tests.py +++ b/rdmo/domain/tests.py @@ -9,11 +9,11 @@ TestDeleteViewsetMixin ) -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions -from apps.conditions.models import Condition -from apps.options.models import OptionSet +from rdmo.conditions.models import Condition +from rdmo.options.models import OptionSet from .models import AttributeEntity, Attribute, Range, VerboseName diff --git a/apps/domain/urls.py b/rdmo/domain/urls.py similarity index 100% rename from apps/domain/urls.py rename to rdmo/domain/urls.py diff --git a/apps/domain/utils.py b/rdmo/domain/utils.py similarity index 97% rename from apps/domain/utils.py rename to rdmo/domain/utils.py index 504a680ce..162417bfa 100644 --- a/apps/domain/utils.py +++ b/rdmo/domain/utils.py @@ -1,6 +1,6 @@ -from apps.core.utils import get_ns_tag -from apps.conditions.models import Condition -from apps.options.models import OptionSet +from rdmo.core.utils import get_ns_tag +from rdmo.conditions.models import Condition +from rdmo.options.models import OptionSet from .models import AttributeEntity, Attribute, Range, VerboseName diff --git a/apps/domain/validators.py b/rdmo/domain/validators.py similarity index 85% rename from apps/domain/validators.py rename to rdmo/domain/validators.py index c742ddbff..b4e4afcfc 100644 --- a/apps/domain/validators.py +++ b/rdmo/domain/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniquePathValidator +from rdmo.core.validators import UniquePathValidator class AttributeEntityUniquePathValidator(UniquePathValidator): diff --git a/apps/domain/views.py b/rdmo/domain/views.py similarity index 95% rename from apps/domain/views.py rename to rdmo/domain/views.py index 56b969add..e70d0b0d2 100644 --- a/apps/domain/views.py +++ b/rdmo/domain/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format, render_to_csv +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format, render_to_csv from .models import AttributeEntity, Attribute, VerboseName, Range from .serializers.export import AttributeEntitySerializer as ExportSerializer diff --git a/apps/domain/viewsets.py b/rdmo/domain/viewsets.py similarity index 95% rename from apps/domain/viewsets.py rename to rdmo/domain/viewsets.py index b9dc95fab..d61ff1ce9 100644 --- a/apps/domain/viewsets.py +++ b/rdmo/domain/viewsets.py @@ -5,11 +5,11 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.views import ChoicesViewSet -from apps.core.permissions import HasModelPermission +from rdmo.core.views import ChoicesViewSet +from rdmo.core.permissions import HasModelPermission -from apps.options.models import OptionSet -from apps.conditions.models import Condition +from rdmo.options.models import OptionSet +from rdmo.conditions.models import Condition from .models import AttributeEntity, Attribute, VerboseName, Range from .serializers import ( diff --git a/rdmo/options/__init__.py b/rdmo/options/__init__.py new file mode 100644 index 000000000..fdcfa798f --- /dev/null +++ b/rdmo/options/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.options.app_config.OptionsConfig' diff --git a/apps/options/admin.py b/rdmo/options/admin.py similarity index 100% rename from apps/options/admin.py rename to rdmo/options/admin.py diff --git a/apps/options/app_config.py b/rdmo/options/app_config.py similarity index 85% rename from apps/options/app_config.py rename to rdmo/options/app_config.py index 0a7ab28ff..54ca6e875 100644 --- a/apps/options/app_config.py +++ b/rdmo/options/app_config.py @@ -3,5 +3,5 @@ class OptionsConfig(AppConfig): - name = 'apps.options' + name = 'rdmo.options' verbose_name = _('Options') diff --git a/apps/options/migrations/0001_initial.py b/rdmo/options/migrations/0001_initial.py similarity index 95% rename from apps/options/migrations/0001_initial.py rename to rdmo/options/migrations/0001_initial.py index fbdcdac50..9bca07b5c 100644 --- a/apps/options/migrations/0001_initial.py +++ b/rdmo/options/migrations/0001_initial.py @@ -2,7 +2,7 @@ # Generated by Django 1.9 on 2016-10-21 10:28 from __future__ import unicode_literals -import apps.core.models +import rdmo.core.models import django.core.validators from django.db import migrations, models import django.db.models.deletion @@ -32,7 +32,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Option', 'verbose_name_plural': 'Options', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='OptionSet', diff --git a/apps/options/migrations/0002_meta.py b/rdmo/options/migrations/0002_meta.py similarity index 100% rename from apps/options/migrations/0002_meta.py rename to rdmo/options/migrations/0002_meta.py diff --git a/apps/options/migrations/0003_data_migration.py b/rdmo/options/migrations/0003_data_migration.py similarity index 100% rename from apps/options/migrations/0003_data_migration.py rename to rdmo/options/migrations/0003_data_migration.py diff --git a/apps/options/migrations/0004_conditions.py b/rdmo/options/migrations/0004_conditions.py similarity index 100% rename from apps/options/migrations/0004_conditions.py rename to rdmo/options/migrations/0004_conditions.py diff --git a/apps/options/migrations/0005_refactoring.py b/rdmo/options/migrations/0005_refactoring.py similarity index 100% rename from apps/options/migrations/0005_refactoring.py rename to rdmo/options/migrations/0005_refactoring.py diff --git a/apps/options/migrations/0006_refactoring.py b/rdmo/options/migrations/0006_refactoring.py similarity index 100% rename from apps/options/migrations/0006_refactoring.py rename to rdmo/options/migrations/0006_refactoring.py diff --git a/apps/options/migrations/0007_meta.py b/rdmo/options/migrations/0007_meta.py similarity index 100% rename from apps/options/migrations/0007_meta.py rename to rdmo/options/migrations/0007_meta.py diff --git a/apps/options/migrations/0008_option_path.py b/rdmo/options/migrations/0008_option_path.py similarity index 100% rename from apps/options/migrations/0008_option_path.py rename to rdmo/options/migrations/0008_option_path.py diff --git a/apps/options/migrations/0009_data_migration.py b/rdmo/options/migrations/0009_data_migration.py similarity index 100% rename from apps/options/migrations/0009_data_migration.py rename to rdmo/options/migrations/0009_data_migration.py diff --git a/apps/options/migrations/0010_meta.py b/rdmo/options/migrations/0010_meta.py similarity index 100% rename from apps/options/migrations/0010_meta.py rename to rdmo/options/migrations/0010_meta.py diff --git a/apps/options/migrations/0011_permissions.py b/rdmo/options/migrations/0011_permissions.py similarity index 100% rename from apps/options/migrations/0011_permissions.py rename to rdmo/options/migrations/0011_permissions.py diff --git a/apps/options/migrations/0012_meta.py b/rdmo/options/migrations/0012_meta.py similarity index 100% rename from apps/options/migrations/0012_meta.py rename to rdmo/options/migrations/0012_meta.py diff --git a/apps/options/migrations/__init__.py b/rdmo/options/migrations/__init__.py similarity index 100% rename from apps/options/migrations/__init__.py rename to rdmo/options/migrations/__init__.py diff --git a/apps/options/models.py b/rdmo/options/models.py similarity index 97% rename from apps/options/models.py rename to rdmo/options/models.py index 8ca39228f..672076e01 100644 --- a/apps/options/models.py +++ b/rdmo/options/models.py @@ -4,9 +4,9 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_uri_prefix -from apps.core.models import TranslationMixin -from apps.conditions.models import Condition +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import TranslationMixin +from rdmo.conditions.models import Condition from .validators import OptionSetUniqueKeyValidator, OptionUniquePathValidator diff --git a/apps/options/renderers.py b/rdmo/options/renderers.py similarity index 97% rename from apps/options/renderers.py rename to rdmo/options/renderers.py index 06ec62160..b64f0fbea 100644 --- a/apps/options/renderers.py +++ b/rdmo/options/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/options/serializers/__init__.py b/rdmo/options/serializers/__init__.py similarity index 97% rename from apps/options/serializers/__init__.py rename to rdmo/options/serializers/__init__.py index 8e8629768..e37a3a60d 100644 --- a/apps/options/serializers/__init__.py +++ b/rdmo/options/serializers/__init__.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.conditions.models import Condition +from rdmo.conditions.models import Condition from ..models import OptionSet, Option from ..validators import OptionSetUniqueKeyValidator, OptionUniquePathValidator diff --git a/apps/options/serializers/api.py b/rdmo/options/serializers/api.py similarity index 100% rename from apps/options/serializers/api.py rename to rdmo/options/serializers/api.py diff --git a/apps/options/serializers/export.py b/rdmo/options/serializers/export.py similarity index 94% rename from apps/options/serializers/export.py rename to rdmo/options/serializers/export.py index c9ee6677f..e4c71f521 100644 --- a/apps/options/serializers/export.py +++ b/rdmo/options/serializers/export.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.conditions.models import Condition +from rdmo.conditions.models import Condition from ..models import OptionSet, Option diff --git a/apps/options/static/options/css/options.scss b/rdmo/options/static/options/css/options.scss similarity index 100% rename from apps/options/static/options/css/options.scss rename to rdmo/options/static/options/css/options.scss diff --git a/apps/options/static/options/js/options.js b/rdmo/options/static/options/js/options.js similarity index 100% rename from apps/options/static/options/js/options.js rename to rdmo/options/static/options/js/options.js diff --git a/apps/options/templates/options/options.html b/rdmo/options/templates/options/options.html similarity index 100% rename from apps/options/templates/options/options.html rename to rdmo/options/templates/options/options.html diff --git a/apps/options/templates/options/options_export.html b/rdmo/options/templates/options/options_export.html similarity index 100% rename from apps/options/templates/options/options_export.html rename to rdmo/options/templates/options/options_export.html diff --git a/apps/options/templates/options/options_modal_delete_options.html b/rdmo/options/templates/options/options_modal_delete_options.html similarity index 100% rename from apps/options/templates/options/options_modal_delete_options.html rename to rdmo/options/templates/options/options_modal_delete_options.html diff --git a/apps/options/templates/options/options_modal_delete_optionsets.html b/rdmo/options/templates/options/options_modal_delete_optionsets.html similarity index 100% rename from apps/options/templates/options/options_modal_delete_optionsets.html rename to rdmo/options/templates/options/options_modal_delete_optionsets.html diff --git a/apps/options/templates/options/options_modal_form_conditions.html b/rdmo/options/templates/options/options_modal_form_conditions.html similarity index 100% rename from apps/options/templates/options/options_modal_form_conditions.html rename to rdmo/options/templates/options/options_modal_form_conditions.html diff --git a/apps/options/templates/options/options_modal_form_options.html b/rdmo/options/templates/options/options_modal_form_options.html similarity index 100% rename from apps/options/templates/options/options_modal_form_options.html rename to rdmo/options/templates/options/options_modal_form_options.html diff --git a/apps/options/templates/options/options_modal_form_optionsets.html b/rdmo/options/templates/options/options_modal_form_optionsets.html similarity index 100% rename from apps/options/templates/options/options_modal_form_optionsets.html rename to rdmo/options/templates/options/options_modal_form_optionsets.html diff --git a/apps/options/tests.py b/rdmo/options/tests.py similarity index 95% rename from apps/options/tests.py rename to rdmo/options/tests.py index a9f6122f4..8ddb9892a 100644 --- a/apps/options/tests.py +++ b/rdmo/options/tests.py @@ -3,10 +3,10 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions -from apps.conditions.models import Condition +from rdmo.conditions.models import Condition from .models import OptionSet, Option diff --git a/apps/options/urls.py b/rdmo/options/urls.py similarity index 100% rename from apps/options/urls.py rename to rdmo/options/urls.py diff --git a/apps/options/utils.py b/rdmo/options/utils.py similarity index 97% rename from apps/options/utils.py rename to rdmo/options/utils.py index 02da7908f..dad5e209c 100644 --- a/apps/options/utils.py +++ b/rdmo/options/utils.py @@ -1,4 +1,4 @@ -from apps.core.utils import get_ns_tag +from rdmo.core.utils import get_ns_tag from .models import OptionSet, Option diff --git a/apps/options/validators.py b/rdmo/options/validators.py similarity index 83% rename from apps/options/validators.py rename to rdmo/options/validators.py index 0b8093581..f0e54ea12 100644 --- a/apps/options/validators.py +++ b/rdmo/options/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator, UniquePathValidator +from rdmo.core.validators import UniqueKeyValidator, UniquePathValidator class OptionSetUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/options/views.py b/rdmo/options/views.py similarity index 93% rename from apps/options/views.py rename to rdmo/options/views.py index 983494ca7..55821ef93 100644 --- a/apps/options/views.py +++ b/rdmo/options/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import OptionSet, Option from .serializers.export import OptionSetSerializer as ExportSerializer diff --git a/apps/options/viewsets.py b/rdmo/options/viewsets.py similarity index 95% rename from apps/options/viewsets.py rename to rdmo/options/viewsets.py index 0dc193e27..d7431630d 100644 --- a/apps/options/viewsets.py +++ b/rdmo/options/viewsets.py @@ -4,9 +4,9 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.permissions import HasModelPermission +from rdmo.core.permissions import HasModelPermission -from apps.conditions.models import Condition +from rdmo.conditions.models import Condition from .models import OptionSet, Option from .serializers import ( diff --git a/rdmo/projects/__init__.py b/rdmo/projects/__init__.py new file mode 100644 index 000000000..c9bddd34a --- /dev/null +++ b/rdmo/projects/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.projects.app_config.ProjectsConfig' diff --git a/apps/projects/admin.py b/rdmo/projects/admin.py similarity index 100% rename from apps/projects/admin.py rename to rdmo/projects/admin.py diff --git a/apps/projects/app_config.py b/rdmo/projects/app_config.py similarity index 88% rename from apps/projects/app_config.py rename to rdmo/projects/app_config.py index a8c25493b..2a21bb272 100644 --- a/apps/projects/app_config.py +++ b/rdmo/projects/app_config.py @@ -3,7 +3,7 @@ class ProjectsConfig(AppConfig): - name = 'apps.projects' + name = 'rdmo.projects' verbose_name = _('Projects') def ready(self): diff --git a/apps/projects/forms.py b/rdmo/projects/forms.py similarity index 100% rename from apps/projects/forms.py rename to rdmo/projects/forms.py diff --git a/apps/projects/migrations/0001_initial_after_reset.py b/rdmo/projects/migrations/0001_initial_after_reset.py similarity index 100% rename from apps/projects/migrations/0001_initial_after_reset.py rename to rdmo/projects/migrations/0001_initial_after_reset.py diff --git a/apps/projects/migrations/0002_meta.py b/rdmo/projects/migrations/0002_meta.py similarity index 100% rename from apps/projects/migrations/0002_meta.py rename to rdmo/projects/migrations/0002_meta.py diff --git a/apps/projects/migrations/0003_meta.py b/rdmo/projects/migrations/0003_meta.py similarity index 100% rename from apps/projects/migrations/0003_meta.py rename to rdmo/projects/migrations/0003_meta.py diff --git a/apps/projects/migrations/0004_remove_current_snapshot.py b/rdmo/projects/migrations/0004_remove_current_snapshot.py similarity index 100% rename from apps/projects/migrations/0004_remove_current_snapshot.py rename to rdmo/projects/migrations/0004_remove_current_snapshot.py diff --git a/apps/projects/migrations/0005_snapshot.py b/rdmo/projects/migrations/0005_snapshot.py similarity index 100% rename from apps/projects/migrations/0005_snapshot.py rename to rdmo/projects/migrations/0005_snapshot.py diff --git a/apps/projects/migrations/0006_project_values.py b/rdmo/projects/migrations/0006_project_values.py similarity index 100% rename from apps/projects/migrations/0006_project_values.py rename to rdmo/projects/migrations/0006_project_values.py diff --git a/apps/projects/migrations/0007_data_migration.py b/rdmo/projects/migrations/0007_data_migration.py similarity index 100% rename from apps/projects/migrations/0007_data_migration.py rename to rdmo/projects/migrations/0007_data_migration.py diff --git a/apps/projects/migrations/0008_not_null.py b/rdmo/projects/migrations/0008_not_null.py similarity index 100% rename from apps/projects/migrations/0008_not_null.py rename to rdmo/projects/migrations/0008_not_null.py diff --git a/apps/projects/migrations/0009_options.py b/rdmo/projects/migrations/0009_options.py similarity index 100% rename from apps/projects/migrations/0009_options.py rename to rdmo/projects/migrations/0009_options.py diff --git a/apps/projects/migrations/0010_add_db_contraint.py b/rdmo/projects/migrations/0010_add_db_contraint.py similarity index 100% rename from apps/projects/migrations/0010_add_db_contraint.py rename to rdmo/projects/migrations/0010_add_db_contraint.py diff --git a/apps/projects/migrations/0011_refactoring.py b/rdmo/projects/migrations/0011_refactoring.py similarity index 100% rename from apps/projects/migrations/0011_refactoring.py rename to rdmo/projects/migrations/0011_refactoring.py diff --git a/apps/projects/migrations/0012_membership.py b/rdmo/projects/migrations/0012_membership.py similarity index 100% rename from apps/projects/migrations/0012_membership.py rename to rdmo/projects/migrations/0012_membership.py diff --git a/apps/projects/migrations/0013_data_migration.py b/rdmo/projects/migrations/0013_data_migration.py similarity index 100% rename from apps/projects/migrations/0013_data_migration.py rename to rdmo/projects/migrations/0013_data_migration.py diff --git a/apps/projects/migrations/0014_remove_owner.py b/rdmo/projects/migrations/0014_remove_owner.py similarity index 100% rename from apps/projects/migrations/0014_remove_owner.py rename to rdmo/projects/migrations/0014_remove_owner.py diff --git a/apps/projects/migrations/0015_permissions.py b/rdmo/projects/migrations/0015_permissions.py similarity index 100% rename from apps/projects/migrations/0015_permissions.py rename to rdmo/projects/migrations/0015_permissions.py diff --git a/apps/projects/migrations/__init__.py b/rdmo/projects/migrations/__init__.py similarity index 100% rename from apps/projects/migrations/__init__.py rename to rdmo/projects/migrations/__init__.py diff --git a/apps/projects/models.py b/rdmo/projects/models.py similarity index 98% rename from apps/projects/models.py rename to rdmo/projects/models.py index 7c5cf8fac..272df91b4 100644 --- a/apps/projects/models.py +++ b/rdmo/projects/models.py @@ -10,10 +10,10 @@ from django.utils.functional import cached_property from django.utils.translation import ugettext_lazy as _ -from apps.core.models import Model -from apps.domain.models import Attribute -from apps.options.models import Option -from apps.questions.models import Catalog +from rdmo.core.models import Model +from rdmo.domain.models import Attribute +from rdmo.options.models import Option +from rdmo.questions.models import Catalog @python_2_unicode_compatible diff --git a/apps/projects/renderers.py b/rdmo/projects/renderers.py similarity index 98% rename from apps/projects/renderers.py rename to rdmo/projects/renderers.py index 5785ef094..275c79274 100644 --- a/apps/projects/renderers.py +++ b/rdmo/projects/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/projects/rules.py b/rdmo/projects/rules.py similarity index 100% rename from apps/projects/rules.py rename to rdmo/projects/rules.py diff --git a/apps/projects/serializers/__init__.py b/rdmo/projects/serializers/__init__.py similarity index 100% rename from apps/projects/serializers/__init__.py rename to rdmo/projects/serializers/__init__.py diff --git a/apps/projects/serializers/api.py b/rdmo/projects/serializers/api.py similarity index 100% rename from apps/projects/serializers/api.py rename to rdmo/projects/serializers/api.py diff --git a/apps/projects/serializers/catalog.py b/rdmo/projects/serializers/catalog.py similarity index 95% rename from apps/projects/serializers/catalog.py rename to rdmo/projects/serializers/catalog.py index ca8710a8a..0ed231d7e 100644 --- a/apps/projects/serializers/catalog.py +++ b/rdmo/projects/serializers/catalog.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.questions.models import Catalog, Section, Subsection, QuestionEntity, Question +from rdmo.questions.models import Catalog, Section, Subsection, QuestionEntity, Question class QuestionSerializer(serializers.ModelSerializer): diff --git a/apps/projects/serializers/export.py b/rdmo/projects/serializers/export.py similarity index 100% rename from apps/projects/serializers/export.py rename to rdmo/projects/serializers/export.py diff --git a/apps/projects/serializers/question_entity.py b/rdmo/projects/serializers/question_entity.py similarity index 95% rename from apps/projects/serializers/question_entity.py rename to rdmo/projects/serializers/question_entity.py index cbbaaccd8..dd179642c 100644 --- a/apps/projects/serializers/question_entity.py +++ b/rdmo/projects/serializers/question_entity.py @@ -2,12 +2,12 @@ from rest_framework import serializers -from apps.core.serializers import MarkdownSerializerMixin -from apps.conditions.models import Condition -from apps.domain.models import AttributeEntity, Attribute, Range -from apps.options.models import OptionSet, Option +from rdmo.core.serializers import MarkdownSerializerMixin +from rdmo.conditions.models import Condition +from rdmo.domain.models import AttributeEntity, Attribute, Range +from rdmo.options.models import OptionSet, Option -from apps.questions.models import QuestionEntity, Question +from rdmo.questions.models import QuestionEntity, Question class OptionSerializer(serializers.ModelSerializer): diff --git a/apps/projects/static/projects/css/project_questions.scss b/rdmo/projects/static/projects/css/project_questions.scss similarity index 100% rename from apps/projects/static/projects/css/project_questions.scss rename to rdmo/projects/static/projects/css/project_questions.scss diff --git a/apps/projects/static/projects/js/project_questions/app.js b/rdmo/projects/static/projects/js/project_questions/app.js similarity index 100% rename from apps/projects/static/projects/js/project_questions/app.js rename to rdmo/projects/static/projects/js/project_questions/app.js diff --git a/apps/projects/static/projects/js/project_questions/controllers.js b/rdmo/projects/static/projects/js/project_questions/controllers.js similarity index 100% rename from apps/projects/static/projects/js/project_questions/controllers.js rename to rdmo/projects/static/projects/js/project_questions/controllers.js diff --git a/apps/projects/static/projects/js/project_questions/directives.js b/rdmo/projects/static/projects/js/project_questions/directives.js similarity index 100% rename from apps/projects/static/projects/js/project_questions/directives.js rename to rdmo/projects/static/projects/js/project_questions/directives.js diff --git a/apps/projects/static/projects/js/project_questions/services.js b/rdmo/projects/static/projects/js/project_questions/services.js similarity index 100% rename from apps/projects/static/projects/js/project_questions/services.js rename to rdmo/projects/static/projects/js/project_questions/services.js diff --git a/apps/projects/templates/projects/membership_confirm_delete.html b/rdmo/projects/templates/projects/membership_confirm_delete.html similarity index 100% rename from apps/projects/templates/projects/membership_confirm_delete.html rename to rdmo/projects/templates/projects/membership_confirm_delete.html diff --git a/apps/projects/templates/projects/membership_form.html b/rdmo/projects/templates/projects/membership_form.html similarity index 100% rename from apps/projects/templates/projects/membership_form.html rename to rdmo/projects/templates/projects/membership_form.html diff --git a/apps/projects/templates/projects/project_answers.html b/rdmo/projects/templates/projects/project_answers.html similarity index 100% rename from apps/projects/templates/projects/project_answers.html rename to rdmo/projects/templates/projects/project_answers.html diff --git a/apps/projects/templates/projects/project_answers_export.html b/rdmo/projects/templates/projects/project_answers_export.html similarity index 100% rename from apps/projects/templates/projects/project_answers_export.html rename to rdmo/projects/templates/projects/project_answers_export.html diff --git a/apps/projects/templates/projects/project_answers_tree.html b/rdmo/projects/templates/projects/project_answers_tree.html similarity index 100% rename from apps/projects/templates/projects/project_answers_tree.html rename to rdmo/projects/templates/projects/project_answers_tree.html diff --git a/apps/projects/templates/projects/project_confirm_delete.html b/rdmo/projects/templates/projects/project_confirm_delete.html similarity index 100% rename from apps/projects/templates/projects/project_confirm_delete.html rename to rdmo/projects/templates/projects/project_confirm_delete.html diff --git a/apps/projects/templates/projects/project_detail.html b/rdmo/projects/templates/projects/project_detail.html similarity index 100% rename from apps/projects/templates/projects/project_detail.html rename to rdmo/projects/templates/projects/project_detail.html diff --git a/apps/projects/templates/projects/project_detail_memberships.html b/rdmo/projects/templates/projects/project_detail_memberships.html similarity index 100% rename from apps/projects/templates/projects/project_detail_memberships.html rename to rdmo/projects/templates/projects/project_detail_memberships.html diff --git a/apps/projects/templates/projects/project_detail_snapshots.html b/rdmo/projects/templates/projects/project_detail_snapshots.html similarity index 100% rename from apps/projects/templates/projects/project_detail_snapshots.html rename to rdmo/projects/templates/projects/project_detail_snapshots.html diff --git a/apps/projects/templates/projects/project_detail_tasks.html b/rdmo/projects/templates/projects/project_detail_tasks.html similarity index 100% rename from apps/projects/templates/projects/project_detail_tasks.html rename to rdmo/projects/templates/projects/project_detail_tasks.html diff --git a/apps/projects/templates/projects/project_detail_views.html b/rdmo/projects/templates/projects/project_detail_views.html similarity index 100% rename from apps/projects/templates/projects/project_detail_views.html rename to rdmo/projects/templates/projects/project_detail_views.html diff --git a/apps/projects/templates/projects/project_form.html b/rdmo/projects/templates/projects/project_form.html similarity index 100% rename from apps/projects/templates/projects/project_form.html rename to rdmo/projects/templates/projects/project_form.html diff --git a/apps/projects/templates/projects/project_questions.html b/rdmo/projects/templates/projects/project_questions.html similarity index 100% rename from apps/projects/templates/projects/project_questions.html rename to rdmo/projects/templates/projects/project_questions.html diff --git a/apps/projects/templates/projects/project_questions_add_field_button.html b/rdmo/projects/templates/projects/project_questions_add_field_button.html similarity index 100% rename from apps/projects/templates/projects/project_questions_add_field_button.html rename to rdmo/projects/templates/projects/project_questions_add_field_button.html diff --git a/apps/projects/templates/projects/project_questions_add_field_help.html b/rdmo/projects/templates/projects/project_questions_add_field_help.html similarity index 100% rename from apps/projects/templates/projects/project_questions_add_field_help.html rename to rdmo/projects/templates/projects/project_questions_add_field_help.html diff --git a/apps/projects/templates/projects/project_questions_done.html b/rdmo/projects/templates/projects/project_questions_done.html similarity index 100% rename from apps/projects/templates/projects/project_questions_done.html rename to rdmo/projects/templates/projects/project_questions_done.html diff --git a/apps/projects/templates/projects/project_questions_form_group_checkbox.html b/rdmo/projects/templates/projects/project_questions_form_group_checkbox.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_checkbox.html rename to rdmo/projects/templates/projects/project_questions_form_group_checkbox.html diff --git a/apps/projects/templates/projects/project_questions_form_group_date.html b/rdmo/projects/templates/projects/project_questions_form_group_date.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_date.html rename to rdmo/projects/templates/projects/project_questions_form_group_date.html diff --git a/apps/projects/templates/projects/project_questions_form_group_radio.html b/rdmo/projects/templates/projects/project_questions_form_group_radio.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_radio.html rename to rdmo/projects/templates/projects/project_questions_form_group_radio.html diff --git a/apps/projects/templates/projects/project_questions_form_group_range.html b/rdmo/projects/templates/projects/project_questions_form_group_range.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_range.html rename to rdmo/projects/templates/projects/project_questions_form_group_range.html diff --git a/apps/projects/templates/projects/project_questions_form_group_select.html b/rdmo/projects/templates/projects/project_questions_form_group_select.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_select.html rename to rdmo/projects/templates/projects/project_questions_form_group_select.html diff --git a/apps/projects/templates/projects/project_questions_form_group_text.html b/rdmo/projects/templates/projects/project_questions_form_group_text.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_text.html rename to rdmo/projects/templates/projects/project_questions_form_group_text.html diff --git a/apps/projects/templates/projects/project_questions_form_group_textarea.html b/rdmo/projects/templates/projects/project_questions_form_group_textarea.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_textarea.html rename to rdmo/projects/templates/projects/project_questions_form_group_textarea.html diff --git a/apps/projects/templates/projects/project_questions_form_group_yesno.html b/rdmo/projects/templates/projects/project_questions_form_group_yesno.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_yesno.html rename to rdmo/projects/templates/projects/project_questions_form_group_yesno.html diff --git a/apps/projects/templates/projects/project_questions_modal_delete_valuesets.html b/rdmo/projects/templates/projects/project_questions_modal_delete_valuesets.html similarity index 100% rename from apps/projects/templates/projects/project_questions_modal_delete_valuesets.html rename to rdmo/projects/templates/projects/project_questions_modal_delete_valuesets.html diff --git a/apps/projects/templates/projects/project_questions_modal_form_valuesets.html b/rdmo/projects/templates/projects/project_questions_modal_form_valuesets.html similarity index 100% rename from apps/projects/templates/projects/project_questions_modal_form_valuesets.html rename to rdmo/projects/templates/projects/project_questions_modal_form_valuesets.html diff --git a/apps/projects/templates/projects/project_questions_questionset_head.html b/rdmo/projects/templates/projects/project_questions_questionset_head.html similarity index 100% rename from apps/projects/templates/projects/project_questions_questionset_head.html rename to rdmo/projects/templates/projects/project_questions_questionset_head.html diff --git a/apps/projects/templates/projects/project_questions_remove_field.html b/rdmo/projects/templates/projects/project_questions_remove_field.html similarity index 100% rename from apps/projects/templates/projects/project_questions_remove_field.html rename to rdmo/projects/templates/projects/project_questions_remove_field.html diff --git a/apps/projects/templates/projects/project_questions_sidebar.html b/rdmo/projects/templates/projects/project_questions_sidebar.html similarity index 100% rename from apps/projects/templates/projects/project_questions_sidebar.html rename to rdmo/projects/templates/projects/project_questions_sidebar.html diff --git a/apps/projects/templates/projects/project_view.html b/rdmo/projects/templates/projects/project_view.html similarity index 100% rename from apps/projects/templates/projects/project_view.html rename to rdmo/projects/templates/projects/project_view.html diff --git a/apps/projects/templates/projects/project_view_export.html b/rdmo/projects/templates/projects/project_view_export.html similarity index 100% rename from apps/projects/templates/projects/project_view_export.html rename to rdmo/projects/templates/projects/project_view_export.html diff --git a/apps/projects/templates/projects/projects.html b/rdmo/projects/templates/projects/projects.html similarity index 100% rename from apps/projects/templates/projects/projects.html rename to rdmo/projects/templates/projects/projects.html diff --git a/apps/projects/templates/projects/snapshot_form.html b/rdmo/projects/templates/projects/snapshot_form.html similarity index 100% rename from apps/projects/templates/projects/snapshot_form.html rename to rdmo/projects/templates/projects/snapshot_form.html diff --git a/apps/projects/templates/projects/snapshot_rollback.html b/rdmo/projects/templates/projects/snapshot_rollback.html similarity index 100% rename from apps/projects/templates/projects/snapshot_rollback.html rename to rdmo/projects/templates/projects/snapshot_rollback.html diff --git a/apps/projects/tests.py b/rdmo/projects/tests.py similarity index 98% rename from apps/projects/tests.py rename to rdmo/projects/tests.py index fb1565af7..59efb2cdb 100644 --- a/apps/projects/tests.py +++ b/rdmo/projects/tests.py @@ -6,8 +6,8 @@ from test_generator.views import TestUpdateViewMixin, TestDeleteViewMixin, TestModelViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestReadOnlyModelViewsetMixin -from apps.accounts.utils import set_group_permissions -from apps.questions.models import Catalog, QuestionEntity +from rdmo.accounts.utils import set_group_permissions +from rdmo.questions.models import Catalog, QuestionEntity from .models import Project, Membership, Value diff --git a/apps/projects/urls.py b/rdmo/projects/urls.py similarity index 100% rename from apps/projects/urls.py rename to rdmo/projects/urls.py diff --git a/apps/projects/utils.py b/rdmo/projects/utils.py similarity index 98% rename from apps/projects/utils.py rename to rdmo/projects/utils.py index b26119315..090b537df 100644 --- a/apps/projects/utils.py +++ b/rdmo/projects/utils.py @@ -2,10 +2,10 @@ from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_ns_tag -from apps.domain.models import Attribute -from apps.options.models import Option -from apps.questions.utils import Catalog +from rdmo.core.utils import get_ns_tag +from rdmo.domain.models import Attribute +from rdmo.options.models import Option +from rdmo.questions.utils import Catalog from .models import Project, Membership, Snapshot, Value diff --git a/apps/projects/views.py b/rdmo/projects/views.py similarity index 98% rename from apps/projects/views.py rename to rdmo/projects/views.py index 203a4f9b0..0290f9fdb 100644 --- a/apps/projects/views.py +++ b/rdmo/projects/views.py @@ -10,10 +10,10 @@ from django.views.generic.detail import DetailView from django.views.generic.edit import CreateView, UpdateView, DeleteView -from apps.core.views import ObjectPermissionMixin, RedirectViewMixin -from apps.core.utils import render_to_format -from apps.tasks.models import Task -from apps.views.models import View +from rdmo.core.views import ObjectPermissionMixin, RedirectViewMixin +from rdmo.core.utils import render_to_format +from rdmo.tasks.models import Task +from rdmo.views.models import View from .models import Project, Membership, Snapshot from .forms import ProjectForm, SnapshotCreateForm, MembershipCreateForm diff --git a/apps/projects/viewsets.py b/rdmo/projects/viewsets.py similarity index 97% rename from apps/projects/viewsets.py rename to rdmo/projects/viewsets.py index 49abec6d1..b80d1efae 100644 --- a/apps/projects/viewsets.py +++ b/rdmo/projects/viewsets.py @@ -11,9 +11,9 @@ from rest_framework_extensions.cache.mixins import RetrieveCacheResponseMixin -from apps.core.permissions import HasModelPermission, HasObjectPermission -from apps.conditions.models import Condition -from apps.questions.models import Catalog, QuestionEntity +from rdmo.core.permissions import HasModelPermission, HasObjectPermission +from rdmo.conditions.models import Condition +from rdmo.questions.models import Catalog, QuestionEntity from .models import Project, Snapshot, Value diff --git a/rdmo/questions/__init__.py b/rdmo/questions/__init__.py new file mode 100644 index 000000000..446ebe1b0 --- /dev/null +++ b/rdmo/questions/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.questions.app_config.QuestionsConfig' diff --git a/apps/questions/admin.py b/rdmo/questions/admin.py similarity index 100% rename from apps/questions/admin.py rename to rdmo/questions/admin.py diff --git a/apps/questions/app_config.py b/rdmo/questions/app_config.py similarity index 85% rename from apps/questions/app_config.py rename to rdmo/questions/app_config.py index a1b2dcd5c..bac13839e 100644 --- a/apps/questions/app_config.py +++ b/rdmo/questions/app_config.py @@ -3,5 +3,5 @@ class QuestionsConfig(AppConfig): - name = 'apps.questions' + name = 'rdmo.questions' verbose_name = _('Questions') diff --git a/apps/questions/managers.py b/rdmo/questions/managers.py similarity index 100% rename from apps/questions/managers.py rename to rdmo/questions/managers.py diff --git a/apps/questions/migrations/0001_initial_after_reset.py b/rdmo/questions/migrations/0001_initial_after_reset.py similarity index 95% rename from apps/questions/migrations/0001_initial_after_reset.py rename to rdmo/questions/migrations/0001_initial_after_reset.py index 08786118b..e36679d6e 100644 --- a/apps/questions/migrations/0001_initial_after_reset.py +++ b/rdmo/questions/migrations/0001_initial_after_reset.py @@ -3,7 +3,7 @@ from django.db import models, migrations import django.db.models.deletion -import apps.core.models +import rdmo.core.models class Migration(migrations.Migration): @@ -28,7 +28,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Catalog', 'verbose_name_plural': 'Catalogs', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='QuestionEntity', @@ -45,7 +45,7 @@ class Migration(migrations.Migration): 'verbose_name': 'QuestionEntity', 'verbose_name_plural': 'QuestionEntities', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Section', @@ -63,7 +63,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Section', 'verbose_name_plural': 'Sections', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Subsection', @@ -81,7 +81,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Subsection', 'verbose_name_plural': 'Subsections', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Question', diff --git a/apps/questions/migrations/0002_meta.py b/rdmo/questions/migrations/0002_meta.py similarity index 100% rename from apps/questions/migrations/0002_meta.py rename to rdmo/questions/migrations/0002_meta.py diff --git a/apps/questions/migrations/0003_renaming.py b/rdmo/questions/migrations/0003_renaming.py similarity index 100% rename from apps/questions/migrations/0003_renaming.py rename to rdmo/questions/migrations/0003_renaming.py diff --git a/apps/questions/migrations/0004_full_title.py b/rdmo/questions/migrations/0004_full_title.py similarity index 100% rename from apps/questions/migrations/0004_full_title.py rename to rdmo/questions/migrations/0004_full_title.py diff --git a/apps/questions/migrations/0005_label.py b/rdmo/questions/migrations/0005_label.py similarity index 100% rename from apps/questions/migrations/0005_label.py rename to rdmo/questions/migrations/0005_label.py diff --git a/apps/questions/migrations/0006_auto_20160803_1619.py b/rdmo/questions/migrations/0006_auto_20160803_1619.py similarity index 100% rename from apps/questions/migrations/0006_auto_20160803_1619.py rename to rdmo/questions/migrations/0006_auto_20160803_1619.py diff --git a/apps/questions/migrations/0007_refactoring.py b/rdmo/questions/migrations/0007_refactoring.py similarity index 100% rename from apps/questions/migrations/0007_refactoring.py rename to rdmo/questions/migrations/0007_refactoring.py diff --git a/apps/questions/migrations/0008_data_migration.py b/rdmo/questions/migrations/0008_data_migration.py similarity index 100% rename from apps/questions/migrations/0008_data_migration.py rename to rdmo/questions/migrations/0008_data_migration.py diff --git a/apps/questions/migrations/0009_meta.py b/rdmo/questions/migrations/0009_meta.py similarity index 100% rename from apps/questions/migrations/0009_meta.py rename to rdmo/questions/migrations/0009_meta.py diff --git a/apps/questions/migrations/0010_label.py b/rdmo/questions/migrations/0010_label.py similarity index 100% rename from apps/questions/migrations/0010_label.py rename to rdmo/questions/migrations/0010_label.py diff --git a/apps/questions/migrations/0011_path.py b/rdmo/questions/migrations/0011_path.py similarity index 100% rename from apps/questions/migrations/0011_path.py rename to rdmo/questions/migrations/0011_path.py diff --git a/apps/questions/migrations/0012_meta.py b/rdmo/questions/migrations/0012_meta.py similarity index 100% rename from apps/questions/migrations/0012_meta.py rename to rdmo/questions/migrations/0012_meta.py diff --git a/apps/questions/migrations/0013_permissions.py b/rdmo/questions/migrations/0013_permissions.py similarity index 100% rename from apps/questions/migrations/0013_permissions.py rename to rdmo/questions/migrations/0013_permissions.py diff --git a/apps/questions/migrations/0014_meta.py b/rdmo/questions/migrations/0014_meta.py similarity index 100% rename from apps/questions/migrations/0014_meta.py rename to rdmo/questions/migrations/0014_meta.py diff --git a/apps/questions/migrations/__init__.py b/rdmo/questions/migrations/__init__.py similarity index 100% rename from apps/questions/migrations/__init__.py rename to rdmo/questions/migrations/__init__.py diff --git a/apps/questions/models.py b/rdmo/questions/models.py similarity index 98% rename from apps/questions/models.py rename to rdmo/questions/models.py index c02571981..4da3c0736 100644 --- a/apps/questions/models.py +++ b/rdmo/questions/models.py @@ -5,9 +5,9 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_uri_prefix -from apps.core.models import Model, TranslationMixin -from apps.domain.models import AttributeEntity +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import Model, TranslationMixin +from rdmo.domain.models import AttributeEntity from .managers import QuestionEntityManager from .validators import ( diff --git a/apps/questions/renderers.py b/rdmo/questions/renderers.py similarity index 98% rename from apps/questions/renderers.py rename to rdmo/questions/renderers.py index 58c35d50f..8673c64bd 100644 --- a/apps/questions/renderers.py +++ b/rdmo/questions/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/questions/serializers/__init__.py b/rdmo/questions/serializers/__init__.py similarity index 98% rename from apps/questions/serializers/__init__.py rename to rdmo/questions/serializers/__init__.py index 64ae2ec97..5bde0429d 100644 --- a/apps/questions/serializers/__init__.py +++ b/rdmo/questions/serializers/__init__.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.domain.models import AttributeEntity, Attribute +from rdmo.domain.models import AttributeEntity, Attribute from ..models import Catalog, Section, Subsection, QuestionEntity, Question from ..validators import ( diff --git a/apps/questions/serializers/api.py b/rdmo/questions/serializers/api.py similarity index 100% rename from apps/questions/serializers/api.py rename to rdmo/questions/serializers/api.py diff --git a/apps/questions/serializers/export.py b/rdmo/questions/serializers/export.py similarity index 100% rename from apps/questions/serializers/export.py rename to rdmo/questions/serializers/export.py diff --git a/apps/questions/serializers/nested.py b/rdmo/questions/serializers/nested.py similarity index 98% rename from apps/questions/serializers/nested.py rename to rdmo/questions/serializers/nested.py index fc86bb0f8..24acf5d06 100644 --- a/apps/questions/serializers/nested.py +++ b/rdmo/questions/serializers/nested.py @@ -4,7 +4,7 @@ from rest_framework import serializers from rest_framework.reverse import reverse -from apps.domain.models import AttributeEntity +from rdmo.domain.models import AttributeEntity from ..models import Catalog, Section, Subsection, QuestionEntity, Question diff --git a/apps/questions/static/questions/css/catalogs.scss b/rdmo/questions/static/questions/css/catalogs.scss similarity index 100% rename from apps/questions/static/questions/css/catalogs.scss rename to rdmo/questions/static/questions/css/catalogs.scss diff --git a/apps/questions/static/questions/js/catalogs.js b/rdmo/questions/static/questions/js/catalogs.js similarity index 100% rename from apps/questions/static/questions/js/catalogs.js rename to rdmo/questions/static/questions/js/catalogs.js diff --git a/apps/questions/templates/questions/catalog_export.html b/rdmo/questions/templates/questions/catalog_export.html similarity index 100% rename from apps/questions/templates/questions/catalog_export.html rename to rdmo/questions/templates/questions/catalog_export.html diff --git a/apps/questions/templates/questions/catalog_tree.html b/rdmo/questions/templates/questions/catalog_tree.html similarity index 100% rename from apps/questions/templates/questions/catalog_tree.html rename to rdmo/questions/templates/questions/catalog_tree.html diff --git a/apps/questions/templates/questions/catalogs.html b/rdmo/questions/templates/questions/catalogs.html similarity index 100% rename from apps/questions/templates/questions/catalogs.html rename to rdmo/questions/templates/questions/catalogs.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_catalogs.html b/rdmo/questions/templates/questions/catalogs_modal_delete_catalogs.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_catalogs.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_catalogs.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_questions.html b/rdmo/questions/templates/questions/catalogs_modal_delete_questions.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_questions.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_questions.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_questionsets.html b/rdmo/questions/templates/questions/catalogs_modal_delete_questionsets.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_questionsets.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_questionsets.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_sections.html b/rdmo/questions/templates/questions/catalogs_modal_delete_sections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_sections.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_sections.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_subsections.html b/rdmo/questions/templates/questions/catalogs_modal_delete_subsections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_subsections.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_subsections.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_catalogs.html b/rdmo/questions/templates/questions/catalogs_modal_form_catalogs.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_catalogs.html rename to rdmo/questions/templates/questions/catalogs_modal_form_catalogs.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_questions.html b/rdmo/questions/templates/questions/catalogs_modal_form_questions.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_questions.html rename to rdmo/questions/templates/questions/catalogs_modal_form_questions.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_questionsets.html b/rdmo/questions/templates/questions/catalogs_modal_form_questionsets.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_questionsets.html rename to rdmo/questions/templates/questions/catalogs_modal_form_questionsets.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_sections.html b/rdmo/questions/templates/questions/catalogs_modal_form_sections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_sections.html rename to rdmo/questions/templates/questions/catalogs_modal_form_sections.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_subsections.html b/rdmo/questions/templates/questions/catalogs_modal_form_subsections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_subsections.html rename to rdmo/questions/templates/questions/catalogs_modal_form_subsections.html diff --git a/apps/questions/templates/questions/catalogs_options_questions.html b/rdmo/questions/templates/questions/catalogs_options_questions.html similarity index 100% rename from apps/questions/templates/questions/catalogs_options_questions.html rename to rdmo/questions/templates/questions/catalogs_options_questions.html diff --git a/apps/questions/templates/questions/catalogs_options_questionsets.html b/rdmo/questions/templates/questions/catalogs_options_questionsets.html similarity index 100% rename from apps/questions/templates/questions/catalogs_options_questionsets.html rename to rdmo/questions/templates/questions/catalogs_options_questionsets.html diff --git a/apps/questions/templates/questions/catalogs_options_sections.html b/rdmo/questions/templates/questions/catalogs_options_sections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_options_sections.html rename to rdmo/questions/templates/questions/catalogs_options_sections.html diff --git a/apps/questions/templates/questions/catalogs_options_subsections.html b/rdmo/questions/templates/questions/catalogs_options_subsections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_options_subsections.html rename to rdmo/questions/templates/questions/catalogs_options_subsections.html diff --git a/apps/questions/templates/questions/catalogs_sidebar.html b/rdmo/questions/templates/questions/catalogs_sidebar.html similarity index 100% rename from apps/questions/templates/questions/catalogs_sidebar.html rename to rdmo/questions/templates/questions/catalogs_sidebar.html diff --git a/apps/questions/tests.py b/rdmo/questions/tests.py similarity index 98% rename from apps/questions/tests.py rename to rdmo/questions/tests.py index b49f536cb..4c38b6c07 100644 --- a/apps/questions/tests.py +++ b/rdmo/questions/tests.py @@ -4,8 +4,8 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestImportViewMixin -from apps.accounts.utils import set_group_permissions +from rdmo.core.testing.mixins import TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions from .models import Catalog, Section, Subsection, QuestionEntity, Question diff --git a/apps/questions/urls.py b/rdmo/questions/urls.py similarity index 100% rename from apps/questions/urls.py rename to rdmo/questions/urls.py diff --git a/apps/questions/utils.py b/rdmo/questions/utils.py similarity index 98% rename from apps/questions/utils.py rename to rdmo/questions/utils.py index 8655896fa..7fda9b5ed 100644 --- a/apps/questions/utils.py +++ b/rdmo/questions/utils.py @@ -1,5 +1,5 @@ -from apps.core.utils import get_ns_tag -from apps.domain.models import AttributeEntity +from rdmo.core.utils import get_ns_tag +from rdmo.domain.models import AttributeEntity from .models import Catalog, Section, Subsection, QuestionEntity, Question diff --git a/apps/questions/validators.py b/rdmo/questions/validators.py similarity index 94% rename from apps/questions/validators.py rename to rdmo/questions/validators.py index fec36a71f..c7fd97871 100644 --- a/apps/questions/validators.py +++ b/rdmo/questions/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator, UniquePathValidator +from rdmo.core.validators import UniqueKeyValidator, UniquePathValidator class CatalogUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/questions/views.py b/rdmo/questions/views.py similarity index 93% rename from apps/questions/views.py rename to rdmo/questions/views.py index 573a6c105..4cddf35de 100644 --- a/apps/questions/views.py +++ b/rdmo/questions/views.py @@ -2,8 +2,8 @@ from django.http import HttpResponse from django.views.generic import TemplateView, DetailView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import Catalog, Section, Subsection, Question from .serializers.export import CatalogSerializer as ExportSerializer diff --git a/apps/questions/viewsets.py b/rdmo/questions/viewsets.py similarity index 97% rename from apps/questions/viewsets.py rename to rdmo/questions/viewsets.py index 818cfa520..4e1580eea 100644 --- a/apps/questions/viewsets.py +++ b/rdmo/questions/viewsets.py @@ -7,10 +7,10 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.views import ChoicesViewSet -from apps.core.permissions import HasModelPermission +from rdmo.core.views import ChoicesViewSet +from rdmo.core.permissions import HasModelPermission -from apps.domain.models import AttributeEntity, Attribute +from rdmo.domain.models import AttributeEntity, Attribute from .models import Catalog, Section, Subsection, QuestionEntity, Question from .serializers import ( diff --git a/rdmo/tasks/__init__.py b/rdmo/tasks/__init__.py new file mode 100644 index 000000000..616538ff7 --- /dev/null +++ b/rdmo/tasks/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.tasks.app_config.TasksConfig' diff --git a/apps/tasks/admin.py b/rdmo/tasks/admin.py similarity index 100% rename from apps/tasks/admin.py rename to rdmo/tasks/admin.py diff --git a/apps/tasks/app_config.py b/rdmo/tasks/app_config.py similarity index 86% rename from apps/tasks/app_config.py rename to rdmo/tasks/app_config.py index 12ab832f5..a46ee4b70 100644 --- a/apps/tasks/app_config.py +++ b/rdmo/tasks/app_config.py @@ -3,5 +3,5 @@ class TasksConfig(AppConfig): - name = 'apps.tasks' + name = 'rdmo.tasks' verbose_name = _('Tasks') diff --git a/apps/tasks/managers.py b/rdmo/tasks/managers.py similarity index 100% rename from apps/tasks/managers.py rename to rdmo/tasks/managers.py diff --git a/apps/tasks/migrations/0001_initial.py b/rdmo/tasks/migrations/0001_initial.py similarity index 93% rename from apps/tasks/migrations/0001_initial.py rename to rdmo/tasks/migrations/0001_initial.py index 2cea2a982..471ec38a6 100644 --- a/apps/tasks/migrations/0001_initial.py +++ b/rdmo/tasks/migrations/0001_initial.py @@ -2,7 +2,7 @@ # Generated by Django 1.9 on 2016-07-18 11:25 from __future__ import unicode_literals -import apps.core.models +import rdmo.core.models from django.db import migrations, models import django.db.models.deletion @@ -32,6 +32,6 @@ class Migration(migrations.Migration): 'verbose_name': 'Task', 'verbose_name_plural': 'Tasks', }, - bases=(apps.core.models.TranslationMixin, models.Model), + bases=(rdmo.core.models.TranslationMixin, models.Model), ), ] diff --git a/apps/tasks/migrations/0002_many_to_many_for_conditions.py b/rdmo/tasks/migrations/0002_many_to_many_for_conditions.py similarity index 100% rename from apps/tasks/migrations/0002_many_to_many_for_conditions.py rename to rdmo/tasks/migrations/0002_many_to_many_for_conditions.py diff --git a/apps/tasks/migrations/0003_meta.py b/rdmo/tasks/migrations/0003_meta.py similarity index 100% rename from apps/tasks/migrations/0003_meta.py rename to rdmo/tasks/migrations/0003_meta.py diff --git a/apps/tasks/migrations/0004_refactoring.py b/rdmo/tasks/migrations/0004_refactoring.py similarity index 100% rename from apps/tasks/migrations/0004_refactoring.py rename to rdmo/tasks/migrations/0004_refactoring.py diff --git a/apps/tasks/migrations/0005_data_migration.py b/rdmo/tasks/migrations/0005_data_migration.py similarity index 100% rename from apps/tasks/migrations/0005_data_migration.py rename to rdmo/tasks/migrations/0005_data_migration.py diff --git a/apps/tasks/migrations/0006_meta.py b/rdmo/tasks/migrations/0006_meta.py similarity index 100% rename from apps/tasks/migrations/0006_meta.py rename to rdmo/tasks/migrations/0006_meta.py diff --git a/apps/tasks/migrations/0007_permissions.py b/rdmo/tasks/migrations/0007_permissions.py similarity index 100% rename from apps/tasks/migrations/0007_permissions.py rename to rdmo/tasks/migrations/0007_permissions.py diff --git a/apps/tasks/migrations/0008_remove_time_period.py b/rdmo/tasks/migrations/0008_remove_time_period.py similarity index 100% rename from apps/tasks/migrations/0008_remove_time_period.py rename to rdmo/tasks/migrations/0008_remove_time_period.py diff --git a/apps/tasks/migrations/0009_timeframe.py b/rdmo/tasks/migrations/0009_timeframe.py similarity index 100% rename from apps/tasks/migrations/0009_timeframe.py rename to rdmo/tasks/migrations/0009_timeframe.py diff --git a/apps/tasks/migrations/0010_meta.py b/rdmo/tasks/migrations/0010_meta.py similarity index 100% rename from apps/tasks/migrations/0010_meta.py rename to rdmo/tasks/migrations/0010_meta.py diff --git a/apps/tasks/migrations/0011_task_text.py b/rdmo/tasks/migrations/0011_task_text.py similarity index 100% rename from apps/tasks/migrations/0011_task_text.py rename to rdmo/tasks/migrations/0011_task_text.py diff --git a/apps/tasks/migrations/__init__.py b/rdmo/tasks/migrations/__init__.py similarity index 100% rename from apps/tasks/migrations/__init__.py rename to rdmo/tasks/migrations/__init__.py diff --git a/apps/tasks/models.py b/rdmo/tasks/models.py similarity index 96% rename from apps/tasks/models.py rename to rdmo/tasks/models.py index 7bb79bde1..a55ea6294 100644 --- a/apps/tasks/models.py +++ b/rdmo/tasks/models.py @@ -11,11 +11,11 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_uri_prefix -from apps.core.models import TranslationMixin -from apps.domain.models import Attribute -from apps.conditions.models import Condition -from apps.projects.models import Value +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import TranslationMixin +from rdmo.domain.models import Attribute +from rdmo.conditions.models import Condition +from rdmo.projects.models import Value from .managers import TaskManager from .validators import TaskUniqueKeyValidator diff --git a/apps/tasks/renderers.py b/rdmo/tasks/renderers.py similarity index 97% rename from apps/tasks/renderers.py rename to rdmo/tasks/renderers.py index e518ceb1e..ba291c25e 100644 --- a/apps/tasks/renderers.py +++ b/rdmo/tasks/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/tasks/serializers/__init__.py b/rdmo/tasks/serializers/__init__.py similarity index 93% rename from apps/tasks/serializers/__init__.py rename to rdmo/tasks/serializers/__init__.py index 58b6fb2fa..9683d8bf6 100644 --- a/apps/tasks/serializers/__init__.py +++ b/rdmo/tasks/serializers/__init__.py @@ -1,7 +1,7 @@ from rest_framework import serializers -from apps.domain.models import Attribute -from apps.conditions.models import Condition +from rdmo.domain.models import Attribute +from rdmo.conditions.models import Condition from ..models import Task, TimeFrame from ..validators import TaskUniqueKeyValidator diff --git a/apps/tasks/serializers/api.py b/rdmo/tasks/serializers/api.py similarity index 91% rename from apps/tasks/serializers/api.py rename to rdmo/tasks/serializers/api.py index d34b0ca21..2eb322cda 100644 --- a/apps/tasks/serializers/api.py +++ b/rdmo/tasks/serializers/api.py @@ -1,8 +1,8 @@ from rest_framework import serializers -from apps.domain.models import Attribute -from apps.conditions.models import Condition +from rdmo.domain.models import Attribute +from rdmo.conditions.models import Condition from ..models import Task, TimeFrame from ..validators import TaskUniqueKeyValidator diff --git a/apps/tasks/serializers/export.py b/rdmo/tasks/serializers/export.py similarity index 100% rename from apps/tasks/serializers/export.py rename to rdmo/tasks/serializers/export.py diff --git a/apps/tasks/static/tasks/css/tasks.scss b/rdmo/tasks/static/tasks/css/tasks.scss similarity index 100% rename from apps/tasks/static/tasks/css/tasks.scss rename to rdmo/tasks/static/tasks/css/tasks.scss diff --git a/apps/tasks/static/tasks/js/tasks.js b/rdmo/tasks/static/tasks/js/tasks.js similarity index 100% rename from apps/tasks/static/tasks/js/tasks.js rename to rdmo/tasks/static/tasks/js/tasks.js diff --git a/apps/tasks/templates/tasks/tasks.html b/rdmo/tasks/templates/tasks/tasks.html similarity index 100% rename from apps/tasks/templates/tasks/tasks.html rename to rdmo/tasks/templates/tasks/tasks.html diff --git a/apps/tasks/templates/tasks/tasks_export.html b/rdmo/tasks/templates/tasks/tasks_export.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_export.html rename to rdmo/tasks/templates/tasks/tasks_export.html diff --git a/apps/tasks/templates/tasks/tasks_modal_delete_tasks.html b/rdmo/tasks/templates/tasks/tasks_modal_delete_tasks.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_modal_delete_tasks.html rename to rdmo/tasks/templates/tasks/tasks_modal_delete_tasks.html diff --git a/apps/tasks/templates/tasks/tasks_modal_form_conditions.html b/rdmo/tasks/templates/tasks/tasks_modal_form_conditions.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_modal_form_conditions.html rename to rdmo/tasks/templates/tasks/tasks_modal_form_conditions.html diff --git a/apps/tasks/templates/tasks/tasks_modal_form_tasks.html b/rdmo/tasks/templates/tasks/tasks_modal_form_tasks.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_modal_form_tasks.html rename to rdmo/tasks/templates/tasks/tasks_modal_form_tasks.html diff --git a/apps/tasks/templates/tasks/tasks_modal_form_timeframes.html b/rdmo/tasks/templates/tasks/tasks_modal_form_timeframes.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_modal_form_timeframes.html rename to rdmo/tasks/templates/tasks/tasks_modal_form_timeframes.html diff --git a/apps/tasks/tests.py b/rdmo/tasks/tests.py similarity index 94% rename from apps/tasks/tests.py rename to rdmo/tasks/tests.py index 7fc64fc2a..5c5109dde 100644 --- a/apps/tasks/tests.py +++ b/rdmo/tasks/tests.py @@ -3,9 +3,9 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions -from apps.conditions.models import Condition +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions +from rdmo.conditions.models import Condition from .models import Task diff --git a/apps/tasks/urls.py b/rdmo/tasks/urls.py similarity index 100% rename from apps/tasks/urls.py rename to rdmo/tasks/urls.py diff --git a/apps/tasks/utils.py b/rdmo/tasks/utils.py similarity index 91% rename from apps/tasks/utils.py rename to rdmo/tasks/utils.py index 3e4e7fe00..a49a8636a 100644 --- a/apps/tasks/utils.py +++ b/rdmo/tasks/utils.py @@ -1,8 +1,8 @@ from datetime import datetime, timedelta -from apps.core.utils import get_ns_tag -from apps.conditions.models import Condition -from apps.domain.models import Attribute +from rdmo.core.utils import get_ns_tag +from rdmo.conditions.models import Condition +from rdmo.domain.models import Attribute from .models import Task diff --git a/apps/tasks/validators.py b/rdmo/tasks/validators.py similarity index 66% rename from apps/tasks/validators.py rename to rdmo/tasks/validators.py index d3a699e5f..4b5094320 100644 --- a/apps/tasks/validators.py +++ b/rdmo/tasks/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator +from rdmo.core.validators import UniqueKeyValidator class TaskUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/tasks/views.py b/rdmo/tasks/views.py similarity index 92% rename from apps/tasks/views.py rename to rdmo/tasks/views.py index 7ccd0bc06..bab654e74 100644 --- a/apps/tasks/views.py +++ b/rdmo/tasks/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import Task, TimeFrame from .serializers.export import TaskSerializer as ExportSerializer diff --git a/apps/tasks/viewsets.py b/rdmo/tasks/viewsets.py similarity index 93% rename from apps/tasks/viewsets.py rename to rdmo/tasks/viewsets.py index c398380e6..93692914c 100644 --- a/apps/tasks/viewsets.py +++ b/rdmo/tasks/viewsets.py @@ -4,9 +4,9 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.permissions import HasModelPermission -from apps.conditions.models import Condition -from apps.domain.models import Attribute +from rdmo.core.permissions import HasModelPermission +from rdmo.conditions.models import Condition +from rdmo.domain.models import Attribute from .models import Task, TimeFrame from .serializers import ( diff --git a/rdmo/views/__init__.py b/rdmo/views/__init__.py new file mode 100644 index 000000000..6f707bcb2 --- /dev/null +++ b/rdmo/views/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.views.app_config.ViewsConfig' diff --git a/apps/views/admin.py b/rdmo/views/admin.py similarity index 100% rename from apps/views/admin.py rename to rdmo/views/admin.py diff --git a/apps/views/app_config.py b/rdmo/views/app_config.py similarity index 86% rename from apps/views/app_config.py rename to rdmo/views/app_config.py index 6e28e7b7c..46590768f 100644 --- a/apps/views/app_config.py +++ b/rdmo/views/app_config.py @@ -3,5 +3,5 @@ class ViewsConfig(AppConfig): - name = 'apps.views' + name = 'rdmo.views' verbose_name = _('Views') diff --git a/apps/views/migrations/0001_initial.py b/rdmo/views/migrations/0001_initial.py similarity index 100% rename from apps/views/migrations/0001_initial.py rename to rdmo/views/migrations/0001_initial.py diff --git a/apps/views/migrations/0002_view_template.py b/rdmo/views/migrations/0002_view_template.py similarity index 100% rename from apps/views/migrations/0002_view_template.py rename to rdmo/views/migrations/0002_view_template.py diff --git a/apps/views/migrations/0003_refactoring.py b/rdmo/views/migrations/0003_refactoring.py similarity index 100% rename from apps/views/migrations/0003_refactoring.py rename to rdmo/views/migrations/0003_refactoring.py diff --git a/apps/views/migrations/0004_refactoring.py b/rdmo/views/migrations/0004_refactoring.py similarity index 100% rename from apps/views/migrations/0004_refactoring.py rename to rdmo/views/migrations/0004_refactoring.py diff --git a/apps/views/migrations/0005_meta.py b/rdmo/views/migrations/0005_meta.py similarity index 100% rename from apps/views/migrations/0005_meta.py rename to rdmo/views/migrations/0005_meta.py diff --git a/apps/views/migrations/0006_title_and_help.py b/rdmo/views/migrations/0006_title_and_help.py similarity index 100% rename from apps/views/migrations/0006_title_and_help.py rename to rdmo/views/migrations/0006_title_and_help.py diff --git a/apps/views/migrations/0007_data_migration.py b/rdmo/views/migrations/0007_data_migration.py similarity index 100% rename from apps/views/migrations/0007_data_migration.py rename to rdmo/views/migrations/0007_data_migration.py diff --git a/apps/views/migrations/0008_permissions.py b/rdmo/views/migrations/0008_permissions.py similarity index 100% rename from apps/views/migrations/0008_permissions.py rename to rdmo/views/migrations/0008_permissions.py diff --git a/apps/views/migrations/0009_meta.py b/rdmo/views/migrations/0009_meta.py similarity index 100% rename from apps/views/migrations/0009_meta.py rename to rdmo/views/migrations/0009_meta.py diff --git a/apps/views/migrations/__init__.py b/rdmo/views/migrations/__init__.py similarity index 100% rename from apps/views/migrations/__init__.py rename to rdmo/views/migrations/__init__.py diff --git a/apps/views/models.py b/rdmo/views/models.py similarity index 97% rename from apps/views/models.py rename to rdmo/views/models.py index f53c8107a..d3f763706 100644 --- a/apps/views/models.py +++ b/rdmo/views/models.py @@ -6,10 +6,10 @@ from django.utils.translation import ugettext_lazy as _ from django.template import Context, Template -from apps.core.utils import get_uri_prefix -from apps.core.models import TranslationMixin -from apps.domain.models import AttributeEntity -from apps.conditions.models import Condition +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import TranslationMixin +from rdmo.domain.models import AttributeEntity +from rdmo.conditions.models import Condition from .validators import ViewUniqueKeyValidator diff --git a/apps/views/renderers.py b/rdmo/views/renderers.py similarity index 95% rename from apps/views/renderers.py rename to rdmo/views/renderers.py index a36d4b64d..f3bc8015a 100644 --- a/apps/views/renderers.py +++ b/rdmo/views/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/views/serializers/__init__.py b/rdmo/views/serializers/__init__.py similarity index 100% rename from apps/views/serializers/__init__.py rename to rdmo/views/serializers/__init__.py diff --git a/apps/views/serializers/api.py b/rdmo/views/serializers/api.py similarity index 100% rename from apps/views/serializers/api.py rename to rdmo/views/serializers/api.py diff --git a/apps/views/serializers/export.py b/rdmo/views/serializers/export.py similarity index 100% rename from apps/views/serializers/export.py rename to rdmo/views/serializers/export.py diff --git a/apps/views/static/views/css/views.scss b/rdmo/views/static/views/css/views.scss similarity index 100% rename from apps/views/static/views/css/views.scss rename to rdmo/views/static/views/css/views.scss diff --git a/apps/views/static/views/js/views.js b/rdmo/views/static/views/js/views.js similarity index 100% rename from apps/views/static/views/js/views.js rename to rdmo/views/static/views/js/views.js diff --git a/apps/views/templates/views/views.html b/rdmo/views/templates/views/views.html similarity index 100% rename from apps/views/templates/views/views.html rename to rdmo/views/templates/views/views.html diff --git a/apps/views/templates/views/views_export.html b/rdmo/views/templates/views/views_export.html similarity index 100% rename from apps/views/templates/views/views_export.html rename to rdmo/views/templates/views/views_export.html diff --git a/apps/views/templates/views/views_modal_delete_views.html b/rdmo/views/templates/views/views_modal_delete_views.html similarity index 100% rename from apps/views/templates/views/views_modal_delete_views.html rename to rdmo/views/templates/views/views_modal_delete_views.html diff --git a/apps/views/templates/views/views_modal_form_templates.html b/rdmo/views/templates/views/views_modal_form_templates.html similarity index 100% rename from apps/views/templates/views/views_modal_form_templates.html rename to rdmo/views/templates/views/views_modal_form_templates.html diff --git a/apps/views/templates/views/views_modal_form_views.html b/rdmo/views/templates/views/views_modal_form_views.html similarity index 100% rename from apps/views/templates/views/views_modal_form_views.html rename to rdmo/views/templates/views/views_modal_form_views.html diff --git a/apps/views/tests.py b/rdmo/views/tests.py similarity index 95% rename from apps/views/tests.py rename to rdmo/views/tests.py index 16f68b6e5..3bb9e6d92 100644 --- a/apps/views/tests.py +++ b/rdmo/views/tests.py @@ -3,8 +3,8 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions from .models import View diff --git a/apps/views/urls.py b/rdmo/views/urls.py similarity index 100% rename from apps/views/urls.py rename to rdmo/views/urls.py diff --git a/apps/views/utils.py b/rdmo/views/utils.py similarity index 89% rename from apps/views/utils.py rename to rdmo/views/utils.py index 26aa7dad1..f0a599fe4 100644 --- a/apps/views/utils.py +++ b/rdmo/views/utils.py @@ -1,7 +1,7 @@ from lxml import etree -from apps.core.utils import get_ns_tag -from apps.domain.models import AttributeEntity +from rdmo.core.utils import get_ns_tag +from rdmo.domain.models import AttributeEntity from .models import View diff --git a/apps/views/validators.py b/rdmo/views/validators.py similarity index 66% rename from apps/views/validators.py rename to rdmo/views/validators.py index d1cc82908..c96ca2ddd 100644 --- a/apps/views/validators.py +++ b/rdmo/views/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator +from rdmo.core.validators import UniqueKeyValidator class ViewUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/views/views.py b/rdmo/views/views.py similarity index 92% rename from apps/views/views.py rename to rdmo/views/views.py index f060c0172..dcd7a5618 100644 --- a/apps/views/views.py +++ b/rdmo/views/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import View from .serializers.export import ViewSerializer as ExportSerializer diff --git a/apps/views/viewsets.py b/rdmo/views/viewsets.py similarity index 95% rename from apps/views/viewsets.py rename to rdmo/views/viewsets.py index ae8ed731d..f010ffaee 100644 --- a/apps/views/viewsets.py +++ b/rdmo/views/viewsets.py @@ -4,7 +4,7 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.permissions import HasModelPermission +from rdmo.core.permissions import HasModelPermission from .models import View from .serializers import ViewSerializer, ViewIndexSerializer From 0dc0a8bf28ab489d2bac9046f2bddf78c33b985e Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 15:41:04 +0200 Subject: [PATCH 02/34] add setup.py, move files to rdmo-app --- .coveragerc | 8 +--- MANIFEST.in | 5 ++ manage.py | 10 ---- rdmo/__init__.py | 8 ++++ requirements/all.txt | 4 -- requirements/base.txt | 21 -------- requirements/docs.txt | 4 -- requirements/ldap.txt | 1 - requirements/memcached.txt | 1 - requirements/mysql.txt | 1 - requirements/postgres.txt | 1 - requirements/shibboleth.txt | 1 - requirements/testing.txt | 4 -- setup.py | 48 +++++++++++++++++++ {config => testing/config}/__init__.py | 0 .../config}/settings/__init__.py | 0 {config => testing/config}/settings/base.py | 0 {config => testing/config}/settings/local.py | 0 .../config}/settings/sample.local.py | 0 {config => testing/config}/urls.py | 0 {config => testing/config}/wsgi.py | 0 21 files changed, 63 insertions(+), 54 deletions(-) create mode 100644 MANIFEST.in delete mode 100755 manage.py delete mode 100644 requirements/all.txt delete mode 100644 requirements/base.txt delete mode 100644 requirements/docs.txt delete mode 100644 requirements/ldap.txt delete mode 100644 requirements/memcached.txt delete mode 100644 requirements/mysql.txt delete mode 100644 requirements/postgres.txt delete mode 100644 requirements/shibboleth.txt delete mode 100644 requirements/testing.txt create mode 100644 setup.py rename {config => testing/config}/__init__.py (100%) rename {config => testing/config}/settings/__init__.py (100%) rename {config => testing/config}/settings/base.py (100%) rename {config => testing/config}/settings/local.py (100%) rename {config => testing/config}/settings/sample.local.py (100%) rename {config => testing/config}/urls.py (100%) rename {config => testing/config}/wsgi.py (100%) diff --git a/.coveragerc b/.coveragerc index 7433c3ad1..c01027666 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,13 +1,9 @@ [run] -source = . +source = rdmo [report] omit = - rdmo/wsgi.py - rdmo/settings/* - apps/core/management/commands/* - env/* - */migrations/* + rdmo/core/management/commands/* exclude_lines = raise Exception except ImportError: diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..2f825479c --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,5 @@ +graft rdmo +prune config + +global-exclude __pycache__ +global-exclude *.py[co] diff --git a/manage.py b/manage.py deleted file mode 100755 index 5ec273e19..000000000 --- a/manage.py +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings") - - from django.core.management import execute_from_command_line - - execute_from_command_line(sys.argv) diff --git a/rdmo/__init__.py b/rdmo/__init__.py index e69de29bb..5804007e8 100644 --- a/rdmo/__init__.py +++ b/rdmo/__init__.py @@ -0,0 +1,8 @@ +__title__ = 'rdmo' +__version__ = '0.9.0' +__author__ = 'Jochen Klar' +__email__ = 'jklar@aip.de' +__license__ = 'Apache-2.0' +__copyright__ = 'Copyright 2017 Leibniz Institute for Astrophysics Potsdam (AIP)' + +VERSION = __version__ diff --git a/requirements/all.txt b/requirements/all.txt deleted file mode 100644 index 55efe56d4..000000000 --- a/requirements/all.txt +++ /dev/null @@ -1,4 +0,0 @@ --r base.txt --r postgres.txt --r mysql.txt --r testing.txt diff --git a/requirements/base.txt b/requirements/base.txt deleted file mode 100644 index 92939f37c..000000000 --- a/requirements/base.txt +++ /dev/null @@ -1,21 +0,0 @@ -Django==1.11.1 - -djangorestframework==3.6.2 -drf-extensions==0.3.1 - -django-extensions==1.7.7 -django-allauth==0.31.0 -django-filter==1.0.2 -django-widget-tweaks==1.4.1 -django-mptt==0.8.7 -django-compressor==2.1.1 -django-libsass==0.7 -django-bower==5.2.0 -django-settings-export==1.2.1 - -rules==1.2 -jsonfield==1.0.0 -Markdown==2.6.8 -iso8601==0.1.11 -pypandoc==1.3.3 -lxml==3.7.3 diff --git a/requirements/docs.txt b/requirements/docs.txt deleted file mode 100644 index a4db2028d..000000000 --- a/requirements/docs.txt +++ /dev/null @@ -1,4 +0,0 @@ -sphinx -sphinx-autobuild -sphinx_rtd_theme -recommonmark diff --git a/requirements/ldap.txt b/requirements/ldap.txt deleted file mode 100644 index 592d42919..000000000 --- a/requirements/ldap.txt +++ /dev/null @@ -1 +0,0 @@ -django-auth-ldap==1.2.8 diff --git a/requirements/memcached.txt b/requirements/memcached.txt deleted file mode 100644 index d869019ac..000000000 --- a/requirements/memcached.txt +++ /dev/null @@ -1 +0,0 @@ -python-memcached==1.58 diff --git a/requirements/mysql.txt b/requirements/mysql.txt deleted file mode 100644 index d1d0bec33..000000000 --- a/requirements/mysql.txt +++ /dev/null @@ -1 +0,0 @@ -mysqlclient==1.3.10 diff --git a/requirements/postgres.txt b/requirements/postgres.txt deleted file mode 100644 index 3b4eaddf2..000000000 --- a/requirements/postgres.txt +++ /dev/null @@ -1 +0,0 @@ -psycopg2==2.7.1 diff --git a/requirements/shibboleth.txt b/requirements/shibboleth.txt deleted file mode 100644 index 57ee30d6a..000000000 --- a/requirements/shibboleth.txt +++ /dev/null @@ -1 +0,0 @@ -git+https://github.com/Brown-University-Library/django-shibboleth-remoteuser.git diff --git a/requirements/testing.txt b/requirements/testing.txt deleted file mode 100644 index 3f581bc78..000000000 --- a/requirements/testing.txt +++ /dev/null @@ -1,4 +0,0 @@ -django-test-generator==0.1.0 - -coverage==4.3.4 -coveralls==1.1 diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..aa814cb87 --- /dev/null +++ b/setup.py @@ -0,0 +1,48 @@ +from setuptools import setup, find_packages + +from rdmo import __title__, __email__, __version__, __author__, __license__ + +setup( + name=__title__, + version=__version__, + author=__author__, + author_email=__email__, + maintainer=__author__, + maintainer_email=__email__, + license=__license__, + url='https://github.com/rdmorganiser/rdmo', + description=u'RDMO is a tool to support the systematic planning, organisation and implementation of the data management throughout the course of a research project.', + # long_description=open('README.rst').read(), + install_requires=[ + 'Django==1.11.1', + 'djangorestframework==3.6.2', + 'drf-extensions==0.3.1', + 'django-extensions==1.7.7', + 'django-allauth==0.31.0', + 'django-filter==1.0.2', + 'django-widget-tweaks==1.4.1', + 'django-mptt==0.8.7', + 'django-compressor==2.1.1', + 'django-libsass==0.7', + 'django-bower==5.2.0', + 'django-settings-export==1.2.1', + 'rules==1.2', + 'jsonfield==1.0.0', + 'Markdown==2.6.8', + 'iso8601==0.1.11', + 'pypandoc==1.3.3', + 'lxml==3.7.3' + ], + classifiers=[ + 'Development Status :: 1 - Planning', + 'Environment :: Web Environment', + 'Framework :: Django :: 1.11', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.4' + ], + packages=find_packages(), + include_package_data=True +) diff --git a/config/__init__.py b/testing/config/__init__.py similarity index 100% rename from config/__init__.py rename to testing/config/__init__.py diff --git a/config/settings/__init__.py b/testing/config/settings/__init__.py similarity index 100% rename from config/settings/__init__.py rename to testing/config/settings/__init__.py diff --git a/config/settings/base.py b/testing/config/settings/base.py similarity index 100% rename from config/settings/base.py rename to testing/config/settings/base.py diff --git a/config/settings/local.py b/testing/config/settings/local.py similarity index 100% rename from config/settings/local.py rename to testing/config/settings/local.py diff --git a/config/settings/sample.local.py b/testing/config/settings/sample.local.py similarity index 100% rename from config/settings/sample.local.py rename to testing/config/settings/sample.local.py diff --git a/config/urls.py b/testing/config/urls.py similarity index 100% rename from config/urls.py rename to testing/config/urls.py diff --git a/config/wsgi.py b/testing/config/wsgi.py similarity index 100% rename from config/wsgi.py rename to testing/config/wsgi.py From 52ed52ded399ca5c2224ddbb2bc1b010832205b3 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 15:57:51 +0200 Subject: [PATCH 03/34] add testing --- .gitignore | 15 ++++++------- .travis.yml | 26 +++++++++++++++-------- setup.py | 4 +++- testing/config/settings/base.py | 6 +++--- testing/{ => config}/settings/mysql.py | 0 testing/{ => config}/settings/postgres.py | 0 testing/{ => config}/settings/sqlite3.py | 0 testing/runtests.py | 26 +++++++++++++++++++++++ 8 files changed, 55 insertions(+), 22 deletions(-) rename testing/{ => config}/settings/mysql.py (100%) rename testing/{ => config}/settings/postgres.py (100%) rename testing/{ => config}/settings/sqlite3.py (100%) create mode 100644 testing/runtests.py diff --git a/.gitignore b/.gitignore index 49ec037d2..c09dcc89b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,9 @@ -rdmo/settings/local.py - -components_root -static_root -media_root +testing/config/settings/local.py +testing/static_root/ docs/_build* +__pycache__ *.pyc *~ *.swp @@ -15,10 +13,9 @@ env env2 env3 -*.sqlite3 - .coverage htmlcov -themes -theme +build +dist +*.egg-info diff --git a/.travis.yml b/.travis.yml index f4e2f0fba..cc37619f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,27 +1,35 @@ language: python -cache: - directories: - - $HOME/virtualenv +cache: pip + services: - postgresql - mysql + python: - 2.7 - 3.4 +- 3.5 +- 3.6 + env: - DB=postgres - DB=mysql - DB=sqlite3 + before_install: - sudo apt-get install pandoc + install: -- pip install -r requirements/base.txt -- pip install -r requirements/postgres.txt -- pip install -r requirements/mysql.txt -- pip install -r requirements/testing.txt +- pip install -e . +- pip install mysqlclient +- pip install psycopg2 +- pip install coveralls + before_script: -- sh -c "cp testing/settings/$DB.py rdmo/settings/local.py; fi" +- sh -c "cp testing/config/settings/$DB.py testing/config/settings/local.py; fi" + script: -- coverage run manage.py test +- coverage run testing/runtests.py + after_success: - coveralls diff --git a/setup.py b/setup.py index aa814cb87..03b0559a1 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,9 @@ 'Markdown==2.6.8', 'iso8601==0.1.11', 'pypandoc==1.3.3', - 'lxml==3.7.3' + 'lxml==3.7.3', + 'coverage', + 'django-test-generator>=0.1.2' ], classifiers=[ 'Development Status :: 1 - Planning', diff --git a/testing/config/settings/base.py b/testing/config/settings/base.py index fcc4e0ae0..d0ad2f348 100644 --- a/testing/config/settings/base.py +++ b/testing/config/settings/base.py @@ -103,8 +103,8 @@ SOCIALACCOUNT = False SHIBBOLETH = False -ACCOUNT_SIGNUP_FORM_CLASS = 'apps.accounts.forms.SignupForm' -ACCOUNT_USER_DISPLAY = 'apps.accounts.utils.get_full_name' +ACCOUNT_SIGNUP_FORM_CLASS = 'rdmo.accounts.forms.SignupForm' +ACCOUNT_USER_DISPLAY = 'rdmo.accounts.utils.get_full_name' ACCOUNT_EMAIL_REQUIRED = True ACCOUNT_ACTIVATION_DAYS = 7 ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 7 @@ -162,7 +162,7 @@ ) FIXTURE_DIRS = ( - os.path.join(BASE_DIR, 'testing/fixtures/'), + os.path.join(BASE_DIR, 'fixtures/'), ) CACHE_TIMEOUT = 60 diff --git a/testing/settings/mysql.py b/testing/config/settings/mysql.py similarity index 100% rename from testing/settings/mysql.py rename to testing/config/settings/mysql.py diff --git a/testing/settings/postgres.py b/testing/config/settings/postgres.py similarity index 100% rename from testing/settings/postgres.py rename to testing/config/settings/postgres.py diff --git a/testing/settings/sqlite3.py b/testing/config/settings/sqlite3.py similarity index 100% rename from testing/settings/sqlite3.py rename to testing/config/settings/sqlite3.py diff --git a/testing/runtests.py b/testing/runtests.py new file mode 100644 index 000000000..d7b94c37b --- /dev/null +++ b/testing/runtests.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import argparse +import os +import sys + +import django +from django.conf import settings +from django.test.utils import get_runner + + +def main(): + parser = argparse.ArgumentParser(description='Run the tests for RDMO.') + parser.add_argument('-k', '--keepdb', action='store_true', help='Preserves the test database between runs.') + + args = parser.parse_args() + + os.environ['DJANGO_SETTINGS_MODULE'] = 'config.settings' + + django.setup() + TestRunner = get_runner(settings) + failures = TestRunner(verbosity=1, keepdb=args.keepdb).run_tests([]) + sys.exit(bool(failures)) + + +if __name__ == "__main__": + main() From 011a3462d393c0068aa7cc9e4f5f4ab0fa644b07 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 17:05:52 +0200 Subject: [PATCH 04/34] add core.settings and move locale --- locale/de/LC_MESSAGES/django.po | 2938 --------------- .../templates/conditions/conditions.html | 2 +- rdmo/core/settings.py | 178 + rdmo/domain/templates/domain/domain.html | 2 +- .../locale}/de/LC_MESSAGES/django.mo | Bin rdmo/locale/de/LC_MESSAGES/django.po | 3174 +++++++++++++++++ rdmo/options/templates/options/options.html | 2 +- .../templates/projects/project_answers.html | 2 +- .../templates/projects/project_view.html | 2 +- .../templates/questions/catalogs_sidebar.html | 2 +- rdmo/tasks/templates/tasks/tasks.html | 2 +- rdmo/views/templates/views/views.html | 2 +- testing/config/settings/__init__.py | 27 + testing/config/settings/base.py | 77 +- 14 files changed, 3388 insertions(+), 3022 deletions(-) delete mode 100644 locale/de/LC_MESSAGES/django.po create mode 100644 rdmo/core/settings.py rename {locale => rdmo/locale}/de/LC_MESSAGES/django.mo (100%) create mode 100644 rdmo/locale/de/LC_MESSAGES/django.po diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po deleted file mode 100644 index c9137f6e7..000000000 --- a/locale/de/LC_MESSAGES/django.po +++ /dev/null @@ -1,2938 +0,0 @@ -# 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 , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: DMPwerkzeug\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-05 16:44+0200\n" -"PO-Revision-Date: 2017-04-05 16:44+0100\n" -"Last-Translator: Jochen Klar \n" -"Language-Team: DMPwerkzeug \n" -"Language: 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" -"X-Generator: Poedit 1.6.10\n" - -#: apps/accounts/app_config.py:7 -msgid "Accounts" -msgstr "Benutzerkonten" - -#: apps/accounts/forms.py:23 -msgid "First name" -msgstr "Vorname" - -#: apps/accounts/forms.py:24 -msgid "Last name" -msgstr "Nachname" - -#: apps/accounts/models.py:25 apps/accounts/models.py:26 -msgid "Enter a help text to be displayed next to the input element" -msgstr "" -"Geben Sie einen Hilfetext, der neben dem Eingabefeld angezeigt wird, ein" - -#: apps/accounts/models.py:33 -msgid "Additional field" -msgstr "Zusätzliches Feld" - -#: apps/accounts/models.py:34 -msgid "Additional fields" -msgstr "Zusätzliche Felder" - -#: apps/accounts/models.py:58 -msgid "Additional field value" -msgstr "Wert für zusätzliches Feld" - -#: apps/accounts/models.py:59 -msgid "Additional field values" -msgstr "Werte für zusätzliches Felder" - -#: apps/accounts/templates/account/email.html:6 -msgid "E-mail Addresses" -msgstr "E-mail Adressen" - -#: apps/accounts/templates/account/email.html:10 -msgid "The following e-mail addresses are associated with your account:" -msgstr "Die folgenden E-Mail Adressen sind mit Ihrem Benutzerkonto verknüpft:" - -#: apps/accounts/templates/account/email.html:26 -msgid "Primary" -msgstr "Primär" - -#: apps/accounts/templates/account/email.html:30 -msgid "Verified" -msgstr "Bestätigt" - -#: apps/accounts/templates/account/email.html:32 -msgid "Unverified" -msgstr "Unbestätigt" - -#: apps/accounts/templates/account/email.html:40 -msgid "Make Primary" -msgstr "Zur primären Adresse machen" - -#: apps/accounts/templates/account/email.html:41 -msgid "Re-send Verification" -msgstr "Bestätigungsmail nochmal senden" - -#: apps/accounts/templates/account/email.html:42 -#: apps/domain/templates/domain/domain_modal_form_ranges.html:45 -#: apps/domain/templates/domain/domain_modal_form_verbosenames.html:53 -#: apps/tasks/templates/tasks/tasks_modal_form_timeframes.html:63 -msgid "Remove" -msgstr "Entfernen" - -#: apps/accounts/templates/account/email.html:51 -msgid "Warning:" -msgstr "Warnung:" - -#: apps/accounts/templates/account/email.html:51 -msgid "" -"You currently do not have any e-mail address set up. You should really add " -"an e-mail address so you can receive notifications, reset your password, etc." -msgstr "" -"Sie haben zur Zeit keine E-Mail Adresse angegeben. Sie sollten dies " -"unbedingt tun, um Benachrichtigungen zu erhalten oder Ihr Password " -"zurücksetzen zu lassen." - -#: apps/accounts/templates/account/email.html:56 -msgid "Add E-mail Address" -msgstr "E-Mail Adresse hinzufügen" - -#: apps/accounts/templates/account/email.html:63 -msgid "Add E-mail" -msgstr "E-Mail hinzufügen" - -#: apps/accounts/templates/account/email.html:71 -msgid "Do you really want to remove the selected e-mail address?" -msgstr "Wollen sie wirklich die ausgewählte E-Mail Adresse entfernen?" - -#: apps/accounts/templates/account/email/password_reset_key_message.txt:1 -msgid "Dear" -msgstr "Liebe(r)" - -#: apps/accounts/templates/account/email/password_reset_key_message.txt:3 -#, python-format -msgid "" -"You are receiving this e-mail because you requested that your password on " -"%(site_domain)s will be reset. It can be safely ignored if you did not " -"request a password reset. Click the link below to reset your password." -msgstr "" -"Wir haben Ihnen dies E-Mail geschickt, weil sie Ihr Password auf " -"%(site_domain)s zurücksetzen möchten. Falls Sie das nicht getan haben, " -"können Sie diese E-Mail einfach ignorieren. Bitte klicken sie auf den unten " -"stehenden Link um Ihr Password zurückzusetzen." - -#: apps/accounts/templates/account/email/password_reset_key_message.txt:11 -#, python-format -msgid "In case you forgot, your username is '%(username)s'." -msgstr "" -"Falls Sie Ihren Benutzernamen vergessen haben, er lautet \"%(username)s\"." - -#: apps/accounts/templates/account/email/password_reset_key_message.txt:15 -msgid "Sincerely" -msgstr "Mit freundlichen Grüßen" - -#: apps/accounts/templates/account/email/password_reset_key_subject.txt:1 -#: apps/accounts/templates/account/password_reset.html:6 -msgid "Password reset" -msgstr "Passwort zurücksetzen" - -#: apps/accounts/templates/account/email_confirm.html:7 -msgid "Confirm E-mail Address" -msgstr "E-Mail bestätigen" - -#: apps/accounts/templates/account/email_confirm.html:14 -#, python-format -msgid "" -"Please confirm that %(email)s is an e-mail " -"address for user %(user_display)s." -msgstr "" -"Bitte bestätigen sie, dass %(email)s eine " -"gültige E-Mail Adresse für den Benutzer %(user_display)s " -"ist." - -#: apps/accounts/templates/account/email_confirm.html:21 -msgid "Confirm" -msgstr "Bestätigen" - -#: apps/accounts/templates/account/email_confirm.html:29 -#, python-format -msgid "" -"This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request." -msgstr "" -"Dieser Bestätigungs-Link ist abgelaufen oder ungültig. Bitte fordern sie eine neue Betätigungs-E-Mail an." - -#: apps/accounts/templates/account/login.html:6 -#: apps/accounts/templates/account/login_form.html:20 -#: apps/accounts/templates/account/password_reset_from_key_done.html:14 -#: apps/core/templates/core/base_navigation.html:131 -#: apps/core/templates/core/home.html:60 -#: themes/bwFDM-info/templates/core/home.html:27 -msgid "Login" -msgstr "Anmelden" - -#: apps/accounts/templates/account/login_form.html:6 -msgid "Login with Shibboleth" -msgstr "Mit Shibboleth einloggen" - -#: apps/accounts/templates/account/login_form_account.html:8 -#, python-format -msgid "" -"If you have not created an account yet, then please sign up first." -msgstr "" -"Falls Sie noch kein Benutzerkonto haben, registrieren Sie sich bitte zunächst." - -#: apps/accounts/templates/account/login_form_account.html:15 -#, python-format -msgid "" -"If you forgot your password and want to reset it, click here." -msgstr "" -"Falls Sie Ihr Passwort vergessen haben und es zurücksetzen wollen, klicken " -"Sie bitte hier." - -#: apps/accounts/templates/account/login_form_socialaccount.html:9 -msgid "" -"Alternatively, you can login using one of the following third party accounts:" -msgstr "Sie können sich auch mit einem der folgenden Accounts anmelden:" - -#: apps/accounts/templates/account/logout.html:6 -#: apps/accounts/templates/account/logout.html:19 -#: apps/accounts/templates/account/logout_form.html:6 -#: apps/core/templates/core/base_navigation.html:120 -msgid "Logout" -msgstr "Abmelden" - -#: apps/accounts/templates/account/logout.html:9 -msgid "Are you sure you want to sign out?" -msgstr "Sind sie sicher, dass Sie sich abmelden wollen?" - -#: apps/accounts/templates/account/password_change.html:6 -#: apps/accounts/templates/account/password_change.html:17 -#: apps/core/templates/core/base_navigation_account.html:7 -msgid "Change password" -msgstr "Passwort ändern" - -#: apps/accounts/templates/account/password_change.html:9 -msgid "" -"Please enter your old password, and then enter your new password twice so we " -"can verify you typed it in correctly." -msgstr "" -"Bitte geben Sie das alte Passwort und das gewünschte neue Passwort an. Das " -"neue Passwort muss aus Sicherheitsgründen wiederholt werden." - -#: apps/accounts/templates/account/password_reset.html:13 -msgid "" -"Forgotten your password? Enter your e-mail address below, and we'll send you " -"an e-mail allowing you to reset it." -msgstr "" -"Haben Sie Ihr Passwort vergessen? Bitte geben Sie die E-Mail-Adresse an, mit " -"der Sie bei uns registriert sind, und wir senden Ihnen eine E-Mail mit " -"Instruktionen, wie sie Ihr Password neu setzen können." - -#: apps/accounts/templates/account/password_reset.html:21 -msgid "Reset my password" -msgstr "Passwort neu setzen" - -#: apps/accounts/templates/account/password_reset_done.html:6 -msgid "Password reset sent" -msgstr "Email gesendet" - -#: apps/accounts/templates/account/password_reset_done.html:13 -msgid "" -"We have sent you an e-mail. Please contact us if you do not receive it " -"within a few minutes." -msgstr "" -"Wir haben Ihnen eine E-Mail geschickt. Bitte kontaktieren Sie uns, falls Sie " -"die E-Mail nicht in den nächsten Minuten erhalten sollten." - -#: apps/accounts/templates/account/password_reset_done.html:19 -msgid "" -"If you don't receive an e-mail, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Sollten Sie keine E-Mail erhalten haben, vergewissern Sie sich, dass Sie die " -"E-Mail angegeben haben, mit der Sie bei uns registriert sind und sehen Sie " -"ggf. in Ihrem Spam-Ordner nach." - -#: apps/accounts/templates/account/password_reset_from_key.html:8 -msgid "Bad token" -msgstr "Ungültiges Token" - -#: apps/accounts/templates/account/password_reset_from_key.html:12 -#, python-format -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Der Password-Link was ungültig. Wahrscheinlich wurde er bereits verwendet. " -"Bitte fordern Sie einen neuen Link an." - -#: apps/accounts/templates/account/password_reset_from_key.html:18 -msgid "Enter new password" -msgstr "Passwort eingeben" - -#: apps/accounts/templates/account/password_reset_from_key.html:27 -msgid "Change my password" -msgstr "Passwort ändern" - -#: apps/accounts/templates/account/password_reset_from_key.html:33 -msgid "Your password is now changed." -msgstr "Ihr Password wurde geändert." - -#: apps/accounts/templates/account/password_reset_from_key_done.html:7 -msgid "Password reset complete" -msgstr "Passwort neu gesetzt" - -#: apps/accounts/templates/account/password_reset_from_key_done.html:10 -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Ihr Passwort wurde geändert. Sie können sich jetzt einloggen." - -#: apps/accounts/templates/account/password_set.html:6 -msgid "Set new password" -msgstr "Neues Password setzen" - -#: apps/accounts/templates/account/password_set.html:9 -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Bitte geben sie Ihr neues Passwort doppelt ein damit wir sichergehen können, " -"dass Sie sich nicht vertippt haben." - -#: apps/accounts/templates/account/password_set.html:17 -msgid "Set password" -msgstr "Passwort neu setzen" - -#: apps/accounts/templates/account/signup.html:6 -#: apps/accounts/templates/socialaccount/signup.html:6 -msgid "Create a new account" -msgstr "Neues Benutzerkonto erstellen" - -#: apps/accounts/templates/account/signup.html:9 -#, python-format -msgid "" -"Already have an account? Then please sign in." -msgstr "" -"Falls Sie schon eine Benutzerkonto haben können Sie sich hier anmelden." - -#: apps/accounts/templates/account/signup.html:23 -#: apps/accounts/templates/socialaccount/signup.html:22 -msgid "Create account" -msgstr "Benutzerkonto erstellen" - -#: apps/accounts/templates/account/signup_closed.html:6 -msgid "Sign up closed" -msgstr "Anmeldung geschlossen" - -#: apps/accounts/templates/account/signup_closed.html:9 -msgid "We are sorry, but the sign up is currently closed." -msgstr "Es tut uns Leid, aber die Anmeldung ist zur Zeit leider geschlossen." - -#: apps/accounts/templates/account/verification_sent.html:7 -#: apps/accounts/templates/account/verified_email_required.html:6 -msgid "Verify your e-mail address" -msgstr "Betätigen Sie Ihre E-Mail Adresse" - -#: apps/accounts/templates/account/verification_sent.html:11 -msgid "" -"We have sent an e-mail to you for verification. Follow the link provided to " -"finalize the signup process. Please contact us if you do not receive it " -"within a few minutes." -msgstr "" -"Wir haben Ihnen eine E-Mail zur Bestätigung geschickt. Folgen sie dem Link " -"in der E-Mail um die Registrierung abzuschließen. Bitte kontaktieren Sie " -"uns, falls Sie die E-Mail nicht in den nächsten Minuten erhalten sollten." - -#: apps/accounts/templates/account/verified_email_required.html:11 -msgid "" -"This part of the site requires us to verify that you are who you claim to " -"be. For this purpose, we require that you verify ownership of your e-mail " -"address. " -msgstr "" -"Für diesen Bereich muss Ihre E-Mail Adresse bestätigt sein. Bitte bestätigen " -"Sie die Ihre E-Mail Adresse." - -#: apps/accounts/templates/account/verified_email_required.html:15 -msgid "" -"We have sent an e-mail to you for verification. Please click on the link " -"inside this e-mail. Please contact us if you do not receive it within a few " -"minutes." -msgstr "" -"Zur Bestätigung Ihrer E-Mail Adresse haben wir Ihnen eine E-Mail geschickt. " -"Bitte folgen sie den Anweisungen in dieser E-Mail. Bitte kontaktieren Sie " -"uns, falls Sie die E-Mail nicht in den nächsten Minuten erhalten sollten." - -#: apps/accounts/templates/account/verified_email_required.html:19 -#, python-format -msgid "" -"Note: you can still change your e-" -"mail address." -msgstr "" -"Hinweis: Sie können immer noch Ihre E-Mail Adresse ändern." - -#: apps/accounts/templates/profile/profile_update_closed.html:6 -msgid "Profile update" -msgstr "Profil bearbeiten" - -#: apps/accounts/templates/profile/profile_update_closed.html:9 -msgid "We are sorry, but you cannot update your profile here." -msgstr "Es tut uns Leid, aber sie können Ihr Profil hier nicht bearbeiten." - -#: apps/accounts/templates/profile/profile_update_form.html:6 -#: apps/accounts/templates/profile/profile_update_form.html:24 -#: apps/core/templates/core/base_navigation.html:98 -msgid "Update profile" -msgstr "Profil bearbeiten" - -#: apps/accounts/templates/profile/profile_update_form.html:12 -#, python-format -msgid "" -"Please enter your updated account information. You can change your password " -"using the password form and update your e-" -"mail using the e-mail form." -msgstr "" -"Bitte aktualisieren Sie die in Ihrem Benutzerkonto gespeicherten " -"Informationen. Sie könne Ihr Password hier " -"ändern und ihre E-Mail Adressen hier verwalten." - -#: apps/accounts/templates/profile/profile_update_form.html:25 -#: apps/core/templates/core/bootstrap_delete_form.html:8 -#: apps/core/templates/core/bootstrap_form.html:10 -msgid "Cancel" -msgstr "Abbrechen" - -#: apps/accounts/templates/socialaccount/authentication_error.html:9 -msgid "Social Network Login Failure" -msgstr "Fehler bei der Anmeldung zum externen Konto" - -#: apps/accounts/templates/socialaccount/authentication_error.html:12 -msgid "" -"An error occurred while attempting to login via your social network account." -msgstr "" -"Während des Anmeldeprozesses zu dem externen Konto ist ein Fehler " -"aufgetreten." - -#: apps/accounts/templates/socialaccount/connections.html:6 -#: apps/core/templates/core/base_navigation_socialaccount.html:4 -msgid "Account connections" -msgstr "Verknüpfungen mit externen Konten" - -#: apps/accounts/templates/socialaccount/connections.html:8 -msgid "Current connections" -msgstr "Derzeitige Verbindungen zu externen Konten" - -#: apps/accounts/templates/socialaccount/connections.html:13 -msgid "" -"You can sign in to your account using any of the following third party " -"accounts:" -msgstr "Sie können sich mit den folgenden externen Konten anmelden:" - -#: apps/accounts/templates/socialaccount/connections.html:39 -msgid "Remove selected account" -msgstr "Ausgewähltes Konto entfernen" - -#: apps/accounts/templates/socialaccount/connections.html:53 -msgid "" -"You currently have no social network accounts connected to this account." -msgstr "" -"Zur Zeit haben Sie keine externen Konten mit Ihrem Benutzerkonto verbunden." - -#: apps/accounts/templates/socialaccount/connections.html:58 -msgid "Add an additional account" -msgstr "Externes Konto hinzufügen" - -#: apps/accounts/templates/socialaccount/login_cancelled.html:9 -msgid "Login Cancelled" -msgstr "Anmeldung abgebrochen" - -#: apps/accounts/templates/socialaccount/login_cancelled.html:14 -#, python-format -msgid "" -"You decided to cancel logging in to our site using one of your existing " -"accounts. If this was a mistake, please proceed to sign in." -msgstr "" -"Sie haben sich entschieden, die Anmeldung mit einem externen Konto " -"abzubrechen. Falls dies versehentlich geschehen ist, könne Sie hier fortsetzen." - -#: apps/accounts/templates/socialaccount/signup.html:9 -#, python-format -msgid "" -"You are about to use your %(provider_name)s account to " -"login to %(site_name)s. As a final step, please complete the following form:" -msgstr "" -"Sie sind dabei sich mit ihrem %(provider_name)s Konto auf " -"%(site_name)s anzumelden. Es sind noch zusätzliche Angaben von Ihnen nötig:" - -#: apps/accounts/templatetags/accounts_tags.py:19 -#: apps/projects/templates/projects/projects.html:31 -msgid "Name" -msgstr "Name" - -#: apps/conditions/app_config.py:7 apps/conditions/models.py:80 -#: apps/conditions/templates/conditions/conditions.html:68 -#: apps/conditions/templates/conditions/conditions_export.html:6 -#: apps/conditions/views.py:57 -#: apps/core/templates/core/base_navigation.html:44 apps/domain/models.py:61 -#: apps/domain/templates/domain/domain_export.html:95 -#: apps/domain/templates/domain/domain_modal_form_conditions.html:11 -#: apps/domain/templates/domain/domain_modal_form_conditions.html:19 -#: apps/options/models.py:44 -#: apps/options/templates/options/options_export.html:39 -#: apps/options/templates/options/options_modal_form_conditions.html:11 -#: apps/options/templates/options/options_modal_form_conditions.html:19 -#: apps/tasks/models.py:69 apps/tasks/templates/tasks/tasks_export.html:35 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:11 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:19 -msgid "Conditions" -msgstr "Bedingungen" - -#: apps/conditions/models.py:38 apps/domain/models.py:21 -#: apps/options/models.py:19 apps/options/models.py:77 -#: apps/questions/models.py:27 apps/questions/models.py:90 -#: apps/questions/models.py:170 apps/questions/models.py:251 -#: apps/tasks/models.py:31 apps/views/models.py:22 -msgid "URI" -msgstr "URI" - -#: apps/conditions/models.py:39 apps/options/models.py:20 -msgid "The Uniform Resource Identifier of this option set (auto-generated)." -msgstr "" -"Der Uniform Resource Identifier dieses Optionssets (automatisch erstellt)." - -#: apps/conditions/models.py:43 apps/domain/models.py:26 -#: apps/options/models.py:24 apps/options/models.py:82 -#: apps/questions/models.py:32 apps/questions/models.py:95 -#: apps/questions/models.py:175 apps/questions/models.py:256 -#: apps/tasks/models.py:36 apps/views/models.py:27 -msgid "URI Prefix" -msgstr "URI Prefix" - -#: apps/conditions/models.py:44 -msgid "The prefix for the URI of this condition." -msgstr "Das Präfix für die URI dieser Bedingung." - -#: apps/conditions/models.py:48 -#: apps/conditions/templates/conditions/conditions_export.html:13 -#: apps/domain/models.py:31 apps/options/models.py:29 -#: apps/options/models.py:87 -#: apps/options/templates/options/options_export.html:13 -#: apps/questions/models.py:37 apps/questions/models.py:100 -#: apps/questions/models.py:180 apps/questions/models.py:261 -#: apps/tasks/models.py:41 apps/tasks/templates/tasks/tasks_export.html:13 -#: apps/views/models.py:32 apps/views/templates/views/views_export.html:13 -msgid "Key" -msgstr "Schlüssel" - -#: apps/conditions/models.py:49 -msgid "The internal identifier of this condition." -msgstr "Der interne Bezeichner dieser Bedingung." - -#: apps/conditions/models.py:53 -#: apps/conditions/templates/conditions/conditions_export.html:19 -#: apps/domain/models.py:36 apps/domain/templates/domain/domain_export.html:21 -#: apps/options/models.py:34 apps/options/models.py:97 -#: apps/options/templates/options/options_export.html:19 -#: apps/questions/models.py:42 apps/questions/models.py:110 -#: apps/questions/models.py:190 apps/questions/models.py:271 -#: apps/questions/templates/questions/catalog_tree.html:8 -#: apps/questions/templates/questions/catalog_tree.html:20 -#: apps/questions/templates/questions/catalog_tree.html:32 -#: apps/questions/templates/questions/catalog_tree.html:54 -#: apps/questions/templates/questions/catalog_tree.html:113 -#: apps/questions/templates/questions/catalog_tree.html:171 -#: apps/tasks/models.py:46 apps/tasks/templates/tasks/tasks_export.html:19 -#: apps/views/models.py:37 apps/views/templates/views/views_export.html:19 -msgid "Comment" -msgstr "Kommentar" - -#: apps/conditions/models.py:54 -msgid "Additional internal information about this condition." -msgstr "Zusätzliche interne Informationen über diese Bedingung." - -#: apps/conditions/models.py:58 -#: apps/conditions/templates/conditions/conditions_export.html:25 -msgid "Source" -msgstr "Quelle" - -#: apps/conditions/models.py:59 -msgid "The Attribute this condition is evaluating." -msgstr "Das Attribut das diese Bedingung auswertet." - -#: apps/conditions/models.py:63 -#: apps/conditions/templates/conditions/conditions_export.html:29 -msgid "Relation" -msgstr "Verknüpfung" - -#: apps/conditions/models.py:64 -msgid "The Relation this condition is using." -msgstr "Die von dieser Bedingung verwendete Verknüpfung." - -#: apps/conditions/models.py:68 -msgid "Target (Text)" -msgstr "Ziel (Text)" - -#: apps/conditions/models.py:69 -msgid "" -"If using a regular attibute, the text value this condition is checking " -"against." -msgstr "" -"Falls ein normales Attribut verwendet wird: Der Text gegen den diese " -"Bedingung ausgewertet wird." - -#: apps/conditions/models.py:73 -msgid "Target (Option)" -msgstr "Ziel (Option)" - -#: apps/conditions/models.py:74 -msgid "" -"If using an options attribute, the option this condition is checking against." -msgstr "" -"Falls ein Optionen-Attribut verwendet wird, die Option gegen die diese " -"Bedingung ausgewertet wird." - -#: apps/conditions/models.py:79 -#: apps/conditions/templates/conditions/conditions.html:84 -#: apps/conditions/templates/conditions/conditions_export.html:10 -#: apps/conditions/templates/conditions/conditions_modal_form_conditions.html:11 -msgid "Condition" -msgstr "Bedingung" - -#: apps/conditions/templates/conditions/conditions.html:23 -#: apps/domain/templates/domain/domain.html:23 -#: apps/options/templates/options/options.html:23 -#: apps/questions/templates/questions/catalogs_sidebar.html:9 -#: apps/tasks/templates/tasks/tasks.html:23 -#: apps/views/templates/views/views.html:29 -msgid "Filter" -msgstr "Filter" - -#: apps/conditions/templates/conditions/conditions.html:34 -#: apps/core/templates/core/base_navigation.html:39 apps/domain/models.py:149 -#: apps/domain/templates/domain/domain.html:34 -#: apps/domain/templates/domain/domain_export.html:48 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:11 -#: apps/options/app_config.py:7 apps/options/models.py:129 -#: apps/options/templates/options/options.html:34 -#: apps/options/templates/options/options.html:73 -#: apps/options/templates/options/options_export.html:25 -#: apps/options/views.py:54 -#: apps/projects/templates/projects/project_answers.html:28 -#: apps/projects/templates/projects/project_detail.html:8 -#: apps/projects/templates/projects/project_view.html:28 -#: apps/projects/templates/projects/projects.html:14 -#: apps/questions/templates/questions/catalog_tree.html:81 -#: apps/questions/templates/questions/catalog_tree.html:141 -#: apps/questions/templates/questions/catalogs_sidebar.html:20 -#: apps/tasks/templates/tasks/tasks.html:34 -#: apps/views/templates/views/views.html:40 -msgid "Options" -msgstr "Optionen" - -#: apps/conditions/templates/conditions/conditions.html:39 -msgid "Create new condition" -msgstr "Neue Bedingung erstellen" - -#: apps/conditions/templates/conditions/conditions.html:44 -#: apps/domain/templates/domain/domain.html:49 -#: apps/options/templates/options/options.html:49 -#: apps/projects/templates/projects/project_answers.html:36 -#: apps/projects/templates/projects/project_view.html:36 -#: apps/questions/templates/questions/catalogs_sidebar.html:63 -#: apps/tasks/templates/tasks/tasks.html:44 -#: apps/views/templates/views/views.html:50 -msgid "Export" -msgstr "Export" - -#: apps/conditions/templates/conditions/conditions.html:59 -#: apps/domain/templates/domain/domain.html:72 -#: apps/options/templates/options/options.html:64 -#: apps/questions/templates/questions/catalogs_sidebar.html:78 -#: apps/tasks/templates/tasks/tasks.html:59 -#: apps/views/templates/views/views.html:65 -msgid "XML" -msgstr "XML" - -#: apps/conditions/templates/conditions/conditions.html:76 -msgid "Update condition" -msgstr "Bedingung bearbeiten" - -#: apps/conditions/templates/conditions/conditions.html:80 -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:11 -msgid "Delete condition" -msgstr "Bedingung entfernen" - -#: apps/conditions/templates/conditions/conditions_export.html:34 -msgid "Target" -msgstr "Ziel" - -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:17 -#, python-format -msgid "" -"You are about to permanently delete the condition %(object)s." -msgstr "" -"Sie sind dabei die Bedingung %(object)s permanent zu entfernen." - -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:23 -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:23 -#: apps/domain/templates/domain/domain_modal_delete_entities.html:44 -#: apps/options/templates/options/options_modal_delete_options.html:23 -#: apps/options/templates/options/options_modal_delete_optionsets.html:36 -#: apps/projects/templates/projects/project_confirm_delete.html:14 -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:35 -#: apps/projects/templates/projects/snapshot_rollback.html:14 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:60 -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:22 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:36 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:53 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:47 -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:23 -#: apps/views/templates/views/views_modal_delete_views.html:23 -msgid "This action cannot be undone!" -msgstr "Diese Aktion kann nicht rückgängig gemacht werden!" - -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:29 -#: apps/conditions/templates/conditions/conditions_modal_form_conditions.html:92 -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:29 -#: apps/domain/templates/domain/domain_modal_delete_entities.html:50 -#: apps/domain/templates/domain/domain_modal_form_attributes.html:89 -#: apps/domain/templates/domain/domain_modal_form_conditions.html:30 -#: apps/domain/templates/domain/domain_modal_form_entities.html:67 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:30 -#: apps/domain/templates/domain/domain_modal_form_ranges.html:48 -#: apps/domain/templates/domain/domain_modal_form_verbosenames.html:56 -#: apps/options/templates/options/options_modal_delete_options.html:29 -#: apps/options/templates/options/options_modal_delete_optionsets.html:42 -#: apps/options/templates/options/options_modal_form_conditions.html:30 -#: apps/options/templates/options/options_modal_form_options.html:99 -#: apps/options/templates/options/options_modal_form_optionsets.html:56 -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:41 -#: apps/projects/templates/projects/project_questions_modal_form_valuesets.html:28 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:66 -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:28 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:42 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:59 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:53 -#: apps/questions/templates/questions/catalogs_modal_form_catalogs.html:76 -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:147 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:102 -#: apps/questions/templates/questions/catalogs_modal_form_sections.html:90 -#: apps/questions/templates/questions/catalogs_modal_form_subsections.html:90 -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:29 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:30 -#: apps/tasks/templates/tasks/tasks_modal_form_tasks.html:88 -#: apps/tasks/templates/tasks/tasks_modal_form_timeframes.html:66 -#: apps/views/templates/views/views_modal_delete_views.html:29 -#: apps/views/templates/views/views_modal_form_templates.html:29 -#: apps/views/templates/views/views_modal_form_views.html:88 -msgid "Close" -msgstr "Schließen" - -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:33 -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:33 -#: apps/domain/templates/domain/domain_modal_delete_entities.html:54 -#: apps/options/templates/options/options_modal_delete_options.html:33 -#: apps/options/templates/options/options_modal_delete_optionsets.html:46 -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:45 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:70 -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:32 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:46 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:63 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:57 -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:33 -#: apps/views/templates/views/views_modal_delete_views.html:33 -msgid "Delete" -msgstr "Entfernen" - -#: apps/conditions/templates/conditions/conditions_modal_form_conditions.html:96 -#: apps/domain/templates/domain/domain_modal_form_attributes.html:93 -#: apps/domain/templates/domain/domain_modal_form_conditions.html:34 -#: apps/domain/templates/domain/domain_modal_form_entities.html:71 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:34 -#: apps/domain/templates/domain/domain_modal_form_ranges.html:52 -#: apps/domain/templates/domain/domain_modal_form_verbosenames.html:60 -#: apps/options/templates/options/options_modal_form_conditions.html:34 -#: apps/options/templates/options/options_modal_form_options.html:103 -#: apps/options/templates/options/options_modal_form_optionsets.html:60 -#: apps/projects/templates/projects/project_questions.html:73 -#: apps/projects/templates/projects/project_questions_modal_form_valuesets.html:32 -#: apps/questions/templates/questions/catalogs_modal_form_catalogs.html:80 -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:152 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:107 -#: apps/questions/templates/questions/catalogs_modal_form_sections.html:94 -#: apps/questions/templates/questions/catalogs_modal_form_subsections.html:94 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:34 -#: apps/tasks/templates/tasks/tasks_modal_form_tasks.html:92 -#: apps/tasks/templates/tasks/tasks_modal_form_timeframes.html:70 -#: apps/views/templates/views/views_modal_form_templates.html:33 -#: apps/views/templates/views/views_modal_form_views.html:92 -msgid "Save" -msgstr "Speichern" - -#: apps/core/models.py:13 -msgid "created" -msgstr "erstellt" - -#: apps/core/models.py:14 -msgid "updated" -msgstr "zuletzt geändert" - -#: apps/core/templates/core/404.html:6 -msgid "Not found" -msgstr "Seite nicht gefunden" - -#: apps/core/templates/core/404.html:8 -msgid "The requested URL was not found on this server." -msgstr "Die gewünschte URL konnte nicht gefunden werden." - -#: apps/core/templates/core/base_footer.html:6 -msgid "Project RDMO" -msgstr "Projekt RDMO" - -#: apps/core/templates/core/base_footer.html:8 -msgid "" -"The project aims to develop a tool to support the planning of the research " -"data management. In addition, the tool will create a textual data management " -"plan." -msgstr "" -"Ziel des Projekts ist es, ein Werkzeug zur Verfügung zu stellen, das die " -"strukturierte Planung des Forschungsdatenmanagements unterstützt und " -"zusätzlich die textuelle Ausgabe eines Datenmanagementplans ermöglicht." - -#: apps/core/templates/core/base_footer.html:11 -msgid "The project is funded by the German Research Foundation." -msgstr "Das Projekt wird von der Deutschen Forschungsgemeinschaft gefördert." - -#: apps/core/templates/core/base_footer.html:15 -msgid "Contact" -msgstr "Kontakt" - -#: apps/core/templates/core/base_footer.html:22 -msgid "Open Source" -msgstr "Open Source" - -#: apps/core/templates/core/base_footer.html:24 -msgid "RDMO is published on:" -msgstr "RDMO ist veröffentlicht auf:" - -#: apps/core/templates/core/base_navigation.html:29 -msgid "Management" -msgstr "Management" - -#: apps/core/templates/core/base_navigation.html:34 -#: apps/domain/app_config.py:7 apps/domain/templates/domain/domain.html:81 -#: apps/domain/templates/domain/domain_export.html:6 apps/domain/views.py:81 -#: apps/domain/views.py:83 -msgid "Domain" -msgstr "Domäne" - -#: apps/core/templates/core/base_navigation.html:49 -#: apps/questions/app_config.py:7 apps/questions/models.py:401 -#: apps/questions/templates/questions/catalog_tree.html:60 -#: apps/questions/templates/questions/catalogs.html:31 -msgid "Questions" -msgstr "Fragen" - -#: apps/core/templates/core/base_navigation.html:54 -#: apps/projects/templates/projects/project_detail_tasks.html:3 -#: apps/tasks/app_config.py:7 apps/tasks/models.py:76 -#: apps/tasks/templates/tasks/tasks.html:68 -#: apps/tasks/templates/tasks/tasks_export.html:6 apps/tasks/views.py:56 -msgid "Tasks" -msgstr "Aufgaben" - -#: apps/core/templates/core/base_navigation.html:59 -#: apps/projects/templates/projects/project_detail_views.html:3 -#: apps/views/app_config.py:7 apps/views/models.py:69 -#: apps/views/templates/views/views.html:74 -#: apps/views/templates/views/views_export.html:6 apps/views/views.py:45 -msgid "Views" -msgstr "Ansichten" - -#: apps/core/templates/core/base_navigation.html:67 -msgid "Admin" -msgstr "Admin" - -#: apps/core/templates/core/base_navigation.html:84 -msgid "Language" -msgstr "Sprache" - -#: apps/core/templates/core/base_navigation_account.html:4 -msgid "Update email" -msgstr "E-Mail bearbeiten" - -#: apps/core/templates/core/home.html:42 -msgid "" -"A tool to support the planning, implementation, and organisation of research " -"data management." -msgstr "" -"Ein Werkzeug zur Planung, Umsetzung und der Verwaltung des " -"Forschungsdatenmanagements." - -#: apps/core/utils.py:111 -msgid "This format is not supported." -msgstr "Dieses Format wird nicht unterstützt." - -#: apps/core/validators.py:24 -msgid "This field may not be blank." -msgstr "Dieses Feld darf nicht leer sein." - -#: apps/core/validators.py:40 -#, python-format -msgid "%(model)s with this key already exists." -msgstr "%(model)s mit diesem Schlüssel existiert bereits." - -#: apps/core/validators.py:81 -#, python-format -msgid "" -"%(model)s with the path \"%(path)s\" already exists. Please adjust the the " -"Key." -msgstr "" -"%(model)s mit dem Pfad \"%(path)s\" existiert bereits. Bitte passen Sie den " -"Schlüssel an." - -#: apps/domain/models.py:22 -msgid "" -"The Uniform Resource Identifier of this attribute/entity set (auto-" -"generated)." -msgstr "" -"Der Uniform Resource Identifier dieses Attributs/dieser Entität (automatisch " -"erstellt)." - -#: apps/domain/models.py:27 -msgid "The prefix for the URI of this attribute/entity." -msgstr "Das Präfix für die URI dieses Attributs/dieser Entität." - -#: apps/domain/models.py:32 -msgid "The internal identifier of this attribute/entity." -msgstr "Das interne Bezeichner für dieses Attributs/diese Entität." - -#: apps/domain/models.py:37 -msgid "Additional information about this attribute/entity." -msgstr "Zusätzliche Informationen über dieses Attribut/diese Entität." - -#: apps/domain/models.py:41 -msgid "Parent entity" -msgstr "Übergeordnete Entität" - -#: apps/domain/models.py:42 -msgid "Parent entity in the domain model." -msgstr "Übergeordnete Entität im Domänenmodell." - -#: apps/domain/models.py:46 -msgid "Parent collection" -msgstr "Übergeordnete Sammlung" - -#: apps/domain/models.py:47 -msgid "Next collection entity upwards in the domain model (auto-generated)." -msgstr "" -"Nächste Sammlungs-Entität aufwärts im Domänenmodell (automatisch generiert)" - -#: apps/domain/models.py:51 -msgid "is collection" -msgstr "Ist eine Sammlung" - -#: apps/domain/models.py:52 -msgid "Designates whether this attribute/entity is a collection." -msgstr "Legt fest, ob dieses Objekt eine Sammlung ist." - -#: apps/domain/models.py:56 -msgid "is attribute" -msgstr "ist ein Attribut" - -#: apps/domain/models.py:57 -msgid "" -"Designates whether this attribute/entity is an attribute (auto-generated)." -msgstr "Legt fest, ob dieses Objekt ein Attribut ist." - -#: apps/domain/models.py:62 -msgid "List of conditions evaluated for this attribute/entity." -msgstr "" -"Liste der Bedingungen die für dieses Attribut/ diese Entität ausgewertet " -"werden." - -#: apps/domain/models.py:66 apps/domain/templates/domain/domain_export.html:15 -#: apps/options/models.py:92 apps/questions/models.py:266 -msgid "Path" -msgstr "Pfad" - -#: apps/domain/models.py:67 -msgid "The path part of the URI of this attribute/entity (auto-generated)." -msgstr "" -"Der Pfad-Teil der URI für dieses Attribut/diese Entität (automatisch " -"erstellt)." - -#: apps/domain/models.py:72 apps/domain/models.py:194 -#: apps/questions/models.py:276 -msgid "Attribute entity" -msgstr "Attribut-Entitäten" - -#: apps/domain/models.py:73 -msgid "Attribute entities" -msgstr "Attribut-Entität" - -#: apps/domain/models.py:143 apps/projects/models.py:202 -#: apps/questions/templates/questions/catalog_tree.html:67 -#: apps/questions/templates/questions/catalog_tree.html:127 -#: apps/tasks/templates/tasks/tasks_export.html:29 -msgid "Text" -msgstr "Text" - -#: apps/domain/models.py:144 -msgid "URL" -msgstr "URL" - -#: apps/domain/models.py:145 -msgid "Integer" -msgstr "Ganzzahl" - -#: apps/domain/models.py:146 -msgid "Float" -msgstr "Kommazahl" - -#: apps/domain/models.py:147 -msgid "Boolean" -msgstr "Boolsche Variable" - -#: apps/domain/models.py:148 -msgid "Datetime" -msgstr "Datum und Zeit" - -#: apps/domain/models.py:154 -#: apps/domain/templates/domain/domain_export.html:34 -msgid "Value type" -msgstr "Wert-Typ" - -#: apps/domain/models.py:155 -msgid "Type of value for this attribute." -msgstr "Art von Wert für dieses Attribut." - -#: apps/domain/models.py:159 -#: apps/domain/templates/domain/domain_export.html:40 -msgid "Unit" -msgstr "Einheit" - -#: apps/domain/models.py:160 -msgid "Unit for this attribute." -msgstr "Maßeinheit dieses Attributes." - -#: apps/domain/models.py:164 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:19 -#: apps/options/models.py:51 -#: apps/options/templates/options/options_export.html:6 -msgid "Option sets" -msgstr "Optionensets" - -#: apps/domain/models.py:165 -msgid "Option sets for this attribute." -msgstr "Optionenset für dieses Attribut." - -#: apps/domain/models.py:169 apps/domain/models.py:240 -#: apps/domain/templates/domain/domain.html:97 -#: apps/domain/templates/domain/domain_export.html:11 -#: apps/domain/templates/domain/domain_modal_form_attributes.html:11 -#: apps/domain/views.py:73 apps/projects/models.py:187 -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:83 -msgid "Attribute" -msgstr "Attribut" - -#: apps/domain/models.py:170 -msgid "Attributes" -msgstr "Attribute" - -#: apps/domain/models.py:195 -msgid "Attribute/entity this verbose name belongs to." -msgstr "Attribut/Entität zu dem dieser Anzeigenname gehört." - -#: apps/domain/models.py:199 -msgid "Name (en)" -msgstr "Name (en)" - -#: apps/domain/models.py:200 -msgid "English name displayed for this attribute/entity (e.g. project)." -msgstr "Englischer Name der für dieses Attribut/diese Entität angezeigt wird." - -#: apps/domain/models.py:204 -msgid "Name (de)" -msgstr "Name (de)" - -#: apps/domain/models.py:205 -msgid "German name displayed for this attribute/entity (e.g. Projekt)." -msgstr "Deutscher Name der für dieses Attribut/diese Entität angezeigt wird." - -#: apps/domain/models.py:209 -msgid "Plural name (en)" -msgstr "Name (Plural, en)" - -#: apps/domain/models.py:210 -msgid "" -"English plural name displayed for this attribute/entity (e.g. projects)." -msgstr "" -"Englischer Name (Plural) der für dieses Attribut/diese Entität angezeigt " -"wird." - -#: apps/domain/models.py:214 -msgid "Plural name (de)" -msgstr "Name (Plural, de)" - -#: apps/domain/models.py:215 -msgid "German plural name displayed for this attribute/entity (e.g. Projekte)." -msgstr "" -"Deutscher Name (Plural) der für dieses Attribut/diese Entität angezeigt wird." - -#: apps/domain/models.py:219 -#: apps/domain/templates/domain/domain_export.html:82 -#: apps/domain/templates/domain/domain_export.html:86 -#: apps/domain/templates/domain/domain_modal_form_verbosenames.html:11 -msgid "Verbose name" -msgstr "Anzeigename" - -#: apps/domain/models.py:220 -msgid "Verbose names" -msgstr "Anzeigename" - -#: apps/domain/models.py:241 -msgid "Attribute this verbose name belongs to." -msgstr "Attribute zu dem dieser Anzeigenname gehört." - -#: apps/domain/models.py:244 -#: apps/domain/templates/domain/domain_export.html:70 -#: apps/questions/templates/questions/catalog_tree.html:103 -#: apps/questions/templates/questions/catalog_tree.html:161 -msgid "Minimum" -msgstr "Minimum" - -#: apps/domain/models.py:245 -msgid "Minimal value for this attribute." -msgstr "Minimaler Wert für dieses Attribut." - -#: apps/domain/models.py:248 -#: apps/domain/templates/domain/domain_export.html:71 -#: apps/questions/templates/questions/catalog_tree.html:104 -#: apps/questions/templates/questions/catalog_tree.html:162 -msgid "Maximum" -msgstr "Maximum" - -#: apps/domain/models.py:249 -msgid "Maximum value for this attribute." -msgstr "Maximaler Wert für dieses Attribut." - -#: apps/domain/models.py:252 -#: apps/domain/templates/domain/domain_export.html:72 -#: apps/questions/templates/questions/catalog_tree.html:105 -#: apps/questions/templates/questions/catalog_tree.html:163 -msgid "Step" -msgstr "Schrittgröße" - -#: apps/domain/models.py:253 -msgid "Step in which this attribute can be incremented/decremented." -msgstr "Schritte in denen dieses Attribut erhöht oder verringert werden kann." - -#: apps/domain/models.py:258 -#: apps/domain/templates/domain/domain_export.html:66 -#: apps/domain/templates/domain/domain_modal_form_ranges.html:11 -#: apps/questions/templates/questions/catalog_tree.html:99 -#: apps/questions/templates/questions/catalog_tree.html:157 -msgid "Range" -msgstr "Bereich" - -#: apps/domain/models.py:259 -msgid "Ranges" -msgstr "Bereiche" - -#: apps/domain/templates/domain/domain.html:39 -msgid "Create new entity" -msgstr "Neue Entität erstellen" - -#: apps/domain/templates/domain/domain.html:44 -msgid "Create new attribute" -msgstr "Neues Attribut erstellen" - -#: apps/domain/templates/domain/domain.html:64 -msgid "CSV" -msgstr "CSV" - -#: apps/domain/templates/domain/domain.html:96 -#: apps/domain/templates/domain/domain_export.html:11 -#: apps/domain/templates/domain/domain_modal_form_entities.html:11 -#: apps/domain/views.py:73 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:70 -msgid "Entity" -msgstr "Entität" - -#: apps/domain/templates/domain/domain_export.html:27 -msgid "Collection" -msgstr "Sammlung" - -#: apps/domain/templates/domain/domain_export.html:28 -#: apps/projects/models.py:247 -msgid "yes" -msgstr "Ja" - -#: apps/domain/templates/domain/domain_export.html:28 -#: apps/projects/models.py:249 -msgid "no" -msgstr "Nein" - -#: apps/domain/templates/domain/domain_export.html:87 -msgid "Verbose name plural" -msgstr "Anzeigename, plural" - -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:11 -#: apps/domain/templates/domain/domain_modal_delete_entities.html:15 -#: apps/domain/templates/domain/domain_options.html:75 -msgid "Delete attribute" -msgstr "Attribut entfernen" - -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:17 -#, python-format -msgid "" -"You are about to permanently delete the attribute %(object)s." -msgstr "" -"Sie sind dabei das Attribut %(object)s permanent zu entfernen." - -#: apps/domain/templates/domain/domain_modal_delete_entities.html:12 -#: apps/domain/templates/domain/domain_options.html:41 -msgid "Delete entity" -msgstr "Entität entfernen" - -#: apps/domain/templates/domain/domain_modal_delete_entities.html:22 -#, python-format -msgid "You are about to permanently delete the entity %(object)s." -msgstr "" -"Sie sind dabei die Entität %(object)s permanent zu entfernen." - -#: apps/domain/templates/domain/domain_modal_delete_entities.html:28 -msgid "This will also delete the following attributes:" -msgstr "Es werden auch die folgenden Attribute entfernt:" - -#: apps/domain/templates/domain/domain_modal_form_attributes.html:22 -msgid "The prefix for the URI of this attribute." -msgstr "Das Präfix für die URI dieses Attributs." - -#: apps/domain/templates/domain/domain_modal_form_attributes.html:31 -msgid "The internal identifier of this attribute." -msgstr "Der interne Bezeichner diese Attributs." - -#: apps/domain/templates/domain/domain_modal_form_attributes.html:40 -msgid "Additional internal information about this attribute." -msgstr "Zusätzliche interne Informationen über dieses Attribut." - -#: apps/domain/templates/domain/domain_modal_form_attributes.html:81 -msgid "" -"Designates whether this attribute can have several values (for checkboxes or " -"multiple answers)." -msgstr "" -"Legt fest, ob dieses Objekt mehrere Werte haben kann (für Ankreuzkästchen " -"oder mehrere Antworten)." - -#: apps/domain/templates/domain/domain_modal_form_conditions.html:24 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:24 -#: apps/options/templates/options/options_modal_form_conditions.html:24 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:24 -msgid "Hold down Control, or Command on a Mac, to select more than one." -msgstr "" -"Halten Sie die Strg-Taste (⌘ für Mac) während des Klickens gedrückt, um " -"mehrere Einträge auszuwählen." - -#: apps/domain/templates/domain/domain_modal_form_entities.html:22 -msgid "The prefix for the URI of this entity." -msgstr "Das Präfix für die URI die dieser Entität." - -#: apps/domain/templates/domain/domain_modal_form_entities.html:31 -msgid "The internal identifier of this entity." -msgstr "Der interne Bezeichner für diese Entität." - -#: apps/domain/templates/domain/domain_modal_form_entities.html:40 -msgid "Additional internal information about this entity." -msgstr "Zusätzliche interne Informationen über diese Entität." - -#: apps/domain/templates/domain/domain_modal_form_entities.html:59 -msgid "Designates whether this entity can have several sets of values." -msgstr "Legt fest, ob dieses Objekt mehrere Sets von Werten haben kann." - -#: apps/domain/templates/domain/domain_options.html:8 -msgid "Add attribute or entity" -msgstr "Attribut oder Entität hinzufügen" - -#: apps/domain/templates/domain/domain_options.html:14 -msgid "Add attribute" -msgstr "Attribut hinzufügen" - -#: apps/domain/templates/domain/domain_options.html:19 -msgid "Add entity" -msgstr "Entität hinzufügen" - -#: apps/domain/templates/domain/domain_options.html:26 -msgid "Update entity" -msgstr "Entität bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:31 -#: apps/domain/templates/domain/domain_options.html:65 -msgid "Update verbose name" -msgstr "Anzeigename bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:36 -#: apps/domain/templates/domain/domain_options.html:70 -#: apps/options/templates/options/options.html:89 -#: apps/tasks/templates/tasks/tasks.html:81 -msgid "Update conditions" -msgstr "Bedingung bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:50 -msgid "Update attribute" -msgstr "Attribut bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:55 -msgid "Update range" -msgstr "Bereich bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:60 -msgid "Update options" -msgstr "Optionen bearbeiten" - -#: apps/domain/views.py:74 -msgid "collection" -msgstr "Sammlung" - -#: apps/options/models.py:25 -msgid "The prefix for the URI of this option set." -msgstr "Das Präfix für die URI dieses Optionenset." - -#: apps/options/models.py:30 -msgid "The internal identifier of this option set." -msgstr "Der interne Bezeichner für dieses Optionenset." - -#: apps/options/models.py:35 -msgid "Additional internal information about this option set." -msgstr "Zusätzliche interne Informationen über dieses Optionenset." - -#: apps/options/models.py:39 apps/options/models.py:107 -#: apps/questions/models.py:47 apps/questions/models.py:120 -#: apps/questions/models.py:200 apps/questions/models.py:286 -msgid "Order" -msgstr "Reihenfolge" - -#: apps/options/models.py:40 -msgid "The position of this option set in lists." -msgstr "Die Position von diesem Optionenset in Listen." - -#: apps/options/models.py:45 -msgid "The list of conditions evaluated for this option set." -msgstr "" -"Die Liste der Bedingungen die für dieses Optionenset ausgewertet werden." - -#: apps/options/models.py:50 apps/options/models.py:102 -#: apps/options/templates/options/options.html:97 -#: apps/options/templates/options/options_export.html:10 -#: apps/options/templates/options/options_modal_form_optionsets.html:11 -msgid "Option set" -msgstr "Optionenset" - -#: apps/options/models.py:78 -msgid "The Uniform Resource Identifier of this option (auto-generated)." -msgstr "Der Uniform Resource Identifier dieser Option (automatisch erstellt)." - -#: apps/options/models.py:83 -msgid "The prefix for the URI of this option." -msgstr "Das Präfix für die URI dieser Option." - -#: apps/options/models.py:88 -msgid "The internal identifier of this option." -msgstr "Der interne Bezeichner für diese Option." - -#: apps/options/models.py:93 -msgid "The path part of the URI for this option (auto-generated)." -msgstr "Der Pfad-Teil der URI für diese Option (automatisch erstellt)." - -#: apps/options/models.py:98 -msgid "Additional internal information about this option." -msgstr "Zusätzliche interne Informationen über diese Option." - -#: apps/options/models.py:103 -msgid "The option set this option belongs to." -msgstr "Das Optionenset zu dem diese Option gehört." - -#: apps/options/models.py:108 apps/questions/models.py:121 -#: apps/questions/models.py:201 -msgid "Position in lists." -msgstr "Position in Listen." - -#: apps/options/models.py:112 apps/questions/models.py:386 -#: apps/tasks/models.py:60 -msgid "Text (en)" -msgstr "Text (en)" - -#: apps/options/models.py:113 -msgid "The English text displayed for this option." -msgstr "Der englische Text für diese Option." - -#: apps/options/models.py:117 apps/questions/models.py:390 -#: apps/tasks/models.py:64 -msgid "Text (de)" -msgstr "Text (de)" - -#: apps/options/models.py:118 -msgid "The German text displayed for this option." -msgstr "Der deutsche Text für diese Option." - -#: apps/options/models.py:122 -msgid "Additional input" -msgstr "Zusätzliche Eingabe" - -#: apps/options/models.py:123 -msgid "Designates whether an additional input is possible for this option." -msgstr "Legt fest, ob eine zusätzliche Eingabe für diese Option möglich ist." - -#: apps/options/models.py:128 apps/options/templates/options/options.html:113 -#: apps/options/templates/options/options_modal_delete_optionsets.html:30 -#: apps/options/templates/options/options_modal_form_options.html:11 -#: apps/projects/models.py:207 -msgid "Option" -msgstr "Option" - -#: apps/options/templates/options/options.html:39 -msgid "Create new option set" -msgstr "Neues Optionenset erstellen" - -#: apps/options/templates/options/options.html:44 -msgid "Create new option" -msgstr "Neue Option erstellen" - -#: apps/options/templates/options/options.html:81 -msgid "Add option" -msgstr "Option hinzufügen" - -#: apps/options/templates/options/options.html:85 -msgid "Update option set" -msgstr "Optionenset bearbeiten" - -#: apps/options/templates/options/options.html:93 -#: apps/options/templates/options/options_modal_delete_optionsets.html:11 -msgid "Delete option set" -msgstr "Optionenset entfernen" - -#: apps/options/templates/options/options.html:105 -msgid "Update option" -msgstr "Option bearbeiten" - -#: apps/options/templates/options/options.html:109 -#: apps/options/templates/options/options_modal_delete_options.html:11 -msgid "Delete option" -msgstr "Option entfernen" - -#: apps/options/templates/options/options_modal_delete_options.html:17 -#, python-format -msgid "You are about to permanently delete the option %(object)s." -msgstr "" -"Sie sind dabei die Option %(object)s permanent zu entfernen." - -#: apps/options/templates/options/options_modal_delete_optionsets.html:17 -#, python-format -msgid "" -"You are about to permanently delete the option set %(object)s." -msgstr "" -"Sie sind dabei das Optionenset %(object)s permanent zu " -"entfernen." - -#: apps/options/templates/options/options_modal_delete_optionsets.html:23 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:24 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:23 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:23 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:23 -msgid "Important! This will also delete the following items:" -msgstr "" -"Important! Es werden auch die folgenden Objekte entfernt:" - -#: apps/projects/app_config.py:7 apps/projects/models.py:46 -msgid "Projects" -msgstr "Projekte" - -#: apps/projects/forms.py:58 -msgid "Username or email" -msgstr "Benutzername oder E-Mail" - -#: apps/projects/forms.py:59 apps/projects/models.py:24 -#: apps/projects/models.py:92 -#: apps/projects/templates/projects/project_detail_memberships.html:12 -msgid "User" -msgstr "Benutzer" - -#: apps/projects/forms.py:60 -msgid "The username or email for the user of this membership." -msgstr "Der Benutzername oder die Email für diese Mitgliedschaft." - -#: apps/projects/forms.py:69 -msgid "Please enter a valid username or email." -msgstr "Bitte geben Sie einen gültigen Benutzernamen oder Email ein." - -#: apps/projects/forms.py:72 -msgid "The user is already a member of the project." -msgstr "Der Benutzer ist bereits ein Mitglied dieses Projektes." - -#: apps/projects/models.py:25 -msgid "The list of users for this project." -msgstr "Die Liste der Benutzer für dieses Projekt." - -#: apps/projects/models.py:29 apps/projects/models.py:123 -#: apps/projects/templates/projects/project_questions_modal_form_valuesets.html:19 -#: apps/tasks/templates/tasks/tasks_export.html:25 -#: apps/views/templates/views/views_export.html:25 -msgid "Title" -msgstr "Titel" - -#: apps/projects/models.py:30 -msgid "The title for this project." -msgstr "Der Titel für dieses Projekt." - -#: apps/projects/models.py:34 apps/projects/models.py:128 -#: apps/projects/templates/projects/project_detail.html:78 -#: apps/projects/templates/projects/project_detail_snapshots.html:14 -#: apps/projects/templates/projects/project_detail_tasks.html:10 -#: apps/projects/templates/projects/project_detail_views.html:10 -msgid "Description" -msgstr "Beschreibung" - -#: apps/projects/models.py:35 -msgid "A description for this project (optional)." -msgstr "Ein Beschreibung für dieses Projekt (optional)." - -#: apps/projects/models.py:39 apps/questions/models.py:63 -#: apps/questions/models.py:115 -#: apps/questions/templates/questions/catalog_tree.html:3 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:11 -#: apps/questions/templates/questions/catalogs_modal_form_catalogs.html:11 -#: apps/questions/templates/questions/catalogs_sidebar.html:3 -msgid "Catalog" -msgstr "Katalog" - -#: apps/projects/models.py:40 -msgid "The catalog which will be used for this project." -msgstr "Der Fragenkatalog der für dieses Projekt verwendet wird." - -#: apps/projects/models.py:45 apps/projects/models.py:87 -#: apps/projects/models.py:118 apps/projects/models.py:177 -msgid "Project" -msgstr "Projekt" - -#: apps/projects/models.py:79 -msgid "Owner" -msgstr "Besitzer" - -#: apps/projects/models.py:80 -msgid "Manager" -msgstr "Manager" - -#: apps/projects/models.py:81 -msgid "Author" -msgstr "Autor" - -#: apps/projects/models.py:82 -msgid "Guest" -msgstr "Gast" - -#: apps/projects/models.py:88 -msgid "The project for this membership." -msgstr "Das Projekt zu dem diese Mitgliedschaft gehört." - -#: apps/projects/models.py:93 -msgid "The user for this membership." -msgstr "Der Benutzer für diese Mitgliedschaft." - -#: apps/projects/models.py:97 -#: apps/projects/templates/projects/project_detail_memberships.html:14 -#: apps/projects/templates/projects/projects.html:32 -msgid "Role" -msgstr "Rolle" - -#: apps/projects/models.py:98 -msgid "The role for this membership." -msgstr "Die Rolle für diese Mitgliedschaft." - -#: apps/projects/models.py:103 -msgid "Membership" -msgstr "Mitgliedschaft" - -#: apps/projects/models.py:104 -msgid "Memberships" -msgstr "Mitgliedschaften" - -#: apps/projects/models.py:119 -msgid "The project this snapshot belongs to." -msgstr "Das Projekt zu dem dieser Snapshot gehört." - -#: apps/projects/models.py:124 -msgid "The title for this snapshot." -msgstr "Der Titel für diesen Snapshot." - -#: apps/projects/models.py:129 -msgid "A description for this snapshot (optional)." -msgstr "Ein Beschreibung für diesen Snapshot (optional)." - -#: apps/projects/models.py:134 apps/projects/models.py:182 -#: apps/projects/templates/projects/project_detail_snapshots.html:13 -msgid "Snapshot" -msgstr "Snapshot" - -#: apps/projects/models.py:135 -#: apps/projects/templates/projects/project_answers.html:9 -#: apps/projects/templates/projects/project_detail_snapshots.html:7 -#: apps/projects/templates/projects/project_view.html:9 -msgid "Snapshots" -msgstr "Snapshots" - -#: apps/projects/models.py:178 -msgid "The project this value belongs to." -msgstr "Das Projekt zu dem dieser Wert gehört." - -#: apps/projects/models.py:183 -msgid "The snapshot this value belongs to." -msgstr "Der Snapshot zu dem dieser Wert gehört." - -#: apps/projects/models.py:188 -msgid "The attribute this value belongs to." -msgstr "Das Attribut zu dem dieser Wert gehört." - -#: apps/projects/models.py:192 -msgid "Set index" -msgstr "Set-Index" - -#: apps/projects/models.py:193 -msgid "" -"The position of this value in an entity collection (i.e. in the question set)" -msgstr "" -"Die Position von diesem Wert in einer Entität (einem Fragenset) in Listen." - -#: apps/projects/models.py:197 -msgid "Collection index" -msgstr "Sammlungs-Index" - -#: apps/projects/models.py:198 -msgid "The position of this value in an attribute collection." -msgstr "Die Position von diesem Wert in einem Sammlungs-Attribut." - -#: apps/projects/models.py:203 -msgid "The string stored for this value." -msgstr "Die Zeichenkette die für diesen Wert gespeichert wird." - -#: apps/projects/models.py:208 -msgid "The option stored for this value." -msgstr "Die Option die für diesen Wert gespeichert wird." - -#: apps/projects/models.py:212 -msgid "Value" -msgstr "Wert" - -#: apps/projects/models.py:213 -msgid "Values" -msgstr "Werte" - -#: apps/projects/models.py:224 -msgid "current" -msgstr "aktuell" - -#: apps/projects/serializers.py:118 -msgid "item" -msgstr "Eintrag" - -#: apps/projects/serializers.py:119 -msgid "items" -msgstr "Einträge" - -#: apps/projects/serializers.py:151 -msgid "set" -msgstr "Set" - -#: apps/projects/serializers.py:152 -msgid "sets" -msgstr "Sets" - -#: apps/projects/templates/projects/membership_confirm_delete.html:8 -#: apps/projects/templates/projects/membership_confirm_delete.html:17 -#: apps/projects/templates/projects/project_detail_memberships.html:36 -msgid "Delete membership" -msgstr "Mitgliedschaft entfernen" - -#: apps/projects/templates/projects/membership_confirm_delete.html:12 -#, python-format -msgid "" -"You are about to remove the user %(user)s from the project " -"%(title)s." -msgstr "" -"Sie sind dabei den User %(user)s aud dem Projekt " -"%(title)s zu entfernen." - -#: apps/projects/templates/projects/membership_form.html:9 -#: apps/projects/templates/projects/membership_form.html:11 -#: apps/projects/templates/projects/project_detail_memberships.html:31 -msgid "Update membership" -msgstr "Mitgliedschaft bearbeiten" - -#: apps/projects/templates/projects/membership_form.html:15 -msgid "Add member to project" -msgstr "Mitglied zu Projekt hinzufügen" - -#: apps/projects/templates/projects/membership_form.html:17 -#: apps/projects/templates/projects/project_detail.html:52 -msgid "Add member" -msgstr "Mitglied hinzufügen" - -#: apps/projects/templates/projects/project_answers.html:14 -#: apps/projects/templates/projects/project_view.html:14 -msgid "Current" -msgstr "Aktuell" - -#: apps/projects/templates/projects/project_answers.html:32 -#: apps/projects/templates/projects/project_questions_done.html:13 -#: apps/projects/templates/projects/project_questions_sidebar.html:34 -#: apps/projects/templates/projects/project_view.html:32 -msgid "Back to project overview" -msgstr "Zurück zum Projekt" - -#: apps/projects/templates/projects/project_answers.html:58 -#: apps/projects/templates/projects/project_answers_export.html:6 -#, python-format -msgid "Answers for %(title)s" -msgstr "Antworten für %(title)s" - -#: apps/projects/templates/projects/project_answers.html:61 -msgid "" -"In the following, we have summarized the information about the project as " -"given by you and your collaborators." -msgstr "" -"Im Folgenden haben wir die von Ihnen eingegebenen Informationen über das " -"Projekt noch einmal zusammengefasst." - -#: apps/projects/templates/projects/project_confirm_delete.html:7 -#: apps/projects/templates/projects/project_confirm_delete.html:17 -#: apps/projects/templates/projects/project_detail.html:21 -msgid "Delete project" -msgstr "Projekt entfernen" - -#: apps/projects/templates/projects/project_confirm_delete.html:10 -#, python-format -msgid "" -"You are about to permanently delete the project %(object)s." -msgstr "" -"Sie sind dabei das Projekt %(object)s permanent zu entfernen." - -#: apps/projects/templates/projects/project_detail.html:16 -msgid "Update project information" -msgstr "Projektinformationen bearbeiten" - -#: apps/projects/templates/projects/project_detail.html:29 -msgid "Answer questions" -msgstr "Fragen beantworten" - -#: apps/projects/templates/projects/project_detail.html:35 -#: apps/projects/templates/projects/project_detail_snapshots.html:32 -#: apps/projects/templates/projects/project_questions_done.html:9 -msgid "View answers" -msgstr "Antworten anzeigen" - -#: apps/projects/templates/projects/project_detail.html:43 -#: apps/projects/templates/projects/snapshot_form.html:17 -msgid "Create snapshot" -msgstr "Snapshot erstellen" - -#: apps/projects/templates/projects/project_detail.html:61 -msgid "Export project as XML" -msgstr "Projekt als XML exportieren" - -#: apps/projects/templates/projects/project_detail.html:68 -msgid "Back to projects overview" -msgstr "Zurück zu den Projekten" - -#: apps/projects/templates/projects/project_detail.html:86 -msgid "No description available." -msgstr "Keine Beschreibung vorhanden." - -#: apps/projects/templates/projects/project_detail_memberships.html:8 -msgid "Members" -msgstr "Mitglieder" - -#: apps/projects/templates/projects/project_detail_memberships.html:13 -msgid "E-Mail" -msgstr "E-Mail" - -#: apps/projects/templates/projects/project_detail_snapshots.html:15 -#: apps/projects/templates/projects/projects.html:33 -msgid "Created" -msgstr "Erstellt" - -#: apps/projects/templates/projects/project_detail_snapshots.html:36 -#: apps/projects/templates/projects/snapshot_form.html:9 -#: apps/projects/templates/projects/snapshot_form.html:11 -msgid "Update snapshot" -msgstr "Snapshot bearbeiten" - -#: apps/projects/templates/projects/project_detail_snapshots.html:41 -#: apps/projects/templates/projects/snapshot_rollback.html:7 -msgid "Rollback to snapshot" -msgstr "Auf Snapshot zurücksetzen" - -#: apps/projects/templates/projects/project_detail_snapshots.html:52 -msgid "No snapshots found." -msgstr "Keine Snapshots gefunden." - -#: apps/projects/templates/projects/project_detail_tasks.html:9 -#: apps/tasks/models.py:75 apps/tasks/models.py:110 -#: apps/tasks/templates/tasks/tasks.html:93 -#: apps/tasks/templates/tasks/tasks_export.html:10 -#: apps/tasks/templates/tasks/tasks_modal_form_tasks.html:11 -#: apps/tasks/templates/tasks/tasks_modal_form_timeframes.html:11 -msgid "Task" -msgstr "Aufgabe" - -#: apps/projects/templates/projects/project_detail_tasks.html:11 -#: apps/tasks/models.py:136 -msgid "Time frame" -msgstr "Zeitraum" - -#: apps/projects/templates/projects/project_detail_tasks.html:34 -msgid "No active tasks found." -msgstr "Keine aktiven Aufgaben gefunden." - -#: apps/projects/templates/projects/project_detail_views.html:9 -#: apps/views/models.py:68 apps/views/templates/views/views.html:96 -#: apps/views/templates/views/views_export.html:10 -#: apps/views/templates/views/views_modal_form_views.html:11 -msgid "View" -msgstr "Ansicht" - -#: apps/projects/templates/projects/project_detail_views.html:22 -msgid "Display view" -msgstr "Ansicht anzeigen" - -#: apps/projects/templates/projects/project_detail_views.html:32 -msgid "No views found." -msgstr "Keine Ansichten gefunden." - -#: apps/projects/templates/projects/project_form.html:9 -#: apps/projects/templates/projects/project_form.html:11 -msgid "Update project" -msgstr "Projekt bearbeiten" - -#: apps/projects/templates/projects/project_form.html:15 -#: apps/projects/templates/projects/projects.html:18 -msgid "Create new project" -msgstr "Neues Projekt erstellen" - -#: apps/projects/templates/projects/project_form.html:17 -msgid "Create project" -msgstr "Neues Projekt erstellen" - -#: apps/projects/templates/projects/project_questions.html:44 -msgid "Questionnaire for project {$ service.project.title $}" -msgstr "Fragebogen für Projekt {$ service.project.title $}" - -#: apps/projects/templates/projects/project_questions.html:76 -msgid "Save and proceed" -msgstr "Sichern und fortfahren" - -#: apps/projects/templates/projects/project_questions.html:82 -msgid "Back" -msgstr "Zurück" - -#: apps/projects/templates/projects/project_questions.html:85 -msgid "Skip" -msgstr "Überspringen" - -#: apps/projects/templates/projects/project_questions_add_field_button.html:6 -#: apps/projects/templates/projects/project_questions_questionset_head.html:15 -#: apps/projects/templates/projects/project_questions_questionset_head.html:36 -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s hinzufügen" - -#: apps/projects/templates/projects/project_questions_add_field_help.html:4 -#, python-format -msgid "" -"Please enter the %(name_plural)s line by line. You can add %(name_plural)s " -"using the green button and remove them using the red cross (×)." -msgstr "" -"Bitte nutzen Sie für die %(name_plural)s jeweils eine eigene Zeile. Sie " -"können weitere %(name_plural)s mit dem grünen Knopf hinzufügen und mit dem " -"roten Kreuz (×) entfernen." - -#: apps/projects/templates/projects/project_questions_done.html:5 -msgid "Thank you for filling out the questionnaire." -msgstr "Vielen Dank für das Beantworten der Fragen." - -#: apps/projects/templates/projects/project_questions_form_group_select.html:16 -#: apps/projects/templates/projects/project_questions_form_group_select.html:41 -msgid "Please select" -msgstr "Bitte auswählen" - -#: apps/projects/templates/projects/project_questions_form_group_yesno.html:18 -#: apps/projects/templates/projects/project_questions_form_group_yesno.html:50 -msgid "Yes" -msgstr "Ja" - -#: apps/projects/templates/projects/project_questions_form_group_yesno.html:24 -#: apps/projects/templates/projects/project_questions_form_group_yesno.html:56 -msgid "No" -msgstr "Nein" - -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:17 -#, python-format -msgid "" -"You are about to permanently delete the %(name)s %(object)s." -msgstr "" -"Sie sind dabei den %(name)s %(object)s permanent zu " -"entfernen." - -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:23 -#, python-format -msgid "You are about to permanently delete this %(name)s." -msgstr "Sie sind dabei diesen %(name)s permanent zu entfernen." - -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:29 -#, python-format -msgid "" -"This includes all given answers for this %(name)s on all pages, not just " -"this one." -msgstr "" -"Dies umfasst alle gegebenen Antworten für dieses %(name)s auf allen Seiten, " -"nicht nur dieser." - -#: apps/projects/templates/projects/project_questions_modal_form_valuesets.html:20 -#, python-format -msgid "Please give the %(name)s a meaningful name." -msgstr "Bitte geben Sie dem %(name)s einen aus­sa­ge­kräf­tigen Namen." - -#: apps/projects/templates/projects/project_questions_questionset_head.html:7 -#, python-format -msgid "" -"Please fill in the form for each %(name)s. The different %(name_plural)s " -"will be referred to in following questions. You can add a new %(name)s using " -"the green button. Once created, you can edit or delete %(name_plural)s using " -"the buttons in the top right corner." -msgstr "" -"Bitte füllen Sie das Formular für jeden %(name)s aus. Die verschiedenen " -"%(name_plural)s werden eventuell in späteren Fragen wieder verwendet. Sie " -"können einen neuen %(name)s mit dem grünen Knopf hinzufügen. Bereits " -"angelegte %(name_plural)s können mit den Knöpfen oben rechts bearbeitet oder " -"wieder entfernt werden." - -#: apps/projects/templates/projects/project_questions_questionset_head.html:43 -#, python-format -msgid "Update %(name)s" -msgstr "%(name)s bearbeiten" - -#: apps/projects/templates/projects/project_questions_questionset_head.html:48 -#: apps/projects/templates/projects/project_questions_remove_field.html:4 -#, python-format -msgid "Remove %(name)s" -msgstr "%(name)s entfernen" - -#: apps/projects/templates/projects/project_questions_sidebar.html:4 -msgid "Progress" -msgstr "Fortschritt" - -#: apps/projects/templates/projects/project_questions_sidebar.html:13 -msgid "Navigation" -msgstr "Navigation" - -#: apps/projects/templates/projects/project_questions_sidebar.html:16 -msgid "Please note that using the navigation will discard any usaved input." -msgstr "" -"Bitte beachten sie das durch die Benutzung der Navigation ungesicherte " -"Eingaben verworfen werden." - -#: apps/projects/templates/projects/project_questions_sidebar.html:22 -msgid "skip to previous page" -msgstr "Zur vorherigen Frage springen" - -#: apps/projects/templates/projects/project_questions_sidebar.html:27 -msgid "skip to next page" -msgstr "Zur nächsten Frage springen" - -#: apps/projects/templates/projects/project_questions_sidebar.html:38 -msgid "Overview" -msgstr "Übersicht" - -#: apps/projects/templates/projects/project_view.html:61 -msgid "Error" -msgstr "Fehler" - -#: apps/projects/templates/projects/project_view.html:64 -msgid "There has been a problem creating the view. Please contact support." -msgstr "" -"Beim Erstellen der Ansicht ist ein Fehler aufgetreten. Bitte kontaktieren " -"Sie den Support." - -#: apps/projects/templates/projects/projects.html:8 -msgid "My Data" -msgstr "Meine Daten" - -#: apps/projects/templates/projects/projects.html:12 -msgid "My Groups" -msgstr "Meine Gruppen" - -#: apps/projects/templates/projects/projects.html:26 -msgid "My Projects" -msgstr "Meine Projekte" - -#: apps/projects/templates/projects/snapshot_form.html:15 -msgid "Create new snapshot" -msgstr "Neuen Snapshot erstellen" - -#: apps/projects/templates/projects/snapshot_rollback.html:10 -#, python-format -msgid "" -"You are about to reset all values to the snapshot %(title)s. All newer values will be deleted." -msgstr "" -"Sie sind dabei alle Werte auf den Snapshot %(title)s " -"zurückzusetzen. Alle neueren Werte werden entfernt." - -#: apps/projects/templates/projects/snapshot_rollback.html:17 -msgid "Rollback" -msgstr "Zurücksetzen" - -#: apps/projects/views.py:351 apps/projects/views.py:373 -msgid "This field is required." -msgstr "Dieses Feld wird benötigt." - -#: apps/questions/models.py:28 -msgid "The Uniform Resource Identifier of this catalog (auto-generated)." -msgstr "" -"Der Uniform Resource Identifier dieses Katalogs (automatisch erstellt)." - -#: apps/questions/models.py:33 -msgid "The prefix for the URI of this catalog." -msgstr "Das Präfix für die URI dieses Katalogs." - -#: apps/questions/models.py:38 -msgid "The internal identifier of this catalog." -msgstr "Der interne Bezeichner für diesen Katalog." - -#: apps/questions/models.py:43 -msgid "Additional internal information about this catalog." -msgstr "Zusätzliche interne Informationen über diesen Katalog." - -#: apps/questions/models.py:48 -msgid "The position of this catalog in lists." -msgstr "Die Position von diesem Katalog in Listen." - -#: apps/questions/models.py:52 apps/questions/models.py:125 -#: apps/questions/models.py:205 apps/tasks/models.py:51 -#: apps/views/models.py:47 -msgid "Title (en)" -msgstr "Titel (en)" - -#: apps/questions/models.py:53 -msgid "The English title for this catalog." -msgstr "Der englische Titel für diesen Katalog." - -#: apps/questions/models.py:57 apps/questions/models.py:130 -#: apps/questions/models.py:210 apps/tasks/models.py:56 -#: apps/views/models.py:52 -msgid "Title (de)" -msgstr "Titel (de)" - -#: apps/questions/models.py:58 -msgid "The German title for this catalog." -msgstr "Der deutsche Titel für diesen Katalog." - -#: apps/questions/models.py:64 -msgid "Catalogs" -msgstr "Kataloge" - -#: apps/questions/models.py:91 -msgid "The Uniform Resource Identifier of this section (auto-generated)." -msgstr "" -"Der Uniform Resource Identifier diese Abschnitts (automatisch erstellt)." - -#: apps/questions/models.py:96 -msgid "The prefix for the URI of this section." -msgstr "Das Präfix für die URI die dieses Abschnitts." - -#: apps/questions/models.py:101 -msgid "The internal identifier of this section." -msgstr "Der interne Bezeichner für diesen Abschnitt." - -#: apps/questions/models.py:105 apps/questions/models.py:185 -msgid "Label" -msgstr "Label" - -#: apps/questions/models.py:106 -msgid "The path part of the URI of this section (auto-generated)." -msgstr "Der Pfad-Teil der URI für diesen Abschnitt (automatisch erstellt)." - -#: apps/questions/models.py:111 -msgid "Additional internal information about this section." -msgstr "Zusätzliche interne Informationen über diesen Abschnitt." - -#: apps/questions/models.py:116 -msgid "The catalog this section belongs to." -msgstr "Der Katalog zu dem dieser Abschnitt gehört." - -#: apps/questions/models.py:126 -msgid "The English title for this section." -msgstr "Der englische Titel für diesen Abschnitt." - -#: apps/questions/models.py:131 -msgid "The German title for this section." -msgstr "Der deutsche Titel für diesen Unterabschnitt." - -#: apps/questions/models.py:136 apps/questions/models.py:195 -#: apps/questions/templates/questions/catalog_tree.html:15 -#: apps/questions/templates/questions/catalogs.html:42 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:31 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:11 -#: apps/questions/templates/questions/catalogs_modal_form_sections.html:11 -msgid "Section" -msgstr "Abschnitt" - -#: apps/questions/models.py:137 -msgid "Sections" -msgstr "Unterabschnitt" - -#: apps/questions/models.py:171 -msgid "The Uniform Resource Identifier of this subsection (auto-generated)." -msgstr "" -"Der Uniform Resource Identifier dieses Unterabschnitts (automatisch " -"erstellt)." - -#: apps/questions/models.py:176 -msgid "The prefix for the URI of this subsection." -msgstr "Das Präfix für die URI dieses Unterabschnitts." - -#: apps/questions/models.py:181 -msgid "The internal identifier of this subsection." -msgstr "Der interne Bezeichner für diesen Unterabschnitt." - -#: apps/questions/models.py:186 -msgid "The path part of the URI of this subsection (auto-generated)." -msgstr "" -"Der Pfad-Teil der URI für diesen Unterabschnitt (automatisch erstellt)." - -#: apps/questions/models.py:191 -msgid "Additional internal information about this subsection." -msgstr "Zusätzliche interne Informationen über diesen Unterabschnitt." - -#: apps/questions/models.py:196 -msgid "The section this subsection belongs to." -msgstr "Der Abschnitt zu dem dieser Unterabschnitt gehört." - -#: apps/questions/models.py:206 -msgid "The English title for this subsection." -msgstr "Der englische Titel für diesen Unterabschnitt." - -#: apps/questions/models.py:211 -msgid "The German title for this subsection." -msgstr "Der deutsche Titel für diesen Unterabschnitt." - -#: apps/questions/models.py:216 apps/questions/models.py:281 -#: apps/questions/templates/questions/catalog_tree.html:27 -#: apps/questions/templates/questions/catalogs.html:55 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:35 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:30 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:11 -#: apps/questions/templates/questions/catalogs_modal_form_subsections.html:11 -msgid "Subsection" -msgstr "Unterabschnitt" - -#: apps/questions/models.py:217 -msgid "Subsections" -msgstr "Unterabschnitte" - -#: apps/questions/models.py:252 -msgid "" -"The Uniform Resource Identifier of this question/questionset (auto-" -"generated)." -msgstr "" -"Der Uniform Resource Identifier dieser Frage/dieses Fragensets (automatisch " -"erstellt)." - -#: apps/questions/models.py:257 -msgid "The prefix for the URI of this question/questionset." -msgstr "Das Präfix für die URI dieser Frage/dieses Fragensets." - -#: apps/questions/models.py:262 -msgid "The internal identifier of this question/questionset." -msgstr "Der interne Bezeichner für diese Frage/dieses Fragenset." - -#: apps/questions/models.py:267 -msgid "The path part of the URI of this question/questionset (auto-generated)." -msgstr "" -"Der Pfad-Teil der URI für diese Frage/Fragenset (automatisch erstellt)." - -#: apps/questions/models.py:272 -msgid "Additional internal information about this question/questionset." -msgstr "Zusätzliche interne Informationen über diese Frage/dieses Fragenset." - -#: apps/questions/models.py:277 -msgid "The attribute/entity this question/questionset belongs to." -msgstr "Das Attribut/die Entität zu dem diese Frage/dieses Fragenset gehört." - -#: apps/questions/models.py:282 -msgid "The subsection this question/questionset belongs to." -msgstr "Der Unterabschnitt zu dem diese Frage/dieses Fragenset gehört." - -#: apps/questions/models.py:287 -msgid "The position of this question/questionset in lists." -msgstr "Die Position von dieser Frage/diesem Fragenset in Listen." - -#: apps/questions/models.py:291 apps/views/models.py:57 -msgid "Help (en)" -msgstr "Hilfe (en)" - -#: apps/questions/models.py:292 -msgid "The English help text for this question/questionset." -msgstr "Der englische Hilfetext für diese Frage/dieses Fragenset." - -#: apps/questions/models.py:296 apps/views/models.py:62 -msgid "Help (de)" -msgstr "Hilfe (de)" - -#: apps/questions/models.py:297 -msgid "The German help text for this question/questionset." -msgstr "Der deutsche Hilfetext für diese Frage/dieses Fragenset." - -#: apps/questions/models.py:302 -msgid "Question entity" -msgstr "Fragenobjekt" - -#: apps/questions/models.py:303 -msgid "Question entities" -msgstr "Fragenobjekte" - -#: apps/questions/models.py:382 -msgid "Parent" -msgstr "Übergeordnete Entität" - -#: apps/questions/models.py:383 -msgid "The question set this question belongs to." -msgstr "Das Fragenset zu dem diese Frage gehört." - -#: apps/questions/models.py:387 -msgid "The English text for this question." -msgstr "Der englische Text für diese Frage." - -#: apps/questions/models.py:391 -msgid "The German text for this question." -msgstr "Der deutsche Text für diese Frage." - -#: apps/questions/models.py:395 -msgid "Widget type" -msgstr "Widget-Typ" - -#: apps/questions/models.py:396 -msgid "Type of widget for this question." -msgstr "Art von Widget für diese Frage." - -#: apps/questions/models.py:400 -#: apps/questions/templates/questions/catalog_tree.html:124 -#: apps/questions/templates/questions/catalogs.html:86 -#: apps/questions/templates/questions/catalogs.html:105 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:43 -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:11 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:30 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:38 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:34 -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:11 -msgid "Question" -msgstr "Frage" - -#: apps/questions/serializers.py:202 apps/questions/serializers.py:244 -msgid "No attribute selected." -msgstr "Kein Attribut ausgewählt." - -#: apps/questions/serializers.py:232 -msgid "No entity selected." -msgstr "Keine Entität ausgewählt." - -#: apps/questions/serializers.py:238 -msgid "Entity and questions attributes mismatch." -msgstr "Entität und Attribute der Fragen passen nicht." - -#: apps/questions/templates/questions/catalog_tree.html:41 -#: apps/questions/templates/questions/catalogs.html:72 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:40 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:11 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:35 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:31 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:11 -msgid "Question set" -msgstr "Fragenset" - -#: apps/questions/templates/questions/catalog_tree.html:46 -#: apps/questions/templates/questions/catalog_tree.html:73 -#: apps/questions/templates/questions/catalog_tree.html:133 -msgid "Help" -msgstr "Hilfe" - -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:17 -#, python-format -msgid "" -"You are about to permanently delete the catalog " -"%(object)s." -msgstr "" -"Sie sind dabei den Katalog %(object)s " -"permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:17 -#, python-format -msgid "" -"You are about to permanently delete the question %(object)s." -msgstr "" -"Sie sind dabei die Frage %(object)s " -"permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:17 -#, python-format -msgid "" -"You are about to permanently delete the question set %(object)s." -msgstr "" -"Sie sind dabei das Fragenset %(object)s " -"permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:17 -#, python-format -msgid "" -"You are about to permanently delete the section " -"%(object)s." -msgstr "" -"Sie sind dabei den Abschnitt %(object)s " -"permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:17 -#, python-format -msgid "" -"You are about to permanently delete the subsection %(object)s." -msgstr "" -"Sie sind dabei den Unterabschnitt %(object)s permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:22 -msgid "The prefix for the URI of this question." -msgstr "Das Präfix für die URI dieser Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:31 -msgid "The internal identifier of this question." -msgstr "Der interne Bezeichner für diese Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:40 -msgid "Additional internal information about this question." -msgstr "Zusätzliche interne Informationen über diesen Abschnitt." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:50 -msgid "The subsection this question belongs to." -msgstr "Der Unterabschnitt für diese Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:73 -msgid "The position of this question in lists." -msgstr "Die Position dieser Frage in Listen." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:84 -msgid "The attribute this question belongs to." -msgstr "Das Attribut zu dem diese Frage gehört." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:129 -msgid "The English help text for this question." -msgstr "Der englische Hilfetext für diese Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:138 -msgid "The German help text for this question." -msgstr "Der deutsche Hilfetext für diese Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:151 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:106 -msgid "Copy" -msgstr "Kopieren" - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:22 -msgid "The prefix for the URI of this questionset." -msgstr "Das Präfix für die URI dieses Fragensets." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:31 -msgid "The internal identifier of this questionset." -msgstr "Der interne Bezeichner für dieses Fragenset." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:40 -msgid "Additional internal information about this questionset." -msgstr "Zusätzliche interne Informationen über diese Fragenset." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:50 -msgid "The subsection this questionset belongs to." -msgstr "Der Unterabschnitt für dieses Fragenset." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:62 -msgid "The position of this questionset in lists." -msgstr "Die Position von diesem Fragenset in Listen." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:71 -msgid "The entity this questionset belongs to." -msgstr "Das Entität zu dem dieses Fragenset gehört." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:84 -msgid "The English help text for this questionset." -msgstr "Der englische Hilfetext für dieses Fragenset." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:93 -msgid "The German help text for this questionset." -msgstr "Der deutsche Hilfetext für dieses Fragenset." - -#: apps/questions/templates/questions/catalogs_options_questions.html:4 -msgid "Update question" -msgstr "Frage bearbeiten" - -#: apps/questions/templates/questions/catalogs_options_questions.html:9 -msgid "Copy question" -msgstr "Frage kopieren" - -#: apps/questions/templates/questions/catalogs_options_questions.html:14 -msgid "Delete question" -msgstr "Frage entfernen" - -#: apps/questions/templates/questions/catalogs_options_questionsets.html:4 -#: apps/questions/templates/questions/catalogs_options_subsections.html:12 -msgid "Add question" -msgstr "Frage hinzufügen" - -#: apps/questions/templates/questions/catalogs_options_questionsets.html:9 -msgid "Update question set" -msgstr "Fragenset bearbeiten" - -#: apps/questions/templates/questions/catalogs_options_questionsets.html:14 -msgid "Copy question set" -msgstr "Fragenset kopieren" - -#: apps/questions/templates/questions/catalogs_options_questionsets.html:19 -msgid "Delete question set" -msgstr "Fragenset entfernen" - -#: apps/questions/templates/questions/catalogs_options_sections.html:4 -msgid "Add subsection" -msgstr "Unterabschnitt hinzufügen" - -#: apps/questions/templates/questions/catalogs_options_sections.html:9 -msgid "Update section" -msgstr "Abschnitt bearbeiten" - -#: apps/questions/templates/questions/catalogs_options_sections.html:14 -msgid "Delete section" -msgstr "Abschnitt entfernen" - -#: apps/questions/templates/questions/catalogs_options_subsections.html:6 -msgid "Show options" -msgstr "Optionen anzeigen" - -#: apps/questions/templates/questions/catalogs_options_subsections.html:17 -msgid "Add question set" -msgstr "Fragenset hinzufügen" - -#: apps/questions/templates/questions/catalogs_options_subsections.html:24 -msgid "Update subsection" -msgstr "Unterabschnitt bearbeiten" - -#: apps/questions/templates/questions/catalogs_options_subsections.html:29 -msgid "Delete subsection" -msgstr "Unterabschnitt entfernen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:25 -msgid "Update catalog details" -msgstr "Katalogeigenschaften bearbeiten" - -#: apps/questions/templates/questions/catalogs_sidebar.html:30 -msgid "Delete catalog" -msgstr "Katalog entfernen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:38 -msgid "Create new catalog" -msgstr "Neuen Katalog erstellen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:43 -msgid "Create new section" -msgstr "Neuen Abschnitt erstellen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:48 -msgid "Create new subsection" -msgstr "Neuen Unterabschnitt erstellen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:53 -msgid "Create new questionset" -msgstr "Neues Fragenset erstellen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:58 -msgid "Create new question" -msgstr "Neue Frage erstellen" - -#: apps/tasks/models.py:32 -msgid "The Uniform Resource Identifier of this task (auto-generated)." -msgstr "Der Uniform Resource Identifier dieser Aufgabe (automatisch erstellt)." - -#: apps/tasks/models.py:37 -msgid "The prefix for the URI of this task." -msgstr "Das Präfix für die URI dieser Aufgabe." - -#: apps/tasks/models.py:42 -msgid "The internal identifier of this task." -msgstr "Der interne Bezeichner für diese Aufgabe." - -#: apps/tasks/models.py:47 -msgid "Additional internal information about this task." -msgstr "Zusätzliche interne Informationen über diese Aufgabe." - -#: apps/tasks/models.py:52 -msgid "The English title for this task." -msgstr "Der englische Titel für diese Aufgabe." - -#: apps/tasks/models.py:57 -msgid "The German title for this task." -msgstr "Der deutsche Titel für diese Aufgabe." - -#: apps/tasks/models.py:61 -msgid "The English text for this task." -msgstr "Der englische Text für diese Aufgabe." - -#: apps/tasks/models.py:65 -msgid "The German text for this task." -msgstr "Der deutsche Text für diese Aufgabe." - -#: apps/tasks/models.py:70 -msgid "The list of conditions evaluated for this task." -msgstr "Die Liste der Bedingungen die für diese Aufgabe ausgewertet werden." - -#: apps/tasks/models.py:111 -msgid "The task this time frame belongs to." -msgstr "Die Aufgabe zu der dieser Zeitraum gehört." - -#: apps/tasks/models.py:115 apps/tasks/templates/tasks/tasks_export.html:55 -msgid "Start date attribute" -msgstr "Anfangsdatums-Attribut" - -#: apps/tasks/models.py:116 -msgid "The Attribute that is setting the start date for this task." -msgstr "Das Attribut das des Anfangsdatum für die Aufgabe festlegt." - -#: apps/tasks/models.py:120 apps/tasks/templates/tasks/tasks_export.html:56 -msgid "End date attribute" -msgstr "Enddatums-Attribute" - -#: apps/tasks/models.py:121 -msgid "" -"The Attribute that is setting the end date for this task (optional, if no " -"end date attribute is given, the start date attribute sets also the end " -"date)." -msgstr "" -"Das Attribut das des Enddatum für die Aufgabe festlegt (Optional, wenn kein " -"Enddatums-Attribut angegeben wird, bestimmt das Anfangsdatums-Attribut auch " -"das Enddatum)." - -#: apps/tasks/models.py:125 apps/tasks/templates/tasks/tasks_export.html:57 -msgid "Days before" -msgstr "Tage davor" - -#: apps/tasks/models.py:126 -msgid "Additional days before the start date." -msgstr "Zusätzliche Tage vor dem Anfangsdatum." - -#: apps/tasks/models.py:130 apps/tasks/templates/tasks/tasks_export.html:58 -msgid "Days after" -msgstr "Tage danach" - -#: apps/tasks/models.py:131 -msgid "Additional days after the end date." -msgstr "Zusätzliche Tage nach dem Enddatum." - -#: apps/tasks/models.py:137 -msgid "Time frames" -msgstr "Zeiträume" - -#: apps/tasks/templates/tasks/tasks.html:39 -msgid "Create new task" -msgstr "Neue Aufgabe erstellen" - -#: apps/tasks/templates/tasks/tasks.html:77 -msgid "Update task" -msgstr "Aufgabe bearbeiten" - -#: apps/tasks/templates/tasks/tasks.html:85 -msgid "Update time frame" -msgstr "Zeitrahmen bearbeiten." - -#: apps/tasks/templates/tasks/tasks.html:89 -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:11 -msgid "Delete task" -msgstr "Aufgabe entfernen" - -#: apps/tasks/templates/tasks/tasks_export.html:51 -msgid "Timeframe" -msgstr "Zeitraum" - -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:17 -msgid "" -"You are about to permanently delete the task {$ service.values.title " -"$}." -msgstr "" -"Sie sind dabei die Aufgabe %(object)s permanent zu entfernen." - -#: apps/views/models.py:23 -msgid "The Uniform Resource Identifier of this view (auto-generated)." -msgstr "Der Uniform Resource Identifier dieser Ansicht (automatisch erstellt)." - -#: apps/views/models.py:28 -msgid "The prefix for the URI of this view." -msgstr "Das Präfix für die URI dieser Ansicht." - -#: apps/views/models.py:33 -msgid "The internal identifier of this view." -msgstr "Der interne Bezeichner für diese Ansicht." - -#: apps/views/models.py:38 -msgid "Additional internal information about this view." -msgstr "Zusätzliche interne Informationen über diese Ansicht." - -#: apps/views/models.py:42 apps/views/templates/views/views_export.html:33 -#: apps/views/templates/views/views_modal_form_templates.html:11 -msgid "Template" -msgstr "Vorlage" - -#: apps/views/models.py:43 -msgid "The template for this view, written in Django template language." -msgstr "" -"Das Template für diese Ansicht, in der Django-Template-Language verfasst." - -#: apps/views/models.py:48 -msgid "The English title for this view." -msgstr "Der englische Titel für diese Ansicht." - -#: apps/views/models.py:53 -msgid "The German title for this view." -msgstr "Der deutsche Titel für diesen Ansicht." - -#: apps/views/models.py:58 -msgid "The English help text for this view." -msgstr "Der englische Hilfetext für diese Ansicht." - -#: apps/views/models.py:63 -msgid "The German help text for this view." -msgstr "Der deutsche Hilfetext für diese Ansicht." - -#: apps/views/templates/views/views.html:45 -msgid "Create new view" -msgstr "Neue Ansicht erstellen" - -#: apps/views/templates/views/views.html:83 -msgid "Update view" -msgstr "Ansicht bearbeiten" - -#: apps/views/templates/views/views.html:87 -msgid "Edit template" -msgstr "Template bearbeiten" - -#: apps/views/templates/views/views.html:91 -#: apps/views/templates/views/views_modal_delete_views.html:11 -msgid "Delete view" -msgstr "Ansicht entfernen" - -#: apps/views/templates/views/views_export.html:29 -msgid "Help text" -msgstr "Hilfetext" - -#: apps/views/templates/views/views_modal_delete_views.html:17 -msgid "" -"You are about to permanently delete the view {$ service.values.title " -"$}." -msgstr "" -"Sie sind dabei die Ansicht %(object)s permanent zu entfernen." - -#: apps/views/templates/views/views_modal_form_templates.html:37 -msgid "Save and close" -msgstr "Sichern und schließen" - -#: rdmo/settings/base.py:123 -msgid "German" -msgstr "Deutsch" - -#: rdmo/settings/base.py:124 -msgid "English" -msgstr "Englisch" - -#: rdmo/settings/base.py:201 -msgid "PDF" -msgstr "PDF" - -#: rdmo/settings/base.py:202 -msgid "Rich Text Format" -msgstr "Rich Text Format" - -#: rdmo/settings/base.py:203 -msgid "Open Office" -msgstr "Open Office" - -#: rdmo/settings/base.py:204 -msgid "Microsoft Office" -msgstr "Microsoft Office" - -#: rdmo/settings/base.py:205 -msgid "HTML" -msgstr "HTML" - -#: rdmo/settings/base.py:206 -msgid "Markdown" -msgstr "Markdown" - -#: rdmo/settings/base.py:207 -msgid "mediawiki" -msgstr "mediawiki" - -#: rdmo/settings/base.py:208 -msgid "LaTeX" -msgstr "LaTeX" - -#, fuzzy -#~| msgid "Optionsets " -#~ msgid "Optionsets" -#~ msgstr "Optionensets" - -#~ msgid "Optionset" -#~ msgstr "Optionenset" - -#~ msgid "Tasks " -#~ msgstr "Aufgaben" - -#~ msgid "Task " -#~ msgstr "Aufgabe" - -#~ msgid "Views " -#~ msgstr "Ansichten" - -#~ msgid "Domain " -#~ msgstr "Domäne" - -#~ msgid "Condition " -#~ msgstr "Bedingung" - -#~ msgid "Conditions " -#~ msgstr "Bedingungen" - -#~ msgid "" -#~ "You are about to permanently delete the attribute set %(object)s." -#~ msgstr "" -#~ "Sie sind dabei die Entität %(object)s permanent zu entfernen." - -#~ msgid "" -#~ "The internal identifier of this condition. The URI will be generated from " -#~ "this key." -#~ msgstr "" -#~ "Der interne Identifikator für diese Bedingung. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "Prefix" -#~ msgstr "Präfix" - -#~ msgid "Source Attribute" -#~ msgstr "Quell-Attribut" - -#~ msgid "Target text" -#~ msgstr "Ziel Text" - -#~ msgid "Target option" -#~ msgstr "Ziel Option" - -#~ msgid "" -#~ "The internal identifier of this attribute/entity. The URI will be " -#~ "generated from this key." -#~ msgstr "" -#~ "Der interne Identifikator für dieses Attribute/diese Entität. Die URI " -#~ "wird hieraus generiert." - -#~ msgid "Type" -#~ msgstr "Typ" - -#~ msgid "" -#~ "You are about to permanently delete the attribute {$ service.values." -#~ "title $}." -#~ msgstr "" -#~ "Sie sind dabei das Attribut {$ service.values.title $} " -#~ "permanent zu entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the attribute set {$ service." -#~ "values.title $}." -#~ msgstr "" -#~ "Sie sind dabei die Entität {$ service.values.title $} " -#~ "permanent zu entfernen." - -#~ msgid "Parent Entity" -#~ msgstr "Übergeordnete Entität" - -#~ msgid "is a Collection" -#~ msgstr "ist eine Sammlung" - -#~ msgid "English name" -#~ msgstr "Englischer Name" - -#~ msgid "English name (plural)" -#~ msgstr "Englischer Name (Plural)" - -#~ msgid "German name" -#~ msgstr "Deutscher Name" - -#~ msgid "German name (plural)" -#~ msgstr "Deutscher Name (Plural)" - -#~ msgid "" -#~ "The internal identifier of this option set. The URI will be generated " -#~ "from this key." -#~ msgstr "" -#~ "Der interne Identifikator für dieses Optionenset. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "Options " -#~ msgstr "Optionen" - -#~ msgid "Title (English)" -#~ msgstr "Titel (Englisch)" - -#~ msgid "Title (German)" -#~ msgstr "Titel (Deutsch)" - -#~ msgid "" -#~ "The internal identifier of this catalog. The URI will be generated from " -#~ "this key." -#~ msgstr "" -#~ "Der interne Identifikator für diesen Katalog. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "" -#~ "The internal identifier of this section. The URI will be generated from " -#~ "this key." -#~ msgstr "" -#~ "Der interne Identifikator für diesen Abschnitt. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "" -#~ "The internal identifier of this subsection. The URI will be generated " -#~ "from this key." -#~ msgstr "" -#~ "Der interne Identifikator für diesen Unterabschnitt. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "The position of this subsection in lists." -#~ msgstr "Die Position von diesem Unterabschnitt in Listen." - -#~ msgid "" -#~ "The internal identifier of this question/questionset. The URI will be " -#~ "generated from this key." -#~ msgstr "" -#~ "Der interne Identifikator für diese Frage/dieses Fragenset. Die URI wird " -#~ "hieraus generiert." - -#~ msgid "" -#~ "You are about to permanently delete the catalog {$ service." -#~ "catalog.title $}." -#~ msgstr "" -#~ "Sie sind dabei den Katalog %(object)s permanent zu entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the question {$ service." -#~ "values.text $}." -#~ msgstr "" -#~ "Sie sind dabei die Frage %(object)s permanent zu entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the question set {$ service." -#~ "values.title $}." -#~ msgstr "" -#~ "Sie sind dabei das Fragenset %(object)s permanent zu " -#~ "entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the section {$ service.values." -#~ "title $}." -#~ msgstr "" -#~ "Sie sind dabei den Abschnitt %(object)s permanent zu " -#~ "entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the subsection {$ service." -#~ "values.title $}." -#~ msgstr "" -#~ "Sie sind dabei den Unterabschnitt %(object)s permanent zu " -#~ "entfernen." - -#~ msgid "Question text (English)" -#~ msgstr "Fragentext (Englisch)" - -#~ msgid "Question text (German)" -#~ msgstr "Fragentext (Deutsch)" - -#~ msgid "Help text (English)" -#~ msgstr "Hilfetext (Englisch)" - -#~ msgid "Description text (English)" -#~ msgstr "Beschreibungstext (Englisch)" - -#~ msgid "Description text (German)" -#~ msgstr "Beschreibungstext (Deutsch)" - -#~ msgid "Additional days before" -#~ msgstr "Zusätzliche Tage vorher" - -#~ msgid "Additional days after" -#~ msgstr "Zusätzliche Tage danach" - -#~ msgid "" -#~ "The internal identifier of this view. The URI will be generated from this " -#~ "key." -#~ msgstr "" -#~ "Der interne Identifikator für diese Ansicht. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "Days before start date." -#~ msgstr "Tage vor dem Start-Datum" - -#~ msgid "Profile update not possible" -#~ msgstr "Profil bearbeiten nicht möglich" - -#~ msgid "Deadline" -#~ msgstr "Termin" - -#~ msgid "The attribute this task is refering to." -#~ msgstr "Das Attribut auf das diese Aufgabe verweist." - -#~ msgid "Time period" -#~ msgstr "Zeitraum" - -#~ msgid "The the time period after this task becomes active." -#~ msgstr "Die Zweitspanne nach der diese Aufgabe aktiv wird." - -#~ msgid "" -#~ "RDMO is published on github.com." -#~ msgstr "" -#~ "RDMO ist auf github.com " -#~ "veröffentlicht." - -#~ msgid "Email" -#~ msgstr "E-Mail" - -#~ msgid "Save input" -#~ msgstr "Eingabe speichern" - -#~ msgid "Delete attribute set" -#~ msgstr "Attribut-Set entfernen" diff --git a/rdmo/conditions/templates/conditions/conditions.html b/rdmo/conditions/templates/conditions/conditions.html index 0075ddb04..832921491 100644 --- a/rdmo/conditions/templates/conditions/conditions.html +++ b/rdmo/conditions/templates/conditions/conditions.html @@ -44,7 +44,7 @@

{% trans 'Options' %}

{% trans 'Export' %}

    - {% for format, text in export_formats.items %} + {% for format, text in export_formats %}
  • {{ text }} diff --git a/rdmo/core/settings.py b/rdmo/core/settings.py new file mode 100644 index 000000000..8dda86990 --- /dev/null +++ b/rdmo/core/settings.py @@ -0,0 +1,178 @@ +import os +from django.utils.translation import ugettext_lazy as _ + +INSTALLED_APPS = [ + # django modules + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'django.contrib.sites', + # rdmo modules + 'rdmo.core', + 'rdmo.accounts', + 'rdmo.domain', + 'rdmo.options', + 'rdmo.conditions', + 'rdmo.questions', + 'rdmo.tasks', + 'rdmo.views', + 'rdmo.projects', + # 3rd party modules + 'rest_framework', + 'rest_framework.authtoken', + 'widget_tweaks', + 'markdown', + 'compressor', + 'djangobower', + 'django_extensions', + 'mptt', + 'rules' +] + +MIDDLEWARE_CLASSES = [ + 'django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.locale.LocaleMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware', + 'django.contrib.sites.middleware.CurrentSiteMiddleware' +] + +ROOT_URLCONF = 'config.urls' + +TEMPLATES = [ + { + 'BACKEND': 'django.template.backends.django.DjangoTemplates', + 'DIRS': [], + 'APP_DIRS': True, + 'OPTIONS': { + 'context_processors': [ + 'django.template.context_processors.debug', + 'django.template.context_processors.request', + 'django.contrib.auth.context_processors.auth', + 'django.contrib.messages.context_processors.messages', + 'django_settings_export.settings_export', + ], + }, + }, +] + +COMPRESS_PRECOMPILERS = ( + ('text/x-scss', 'django_libsass.SassCompiler'), +) + +WSGI_APPLICATION = 'config.wsgi.application' + +AUTHENTICATION_BACKENDS = [ + 'rules.permissions.ObjectPermissionBackend', + 'django.contrib.auth.backends.ModelBackend' +] + +PROFILE_UPDATE = True + +ACCOUNT = False +ACCOUNT_SIGNUP = False +SOCIALACCOUNT = False +SHIBBOLETH = False + +ACCOUNT_SIGNUP_FORM_CLASS = 'apps.accounts.forms.SignupForm' +ACCOUNT_USER_DISPLAY = 'apps.accounts.utils.get_full_name' +ACCOUNT_EMAIL_REQUIRED = True +ACCOUNT_ACTIVATION_DAYS = 7 +ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 7 +ACCOUNT_EMAIL_VERIFICATION = 'optional' +ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = False +ACCOUNT_USERNAME_MIN_LENGTH = 4 +ACCOUNT_PASSWORD_MIN_LENGTH = 4 + +LANGUAGE_CODE = 'en-us' + +TIME_ZONE = 'Europe/Berlin' + +LANGUAGES = ( + ('de', _('German')), + ('en', _('English')), +) + +USE_I18N = True + +USE_L10N = True + +USE_TZ = True + +LOGIN_URL = '/account/login/' +LOGIN_REDIRECT_URL = '/' +LOGOUT_URL = '/account/logout/' + +MEDIA_URL = '/media/' +STATIC_URL = '/static/' + +STATICFILES_FINDERS = ( + 'django.contrib.staticfiles.finders.FileSystemFinder', + 'django.contrib.staticfiles.finders.AppDirectoriesFinder', + 'compressor.finders.CompressorFinder', + 'djangobower.finders.BowerFinder', +) + +BOWER_INSTALLED_APPS = ( + "angular#~1.5.8", + "bootstrap#~3.3.7", + "angular-resource#~1.5.8", + "codemirror#~5.18.2", + "components-font-awesome#~4.6.3", + "bootstrap-datepicker#~1.6.4", + "moment#~2.14.1" +) + +CACHES = { + 'default': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + 'LOCATION': 'rdmo_default' + }, + 'api': { + 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', + 'LOCATION': 'rdmo_api' + } +} + +REST_FRAMEWORK = { + 'UNICODE_JSON': False, + 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.NamespaceVersioning' +} + +REST_FRAMEWORK_EXTENSIONS = { + 'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 +} + +SETTINGS_EXPORT = [ + 'LOGIN_URL', + 'LOGOUT_URL', + 'ACCOUNT', + 'ACCOUNT_SIGNUP', + 'SOCIALACCOUNT', + 'PROFILE_UPDATE', + 'SHIBBOLETH' +] + +EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' +EMAIL_FROM = 'info@example.com' + +EXPORT_FORMATS = ( + ('pdf', _('PDF')), + ('rtf', _('Rich Text Format')), + ('odt', _('Open Office')), + ('docx', _('Microsoft Office')), + ('html', _('HTML')), + ('markdown', _('Markdown')), + ('mediawiki', _('mediawiki')), + ('tex', _('LaTeX')) +) + +DEFAULT_URI_PREFIX = 'http://example.com/terms' diff --git a/rdmo/domain/templates/domain/domain.html b/rdmo/domain/templates/domain/domain.html index 3d7192cdf..4f438e204 100644 --- a/rdmo/domain/templates/domain/domain.html +++ b/rdmo/domain/templates/domain/domain.html @@ -49,7 +49,7 @@

    {% trans 'Options' %}

    {% trans 'Export' %}

      - {% for format, text in export_formats.items %} + {% for format, text in export_formats %}
    • {{ text }} diff --git a/locale/de/LC_MESSAGES/django.mo b/rdmo/locale/de/LC_MESSAGES/django.mo similarity index 100% rename from locale/de/LC_MESSAGES/django.mo rename to rdmo/locale/de/LC_MESSAGES/django.mo diff --git a/rdmo/locale/de/LC_MESSAGES/django.po b/rdmo/locale/de/LC_MESSAGES/django.po new file mode 100644 index 000000000..0266c0491 --- /dev/null +++ b/rdmo/locale/de/LC_MESSAGES/django.po @@ -0,0 +1,3174 @@ +# 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 , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: DMPwerkzeug\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-08-23 16:47+0200\n" +"PO-Revision-Date: 2017-04-05 16:44+0100\n" +"Last-Translator: Jochen Klar \n" +"Language-Team: DMPwerkzeug \n" +"Language: 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" +"X-Generator: Poedit 1.6.10\n" + +#: env/lib/python2.7/site-packages/django/contrib/messages/apps.py:7 +msgid "Messages" +msgstr "" + +#: env/lib/python2.7/site-packages/django/contrib/sitemaps/apps.py:7 +msgid "Site Maps" +msgstr "" + +#: env/lib/python2.7/site-packages/django/contrib/staticfiles/apps.py:7 +msgid "Static Files" +msgstr "" + +#: env/lib/python2.7/site-packages/django/contrib/syndication/apps.py:7 +#, fuzzy +#| msgid "Condition" +msgid "Syndication" +msgstr "Bedingung" + +#: env/lib/python2.7/site-packages/django/core/paginator.py:43 +msgid "That page number is not an integer" +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/paginator.py:45 +msgid "That page number is less than 1" +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/paginator.py:50 +msgid "That page contains no results" +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:34 +msgid "Enter a valid value." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:107 +#: env/lib/python2.7/site-packages/django/forms/fields.py:667 +msgid "Enter a valid URL." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:160 +msgid "Enter a valid integer." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:171 +#, fuzzy +#| msgid "Verify your e-mail address" +msgid "Enter a valid email address." +msgstr "Betätigen Sie Ihre E-Mail Adresse" + +#: env/lib/python2.7/site-packages/django/core/validators.py:245 +msgid "" +"Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:252 +msgid "" +"Enter a valid 'slug' consisting of Unicode letters, numbers, underscores, or " +"hyphens." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:257 +#: env/lib/python2.7/site-packages/django/core/validators.py:277 +msgid "Enter a valid IPv4 address." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:262 +#: env/lib/python2.7/site-packages/django/core/validators.py:278 +msgid "Enter a valid IPv6 address." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:272 +#: env/lib/python2.7/site-packages/django/core/validators.py:276 +msgid "Enter a valid IPv4 or IPv6 address." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:308 +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1127 +msgid "Enter only digits separated by commas." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:314 +#, python-format +msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:345 +#, python-format +msgid "Ensure this value is less than or equal to %(limit_value)s." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:354 +#, python-format +msgid "Ensure this value is greater than or equal to %(limit_value)s." +msgstr "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:364 +#, python-format +msgid "" +"Ensure this value has at least %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at least %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:379 +#, python-format +msgid "" +"Ensure this value has at most %(limit_value)d character (it has " +"%(show_value)d)." +msgid_plural "" +"Ensure this value has at most %(limit_value)d characters (it has " +"%(show_value)d)." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:399 +#, python-format +msgid "Ensure that there are no more than %(max)s digit in total." +msgid_plural "Ensure that there are no more than %(max)s digits in total." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:404 +#, python-format +msgid "Ensure that there are no more than %(max)s decimal place." +msgid_plural "Ensure that there are no more than %(max)s decimal places." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:409 +#, python-format +msgid "" +"Ensure that there are no more than %(max)s digit before the decimal point." +msgid_plural "" +"Ensure that there are no more than %(max)s digits before the decimal point." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/core/validators.py:463 +#, python-format +msgid "" +"File extension '%(extension)s' is not allowed. Allowed extensions are: " +"'%(allowed_extensions)s'." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/base.py:1207 +#: env/lib/python2.7/site-packages/django/forms/models.py:732 +msgid "and" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/base.py:1209 +#, fuzzy, python-format +#| msgid "%(model)s with this key already exists." +msgid "%(model_name)s with this %(field_labels)s already exists." +msgstr "%(model)s mit diesem Schlüssel existiert bereits." + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:116 +#, python-format +msgid "Value %(value)r is not a valid choice." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:117 +#, fuzzy +#| msgid "This field may not be blank." +msgid "This field cannot be null." +msgstr "Dieses Feld darf nicht leer sein." + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:118 +#, fuzzy +#| msgid "This field may not be blank." +msgid "This field cannot be blank." +msgstr "Dieses Feld darf nicht leer sein." + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:119 +#, fuzzy, python-format +#| msgid "%(model)s with this key already exists." +msgid "%(model_name)s with this %(field_label)s already exists." +msgstr "%(model)s mit diesem Schlüssel existiert bereits." + +#. Translators: The 'lookup_type' is one of 'date', 'year' or 'month'. +#. Eg: "Title must be unique for pub_date year" +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:123 +#, python-format +msgid "" +"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:140 +#, python-format +msgid "Field of type: %(field_type)s" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:897 +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1805 +msgid "Integer" +msgstr "Ganzzahl" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:901 +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1803 +#, python-format +msgid "'%(value)s' value must be an integer." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:974 +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1874 +msgid "Big (8 byte) integer" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:986 +#, python-format +msgid "'%(value)s' value must be either True or False." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:988 +msgid "Boolean (Either True or False)" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1054 +#, python-format +msgid "String (up to %(max_length)s)" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1111 +msgid "Comma-separated integers" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1168 +#, python-format +msgid "" +"'%(value)s' value has an invalid date format. It must be in YYYY-MM-DD " +"format." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1170 +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1315 +#, python-format +msgid "" +"'%(value)s' value has the correct format (YYYY-MM-DD) but it is an invalid " +"date." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1173 +msgid "Date (without time)" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1313 +#, python-format +msgid "" +"'%(value)s' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." +"uuuuuu]][TZ] format." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1317 +#, python-format +msgid "" +"'%(value)s' value has the correct format (YYYY-MM-DD HH:MM[:ss[.uuuuuu]]" +"[TZ]) but it is an invalid date/time." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1321 +#, fuzzy +#| msgid "Datetime" +msgid "Date (with time)" +msgstr "Datum und Zeit" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1471 +#, python-format +msgid "'%(value)s' value must be a decimal number." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1473 +msgid "Decimal number" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1624 +#, python-format +msgid "" +"'%(value)s' value has an invalid format. It must be in [DD] [HH:[MM:]]ss[." +"uuuuuu] format." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1627 +#, fuzzy +#| msgid "Description" +msgid "Duration" +msgstr "Beschreibung" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1679 +#, fuzzy +#| msgid "E-mail Addresses" +msgid "Email address" +msgstr "E-mail Adressen" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1703 +#, fuzzy +#| msgid "Profile update" +msgid "File path" +msgstr "Profil bearbeiten" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1769 +#, python-format +msgid "'%(value)s' value must be a float." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1771 +msgid "Floating point number" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1889 +msgid "IPv4 address" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:1920 +msgid "IP address" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2002 +#, python-format +msgid "'%(value)s' value must be either None, True or False." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2004 +msgid "Boolean (Either True, False or None)" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2067 +msgid "Positive integer" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2079 +msgid "Positive small integer" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2092 +#, python-format +msgid "Slug (up to %(max_length)s)" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2126 +#, fuzzy +#| msgid "Integer" +msgid "Small integer" +msgstr "Ganzzahl" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2133 +msgid "Text" +msgstr "Text" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2159 +#, python-format +msgid "" +"'%(value)s' value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " +"format." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2161 +#, python-format +msgid "" +"'%(value)s' value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " +"invalid time." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2164 +#, fuzzy +#| msgid "Timeframe" +msgid "Time" +msgstr "Zeitraum" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2292 +msgid "URL" +msgstr "URL" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2315 +msgid "Raw binary data" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/__init__.py:2362 +#, python-format +msgid "'%(value)s' is not a valid UUID." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/files.py:229 +msgid "File" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/files.py:393 +msgid "Image" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/related.py:788 +#, python-format +msgid "%(model)s instance with %(field)s %(value)r does not exist." +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/related.py:790 +msgid "Foreign Key (type determined by related field)" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/related.py:1029 +msgid "One-to-one relationship" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/related.py:1104 +#, python-format +msgid "%(from)s-%(to)s relationship" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/related.py:1105 +#, python-format +msgid "%(from)s-%(to)s relationships" +msgstr "" + +#: env/lib/python2.7/site-packages/django/db/models/fields/related.py:1147 +msgid "Many-to-many relationship" +msgstr "" + +#. Translators: If found as last label character, these punctuation +#. characters will prevent the default label_suffix to be appended to the label +#: env/lib/python2.7/site-packages/django/forms/boundfield.py:181 +msgid ":?.!" +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:56 +msgid "This field is required." +msgstr "Dieses Feld wird benötigt." + +#: env/lib/python2.7/site-packages/django/forms/fields.py:257 +msgid "Enter a whole number." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:302 +#: env/lib/python2.7/site-packages/django/forms/fields.py:339 +msgid "Enter a number." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:417 +#: env/lib/python2.7/site-packages/django/forms/fields.py:1139 +msgid "Enter a valid date." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:441 +#: env/lib/python2.7/site-packages/django/forms/fields.py:1140 +msgid "Enter a valid time." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:463 +msgid "Enter a valid date/time." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:492 +msgid "Enter a valid duration." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:546 +msgid "No file was submitted. Check the encoding type on the form." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:547 +msgid "No file was submitted." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:548 +msgid "The submitted file is empty." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:550 +#, python-format +msgid "Ensure this filename has at most %(max)d character (it has %(length)d)." +msgid_plural "" +"Ensure this filename has at most %(max)d characters (it has %(length)d)." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:553 +msgid "Please either submit a file or check the clear checkbox, not both." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:615 +msgid "" +"Upload a valid image. The file you uploaded was either not an image or a " +"corrupted image." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:770 +#: env/lib/python2.7/site-packages/django/forms/fields.py:866 +#: env/lib/python2.7/site-packages/django/forms/models.py:1246 +#, python-format +msgid "Select a valid choice. %(value)s is not one of the available choices." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:867 +#: env/lib/python2.7/site-packages/django/forms/fields.py:982 +#: env/lib/python2.7/site-packages/django/forms/models.py:1245 +msgid "Enter a list of values." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:983 +msgid "Enter a complete value." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/fields.py:1198 +msgid "Enter a valid UUID." +msgstr "" + +#. Translators: This is the default suffix added to form field labels +#: env/lib/python2.7/site-packages/django/forms/forms.py:87 +msgid ":" +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/forms.py:213 +#, python-format +msgid "(Hidden field %(name)s) %(error)s" +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/formsets.py:97 +msgid "ManagementForm data is missing or has been tampered with" +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/formsets.py:355 +#, python-format +msgid "Please submit %d or fewer forms." +msgid_plural "Please submit %d or fewer forms." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/forms/formsets.py:362 +#, python-format +msgid "Please submit %d or more forms." +msgid_plural "Please submit %d or more forms." +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/forms/formsets.py:390 +#: env/lib/python2.7/site-packages/django/forms/formsets.py:392 +msgid "Order" +msgstr "Reihenfolge" + +#: env/lib/python2.7/site-packages/django/forms/formsets.py:394 +msgid "Delete" +msgstr "Entfernen" + +#: env/lib/python2.7/site-packages/django/forms/models.py:727 +#, python-format +msgid "Please correct the duplicate data for %(field)s." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/models.py:731 +#, python-format +msgid "Please correct the duplicate data for %(field)s, which must be unique." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/models.py:737 +#, python-format +msgid "" +"Please correct the duplicate data for %(field_name)s which must be unique " +"for the %(lookup)s in %(date_field)s." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/models.py:746 +msgid "Please correct the duplicate values below." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/models.py:1076 +msgid "The inline foreign key did not match the parent instance primary key." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/models.py:1137 +msgid "Select a valid choice. That choice is not one of the available choices." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/models.py:1248 +#, python-format +msgid "\"%(pk)s\" is not a valid value for a primary key." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/utils.py:172 +#, python-format +msgid "" +"%(datetime)s couldn't be interpreted in time zone %(current_timezone)s; it " +"may be ambiguous or it may not exist." +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/widgets.py:377 +msgid "Clear" +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/widgets.py:378 +#, fuzzy +#| msgid "Current" +msgid "Currently" +msgstr "Aktuell" + +#: env/lib/python2.7/site-packages/django/forms/widgets.py:379 +#, fuzzy +#| msgid "Range" +msgid "Change" +msgstr "Bereich" + +#: env/lib/python2.7/site-packages/django/forms/widgets.py:697 +msgid "Unknown" +msgstr "" + +#: env/lib/python2.7/site-packages/django/forms/widgets.py:698 +msgid "Yes" +msgstr "Ja" + +#: env/lib/python2.7/site-packages/django/forms/widgets.py:699 +msgid "No" +msgstr "Nein" + +#: env/lib/python2.7/site-packages/django/template/defaultfilters.py:849 +msgid "yes,no,maybe" +msgstr "" + +#: env/lib/python2.7/site-packages/django/template/defaultfilters.py:878 +#: env/lib/python2.7/site-packages/django/template/defaultfilters.py:895 +#, python-format +msgid "%(size)d byte" +msgid_plural "%(size)d bytes" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/template/defaultfilters.py:897 +#, python-format +msgid "%s KB" +msgstr "" + +#: env/lib/python2.7/site-packages/django/template/defaultfilters.py:899 +#, python-format +msgid "%s MB" +msgstr "" + +#: env/lib/python2.7/site-packages/django/template/defaultfilters.py:901 +#, python-format +msgid "%s GB" +msgstr "" + +#: env/lib/python2.7/site-packages/django/template/defaultfilters.py:903 +#, python-format +msgid "%s TB" +msgstr "" + +#: env/lib/python2.7/site-packages/django/template/defaultfilters.py:905 +#, python-format +msgid "%s PB" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dateformat.py:66 +msgid "p.m." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dateformat.py:67 +msgid "a.m." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dateformat.py:72 +msgid "PM" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dateformat.py:73 +msgid "AM" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dateformat.py:158 +msgid "midnight" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dateformat.py:160 +msgid "noon" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:6 +msgid "Monday" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:6 +msgid "Tuesday" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:6 +msgid "Wednesday" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:6 +msgid "Thursday" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:6 +msgid "Friday" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:7 +msgid "Saturday" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:7 +msgid "Sunday" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:10 +msgid "Mon" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:10 +msgid "Tue" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:10 +msgid "Wed" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:10 +msgid "Thu" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:10 +msgid "Fri" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:11 +msgid "Sat" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:11 +msgid "Sun" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:18 +msgid "January" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:18 +msgid "February" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:18 +msgid "March" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:18 +msgid "April" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:18 +msgid "May" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:18 +msgid "June" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:19 +msgid "July" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:19 +msgid "August" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:19 +#, fuzzy +#| msgid "Members" +msgid "September" +msgstr "Mitglieder" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:19 +msgid "October" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:19 +#, fuzzy +#| msgid "Members" +msgid "November" +msgstr "Mitglieder" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:20 +#, fuzzy +#| msgid "Members" +msgid "December" +msgstr "Mitglieder" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:23 +msgid "jan" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:23 +msgid "feb" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:23 +#, fuzzy +#| msgid "Primary" +msgid "mar" +msgstr "Primär" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:23 +msgid "apr" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:23 +#, fuzzy +#| msgid "Primary" +msgid "may" +msgstr "Primär" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:23 +msgid "jun" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:24 +msgid "jul" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:24 +msgid "aug" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:24 +#, fuzzy +#| msgid "set" +msgid "sep" +msgstr "Set" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:24 +#, fuzzy +#| msgid "Contact" +msgid "oct" +msgstr "Kontakt" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:24 +#, fuzzy +#| msgid "no" +msgid "nov" +msgstr "Nein" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:24 +msgid "dec" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:31 +msgctxt "abbrev. month" +msgid "Jan." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:32 +msgctxt "abbrev. month" +msgid "Feb." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:33 +msgctxt "abbrev. month" +msgid "March" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:34 +msgctxt "abbrev. month" +msgid "April" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:35 +msgctxt "abbrev. month" +msgid "May" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:36 +msgctxt "abbrev. month" +msgid "June" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:37 +msgctxt "abbrev. month" +msgid "July" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:38 +msgctxt "abbrev. month" +msgid "Aug." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:39 +msgctxt "abbrev. month" +msgid "Sept." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:40 +msgctxt "abbrev. month" +msgid "Oct." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:41 +msgctxt "abbrev. month" +msgid "Nov." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:42 +msgctxt "abbrev. month" +msgid "Dec." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:45 +msgctxt "alt. month" +msgid "January" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:46 +msgctxt "alt. month" +msgid "February" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:47 +msgctxt "alt. month" +msgid "March" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:48 +msgctxt "alt. month" +msgid "April" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:49 +msgctxt "alt. month" +msgid "May" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:50 +msgctxt "alt. month" +msgid "June" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:51 +msgctxt "alt. month" +msgid "July" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:52 +msgctxt "alt. month" +msgid "August" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:53 +#, fuzzy +#| msgid "Members" +msgctxt "alt. month" +msgid "September" +msgstr "Mitglieder" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:54 +msgctxt "alt. month" +msgid "October" +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:55 +#, fuzzy +#| msgid "Members" +msgctxt "alt. month" +msgid "November" +msgstr "Mitglieder" + +#: env/lib/python2.7/site-packages/django/utils/dates.py:56 +#, fuzzy +#| msgid "Members" +msgctxt "alt. month" +msgid "December" +msgstr "Mitglieder" + +#: env/lib/python2.7/site-packages/django/utils/ipv6.py:12 +msgid "This is not a valid IPv6 address." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/text.py:81 +#, python-format +msgctxt "String to return when truncating text" +msgid "%(truncated_text)s..." +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/text.py:251 +msgid "or" +msgstr "" + +#. Translators: This string is used as a separator between list elements +#: env/lib/python2.7/site-packages/django/utils/text.py:270 +#: env/lib/python2.7/site-packages/django/utils/timesince.py:71 +msgid ", " +msgstr "" + +#: env/lib/python2.7/site-packages/django/utils/timesince.py:11 +#, python-format +msgid "%d year" +msgid_plural "%d years" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/utils/timesince.py:12 +#, python-format +msgid "%d month" +msgid_plural "%d months" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/utils/timesince.py:13 +#, python-format +msgid "%d week" +msgid_plural "%d weeks" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/utils/timesince.py:14 +#, python-format +msgid "%d day" +msgid_plural "%d days" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/utils/timesince.py:15 +#, python-format +msgid "%d hour" +msgid_plural "%d hours" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/utils/timesince.py:16 +#, python-format +msgid "%d minute" +msgid_plural "%d minutes" +msgstr[0] "" +msgstr[1] "" + +#: env/lib/python2.7/site-packages/django/utils/timesince.py:60 +msgid "0 minutes" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/csrf.py:109 +msgid "Forbidden" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/csrf.py:110 +msgid "CSRF verification failed. Request aborted." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/csrf.py:114 +msgid "" +"You are seeing this message because this HTTPS site requires a 'Referer " +"header' to be sent by your Web browser, but none was sent. This header is " +"required for security reasons, to ensure that your browser is not being " +"hijacked by third parties." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/csrf.py:119 +msgid "" +"If you have configured your browser to disable 'Referer' headers, please re-" +"enable them, at least for this site, or for HTTPS connections, or for 'same-" +"origin' requests." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/csrf.py:124 +msgid "" +"You are seeing this message because this site requires a CSRF cookie when " +"submitting forms. This cookie is required for security reasons, to ensure " +"that your browser is not being hijacked by third parties." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/csrf.py:129 +msgid "" +"If you have configured your browser to disable cookies, please re-enable " +"them, at least for this site, or for 'same-origin' requests." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/csrf.py:134 +msgid "More information is available with DEBUG=True." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/debug.py:520 +msgid "Welcome to Django" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/debug.py:521 +msgid "It worked!" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/debug.py:522 +msgid "Congratulations on your first Django-powered page." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/debug.py:524 +msgid "" +"Next, start your first app by running python manage.py startapp " +"[app_label]." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/debug.py:527 +msgid "" +"You're seeing this message because you have DEBUG = True in " +"your Django settings file and you haven't configured any URLs. Get to work!" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/dates.py:48 +msgid "No year specified" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/dates.py:104 +msgid "No month specified" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/dates.py:163 +msgid "No day specified" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/dates.py:219 +msgid "No week specified" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/dates.py:378 +#: env/lib/python2.7/site-packages/django/views/generic/dates.py:406 +#, python-format +msgid "No %(verbose_name_plural)s available" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/dates.py:660 +#, python-format +msgid "" +"Future %(verbose_name_plural)s not available because %(class_name)s." +"allow_future is False." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/dates.py:694 +#, python-format +msgid "Invalid date string '%(datestr)s' given format '%(format)s'" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/detail.py:55 +#, python-format +msgid "No %(verbose_name)s found matching the query" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/list.py:76 +msgid "Page is not 'last', nor can it be converted to an int." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/list.py:81 +#, python-format +msgid "Invalid page (%(page_number)s): %(message)s" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/generic/list.py:171 +#, python-format +msgid "Empty list and '%(class_name)s.allow_empty' is False." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/static.py:44 +msgid "Directory indexes are not allowed here." +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/static.py:46 +#, python-format +msgid "\"%(path)s\" does not exist" +msgstr "" + +#: env/lib/python2.7/site-packages/django/views/static.py:86 +#, python-format +msgid "Index of %(directory)s" +msgstr "" + +#: env/lib/python2.7/site-packages/jsonfield/fields.py:31 +#: env/lib/python2.7/site-packages/jsonfield/fields.py:43 +#: env/lib/python2.7/site-packages/jsonfield/fields.py:80 +msgid "Enter valid JSON" +msgstr "" + +#: testing/config/settings/base.py:159 +msgid "PDF" +msgstr "PDF" + +#: testing/config/settings/base.py:160 +msgid "Rich Text Format" +msgstr "Rich Text Format" + +#: testing/config/settings/base.py:161 +msgid "Open Office" +msgstr "Open Office" + +#: testing/config/settings/base.py:162 +msgid "Microsoft Office" +msgstr "Microsoft Office" + +#: testing/config/settings/base.py:163 +msgid "HTML" +msgstr "HTML" + +#: testing/config/settings/base.py:164 +msgid "Markdown" +msgstr "Markdown" + +#: testing/config/settings/base.py:165 +msgid "mediawiki" +msgstr "mediawiki" + +#: testing/config/settings/base.py:166 +msgid "LaTeX" +msgstr "LaTeX" + +#~ msgid "Accounts" +#~ msgstr "Benutzerkonten" + +#~ msgid "First name" +#~ msgstr "Vorname" + +#~ msgid "Last name" +#~ msgstr "Nachname" + +#~ msgid "Enter a help text to be displayed next to the input element" +#~ msgstr "" +#~ "Geben Sie einen Hilfetext, der neben dem Eingabefeld angezeigt wird, ein" + +#~ msgid "Additional field" +#~ msgstr "Zusätzliches Feld" + +#~ msgid "Additional fields" +#~ msgstr "Zusätzliche Felder" + +#~ msgid "Additional field value" +#~ msgstr "Wert für zusätzliches Feld" + +#~ msgid "Additional field values" +#~ msgstr "Werte für zusätzliches Felder" + +#~ msgid "The following e-mail addresses are associated with your account:" +#~ msgstr "" +#~ "Die folgenden E-Mail Adressen sind mit Ihrem Benutzerkonto verknüpft:" + +#~ msgid "Verified" +#~ msgstr "Bestätigt" + +#~ msgid "Unverified" +#~ msgstr "Unbestätigt" + +#~ msgid "Make Primary" +#~ msgstr "Zur primären Adresse machen" + +#~ msgid "Re-send Verification" +#~ msgstr "Bestätigungsmail nochmal senden" + +#~ msgid "Remove" +#~ msgstr "Entfernen" + +#~ msgid "Warning:" +#~ msgstr "Warnung:" + +#~ msgid "" +#~ "You currently do not have any e-mail address set up. You should really " +#~ "add an e-mail address so you can receive notifications, reset your " +#~ "password, etc." +#~ msgstr "" +#~ "Sie haben zur Zeit keine E-Mail Adresse angegeben. Sie sollten dies " +#~ "unbedingt tun, um Benachrichtigungen zu erhalten oder Ihr Password " +#~ "zurücksetzen zu lassen." + +#~ msgid "Add E-mail Address" +#~ msgstr "E-Mail Adresse hinzufügen" + +#~ msgid "Add E-mail" +#~ msgstr "E-Mail hinzufügen" + +#~ msgid "Do you really want to remove the selected e-mail address?" +#~ msgstr "Wollen sie wirklich die ausgewählte E-Mail Adresse entfernen?" + +#~ msgid "Dear" +#~ msgstr "Liebe(r)" + +#~ msgid "" +#~ "You are receiving this e-mail because you requested that your password on " +#~ "%(site_domain)s will be reset. It can be safely ignored if you did not " +#~ "request a password reset. Click the link below to reset your password." +#~ msgstr "" +#~ "Wir haben Ihnen dies E-Mail geschickt, weil sie Ihr Password auf " +#~ "%(site_domain)s zurücksetzen möchten. Falls Sie das nicht getan haben, " +#~ "können Sie diese E-Mail einfach ignorieren. Bitte klicken sie auf den " +#~ "unten stehenden Link um Ihr Password zurückzusetzen." + +#~ msgid "In case you forgot, your username is '%(username)s'." +#~ msgstr "" +#~ "Falls Sie Ihren Benutzernamen vergessen haben, er lautet \"%(username)s\"." + +#~ msgid "Sincerely" +#~ msgstr "Mit freundlichen Grüßen" + +#~ msgid "Password reset" +#~ msgstr "Passwort zurücksetzen" + +#~ msgid "Confirm E-mail Address" +#~ msgstr "E-Mail bestätigen" + +#~ msgid "" +#~ "Please confirm that %(email)s is an e-" +#~ "mail address for user %(user_display)s." +#~ msgstr "" +#~ "Bitte bestätigen sie, dass %(email)s " +#~ "eine gültige E-Mail Adresse für den Benutzer %(user_display)s ist." + +#~ msgid "Confirm" +#~ msgstr "Bestätigen" + +#~ msgid "" +#~ "This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request." +#~ msgstr "" +#~ "Dieser Bestätigungs-Link ist abgelaufen oder ungültig. Bitte fordern sie eine neue Betätigungs-E-Mail an." + +#~ msgid "Login" +#~ msgstr "Anmelden" + +#~ msgid "Login with Shibboleth" +#~ msgstr "Mit Shibboleth einloggen" + +#~ msgid "" +#~ "If you have not created an account yet, then please sign up first." +#~ msgstr "" +#~ "Falls Sie noch kein Benutzerkonto haben, registrieren Sie sich bitte zunächst." + +#~ msgid "" +#~ "If you forgot your password and want to reset it, click here." +#~ msgstr "" +#~ "Falls Sie Ihr Passwort vergessen haben und es zurücksetzen wollen, " +#~ "klicken Sie bitte hier." + +#~ msgid "" +#~ "Alternatively, you can login using one of the following third party " +#~ "accounts:" +#~ msgstr "Sie können sich auch mit einem der folgenden Accounts anmelden:" + +#~ msgid "Logout" +#~ msgstr "Abmelden" + +#~ msgid "Are you sure you want to sign out?" +#~ msgstr "Sind sie sicher, dass Sie sich abmelden wollen?" + +#~ msgid "Change password" +#~ msgstr "Passwort ändern" + +#~ msgid "" +#~ "Please enter your old password, and then enter your new password twice so " +#~ "we can verify you typed it in correctly." +#~ msgstr "" +#~ "Bitte geben Sie das alte Passwort und das gewünschte neue Passwort an. " +#~ "Das neue Passwort muss aus Sicherheitsgründen wiederholt werden." + +#~ msgid "" +#~ "Forgotten your password? Enter your e-mail address below, and we'll send " +#~ "you an e-mail allowing you to reset it." +#~ msgstr "" +#~ "Haben Sie Ihr Passwort vergessen? Bitte geben Sie die E-Mail-Adresse an, " +#~ "mit der Sie bei uns registriert sind, und wir senden Ihnen eine E-Mail " +#~ "mit Instruktionen, wie sie Ihr Password neu setzen können." + +#~ msgid "Reset my password" +#~ msgstr "Passwort neu setzen" + +#~ msgid "Password reset sent" +#~ msgstr "Email gesendet" + +#~ msgid "" +#~ "We have sent you an e-mail. Please contact us if you do not receive it " +#~ "within a few minutes." +#~ msgstr "" +#~ "Wir haben Ihnen eine E-Mail geschickt. Bitte kontaktieren Sie uns, falls " +#~ "Sie die E-Mail nicht in den nächsten Minuten erhalten sollten." + +#~ msgid "" +#~ "If you don't receive an e-mail, please make sure you've entered the " +#~ "address you registered with, and check your spam folder." +#~ msgstr "" +#~ "Sollten Sie keine E-Mail erhalten haben, vergewissern Sie sich, dass Sie " +#~ "die E-Mail angegeben haben, mit der Sie bei uns registriert sind und " +#~ "sehen Sie ggf. in Ihrem Spam-Ordner nach." + +#~ msgid "Bad token" +#~ msgstr "Ungültiges Token" + +#~ msgid "" +#~ "The password reset link was invalid, possibly because it has already been " +#~ "used. Please request a new password " +#~ "reset." +#~ msgstr "" +#~ "Der Password-Link was ungültig. Wahrscheinlich wurde er bereits " +#~ "verwendet. Bitte fordern Sie einen neuen " +#~ "Link an." + +#~ msgid "Enter new password" +#~ msgstr "Passwort eingeben" + +#~ msgid "Change my password" +#~ msgstr "Passwort ändern" + +#~ msgid "Your password is now changed." +#~ msgstr "Ihr Password wurde geändert." + +#~ msgid "Password reset complete" +#~ msgstr "Passwort neu gesetzt" + +#~ msgid "Your password has been set. You may go ahead and log in now." +#~ msgstr "Ihr Passwort wurde geändert. Sie können sich jetzt einloggen." + +#~ msgid "Set new password" +#~ msgstr "Neues Password setzen" + +#~ msgid "" +#~ "Please enter your new password twice so we can verify you typed it in " +#~ "correctly." +#~ msgstr "" +#~ "Bitte geben sie Ihr neues Passwort doppelt ein damit wir sichergehen " +#~ "können, dass Sie sich nicht vertippt haben." + +#~ msgid "Set password" +#~ msgstr "Passwort neu setzen" + +#~ msgid "Create a new account" +#~ msgstr "Neues Benutzerkonto erstellen" + +#~ msgid "" +#~ "Already have an account? Then please sign in." +#~ msgstr "" +#~ "Falls Sie schon eine Benutzerkonto haben können Sie sich hier anmelden." + +#~ msgid "Create account" +#~ msgstr "Benutzerkonto erstellen" + +#~ msgid "Sign up closed" +#~ msgstr "Anmeldung geschlossen" + +#~ msgid "We are sorry, but the sign up is currently closed." +#~ msgstr "" +#~ "Es tut uns Leid, aber die Anmeldung ist zur Zeit leider geschlossen." + +#~ msgid "" +#~ "We have sent an e-mail to you for verification. Follow the link provided " +#~ "to finalize the signup process. Please contact us if you do not receive " +#~ "it within a few minutes." +#~ msgstr "" +#~ "Wir haben Ihnen eine E-Mail zur Bestätigung geschickt. Folgen sie dem " +#~ "Link in der E-Mail um die Registrierung abzuschließen. Bitte kontaktieren " +#~ "Sie uns, falls Sie die E-Mail nicht in den nächsten Minuten erhalten " +#~ "sollten." + +#~ msgid "" +#~ "This part of the site requires us to verify that you are who you claim to " +#~ "be. For this purpose, we require that you verify ownership of your e-mail " +#~ "address. " +#~ msgstr "" +#~ "Für diesen Bereich muss Ihre E-Mail Adresse bestätigt sein. Bitte " +#~ "bestätigen Sie die Ihre E-Mail Adresse." + +#~ msgid "" +#~ "We have sent an e-mail to you for verification. Please click on the link " +#~ "inside this e-mail. Please contact us if you do not receive it within a " +#~ "few minutes." +#~ msgstr "" +#~ "Zur Bestätigung Ihrer E-Mail Adresse haben wir Ihnen eine E-Mail " +#~ "geschickt. Bitte folgen sie den Anweisungen in dieser E-Mail. Bitte " +#~ "kontaktieren Sie uns, falls Sie die E-Mail nicht in den nächsten Minuten " +#~ "erhalten sollten." + +#~ msgid "" +#~ "Note: you can still change " +#~ "your e-mail address." +#~ msgstr "" +#~ "Hinweis: Sie können immer noch Ihre E-Mail Adresse ändern." + +#~ msgid "We are sorry, but you cannot update your profile here." +#~ msgstr "Es tut uns Leid, aber sie können Ihr Profil hier nicht bearbeiten." + +#~ msgid "Update profile" +#~ msgstr "Profil bearbeiten" + +#~ msgid "" +#~ "Please enter your updated account information. You can change your " +#~ "password using the password form and " +#~ "update your e-mail using the e-mail form." +#~ msgstr "" +#~ "Bitte aktualisieren Sie die in Ihrem Benutzerkonto gespeicherten " +#~ "Informationen. Sie könne Ihr Password hier ändern und ihre E-Mail Adressen hier " +#~ "verwalten." + +#~ msgid "Cancel" +#~ msgstr "Abbrechen" + +#~ msgid "Social Network Login Failure" +#~ msgstr "Fehler bei der Anmeldung zum externen Konto" + +#~ msgid "" +#~ "An error occurred while attempting to login via your social network " +#~ "account." +#~ msgstr "" +#~ "Während des Anmeldeprozesses zu dem externen Konto ist ein Fehler " +#~ "aufgetreten." + +#~ msgid "Account connections" +#~ msgstr "Verknüpfungen mit externen Konten" + +#~ msgid "Current connections" +#~ msgstr "Derzeitige Verbindungen zu externen Konten" + +#~ msgid "" +#~ "You can sign in to your account using any of the following third party " +#~ "accounts:" +#~ msgstr "Sie können sich mit den folgenden externen Konten anmelden:" + +#~ msgid "Remove selected account" +#~ msgstr "Ausgewähltes Konto entfernen" + +#~ msgid "" +#~ "You currently have no social network accounts connected to this account." +#~ msgstr "" +#~ "Zur Zeit haben Sie keine externen Konten mit Ihrem Benutzerkonto " +#~ "verbunden." + +#~ msgid "Add an additional account" +#~ msgstr "Externes Konto hinzufügen" + +#~ msgid "Login Cancelled" +#~ msgstr "Anmeldung abgebrochen" + +#~ msgid "" +#~ "You decided to cancel logging in to our site using one of your existing " +#~ "accounts. If this was a mistake, please proceed to sign in." +#~ msgstr "" +#~ "Sie haben sich entschieden, die Anmeldung mit einem externen Konto " +#~ "abzubrechen. Falls dies versehentlich geschehen ist, könne Sie hier fortsetzen." + +#~ msgid "" +#~ "You are about to use your %(provider_name)s account to " +#~ "login to %(site_name)s. As a final step, please complete the following " +#~ "form:" +#~ msgstr "" +#~ "Sie sind dabei sich mit ihrem %(provider_name)s Konto " +#~ "auf %(site_name)s anzumelden. Es sind noch zusätzliche Angaben von Ihnen " +#~ "nötig:" + +#~ msgid "Name" +#~ msgstr "Name" + +#~ msgid "Conditions" +#~ msgstr "Bedingungen" + +#~ msgid "URI" +#~ msgstr "URI" + +#~ msgid "The Uniform Resource Identifier of this option set (auto-generated)." +#~ msgstr "" +#~ "Der Uniform Resource Identifier dieses Optionssets (automatisch erstellt)." + +#~ msgid "URI Prefix" +#~ msgstr "URI Prefix" + +#~ msgid "The prefix for the URI of this condition." +#~ msgstr "Das Präfix für die URI dieser Bedingung." + +#~ msgid "Key" +#~ msgstr "Schlüssel" + +#~ msgid "The internal identifier of this condition." +#~ msgstr "Der interne Bezeichner dieser Bedingung." + +#~ msgid "Comment" +#~ msgstr "Kommentar" + +#~ msgid "Additional internal information about this condition." +#~ msgstr "Zusätzliche interne Informationen über diese Bedingung." + +#~ msgid "Source" +#~ msgstr "Quelle" + +#~ msgid "The Attribute this condition is evaluating." +#~ msgstr "Das Attribut das diese Bedingung auswertet." + +#~ msgid "Relation" +#~ msgstr "Verknüpfung" + +#~ msgid "The Relation this condition is using." +#~ msgstr "Die von dieser Bedingung verwendete Verknüpfung." + +#~ msgid "Target (Text)" +#~ msgstr "Ziel (Text)" + +#~ msgid "" +#~ "If using a regular attibute, the text value this condition is checking " +#~ "against." +#~ msgstr "" +#~ "Falls ein normales Attribut verwendet wird: Der Text gegen den diese " +#~ "Bedingung ausgewertet wird." + +#~ msgid "Target (Option)" +#~ msgstr "Ziel (Option)" + +#~ msgid "" +#~ "If using an options attribute, the option this condition is checking " +#~ "against." +#~ msgstr "" +#~ "Falls ein Optionen-Attribut verwendet wird, die Option gegen die diese " +#~ "Bedingung ausgewertet wird." + +#~ msgid "Filter" +#~ msgstr "Filter" + +#~ msgid "Options" +#~ msgstr "Optionen" + +#~ msgid "Create new condition" +#~ msgstr "Neue Bedingung erstellen" + +#~ msgid "Export" +#~ msgstr "Export" + +#~ msgid "XML" +#~ msgstr "XML" + +#~ msgid "Update condition" +#~ msgstr "Bedingung bearbeiten" + +#~ msgid "Delete condition" +#~ msgstr "Bedingung entfernen" + +#~ msgid "Target" +#~ msgstr "Ziel" + +#~ msgid "" +#~ "You are about to permanently delete the condition %(object)s." +#~ msgstr "" +#~ "Sie sind dabei die Bedingung %(object)s permanent zu " +#~ "entfernen." + +#~ msgid "This action cannot be undone!" +#~ msgstr "Diese Aktion kann nicht rückgängig gemacht werden!" + +#~ msgid "Close" +#~ msgstr "Schließen" + +#~ msgid "Save" +#~ msgstr "Speichern" + +#~ msgid "created" +#~ msgstr "erstellt" + +#~ msgid "updated" +#~ msgstr "zuletzt geändert" + +#~ msgid "Not found" +#~ msgstr "Seite nicht gefunden" + +#~ msgid "The requested URL was not found on this server." +#~ msgstr "Die gewünschte URL konnte nicht gefunden werden." + +#~ msgid "Project RDMO" +#~ msgstr "Projekt RDMO" + +#~ msgid "" +#~ "The project aims to develop a tool to support the planning of the " +#~ "research data management. In addition, the tool will create a textual " +#~ "data management plan." +#~ msgstr "" +#~ "Ziel des Projekts ist es, ein Werkzeug zur Verfügung zu stellen, das die " +#~ "strukturierte Planung des Forschungsdatenmanagements unterstützt und " +#~ "zusätzlich die textuelle Ausgabe eines Datenmanagementplans ermöglicht." + +#~ msgid "The project is funded by the German Research Foundation." +#~ msgstr "" +#~ "Das Projekt wird von der Deutschen Forschungsgemeinschaft gefördert." + +#~ msgid "Open Source" +#~ msgstr "Open Source" + +#~ msgid "RDMO is published on:" +#~ msgstr "RDMO ist veröffentlicht auf:" + +#~ msgid "Management" +#~ msgstr "Management" + +#~ msgid "Domain" +#~ msgstr "Domäne" + +#~ msgid "Questions" +#~ msgstr "Fragen" + +#~ msgid "Tasks" +#~ msgstr "Aufgaben" + +#~ msgid "Views" +#~ msgstr "Ansichten" + +#~ msgid "Admin" +#~ msgstr "Admin" + +#~ msgid "Language" +#~ msgstr "Sprache" + +#~ msgid "Update email" +#~ msgstr "E-Mail bearbeiten" + +#~ msgid "" +#~ "A tool to support the planning, implementation, and organisation of " +#~ "research data management." +#~ msgstr "" +#~ "Ein Werkzeug zur Planung, Umsetzung und der Verwaltung des " +#~ "Forschungsdatenmanagements." + +#~ msgid "This format is not supported." +#~ msgstr "Dieses Format wird nicht unterstützt." + +#~ msgid "" +#~ "%(model)s with the path \"%(path)s\" already exists. Please adjust the " +#~ "the Key." +#~ msgstr "" +#~ "%(model)s mit dem Pfad \"%(path)s\" existiert bereits. Bitte passen Sie " +#~ "den Schlüssel an." + +#~ msgid "" +#~ "The Uniform Resource Identifier of this attribute/entity set (auto-" +#~ "generated)." +#~ msgstr "" +#~ "Der Uniform Resource Identifier dieses Attributs/dieser Entität " +#~ "(automatisch erstellt)." + +#~ msgid "The prefix for the URI of this attribute/entity." +#~ msgstr "Das Präfix für die URI dieses Attributs/dieser Entität." + +#~ msgid "The internal identifier of this attribute/entity." +#~ msgstr "Das interne Bezeichner für dieses Attributs/diese Entität." + +#~ msgid "Additional information about this attribute/entity." +#~ msgstr "Zusätzliche Informationen über dieses Attribut/diese Entität." + +#~ msgid "Parent entity" +#~ msgstr "Übergeordnete Entität" + +#~ msgid "Parent entity in the domain model." +#~ msgstr "Übergeordnete Entität im Domänenmodell." + +#~ msgid "Parent collection" +#~ msgstr "Übergeordnete Sammlung" + +#~ msgid "Next collection entity upwards in the domain model (auto-generated)." +#~ msgstr "" +#~ "Nächste Sammlungs-Entität aufwärts im Domänenmodell (automatisch " +#~ "generiert)" + +#~ msgid "is collection" +#~ msgstr "Ist eine Sammlung" + +#~ msgid "Designates whether this attribute/entity is a collection." +#~ msgstr "Legt fest, ob dieses Objekt eine Sammlung ist." + +#~ msgid "is attribute" +#~ msgstr "ist ein Attribut" + +#~ msgid "" +#~ "Designates whether this attribute/entity is an attribute (auto-generated)." +#~ msgstr "Legt fest, ob dieses Objekt ein Attribut ist." + +#~ msgid "List of conditions evaluated for this attribute/entity." +#~ msgstr "" +#~ "Liste der Bedingungen die für dieses Attribut/ diese Entität ausgewertet " +#~ "werden." + +#~ msgid "Path" +#~ msgstr "Pfad" + +#~ msgid "The path part of the URI of this attribute/entity (auto-generated)." +#~ msgstr "" +#~ "Der Pfad-Teil der URI für dieses Attribut/diese Entität (automatisch " +#~ "erstellt)." + +#~ msgid "Attribute entity" +#~ msgstr "Attribut-Entitäten" + +#~ msgid "Attribute entities" +#~ msgstr "Attribut-Entität" + +#~ msgid "Float" +#~ msgstr "Kommazahl" + +#~ msgid "Boolean" +#~ msgstr "Boolsche Variable" + +#~ msgid "Value type" +#~ msgstr "Wert-Typ" + +#~ msgid "Type of value for this attribute." +#~ msgstr "Art von Wert für dieses Attribut." + +#~ msgid "Unit" +#~ msgstr "Einheit" + +#~ msgid "Unit for this attribute." +#~ msgstr "Maßeinheit dieses Attributes." + +#~ msgid "Option sets" +#~ msgstr "Optionensets" + +#~ msgid "Option sets for this attribute." +#~ msgstr "Optionenset für dieses Attribut." + +#~ msgid "Attribute" +#~ msgstr "Attribut" + +#~ msgid "Attributes" +#~ msgstr "Attribute" + +#~ msgid "Attribute/entity this verbose name belongs to." +#~ msgstr "Attribut/Entität zu dem dieser Anzeigenname gehört." + +#~ msgid "Name (en)" +#~ msgstr "Name (en)" + +#~ msgid "English name displayed for this attribute/entity (e.g. project)." +#~ msgstr "" +#~ "Englischer Name der für dieses Attribut/diese Entität angezeigt wird." + +#~ msgid "Name (de)" +#~ msgstr "Name (de)" + +#~ msgid "German name displayed for this attribute/entity (e.g. Projekt)." +#~ msgstr "" +#~ "Deutscher Name der für dieses Attribut/diese Entität angezeigt wird." + +#~ msgid "Plural name (en)" +#~ msgstr "Name (Plural, en)" + +#~ msgid "" +#~ "English plural name displayed for this attribute/entity (e.g. projects)." +#~ msgstr "" +#~ "Englischer Name (Plural) der für dieses Attribut/diese Entität angezeigt " +#~ "wird." + +#~ msgid "Plural name (de)" +#~ msgstr "Name (Plural, de)" + +#~ msgid "" +#~ "German plural name displayed for this attribute/entity (e.g. Projekte)." +#~ msgstr "" +#~ "Deutscher Name (Plural) der für dieses Attribut/diese Entität angezeigt " +#~ "wird." + +#~ msgid "Verbose name" +#~ msgstr "Anzeigename" + +#~ msgid "Verbose names" +#~ msgstr "Anzeigename" + +#~ msgid "Attribute this verbose name belongs to." +#~ msgstr "Attribute zu dem dieser Anzeigenname gehört." + +#~ msgid "Minimum" +#~ msgstr "Minimum" + +#~ msgid "Minimal value for this attribute." +#~ msgstr "Minimaler Wert für dieses Attribut." + +#~ msgid "Maximum" +#~ msgstr "Maximum" + +#~ msgid "Maximum value for this attribute." +#~ msgstr "Maximaler Wert für dieses Attribut." + +#~ msgid "Step" +#~ msgstr "Schrittgröße" + +#~ msgid "Step in which this attribute can be incremented/decremented." +#~ msgstr "" +#~ "Schritte in denen dieses Attribut erhöht oder verringert werden kann." + +#~ msgid "Ranges" +#~ msgstr "Bereiche" + +#~ msgid "Create new entity" +#~ msgstr "Neue Entität erstellen" + +#~ msgid "Create new attribute" +#~ msgstr "Neues Attribut erstellen" + +#~ msgid "CSV" +#~ msgstr "CSV" + +#~ msgid "Entity" +#~ msgstr "Entität" + +#~ msgid "Collection" +#~ msgstr "Sammlung" + +#~ msgid "yes" +#~ msgstr "Ja" + +#~ msgid "Verbose name plural" +#~ msgstr "Anzeigename, plural" + +#~ msgid "Delete attribute" +#~ msgstr "Attribut entfernen" + +#~ msgid "" +#~ "You are about to permanently delete the attribute %(object)s." +#~ msgstr "" +#~ "Sie sind dabei das Attribut %(object)s permanent zu " +#~ "entfernen." + +#~ msgid "Delete entity" +#~ msgstr "Entität entfernen" + +#~ msgid "" +#~ "You are about to permanently delete the entity %(object)s." +#~ msgstr "" +#~ "Sie sind dabei die Entität %(object)s permanent zu entfernen." + +#~ msgid "This will also delete the following attributes:" +#~ msgstr "Es werden auch die folgenden Attribute entfernt:" + +#~ msgid "The prefix for the URI of this attribute." +#~ msgstr "Das Präfix für die URI dieses Attributs." + +#~ msgid "The internal identifier of this attribute." +#~ msgstr "Der interne Bezeichner diese Attributs." + +#~ msgid "Additional internal information about this attribute." +#~ msgstr "Zusätzliche interne Informationen über dieses Attribut." + +#~ msgid "" +#~ "Designates whether this attribute can have several values (for checkboxes " +#~ "or multiple answers)." +#~ msgstr "" +#~ "Legt fest, ob dieses Objekt mehrere Werte haben kann (für Ankreuzkästchen " +#~ "oder mehrere Antworten)." + +#~ msgid "Hold down Control, or Command on a Mac, to select more than one." +#~ msgstr "" +#~ "Halten Sie die Strg-Taste (⌘ für Mac) während des Klickens gedrückt, um " +#~ "mehrere Einträge auszuwählen." + +#~ msgid "The prefix for the URI of this entity." +#~ msgstr "Das Präfix für die URI die dieser Entität." + +#~ msgid "The internal identifier of this entity." +#~ msgstr "Der interne Bezeichner für diese Entität." + +#~ msgid "Additional internal information about this entity." +#~ msgstr "Zusätzliche interne Informationen über diese Entität." + +#~ msgid "Designates whether this entity can have several sets of values." +#~ msgstr "Legt fest, ob dieses Objekt mehrere Sets von Werten haben kann." + +#~ msgid "Add attribute or entity" +#~ msgstr "Attribut oder Entität hinzufügen" + +#~ msgid "Add attribute" +#~ msgstr "Attribut hinzufügen" + +#~ msgid "Add entity" +#~ msgstr "Entität hinzufügen" + +#~ msgid "Update entity" +#~ msgstr "Entität bearbeiten" + +#~ msgid "Update verbose name" +#~ msgstr "Anzeigename bearbeiten" + +#~ msgid "Update conditions" +#~ msgstr "Bedingung bearbeiten" + +#~ msgid "Update attribute" +#~ msgstr "Attribut bearbeiten" + +#~ msgid "Update range" +#~ msgstr "Bereich bearbeiten" + +#~ msgid "Update options" +#~ msgstr "Optionen bearbeiten" + +#~ msgid "collection" +#~ msgstr "Sammlung" + +#~ msgid "The prefix for the URI of this option set." +#~ msgstr "Das Präfix für die URI dieses Optionenset." + +#~ msgid "The internal identifier of this option set." +#~ msgstr "Der interne Bezeichner für dieses Optionenset." + +#~ msgid "Additional internal information about this option set." +#~ msgstr "Zusätzliche interne Informationen über dieses Optionenset." + +#~ msgid "The position of this option set in lists." +#~ msgstr "Die Position von diesem Optionenset in Listen." + +#~ msgid "The list of conditions evaluated for this option set." +#~ msgstr "" +#~ "Die Liste der Bedingungen die für dieses Optionenset ausgewertet werden." + +#~ msgid "Option set" +#~ msgstr "Optionenset" + +#~ msgid "The Uniform Resource Identifier of this option (auto-generated)." +#~ msgstr "" +#~ "Der Uniform Resource Identifier dieser Option (automatisch erstellt)." + +#~ msgid "The prefix for the URI of this option." +#~ msgstr "Das Präfix für die URI dieser Option." + +#~ msgid "The internal identifier of this option." +#~ msgstr "Der interne Bezeichner für diese Option." + +#~ msgid "The path part of the URI for this option (auto-generated)." +#~ msgstr "Der Pfad-Teil der URI für diese Option (automatisch erstellt)." + +#~ msgid "Additional internal information about this option." +#~ msgstr "Zusätzliche interne Informationen über diese Option." + +#~ msgid "The option set this option belongs to." +#~ msgstr "Das Optionenset zu dem diese Option gehört." + +#~ msgid "Position in lists." +#~ msgstr "Position in Listen." + +#~ msgid "Text (en)" +#~ msgstr "Text (en)" + +#~ msgid "The English text displayed for this option." +#~ msgstr "Der englische Text für diese Option." + +#~ msgid "Text (de)" +#~ msgstr "Text (de)" + +#~ msgid "The German text displayed for this option." +#~ msgstr "Der deutsche Text für diese Option." + +#~ msgid "Additional input" +#~ msgstr "Zusätzliche Eingabe" + +#~ msgid "Designates whether an additional input is possible for this option." +#~ msgstr "" +#~ "Legt fest, ob eine zusätzliche Eingabe für diese Option möglich ist." + +#~ msgid "Option" +#~ msgstr "Option" + +#~ msgid "Create new option set" +#~ msgstr "Neues Optionenset erstellen" + +#~ msgid "Create new option" +#~ msgstr "Neue Option erstellen" + +#~ msgid "Add option" +#~ msgstr "Option hinzufügen" + +#~ msgid "Update option set" +#~ msgstr "Optionenset bearbeiten" + +#~ msgid "Delete option set" +#~ msgstr "Optionenset entfernen" + +#~ msgid "Update option" +#~ msgstr "Option bearbeiten" + +#~ msgid "Delete option" +#~ msgstr "Option entfernen" + +#~ msgid "" +#~ "You are about to permanently delete the option %(object)s." +#~ msgstr "" +#~ "Sie sind dabei die Option %(object)s permanent zu entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the option set %(object)s." +#~ msgstr "" +#~ "Sie sind dabei das Optionenset %(object)s permanent zu " +#~ "entfernen." + +#~ msgid "" +#~ "Important! This will also delete the following items:" +#~ msgstr "" +#~ "Important! Es werden auch die folgenden Objekte entfernt:" + +#~ msgid "Projects" +#~ msgstr "Projekte" + +#~ msgid "Username or email" +#~ msgstr "Benutzername oder E-Mail" + +#~ msgid "User" +#~ msgstr "Benutzer" + +#~ msgid "The username or email for the user of this membership." +#~ msgstr "Der Benutzername oder die Email für diese Mitgliedschaft." + +#~ msgid "Please enter a valid username or email." +#~ msgstr "Bitte geben Sie einen gültigen Benutzernamen oder Email ein." + +#~ msgid "The user is already a member of the project." +#~ msgstr "Der Benutzer ist bereits ein Mitglied dieses Projektes." + +#~ msgid "The list of users for this project." +#~ msgstr "Die Liste der Benutzer für dieses Projekt." + +#~ msgid "Title" +#~ msgstr "Titel" + +#~ msgid "The title for this project." +#~ msgstr "Der Titel für dieses Projekt." + +#~ msgid "A description for this project (optional)." +#~ msgstr "Ein Beschreibung für dieses Projekt (optional)." + +#~ msgid "Catalog" +#~ msgstr "Katalog" + +#~ msgid "The catalog which will be used for this project." +#~ msgstr "Der Fragenkatalog der für dieses Projekt verwendet wird." + +#~ msgid "Project" +#~ msgstr "Projekt" + +#~ msgid "Owner" +#~ msgstr "Besitzer" + +#~ msgid "Manager" +#~ msgstr "Manager" + +#~ msgid "Author" +#~ msgstr "Autor" + +#~ msgid "Guest" +#~ msgstr "Gast" + +#~ msgid "The project for this membership." +#~ msgstr "Das Projekt zu dem diese Mitgliedschaft gehört." + +#~ msgid "The user for this membership." +#~ msgstr "Der Benutzer für diese Mitgliedschaft." + +#~ msgid "Role" +#~ msgstr "Rolle" + +#~ msgid "The role for this membership." +#~ msgstr "Die Rolle für diese Mitgliedschaft." + +#~ msgid "Membership" +#~ msgstr "Mitgliedschaft" + +#~ msgid "Memberships" +#~ msgstr "Mitgliedschaften" + +#~ msgid "The project this snapshot belongs to." +#~ msgstr "Das Projekt zu dem dieser Snapshot gehört." + +#~ msgid "The title for this snapshot." +#~ msgstr "Der Titel für diesen Snapshot." + +#~ msgid "A description for this snapshot (optional)." +#~ msgstr "Ein Beschreibung für diesen Snapshot (optional)." + +#~ msgid "Snapshot" +#~ msgstr "Snapshot" + +#~ msgid "Snapshots" +#~ msgstr "Snapshots" + +#~ msgid "The project this value belongs to." +#~ msgstr "Das Projekt zu dem dieser Wert gehört." + +#~ msgid "The snapshot this value belongs to." +#~ msgstr "Der Snapshot zu dem dieser Wert gehört." + +#~ msgid "The attribute this value belongs to." +#~ msgstr "Das Attribut zu dem dieser Wert gehört." + +#~ msgid "Set index" +#~ msgstr "Set-Index" + +#~ msgid "" +#~ "The position of this value in an entity collection (i.e. in the question " +#~ "set)" +#~ msgstr "" +#~ "Die Position von diesem Wert in einer Entität (einem Fragenset) in Listen." + +#~ msgid "Collection index" +#~ msgstr "Sammlungs-Index" + +#~ msgid "The position of this value in an attribute collection." +#~ msgstr "Die Position von diesem Wert in einem Sammlungs-Attribut." + +#~ msgid "The string stored for this value." +#~ msgstr "Die Zeichenkette die für diesen Wert gespeichert wird." + +#~ msgid "The option stored for this value." +#~ msgstr "Die Option die für diesen Wert gespeichert wird." + +#~ msgid "Value" +#~ msgstr "Wert" + +#~ msgid "Values" +#~ msgstr "Werte" + +#~ msgid "current" +#~ msgstr "aktuell" + +#~ msgid "item" +#~ msgstr "Eintrag" + +#~ msgid "items" +#~ msgstr "Einträge" + +#~ msgid "sets" +#~ msgstr "Sets" + +#~ msgid "Delete membership" +#~ msgstr "Mitgliedschaft entfernen" + +#~ msgid "" +#~ "You are about to remove the user %(user)s from the " +#~ "project %(title)s." +#~ msgstr "" +#~ "Sie sind dabei den User %(user)s aud dem Projekt " +#~ "%(title)s zu entfernen." + +#~ msgid "Update membership" +#~ msgstr "Mitgliedschaft bearbeiten" + +#~ msgid "Add member to project" +#~ msgstr "Mitglied zu Projekt hinzufügen" + +#~ msgid "Add member" +#~ msgstr "Mitglied hinzufügen" + +#~ msgid "Back to project overview" +#~ msgstr "Zurück zum Projekt" + +#~ msgid "Answers for %(title)s" +#~ msgstr "Antworten für %(title)s" + +#~ msgid "" +#~ "In the following, we have summarized the information about the project as " +#~ "given by you and your collaborators." +#~ msgstr "" +#~ "Im Folgenden haben wir die von Ihnen eingegebenen Informationen über das " +#~ "Projekt noch einmal zusammengefasst." + +#~ msgid "Delete project" +#~ msgstr "Projekt entfernen" + +#~ msgid "" +#~ "You are about to permanently delete the project %(object)s." +#~ msgstr "" +#~ "Sie sind dabei das Projekt %(object)s permanent zu entfernen." + +#~ msgid "Update project information" +#~ msgstr "Projektinformationen bearbeiten" + +#~ msgid "Answer questions" +#~ msgstr "Fragen beantworten" + +#~ msgid "View answers" +#~ msgstr "Antworten anzeigen" + +#~ msgid "Create snapshot" +#~ msgstr "Snapshot erstellen" + +#~ msgid "Export project as XML" +#~ msgstr "Projekt als XML exportieren" + +#~ msgid "Back to projects overview" +#~ msgstr "Zurück zu den Projekten" + +#~ msgid "No description available." +#~ msgstr "Keine Beschreibung vorhanden." + +#~ msgid "E-Mail" +#~ msgstr "E-Mail" + +#~ msgid "Created" +#~ msgstr "Erstellt" + +#~ msgid "Update snapshot" +#~ msgstr "Snapshot bearbeiten" + +#~ msgid "Rollback to snapshot" +#~ msgstr "Auf Snapshot zurücksetzen" + +#~ msgid "No snapshots found." +#~ msgstr "Keine Snapshots gefunden." + +#~ msgid "Task" +#~ msgstr "Aufgabe" + +#~ msgid "Time frame" +#~ msgstr "Zeitraum" + +#~ msgid "No active tasks found." +#~ msgstr "Keine aktiven Aufgaben gefunden." + +#~ msgid "View" +#~ msgstr "Ansicht" + +#~ msgid "Display view" +#~ msgstr "Ansicht anzeigen" + +#~ msgid "No views found." +#~ msgstr "Keine Ansichten gefunden." + +#~ msgid "Update project" +#~ msgstr "Projekt bearbeiten" + +#~ msgid "Create new project" +#~ msgstr "Neues Projekt erstellen" + +#~ msgid "Create project" +#~ msgstr "Neues Projekt erstellen" + +#~ msgid "Questionnaire for project {$ service.project.title $}" +#~ msgstr "Fragebogen für Projekt {$ service.project.title $}" + +#~ msgid "Save and proceed" +#~ msgstr "Sichern und fortfahren" + +#~ msgid "Back" +#~ msgstr "Zurück" + +#~ msgid "Skip" +#~ msgstr "Überspringen" + +#~ msgid "Add %(name)s" +#~ msgstr "%(name)s hinzufügen" + +#~ msgid "" +#~ "Please enter the %(name_plural)s line by line. You can add " +#~ "%(name_plural)s using the green button and remove them using the red " +#~ "cross (×)." +#~ msgstr "" +#~ "Bitte nutzen Sie für die %(name_plural)s jeweils eine eigene Zeile. Sie " +#~ "können weitere %(name_plural)s mit dem grünen Knopf hinzufügen und mit " +#~ "dem roten Kreuz (×) entfernen." + +#~ msgid "Thank you for filling out the questionnaire." +#~ msgstr "Vielen Dank für das Beantworten der Fragen." + +#~ msgid "Please select" +#~ msgstr "Bitte auswählen" + +#~ msgid "" +#~ "You are about to permanently delete the %(name)s %(object)s." +#~ msgstr "" +#~ "Sie sind dabei den %(name)s %(object)s permanent zu " +#~ "entfernen." + +#~ msgid "You are about to permanently delete this %(name)s." +#~ msgstr "Sie sind dabei diesen %(name)s permanent zu entfernen." + +#~ msgid "" +#~ "This includes all given answers for this %(name)s on all pages, not just " +#~ "this one." +#~ msgstr "" +#~ "Dies umfasst alle gegebenen Antworten für dieses %(name)s auf allen " +#~ "Seiten, nicht nur dieser." + +#~ msgid "Please give the %(name)s a meaningful name." +#~ msgstr "Bitte geben Sie dem %(name)s einen aus­sa­ge­kräf­tigen Namen." + +#~ msgid "" +#~ "Please fill in the form for each %(name)s. The different %(name_plural)s " +#~ "will be referred to in following questions. You can add a new %(name)s " +#~ "using the green button. Once created, you can edit or delete " +#~ "%(name_plural)s using the buttons in the top right corner." +#~ msgstr "" +#~ "Bitte füllen Sie das Formular für jeden %(name)s aus. Die verschiedenen " +#~ "%(name_plural)s werden eventuell in späteren Fragen wieder verwendet. Sie " +#~ "können einen neuen %(name)s mit dem grünen Knopf hinzufügen. Bereits " +#~ "angelegte %(name_plural)s können mit den Knöpfen oben rechts bearbeitet " +#~ "oder wieder entfernt werden." + +#~ msgid "Update %(name)s" +#~ msgstr "%(name)s bearbeiten" + +#~ msgid "Remove %(name)s" +#~ msgstr "%(name)s entfernen" + +#~ msgid "Progress" +#~ msgstr "Fortschritt" + +#~ msgid "Navigation" +#~ msgstr "Navigation" + +#~ msgid "Please note that using the navigation will discard any usaved input." +#~ msgstr "" +#~ "Bitte beachten sie das durch die Benutzung der Navigation ungesicherte " +#~ "Eingaben verworfen werden." + +#~ msgid "skip to previous page" +#~ msgstr "Zur vorherigen Frage springen" + +#~ msgid "skip to next page" +#~ msgstr "Zur nächsten Frage springen" + +#~ msgid "Overview" +#~ msgstr "Übersicht" + +#~ msgid "Error" +#~ msgstr "Fehler" + +#~ msgid "There has been a problem creating the view. Please contact support." +#~ msgstr "" +#~ "Beim Erstellen der Ansicht ist ein Fehler aufgetreten. Bitte kontaktieren " +#~ "Sie den Support." + +#~ msgid "My Data" +#~ msgstr "Meine Daten" + +#~ msgid "My Groups" +#~ msgstr "Meine Gruppen" + +#~ msgid "My Projects" +#~ msgstr "Meine Projekte" + +#~ msgid "Create new snapshot" +#~ msgstr "Neuen Snapshot erstellen" + +#~ msgid "" +#~ "You are about to reset all values to the snapshot %(title)s. All newer values will be deleted." +#~ msgstr "" +#~ "Sie sind dabei alle Werte auf den Snapshot %(title)s " +#~ "zurückzusetzen. Alle neueren Werte werden entfernt." + +#~ msgid "Rollback" +#~ msgstr "Zurücksetzen" + +#~ msgid "The Uniform Resource Identifier of this catalog (auto-generated)." +#~ msgstr "" +#~ "Der Uniform Resource Identifier dieses Katalogs (automatisch erstellt)." + +#~ msgid "The prefix for the URI of this catalog." +#~ msgstr "Das Präfix für die URI dieses Katalogs." + +#~ msgid "The internal identifier of this catalog." +#~ msgstr "Der interne Bezeichner für diesen Katalog." + +#~ msgid "Additional internal information about this catalog." +#~ msgstr "Zusätzliche interne Informationen über diesen Katalog." + +#~ msgid "The position of this catalog in lists." +#~ msgstr "Die Position von diesem Katalog in Listen." + +#~ msgid "Title (en)" +#~ msgstr "Titel (en)" + +#~ msgid "The English title for this catalog." +#~ msgstr "Der englische Titel für diesen Katalog." + +#~ msgid "Title (de)" +#~ msgstr "Titel (de)" + +#~ msgid "The German title for this catalog." +#~ msgstr "Der deutsche Titel für diesen Katalog." + +#~ msgid "Catalogs" +#~ msgstr "Kataloge" + +#~ msgid "The Uniform Resource Identifier of this section (auto-generated)." +#~ msgstr "" +#~ "Der Uniform Resource Identifier diese Abschnitts (automatisch erstellt)." + +#~ msgid "The prefix for the URI of this section." +#~ msgstr "Das Präfix für die URI die dieses Abschnitts." + +#~ msgid "The internal identifier of this section." +#~ msgstr "Der interne Bezeichner für diesen Abschnitt." + +#~ msgid "Label" +#~ msgstr "Label" + +#~ msgid "The path part of the URI of this section (auto-generated)." +#~ msgstr "Der Pfad-Teil der URI für diesen Abschnitt (automatisch erstellt)." + +#~ msgid "Additional internal information about this section." +#~ msgstr "Zusätzliche interne Informationen über diesen Abschnitt." + +#~ msgid "The catalog this section belongs to." +#~ msgstr "Der Katalog zu dem dieser Abschnitt gehört." + +#~ msgid "The English title for this section." +#~ msgstr "Der englische Titel für diesen Abschnitt." + +#~ msgid "The German title for this section." +#~ msgstr "Der deutsche Titel für diesen Unterabschnitt." + +#~ msgid "Section" +#~ msgstr "Abschnitt" + +#~ msgid "Sections" +#~ msgstr "Unterabschnitt" + +#~ msgid "The Uniform Resource Identifier of this subsection (auto-generated)." +#~ msgstr "" +#~ "Der Uniform Resource Identifier dieses Unterabschnitts (automatisch " +#~ "erstellt)." + +#~ msgid "The prefix for the URI of this subsection." +#~ msgstr "Das Präfix für die URI dieses Unterabschnitts." + +#~ msgid "The internal identifier of this subsection." +#~ msgstr "Der interne Bezeichner für diesen Unterabschnitt." + +#~ msgid "The path part of the URI of this subsection (auto-generated)." +#~ msgstr "" +#~ "Der Pfad-Teil der URI für diesen Unterabschnitt (automatisch erstellt)." + +#~ msgid "Additional internal information about this subsection." +#~ msgstr "Zusätzliche interne Informationen über diesen Unterabschnitt." + +#~ msgid "The section this subsection belongs to." +#~ msgstr "Der Abschnitt zu dem dieser Unterabschnitt gehört." + +#~ msgid "The English title for this subsection." +#~ msgstr "Der englische Titel für diesen Unterabschnitt." + +#~ msgid "The German title for this subsection." +#~ msgstr "Der deutsche Titel für diesen Unterabschnitt." + +#~ msgid "Subsection" +#~ msgstr "Unterabschnitt" + +#~ msgid "Subsections" +#~ msgstr "Unterabschnitte" + +#~ msgid "" +#~ "The Uniform Resource Identifier of this question/questionset (auto-" +#~ "generated)." +#~ msgstr "" +#~ "Der Uniform Resource Identifier dieser Frage/dieses Fragensets " +#~ "(automatisch erstellt)." + +#~ msgid "The prefix for the URI of this question/questionset." +#~ msgstr "Das Präfix für die URI dieser Frage/dieses Fragensets." + +#~ msgid "The internal identifier of this question/questionset." +#~ msgstr "Der interne Bezeichner für diese Frage/dieses Fragenset." + +#~ msgid "" +#~ "The path part of the URI of this question/questionset (auto-generated)." +#~ msgstr "" +#~ "Der Pfad-Teil der URI für diese Frage/Fragenset (automatisch erstellt)." + +#~ msgid "Additional internal information about this question/questionset." +#~ msgstr "" +#~ "Zusätzliche interne Informationen über diese Frage/dieses Fragenset." + +#~ msgid "The attribute/entity this question/questionset belongs to." +#~ msgstr "" +#~ "Das Attribut/die Entität zu dem diese Frage/dieses Fragenset gehört." + +#~ msgid "The subsection this question/questionset belongs to." +#~ msgstr "Der Unterabschnitt zu dem diese Frage/dieses Fragenset gehört." + +#~ msgid "The position of this question/questionset in lists." +#~ msgstr "Die Position von dieser Frage/diesem Fragenset in Listen." + +#~ msgid "Help (en)" +#~ msgstr "Hilfe (en)" + +#~ msgid "The English help text for this question/questionset." +#~ msgstr "Der englische Hilfetext für diese Frage/dieses Fragenset." + +#~ msgid "Help (de)" +#~ msgstr "Hilfe (de)" + +#~ msgid "The German help text for this question/questionset." +#~ msgstr "Der deutsche Hilfetext für diese Frage/dieses Fragenset." + +#~ msgid "Question entity" +#~ msgstr "Fragenobjekt" + +#~ msgid "Question entities" +#~ msgstr "Fragenobjekte" + +#~ msgid "Parent" +#~ msgstr "Übergeordnete Entität" + +#~ msgid "The question set this question belongs to." +#~ msgstr "Das Fragenset zu dem diese Frage gehört." + +#~ msgid "The English text for this question." +#~ msgstr "Der englische Text für diese Frage." + +#~ msgid "The German text for this question." +#~ msgstr "Der deutsche Text für diese Frage." + +#~ msgid "Widget type" +#~ msgstr "Widget-Typ" + +#~ msgid "Type of widget for this question." +#~ msgstr "Art von Widget für diese Frage." + +#~ msgid "Question" +#~ msgstr "Frage" + +#~ msgid "No attribute selected." +#~ msgstr "Kein Attribut ausgewählt." + +#~ msgid "No entity selected." +#~ msgstr "Keine Entität ausgewählt." + +#~ msgid "Entity and questions attributes mismatch." +#~ msgstr "Entität und Attribute der Fragen passen nicht." + +#~ msgid "Question set" +#~ msgstr "Fragenset" + +#~ msgid "Help" +#~ msgstr "Hilfe" + +#~ msgid "" +#~ "You are about to permanently delete the catalog %(object)s." +#~ msgstr "" +#~ "Sie sind dabei den Katalog %(object)s " +#~ "permanent zu entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the question %(object)s." +#~ msgstr "" +#~ "Sie sind dabei die Frage %(object)s " +#~ "permanent zu entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the question set %(object)s." +#~ msgstr "" +#~ "Sie sind dabei das Fragenset %(object)s permanent zu entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the section %(object)s." +#~ msgstr "" +#~ "Sie sind dabei den Abschnitt %(object)s permanent zu entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the subsection %(object)s." +#~ msgstr "" +#~ "Sie sind dabei den Unterabschnitt " +#~ "%(object)s permanent zu entfernen." + +#~ msgid "The prefix for the URI of this question." +#~ msgstr "Das Präfix für die URI dieser Frage." + +#~ msgid "The internal identifier of this question." +#~ msgstr "Der interne Bezeichner für diese Frage." + +#~ msgid "Additional internal information about this question." +#~ msgstr "Zusätzliche interne Informationen über diesen Abschnitt." + +#~ msgid "The subsection this question belongs to." +#~ msgstr "Der Unterabschnitt für diese Frage." + +#~ msgid "The position of this question in lists." +#~ msgstr "Die Position dieser Frage in Listen." + +#~ msgid "The attribute this question belongs to." +#~ msgstr "Das Attribut zu dem diese Frage gehört." + +#~ msgid "The English help text for this question." +#~ msgstr "Der englische Hilfetext für diese Frage." + +#~ msgid "The German help text for this question." +#~ msgstr "Der deutsche Hilfetext für diese Frage." + +#~ msgid "Copy" +#~ msgstr "Kopieren" + +#~ msgid "The prefix for the URI of this questionset." +#~ msgstr "Das Präfix für die URI dieses Fragensets." + +#~ msgid "The internal identifier of this questionset." +#~ msgstr "Der interne Bezeichner für dieses Fragenset." + +#~ msgid "Additional internal information about this questionset." +#~ msgstr "Zusätzliche interne Informationen über diese Fragenset." + +#~ msgid "The subsection this questionset belongs to." +#~ msgstr "Der Unterabschnitt für dieses Fragenset." + +#~ msgid "The position of this questionset in lists." +#~ msgstr "Die Position von diesem Fragenset in Listen." + +#~ msgid "The entity this questionset belongs to." +#~ msgstr "Das Entität zu dem dieses Fragenset gehört." + +#~ msgid "The English help text for this questionset." +#~ msgstr "Der englische Hilfetext für dieses Fragenset." + +#~ msgid "The German help text for this questionset." +#~ msgstr "Der deutsche Hilfetext für dieses Fragenset." + +#~ msgid "Update question" +#~ msgstr "Frage bearbeiten" + +#~ msgid "Copy question" +#~ msgstr "Frage kopieren" + +#~ msgid "Delete question" +#~ msgstr "Frage entfernen" + +#~ msgid "Add question" +#~ msgstr "Frage hinzufügen" + +#~ msgid "Update question set" +#~ msgstr "Fragenset bearbeiten" + +#~ msgid "Copy question set" +#~ msgstr "Fragenset kopieren" + +#~ msgid "Delete question set" +#~ msgstr "Fragenset entfernen" + +#~ msgid "Add subsection" +#~ msgstr "Unterabschnitt hinzufügen" + +#~ msgid "Update section" +#~ msgstr "Abschnitt bearbeiten" + +#~ msgid "Delete section" +#~ msgstr "Abschnitt entfernen" + +#~ msgid "Show options" +#~ msgstr "Optionen anzeigen" + +#~ msgid "Add question set" +#~ msgstr "Fragenset hinzufügen" + +#~ msgid "Update subsection" +#~ msgstr "Unterabschnitt bearbeiten" + +#~ msgid "Delete subsection" +#~ msgstr "Unterabschnitt entfernen" + +#~ msgid "Update catalog details" +#~ msgstr "Katalogeigenschaften bearbeiten" + +#~ msgid "Delete catalog" +#~ msgstr "Katalog entfernen" + +#~ msgid "Create new catalog" +#~ msgstr "Neuen Katalog erstellen" + +#~ msgid "Create new section" +#~ msgstr "Neuen Abschnitt erstellen" + +#~ msgid "Create new subsection" +#~ msgstr "Neuen Unterabschnitt erstellen" + +#~ msgid "Create new questionset" +#~ msgstr "Neues Fragenset erstellen" + +#~ msgid "Create new question" +#~ msgstr "Neue Frage erstellen" + +#~ msgid "The Uniform Resource Identifier of this task (auto-generated)." +#~ msgstr "" +#~ "Der Uniform Resource Identifier dieser Aufgabe (automatisch erstellt)." + +#~ msgid "The prefix for the URI of this task." +#~ msgstr "Das Präfix für die URI dieser Aufgabe." + +#~ msgid "The internal identifier of this task." +#~ msgstr "Der interne Bezeichner für diese Aufgabe." + +#~ msgid "Additional internal information about this task." +#~ msgstr "Zusätzliche interne Informationen über diese Aufgabe." + +#~ msgid "The English title for this task." +#~ msgstr "Der englische Titel für diese Aufgabe." + +#~ msgid "The German title for this task." +#~ msgstr "Der deutsche Titel für diese Aufgabe." + +#~ msgid "The English text for this task." +#~ msgstr "Der englische Text für diese Aufgabe." + +#~ msgid "The German text for this task." +#~ msgstr "Der deutsche Text für diese Aufgabe." + +#~ msgid "The list of conditions evaluated for this task." +#~ msgstr "Die Liste der Bedingungen die für diese Aufgabe ausgewertet werden." + +#~ msgid "The task this time frame belongs to." +#~ msgstr "Die Aufgabe zu der dieser Zeitraum gehört." + +#~ msgid "Start date attribute" +#~ msgstr "Anfangsdatums-Attribut" + +#~ msgid "The Attribute that is setting the start date for this task." +#~ msgstr "Das Attribut das des Anfangsdatum für die Aufgabe festlegt." + +#~ msgid "End date attribute" +#~ msgstr "Enddatums-Attribute" + +#~ msgid "" +#~ "The Attribute that is setting the end date for this task (optional, if no " +#~ "end date attribute is given, the start date attribute sets also the end " +#~ "date)." +#~ msgstr "" +#~ "Das Attribut das des Enddatum für die Aufgabe festlegt (Optional, wenn " +#~ "kein Enddatums-Attribut angegeben wird, bestimmt das Anfangsdatums-" +#~ "Attribut auch das Enddatum)." + +#~ msgid "Days before" +#~ msgstr "Tage davor" + +#~ msgid "Additional days before the start date." +#~ msgstr "Zusätzliche Tage vor dem Anfangsdatum." + +#~ msgid "Days after" +#~ msgstr "Tage danach" + +#~ msgid "Additional days after the end date." +#~ msgstr "Zusätzliche Tage nach dem Enddatum." + +#~ msgid "Time frames" +#~ msgstr "Zeiträume" + +#~ msgid "Create new task" +#~ msgstr "Neue Aufgabe erstellen" + +#~ msgid "Update task" +#~ msgstr "Aufgabe bearbeiten" + +#~ msgid "Update time frame" +#~ msgstr "Zeitrahmen bearbeiten." + +#~ msgid "Delete task" +#~ msgstr "Aufgabe entfernen" + +#~ msgid "" +#~ "You are about to permanently delete the task {$ service.values." +#~ "title $}." +#~ msgstr "" +#~ "Sie sind dabei die Aufgabe %(object)s permanent zu entfernen." + +#~ msgid "The Uniform Resource Identifier of this view (auto-generated)." +#~ msgstr "" +#~ "Der Uniform Resource Identifier dieser Ansicht (automatisch erstellt)." + +#~ msgid "The prefix for the URI of this view." +#~ msgstr "Das Präfix für die URI dieser Ansicht." + +#~ msgid "The internal identifier of this view." +#~ msgstr "Der interne Bezeichner für diese Ansicht." + +#~ msgid "Additional internal information about this view." +#~ msgstr "Zusätzliche interne Informationen über diese Ansicht." + +#~ msgid "Template" +#~ msgstr "Vorlage" + +#~ msgid "The template for this view, written in Django template language." +#~ msgstr "" +#~ "Das Template für diese Ansicht, in der Django-Template-Language verfasst." + +#~ msgid "The English title for this view." +#~ msgstr "Der englische Titel für diese Ansicht." + +#~ msgid "The German title for this view." +#~ msgstr "Der deutsche Titel für diesen Ansicht." + +#~ msgid "The English help text for this view." +#~ msgstr "Der englische Hilfetext für diese Ansicht." + +#~ msgid "The German help text for this view." +#~ msgstr "Der deutsche Hilfetext für diese Ansicht." + +#~ msgid "Create new view" +#~ msgstr "Neue Ansicht erstellen" + +#~ msgid "Update view" +#~ msgstr "Ansicht bearbeiten" + +#~ msgid "Edit template" +#~ msgstr "Template bearbeiten" + +#~ msgid "Delete view" +#~ msgstr "Ansicht entfernen" + +#~ msgid "Help text" +#~ msgstr "Hilfetext" + +#~ msgid "" +#~ "You are about to permanently delete the view {$ service.values." +#~ "title $}." +#~ msgstr "" +#~ "Sie sind dabei die Ansicht %(object)s permanent zu entfernen." + +#~ msgid "Save and close" +#~ msgstr "Sichern und schließen" + +#~ msgid "German" +#~ msgstr "Deutsch" + +#~ msgid "English" +#~ msgstr "Englisch" + +#, fuzzy +#~| msgid "Optionsets " +#~ msgid "Optionsets" +#~ msgstr "Optionensets" + +#~ msgid "Optionset" +#~ msgstr "Optionenset" + +#~ msgid "Tasks " +#~ msgstr "Aufgaben" + +#~ msgid "Task " +#~ msgstr "Aufgabe" + +#~ msgid "Views " +#~ msgstr "Ansichten" + +#~ msgid "Domain " +#~ msgstr "Domäne" + +#~ msgid "Condition " +#~ msgstr "Bedingung" + +#~ msgid "Conditions " +#~ msgstr "Bedingungen" + +#~ msgid "" +#~ "You are about to permanently delete the attribute set %(object)s." +#~ msgstr "" +#~ "Sie sind dabei die Entität %(object)s permanent zu entfernen." + +#~ msgid "" +#~ "The internal identifier of this condition. The URI will be generated from " +#~ "this key." +#~ msgstr "" +#~ "Der interne Identifikator für diese Bedingung. Die URI wird hieraus " +#~ "generiert." + +#~ msgid "Prefix" +#~ msgstr "Präfix" + +#~ msgid "Source Attribute" +#~ msgstr "Quell-Attribut" + +#~ msgid "Target text" +#~ msgstr "Ziel Text" + +#~ msgid "Target option" +#~ msgstr "Ziel Option" + +#~ msgid "" +#~ "The internal identifier of this attribute/entity. The URI will be " +#~ "generated from this key." +#~ msgstr "" +#~ "Der interne Identifikator für dieses Attribute/diese Entität. Die URI " +#~ "wird hieraus generiert." + +#~ msgid "Type" +#~ msgstr "Typ" + +#~ msgid "" +#~ "You are about to permanently delete the attribute {$ service.values." +#~ "title $}." +#~ msgstr "" +#~ "Sie sind dabei das Attribut {$ service.values.title $} " +#~ "permanent zu entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the attribute set {$ service." +#~ "values.title $}." +#~ msgstr "" +#~ "Sie sind dabei die Entität {$ service.values.title $} " +#~ "permanent zu entfernen." + +#~ msgid "Parent Entity" +#~ msgstr "Übergeordnete Entität" + +#~ msgid "is a Collection" +#~ msgstr "ist eine Sammlung" + +#~ msgid "English name" +#~ msgstr "Englischer Name" + +#~ msgid "English name (plural)" +#~ msgstr "Englischer Name (Plural)" + +#~ msgid "German name" +#~ msgstr "Deutscher Name" + +#~ msgid "German name (plural)" +#~ msgstr "Deutscher Name (Plural)" + +#~ msgid "" +#~ "The internal identifier of this option set. The URI will be generated " +#~ "from this key." +#~ msgstr "" +#~ "Der interne Identifikator für dieses Optionenset. Die URI wird hieraus " +#~ "generiert." + +#~ msgid "Options " +#~ msgstr "Optionen" + +#~ msgid "Title (English)" +#~ msgstr "Titel (Englisch)" + +#~ msgid "Title (German)" +#~ msgstr "Titel (Deutsch)" + +#~ msgid "" +#~ "The internal identifier of this catalog. The URI will be generated from " +#~ "this key." +#~ msgstr "" +#~ "Der interne Identifikator für diesen Katalog. Die URI wird hieraus " +#~ "generiert." + +#~ msgid "" +#~ "The internal identifier of this section. The URI will be generated from " +#~ "this key." +#~ msgstr "" +#~ "Der interne Identifikator für diesen Abschnitt. Die URI wird hieraus " +#~ "generiert." + +#~ msgid "" +#~ "The internal identifier of this subsection. The URI will be generated " +#~ "from this key." +#~ msgstr "" +#~ "Der interne Identifikator für diesen Unterabschnitt. Die URI wird hieraus " +#~ "generiert." + +#~ msgid "The position of this subsection in lists." +#~ msgstr "Die Position von diesem Unterabschnitt in Listen." + +#~ msgid "" +#~ "The internal identifier of this question/questionset. The URI will be " +#~ "generated from this key." +#~ msgstr "" +#~ "Der interne Identifikator für diese Frage/dieses Fragenset. Die URI wird " +#~ "hieraus generiert." + +#~ msgid "" +#~ "You are about to permanently delete the catalog {$ service." +#~ "catalog.title $}." +#~ msgstr "" +#~ "Sie sind dabei den Katalog %(object)s permanent zu entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the question {$ service." +#~ "values.text $}." +#~ msgstr "" +#~ "Sie sind dabei die Frage %(object)s permanent zu entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the question set {$ service." +#~ "values.title $}." +#~ msgstr "" +#~ "Sie sind dabei das Fragenset %(object)s permanent zu " +#~ "entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the section {$ service.values." +#~ "title $}." +#~ msgstr "" +#~ "Sie sind dabei den Abschnitt %(object)s permanent zu " +#~ "entfernen." + +#~ msgid "" +#~ "You are about to permanently delete the subsection {$ service." +#~ "values.title $}." +#~ msgstr "" +#~ "Sie sind dabei den Unterabschnitt %(object)s permanent zu " +#~ "entfernen." + +#~ msgid "Question text (English)" +#~ msgstr "Fragentext (Englisch)" + +#~ msgid "Question text (German)" +#~ msgstr "Fragentext (Deutsch)" + +#~ msgid "Help text (English)" +#~ msgstr "Hilfetext (Englisch)" + +#~ msgid "Description text (English)" +#~ msgstr "Beschreibungstext (Englisch)" + +#~ msgid "Description text (German)" +#~ msgstr "Beschreibungstext (Deutsch)" + +#~ msgid "Additional days before" +#~ msgstr "Zusätzliche Tage vorher" + +#~ msgid "Additional days after" +#~ msgstr "Zusätzliche Tage danach" + +#~ msgid "" +#~ "The internal identifier of this view. The URI will be generated from this " +#~ "key." +#~ msgstr "" +#~ "Der interne Identifikator für diese Ansicht. Die URI wird hieraus " +#~ "generiert." + +#~ msgid "Days before start date." +#~ msgstr "Tage vor dem Start-Datum" + +#~ msgid "Profile update not possible" +#~ msgstr "Profil bearbeiten nicht möglich" + +#~ msgid "Deadline" +#~ msgstr "Termin" + +#~ msgid "The attribute this task is refering to." +#~ msgstr "Das Attribut auf das diese Aufgabe verweist." + +#~ msgid "Time period" +#~ msgstr "Zeitraum" + +#~ msgid "The the time period after this task becomes active." +#~ msgstr "Die Zweitspanne nach der diese Aufgabe aktiv wird." + +#~ msgid "" +#~ "RDMO is published on github.com." +#~ msgstr "" +#~ "RDMO ist auf github.com " +#~ "veröffentlicht." + +#~ msgid "Email" +#~ msgstr "E-Mail" + +#~ msgid "Save input" +#~ msgstr "Eingabe speichern" + +#~ msgid "Delete attribute set" +#~ msgstr "Attribut-Set entfernen" diff --git a/rdmo/options/templates/options/options.html b/rdmo/options/templates/options/options.html index 3e2ccacb9..e40d56805 100644 --- a/rdmo/options/templates/options/options.html +++ b/rdmo/options/templates/options/options.html @@ -49,7 +49,7 @@

      {% trans 'Options' %}

      {% trans 'Export' %}

        - {% for format, text in export_formats.items %} + {% for format, text in export_formats %}
      • {{ text }} diff --git a/rdmo/projects/templates/projects/project_answers.html b/rdmo/projects/templates/projects/project_answers.html index e4279e2d4..76a23c67d 100644 --- a/rdmo/projects/templates/projects/project_answers.html +++ b/rdmo/projects/templates/projects/project_answers.html @@ -36,7 +36,7 @@

        {% trans 'Options' %}

        {% trans 'Export' %}

          - {% for format, text in export_formats.items %} + {% for format, text in export_formats %}
        • {% if current_snapshot %} diff --git a/rdmo/projects/templates/projects/project_view.html b/rdmo/projects/templates/projects/project_view.html index c3ab6b684..349cbf7a1 100644 --- a/rdmo/projects/templates/projects/project_view.html +++ b/rdmo/projects/templates/projects/project_view.html @@ -36,7 +36,7 @@

          {% trans 'Options' %}

          {% trans 'Export' %}

            - {% for format, text in export_formats.items %} + {% for format, text in export_formats %}
          • {% if current_snapshot %} diff --git a/rdmo/questions/templates/questions/catalogs_sidebar.html b/rdmo/questions/templates/questions/catalogs_sidebar.html index 3f00de3b0..a6a5dc5f1 100644 --- a/rdmo/questions/templates/questions/catalogs_sidebar.html +++ b/rdmo/questions/templates/questions/catalogs_sidebar.html @@ -63,7 +63,7 @@

            {% trans 'Options' %}

            {% trans 'Export' %}

              - {% for format, text in export_formats.items %} + {% for format, text in export_formats %}
            • {{ text }} diff --git a/rdmo/tasks/templates/tasks/tasks.html b/rdmo/tasks/templates/tasks/tasks.html index 4bd8ac712..c04af3849 100644 --- a/rdmo/tasks/templates/tasks/tasks.html +++ b/rdmo/tasks/templates/tasks/tasks.html @@ -44,7 +44,7 @@

              {% trans 'Options' %}

              {% trans 'Export' %}

                - {% for format, text in export_formats.items %} + {% for format, text in export_formats %}
              • {{ text }} diff --git a/rdmo/views/templates/views/views.html b/rdmo/views/templates/views/views.html index eae73a5f7..830502f99 100644 --- a/rdmo/views/templates/views/views.html +++ b/rdmo/views/templates/views/views.html @@ -50,7 +50,7 @@

                {% trans 'Options' %}

                {% trans 'Export' %}

                  - {% for format, text in export_formats.items %} + {% for format, text in export_formats %}
                • {{ text }} diff --git a/testing/config/settings/__init__.py b/testing/config/settings/__init__.py index 9b5ed21c9..f52a1cc4f 100644 --- a/testing/config/settings/__init__.py +++ b/testing/config/settings/__init__.py @@ -1 +1,28 @@ +from rdmo.core.settings import * + from .base import * +from .local import * + +# add static and templates from local.THEME_DIR to STATICFILES_DIRS and TEMPLATES +try: + STATICFILES_DIRS = [ + os.path.join(THEME_DIR, 'static/') + ] + TEMPLATES[0]['DIRS'].append(os.path.join(THEME_DIR, 'templates/')) +except NameError: + pass + +# prepend the local.BASE_URL to the different URL settings +try: + LOGIN_URL = BASE_URL + LOGIN_URL + LOGIN_REDIRECT_URL = BASE_URL + LOGIN_REDIRECT_URL + LOGOUT_URL = BASE_URL + LOGOUT_URL + ACCOUNT_LOGOUT_REDIRECT_URL = BASE_URL + MEDIA_URL = BASE_URL + MEDIA_URL + STATIC_URL = BASE_URL + STATIC_URL + + CSRF_COOKIE_PATH = BASE_URL + '/' + LANGUAGE_COOKIE_PATH = BASE_URL + '/' + SESSION_COOKIE_PATH = BASE_URL + '/' +except NameError: + pass diff --git a/testing/config/settings/base.py b/testing/config/settings/base.py index d0ad2f348..45b92d0d3 100644 --- a/testing/config/settings/base.py +++ b/testing/config/settings/base.py @@ -1,20 +1,8 @@ -import os from collections import OrderedDict from django.utils.translation import ugettext_lazy as _ SITE_ID = 1 -PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -BASE_DIR = os.path.dirname(PROJECT_DIR) - -SECRET_KEY = 'this is not a very secret key' - -DEBUG = False - -ALLOWED_HOSTS = ['localhost'] - -INTERNAL_IPS = ('127.0.0.1',) - INSTALLED_APPS = [ # django modules 'django.contrib.admin', @@ -84,13 +72,6 @@ WSGI_APPLICATION = 'config.wsgi.application' -DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.sqlite3', - 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), - } -} - AUTHENTICATION_BACKENDS = [ 'rules.permissions.ObjectPermissionBackend', 'django.contrib.auth.backends.ModelBackend' @@ -113,23 +94,8 @@ ACCOUNT_USERNAME_MIN_LENGTH = 4 ACCOUNT_PASSWORD_MIN_LENGTH = 4 -LANGUAGE_CODE = 'en-us' - -TIME_ZONE = 'Europe/Berlin' - -LOCALE_PATHS = ( - os.path.join(BASE_DIR, 'locale/'), -) - -LANGUAGES = ( - ('de', _('German')), - ('en', _('English')), -) - USE_I18N = True - USE_L10N = True - USE_TZ = True LOGIN_URL = '/account/login/' @@ -137,10 +103,7 @@ LOGOUT_URL = '/account/logout/' MEDIA_URL = '/media/' -MEDIA_ROOT = os.path.join(BASE_DIR, 'media_root/') - STATIC_URL = '/static/' -STATIC_ROOT = os.path.join(BASE_DIR, 'static_root/') STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', @@ -149,8 +112,6 @@ 'djangobower.finders.BowerFinder', ) -BOWER_COMPONENTS_ROOT = os.path.join(BASE_DIR, 'components_root/') - BOWER_INSTALLED_APPS = ( "angular#~1.5.8", "bootstrap#~3.3.7", @@ -161,12 +122,6 @@ "moment#~2.14.1" ) -FIXTURE_DIRS = ( - os.path.join(BASE_DIR, 'fixtures/'), -) - -CACHE_TIMEOUT = 60 - CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', @@ -184,7 +139,7 @@ } REST_FRAMEWORK_EXTENSIONS = { - 'DEFAULT_CACHE_RESPONSE_TIMEOUT': CACHE_TIMEOUT + 'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 } SETTINGS_EXPORT = [ @@ -212,33 +167,3 @@ )) DEFAULT_URI_PREFIX = 'http://example.com/terms' - -# try override with the local configuration -try: - from .local import * -except ImportError: - pass - -# add static and templates from local.THEME_DIR to STATICFILES_DIRS and TEMPLATES -try: - STATICFILES_DIRS = [ - os.path.join(THEME_DIR, 'static/') - ] - TEMPLATES[0]['DIRS'].append(os.path.join(THEME_DIR, 'templates/')) -except NameError: - pass - -# prepend the local.BASE_URL to the different URL settings -try: - LOGIN_URL = BASE_URL + LOGIN_URL - LOGIN_REDIRECT_URL = BASE_URL + LOGIN_REDIRECT_URL - LOGOUT_URL = BASE_URL + LOGOUT_URL - ACCOUNT_LOGOUT_REDIRECT_URL = BASE_URL - MEDIA_URL = BASE_URL + MEDIA_URL - STATIC_URL = BASE_URL + STATIC_URL - - CSRF_COOKIE_PATH = BASE_URL + '/' - LANGUAGE_COOKIE_PATH = BASE_URL + '/' - SESSION_COOKIE_PATH = BASE_URL + '/' -except NameError: - pass From acf0cf08732dc5f83f1ec335edf32a6beb47a153 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 17:10:57 +0200 Subject: [PATCH 05/34] move gunicorn.txt to rdmo-app --- requirements/gunicorn.txt | 1 - 1 file changed, 1 deletion(-) delete mode 100644 requirements/gunicorn.txt diff --git a/requirements/gunicorn.txt b/requirements/gunicorn.txt deleted file mode 100644 index 7496fc482..000000000 --- a/requirements/gunicorn.txt +++ /dev/null @@ -1 +0,0 @@ -gunicorn==19.7.1 From 82d9435481d9772e11908e75c82bdb70c8592c78 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 17:24:28 +0200 Subject: [PATCH 06/34] fix testing --- rdmo/core/settings.py | 5 +- rdmo/core/utils.py | 2 +- testing/config/settings/base.py | 173 ++---------------------- testing/config/settings/local.py | 161 ++-------------------- testing/config/settings/mysql.py | 11 -- testing/config/settings/postgres.py | 11 -- testing/config/settings/sample.local.py | 150 +------------------- testing/config/settings/sqlite3.py | 11 -- 8 files changed, 28 insertions(+), 496 deletions(-) diff --git a/rdmo/core/settings.py b/rdmo/core/settings.py index 8dda86990..4fc191882 100644 --- a/rdmo/core/settings.py +++ b/rdmo/core/settings.py @@ -1,4 +1,3 @@ -import os from django.utils.translation import ugettext_lazy as _ INSTALLED_APPS = [ @@ -82,8 +81,8 @@ SOCIALACCOUNT = False SHIBBOLETH = False -ACCOUNT_SIGNUP_FORM_CLASS = 'apps.accounts.forms.SignupForm' -ACCOUNT_USER_DISPLAY = 'apps.accounts.utils.get_full_name' +ACCOUNT_SIGNUP_FORM_CLASS = 'rdmo.accounts.forms.SignupForm' +ACCOUNT_USER_DISPLAY = 'rdmo.accounts.utils.get_full_name' ACCOUNT_EMAIL_REQUIRED = True ACCOUNT_ACTIVATION_DAYS = 7 ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 7 diff --git a/rdmo/core/utils.py b/rdmo/core/utils.py index 74964badc..021a75718 100644 --- a/rdmo/core/utils.py +++ b/rdmo/core/utils.py @@ -62,7 +62,7 @@ def get_model_field_meta(model): def render_to_format(request, format, title, template_src, context): - if format in settings.EXPORT_FORMATS: + if format in dict(settings.EXPORT_FORMATS): # render the template to a html string template = get_template(template_src) diff --git a/testing/config/settings/base.py b/testing/config/settings/base.py index 45b92d0d3..826c45bf8 100644 --- a/testing/config/settings/base.py +++ b/testing/config/settings/base.py @@ -1,169 +1,26 @@ -from collections import OrderedDict -from django.utils.translation import ugettext_lazy as _ +import os -SITE_ID = 1 +from . import INSTALLED_APPS -INSTALLED_APPS = [ - # django modules - 'django.contrib.admin', - 'django.contrib.auth', - 'django.contrib.contenttypes', - 'django.contrib.sessions', - 'django.contrib.messages', - 'django.contrib.staticfiles', - 'django.contrib.sites', - # rdmo modules - 'rdmo.core', - 'rdmo.accounts', - 'rdmo.domain', - 'rdmo.options', - 'rdmo.conditions', - 'rdmo.questions', - 'rdmo.tasks', - 'rdmo.views', - 'rdmo.projects', - # 3rd party modules - 'rest_framework', - 'rest_framework.authtoken', - 'widget_tweaks', - 'markdown', - 'compressor', - 'djangobower', - 'django_extensions', - 'mptt', - 'rules' -] +SITE_ID = 1 -MIDDLEWARE_CLASSES = [ - 'django.middleware.security.SecurityMiddleware', - 'django.contrib.sessions.middleware.SessionMiddleware', - 'django.middleware.locale.LocaleMiddleware', - 'django.middleware.common.CommonMiddleware', - 'django.middleware.csrf.CsrfViewMiddleware', - 'django.contrib.auth.middleware.AuthenticationMiddleware', - 'django.contrib.auth.middleware.SessionAuthenticationMiddleware', - 'django.contrib.messages.middleware.MessageMiddleware', - 'django.middleware.clickjacking.XFrameOptionsMiddleware', - 'django.contrib.sites.middleware.CurrentSiteMiddleware' -] +PROJECT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +BASE_DIR = os.path.dirname(PROJECT_DIR) -ROOT_URLCONF = 'config.urls' +MEDIA_ROOT = os.path.join(BASE_DIR, 'media_root') +STATIC_ROOT = os.path.join(BASE_DIR, 'static_root') -TEMPLATES = [ - { - 'BACKEND': 'django.template.backends.django.DjangoTemplates', - 'DIRS': [], - 'APP_DIRS': True, - 'OPTIONS': { - 'context_processors': [ - 'django.template.context_processors.debug', - 'django.template.context_processors.request', - 'django.contrib.auth.context_processors.auth', - 'django.contrib.messages.context_processors.messages', - 'django_settings_export.settings_export', - ], - }, - }, -] +BOWER_COMPONENTS_ROOT = os.path.join(BASE_DIR, 'components_root') -COMPRESS_PRECOMPILERS = ( - ('text/x-scss', 'django_libsass.SassCompiler'), +FIXTURE_DIRS = ( + os.path.join(BASE_DIR, 'fixtures'), ) -WSGI_APPLICATION = 'config.wsgi.application' - -AUTHENTICATION_BACKENDS = [ - 'rules.permissions.ObjectPermissionBackend', - 'django.contrib.auth.backends.ModelBackend' +INSTALLED_APPS += [ + 'allauth', + 'allauth.account' ] -PROFILE_UPDATE = True - -ACCOUNT = False -ACCOUNT_SIGNUP = False +ACCOUNT = True +ACCOUNT_SIGNUP = True SOCIALACCOUNT = False -SHIBBOLETH = False - -ACCOUNT_SIGNUP_FORM_CLASS = 'rdmo.accounts.forms.SignupForm' -ACCOUNT_USER_DISPLAY = 'rdmo.accounts.utils.get_full_name' -ACCOUNT_EMAIL_REQUIRED = True -ACCOUNT_ACTIVATION_DAYS = 7 -ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 7 -ACCOUNT_EMAIL_VERIFICATION = 'optional' -ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = False -ACCOUNT_USERNAME_MIN_LENGTH = 4 -ACCOUNT_PASSWORD_MIN_LENGTH = 4 - -USE_I18N = True -USE_L10N = True -USE_TZ = True - -LOGIN_URL = '/account/login/' -LOGIN_REDIRECT_URL = '/' -LOGOUT_URL = '/account/logout/' - -MEDIA_URL = '/media/' -STATIC_URL = '/static/' - -STATICFILES_FINDERS = ( - 'django.contrib.staticfiles.finders.FileSystemFinder', - 'django.contrib.staticfiles.finders.AppDirectoriesFinder', - 'compressor.finders.CompressorFinder', - 'djangobower.finders.BowerFinder', -) - -BOWER_INSTALLED_APPS = ( - "angular#~1.5.8", - "bootstrap#~3.3.7", - "angular-resource#~1.5.8", - "codemirror#~5.18.2", - "components-font-awesome#~4.6.3", - "bootstrap-datepicker#~1.6.4", - "moment#~2.14.1" -) - -CACHES = { - 'default': { - 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', - 'LOCATION': 'rdmo_default' - }, - 'api': { - 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', - 'LOCATION': 'rdmo_api' - } -} - -REST_FRAMEWORK = { - 'UNICODE_JSON': False, - 'DEFAULT_VERSIONING_CLASS': 'rest_framework.versioning.NamespaceVersioning' -} - -REST_FRAMEWORK_EXTENSIONS = { - 'DEFAULT_CACHE_RESPONSE_TIMEOUT': 60 -} - -SETTINGS_EXPORT = [ - 'LOGIN_URL', - 'LOGOUT_URL', - 'ACCOUNT', - 'ACCOUNT_SIGNUP', - 'SOCIALACCOUNT', - 'PROFILE_UPDATE', - 'SHIBBOLETH' -] - -EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' -EMAIL_FROM = 'info@example.com' - -EXPORT_FORMATS = OrderedDict(( - ('pdf', _('PDF')), - ('rtf', _('Rich Text Format')), - ('odt', _('Open Office')), - ('docx', _('Microsoft Office')), - ('html', _('HTML')), - ('markdown', _('Markdown')), - ('mediawiki', _('mediawiki')), - ('tex', _('LaTeX')) -)) - -DEFAULT_URI_PREFIX = 'http://example.com/terms' diff --git a/testing/config/settings/local.py b/testing/config/settings/local.py index ea748d21b..9e00569c7 100644 --- a/testing/config/settings/local.py +++ b/testing/config/settings/local.py @@ -1,157 +1,12 @@ -import os -from .base import BASE_DIR, INSTALLED_APPS, AUTHENTICATION_BACKENDS, MIDDLEWARE_CLASSES - DEBUG = True -ALLOWED_HOSTS = ['localhost', 'ip6-localhost', '127.0.0.1', '[::1]'] - -# BASE_URL = '/foo' - -# THEME_DIR = os.path.join(BASE_DIR, 'themes/bwFDM-info') - -# DATABASES = { -# 'default': { -# 'ENGINE': 'django.db.backends.postgresql_psycopg2', -# 'NAME': 'rdmo', -# # 'NAME': 'rdmo_catalog' -# } -# } - -# DATABASES = { -# 'default': { -# 'ENGINE': 'django.db.backends.mysql', -# 'NAME': 'rdmo', -# 'USER': 'rdmo', -# 'PASSWORD': 'rdmo', -# } -# } - -''' -ALLAUTH -''' - -# INSTALLED_APPS += [ -# 'allauth', -# 'allauth.account', -# # 'allauth.socialaccount' -# # 'allauth.socialaccount.providers.facebook', -# # 'allauth.socialaccount.providers.github', -# # 'allauth.socialaccount.providers.google', -# # 'allauth.socialaccount.providers.orcid', -# # 'allauth.socialaccount.providers.twitter', -# ] +SECRET_KEY = 'this is a not very secret key' -# ACCOUNT = True -# ACCOUNT_SIGNUP = True -# SOCIALACCOUNT = False - -''' -LDAP -''' - -# PROFILE_UPDATE = False -# -# import ldap -# from django_auth_ldap.config import LDAPSearch -# -# AUTH_LDAP_SERVER_URI = "ldap://idp.vbox" -# AUTH_LDAP_BIND_DN = "cn=admin,dc=ldap,dc=vbox" -# AUTH_LDAP_BIND_PASSWORD = "admin" -# AUTH_LDAP_USER_SEARCH = LDAPSearch("dc=ldap,dc=vbox", ldap.SCOPE_SUBTREE, "(uid=%(user)s)") -# -# AUTH_LDAP_USER_ATTR_MAP = { -# "first_name": "givenName", -# "last_name": "sn", -# 'email': 'mail' -# } -# -# AUTHENTICATION_BACKENDS.insert( -# AUTHENTICATION_BACKENDS.index('django.contrib.auth.backends.ModelBackend'), -# 'django_auth_ldap.backend.LDAPBackend' -# ) - -''' -Shibboleth -''' - -# SHIBBOLETH = True -# PROFILE_UPDATE = False -# -# INSTALLED_APPS += ['shibboleth'] -# -# SHIBBOLETH_ATTRIBUTE_MAP = { -# 'uid': (True, 'username'), -# 'givenName': (True, 'first_name'), -# 'sn': (True, 'last_name'), -# 'mail': (True, 'email'), -# } -# -# AUTHENTICATION_BACKENDS.append('shibboleth.backends.ShibbolethRemoteUserBackend') -# -# MIDDLEWARE_CLASSES.insert( -# MIDDLEWARE_CLASSES.index('django.contrib.auth.middleware.AuthenticationMiddleware') + 1, -# 'shibboleth.middleware.ShibbolethRemoteUserMiddleware' -# ) -# -# LOGIN_URL = '/Shibboleth.sso/Login?target=/projects' -# LOGOUT_URL = '/Shibboleth.sso/Logout' - -''' -Cache -''' - -# CACHES = { -# 'default': { -# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', -# 'LOCATION': '127.0.0.1:11211', -# 'KEY_PREFIX': 'rdmo' -# }, -# 'api': { -# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', -# 'LOCATION': '127.0.0.1:11211', -# 'KEY_PREFIX': 'rdmo_api' -# } -# } - -''' -Logging -''' +ALLOWED_HOSTS = ['localhost', 'ip6-localhost', '127.0.0.1', '[::1]'] -# LOGGING = { -# 'disable_existing_loggers': False, -# 'version': 1, -# 'handlers': { -# 'sql': { -# 'class': 'logging.FileHandler', -# 'level': 'DEBUG', -# 'filename': '/var/log/django/sql.log', -# }, -# 'rules': { -# 'class': 'logging.FileHandler', -# 'level': 'DEBUG', -# 'filename': '/var/log/django/rules.log', -# }, -# 'ldap': { -# 'class': 'logging.FileHandler', -# 'level': 'DEBUG', -# 'filename': '/var/log/django/ldap.log', -# }, -# }, -# 'loggers': { -# 'django.db.backends': { -# 'handlers': ['sql'], -# 'level': 'DEBUG', -# 'propagate': False, -# }, -# 'rules': { -# 'handlers': ['rules'], -# 'level': 'DEBUG', -# 'propagate': True, -# }, -# 'django_auth_ldap': { -# 'handlers': ['ldap'], -# 'level': 'DEBUG', -# 'propagate': False, -# }, -# }, -# } +DATABASES = { + 'default': { + 'ENGINE': 'django.db.backends.postgresql_psycopg2', + 'NAME': 'rdmo' + } +} diff --git a/testing/config/settings/mysql.py b/testing/config/settings/mysql.py index 67985bc9a..10afa1a98 100644 --- a/testing/config/settings/mysql.py +++ b/testing/config/settings/mysql.py @@ -1,5 +1,3 @@ -from .base import INSTALLED_APPS - DEBUG = True SECRET_KEY = 'this is a not very secret key' @@ -12,12 +10,3 @@ 'PASSWORD': '' } } - -INSTALLED_APPS += [ - 'allauth', - 'allauth.account' -] - -ACCOUNT = True -ACCOUNT_SIGNUP = True -SOCIALACCOUNT = False diff --git a/testing/config/settings/postgres.py b/testing/config/settings/postgres.py index c40f6910d..85dc5f58d 100644 --- a/testing/config/settings/postgres.py +++ b/testing/config/settings/postgres.py @@ -1,5 +1,3 @@ -from .base import INSTALLED_APPS - DEBUG = True SECRET_KEY = 'this is a not very secret key' @@ -11,12 +9,3 @@ 'USER': 'postgres' } } - -INSTALLED_APPS += [ - 'allauth', - 'allauth.account' -] - -ACCOUNT = True -ACCOUNT_SIGNUP = True -SOCIALACCOUNT = False diff --git a/testing/config/settings/sample.local.py b/testing/config/settings/sample.local.py index b909daacd..82723138f 100644 --- a/testing/config/settings/sample.local.py +++ b/testing/config/settings/sample.local.py @@ -1,40 +1,8 @@ -import os -from .base import BASE_DIR, INSTALLED_APPS, AUTHENTICATION_BACKENDS, MIDDLEWARE_CLASSES - -''' -Debug mode, don't use this in production -''' DEBUG = True -''' -Secret key, use something random in production -''' -# SECRET_KEY = 'this is not a very secret key' - -''' -The list of URLs und which this application available -''' -ALLOWED_HOSTS = ['localhost'] - -''' -Base URL Path to this application, i.e. /path for http://exaple.com/path/ -''' -# BASE_URL = '/path' +SECRET_KEY = 'this is a not very secret key' -''' -The main language of this application. -''' -# LANGUAGE_CODE = 'en-us' - -''' -The timezone this application. -''' -# TIME_ZONE = 'Europe/Berlin' - -''' -The database connection to be used, see also: -http://rdmo.readthedocs.io/en/latest/configuration/databases.html -''' +ALLOWED_HOSTS = ['localhost', 'ip6-localhost', '127.0.0.1', '[::1]'] # DATABASES = { # 'default': { @@ -64,117 +32,3 @@ # 'NAME': '', # } # } - -''' -E-Mail configuration, see also: -http://rdmo.readthedocs.io/en/latest/configuration/email.html -''' - -# EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' -# EMAIL_HOST = 'localhost' -# EMAIL_PORT = '25' -# EMAIL_HOST_USER = '' -# EMAIL_HOST_PASSWORD = '' -# EMAIL_USE_TLS = False -# EMAIL_USE_SSL = False -# DEFAULT_FROM_EMAIL = '' - -''' -Allauth configuration, see also: -http://rdmo.readthedocs.io/en/latest/configuration/authentication/allauth.html -''' - -# ACCOUNT = True -# ACCOUNT_SIGNUP = True -# SOCIALACCOUNT = False -# -# INSTALLED_APPS += [ -# 'allauth', -# 'allauth.account', -# 'allauth.socialaccount' -# 'allauth.socialaccount.providers.facebook', -# 'allauth.socialaccount.providers.github', -# 'allauth.socialaccount.providers.google', -# 'allauth.socialaccount.providers.orcid', -# 'allauth.socialaccount.providers.twitter', -# ] -# -# AUTHENTICATION_BACKENDS.append('allauth.account.auth_backends.AuthenticationBackend') - -''' -LDAP, see also: -http://rdmo.readthedocs.io/en/latest/configuration/authentication/ldap.html -''' - -# PROFILE_UPDATE = False -# -# import ldap -# from django_auth_ldap.config import LDAPSearch -# -# AUTH_LDAP_SERVER_URI = "ldap://ldap.example.com" -# AUTH_LDAP_BIND_DN = "cn=admin,dc=ldap,dc=example,dc=com" -# AUTH_LDAP_BIND_PASSWORD = "admin" -# AUTH_LDAP_USER_SEARCH = LDAPSearch("dc=ldap,dc=example,dc=com", ldap.SCOPE_SUBTREE, "(uid=%(user)s)") -# -# AUTH_LDAP_USER_ATTR_MAP = { -# "first_name": "givenName", -# "last_name": "sn", -# 'email': 'mail' -# } -# -# AUTHENTICATION_BACKENDS.insert( -# AUTHENTICATION_BACKENDS.index('django.contrib.auth.backends.ModelBackend'), -# 'django_auth_ldap.backend.LDAPBackend' -# ) - -''' -Shibboleth, see also: -http://rdmo.readthedocs.io/en/latest/configuration/authentication/shibboleth.html -''' - -# SHIBBOLETH = True -# PROFILE_UPDATE = False -# -# INSTALLED_APPS += ['shibboleth'] -# -# SHIBBOLETH_ATTRIBUTE_MAP = { -# 'uid': (True, 'username'), -# 'givenName': (True, 'first_name'), -# 'sn': (True, 'last_name'), -# 'mail': (True, 'email'), -# } -# -# AUTHENTICATION_BACKENDS.append('shibboleth.backends.ShibbolethRemoteUserBackend') -# -# MIDDLEWARE_CLASSES.insert( -# MIDDLEWARE_CLASSES.index('django.contrib.auth.middleware.AuthenticationMiddleware') + 1, -# 'shibboleth.middleware.ShibbolethRemoteUserMiddleware' -# ) -# -# LOGIN_URL = '/Shibboleth.sso/Login?target=/projects' -# LOGOUT_URL = '/Shibboleth.sso/Logout' - -''' -Theme, see also: -http://rdmo.readthedocs.io/en/latest/configuration/themes.html -''' - -# THEME_DIR = os.path.join(BASE_DIR, 'theme') - -''' -Cache, see also: -http://rdmo.readthedocs.io/en/latest/configuration/cache.html -''' - -# CACHES = { -# 'default': { -# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', -# 'LOCATION': '127.0.0.1:11211', -# 'KEY_PREFIX': 'rdmo_default' -# }, -# 'api': { -# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', -# 'LOCATION': '127.0.0.1:11211', -# 'KEY_PREFIX': 'rdmo_api' -# }, -# } diff --git a/testing/config/settings/sqlite3.py b/testing/config/settings/sqlite3.py index a8ec6f7bf..8900261a6 100644 --- a/testing/config/settings/sqlite3.py +++ b/testing/config/settings/sqlite3.py @@ -1,5 +1,3 @@ -from .base import INSTALLED_APPS - DEBUG = True SECRET_KEY = 'this is a not very secret key' @@ -10,12 +8,3 @@ 'NAME': 'db.sqlite3', } } - -INSTALLED_APPS += [ - 'allauth', - 'allauth.account' -] - -ACCOUNT = True -ACCOUNT_SIGNUP = True -SOCIALACCOUNT = False From d137a7649bf69b8231bb196f8c34781e35e34141 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Thu, 24 Aug 2017 16:21:27 +0200 Subject: [PATCH 07/34] lock django-test-generator version --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 03b0559a1..e2eb34ef5 100644 --- a/setup.py +++ b/setup.py @@ -33,7 +33,7 @@ 'pypandoc==1.3.3', 'lxml==3.7.3', 'coverage', - 'django-test-generator>=0.1.2' + 'django-test-generator<=0.2.1' ], classifiers=[ 'Development Status :: 1 - Planning', From b81a96d1ea07b2ec84f7a6ceed21d6d0a4c52fca Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Thu, 24 Aug 2017 19:53:37 +0200 Subject: [PATCH 08/34] refactor tests --- .gitignore | 4 +- rdmo/accounts/tests/__init__.py | 0 .../{tests.py => tests/test_views.py} | 27 +- rdmo/accounts/tests/test_viewsets.py | 44 ++ rdmo/conditions/tests/__init__.py | 0 rdmo/conditions/tests/test_views.py | 58 ++ .../{tests.py => tests/test_viewsets.py} | 58 +- rdmo/core/tests/__init__.py | 0 rdmo/core/tests/test_tags.py | 31 + rdmo/core/{tests.py => tests/test_views.py} | 33 +- rdmo/domain/tests/__init__.py | 0 rdmo/domain/tests/test_views.py | 60 ++ .../{tests.py => tests/test_viewsets.py} | 84 +- rdmo/options/tests/__init__.py | 0 rdmo/options/tests/test_views.py | 58 ++ .../{tests.py => tests/test_viewsets.py} | 63 +- rdmo/projects/tests.py | 251 ------ rdmo/projects/tests/__init__.py | 0 rdmo/projects/tests/test_views.py | 187 +++++ rdmo/projects/tests/test_viewsets.py | 150 ++++ rdmo/questions/tests.py | 222 ------ rdmo/questions/tests/__init__.py | 0 rdmo/questions/tests/test_views.py | 92 +++ rdmo/questions/tests/test_viewsets.py | 175 +++++ rdmo/tasks/tests/__init__.py | 0 rdmo/tasks/tests/test_views.py | 58 ++ .../{tests.py => tests/test_viewsets.py} | 52 +- rdmo/views/tests/__init__.py | 0 rdmo/views/tests/test_views.py | 59 ++ .../{tests.py => tests/test_viewsets.py} | 46 +- setup.py | 2 +- testing/fixtures/projects.json | 719 +++++++++++++++++- testing/runtests.py | 3 +- 33 files changed, 1785 insertions(+), 751 deletions(-) create mode 100644 rdmo/accounts/tests/__init__.py rename rdmo/accounts/{tests.py => tests/test_views.py} (90%) create mode 100644 rdmo/accounts/tests/test_viewsets.py create mode 100644 rdmo/conditions/tests/__init__.py create mode 100644 rdmo/conditions/tests/test_views.py rename rdmo/conditions/{tests.py => tests/test_viewsets.py} (55%) create mode 100644 rdmo/core/tests/__init__.py create mode 100644 rdmo/core/tests/test_tags.py rename rdmo/core/{tests.py => tests/test_views.py} (63%) create mode 100644 rdmo/domain/tests/__init__.py create mode 100644 rdmo/domain/tests/test_views.py rename rdmo/domain/{tests.py => tests/test_viewsets.py} (56%) create mode 100644 rdmo/options/tests/__init__.py create mode 100644 rdmo/options/tests/test_views.py rename rdmo/options/{tests.py => tests/test_viewsets.py} (52%) delete mode 100644 rdmo/projects/tests.py create mode 100644 rdmo/projects/tests/__init__.py create mode 100644 rdmo/projects/tests/test_views.py create mode 100644 rdmo/projects/tests/test_viewsets.py delete mode 100644 rdmo/questions/tests.py create mode 100644 rdmo/questions/tests/__init__.py create mode 100644 rdmo/questions/tests/test_views.py create mode 100644 rdmo/questions/tests/test_viewsets.py create mode 100644 rdmo/tasks/tests/__init__.py create mode 100644 rdmo/tasks/tests/test_views.py rename rdmo/tasks/{tests.py => tests/test_viewsets.py} (54%) create mode 100644 rdmo/views/tests/__init__.py create mode 100644 rdmo/views/tests/test_views.py rename rdmo/views/{tests.py => tests/test_viewsets.py} (54%) diff --git a/.gitignore b/.gitignore index c09dcc89b..91d016d2b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ testing/config/settings/local.py -testing/static_root/ + +static_root +components_root docs/_build* diff --git a/rdmo/accounts/tests/__init__.py b/rdmo/accounts/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdmo/accounts/tests.py b/rdmo/accounts/tests/test_views.py similarity index 90% rename from rdmo/accounts/tests.py rename to rdmo/accounts/tests/test_views.py index b59af79f1..4b94e549b 100644 --- a/rdmo/accounts/tests.py +++ b/rdmo/accounts/tests/test_views.py @@ -8,14 +8,11 @@ from django.core import mail from test_generator.core import TestModelStringMixin -from test_generator.viewsets import TestListViewsetMixin, TestRetrieveViewsetMixin from rdmo.accounts.utils import set_group_permissions -class AccountsTestCase(TestCase): - - lang = 'en' +class AccountsViewTestCase(TestCase): fixtures = ( 'users.json', @@ -35,7 +32,7 @@ def setUp(self): set_group_permissions() -class ProfileTests(TestModelStringMixin, AccountsTestCase): +class ProfileTests(TestModelStringMixin, AccountsViewTestCase): instances = User.objects.all() @@ -165,14 +162,14 @@ def test_post_profile_update_next2(self): self.assertEqual(response.status_code, 200) -class AdditionalFieldTests(TestModelStringMixin, AccountsTestCase): +class AdditionalFieldTests(TestModelStringMixin, AccountsViewTestCase): def setUp(self): translation.activate('en') self.instances = User.objects.all() -class PasswordTests(AccountsTestCase): +class PasswordTests(AccountsViewTestCase): def setUp(self): translation.activate('en') @@ -243,19 +240,3 @@ def test_password_reset_post_valid(self): # get the password_reset page response = self.client.get(urls[0]) self.assertEqual(response.status_code, 200) - - -class UserAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, AccountsTestCase): - - instances = User.objects.all() - url_names = { - 'viewset': 'api-v1-accounts:user' - } - status_map = { - 'list_viewset': { - 'editor': 403, 'reviewer': 403, 'api': 200, 'user': 403, 'anonymous': 403 - }, - 'retrieve_viewset': { - 'editor': 403, 'reviewer': 403, 'api': 200, 'user': 403, 'anonymous': 403 - }, - } diff --git a/rdmo/accounts/tests/test_viewsets.py b/rdmo/accounts/tests/test_viewsets.py new file mode 100644 index 000000000..841db17ee --- /dev/null +++ b/rdmo/accounts/tests/test_viewsets.py @@ -0,0 +1,44 @@ +from django.contrib.auth.models import User +from django.test import TestCase + +from test_generator.viewsets import TestReadOnlyModelViewsetMixin + +from rdmo.accounts.utils import set_group_permissions + + +class AccountsViewsetTestCase(TestCase): + + lang = 'en' + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json' + ) + + users = ( + ('editor', 'editor'), + ('reviewer', 'reviewer'), + ('user', 'user'), + ('api', 'api'), + ('anonymous', None), + ) + + def setUp(self): + set_group_permissions() + + +class UserAPITests(TestReadOnlyModelViewsetMixin, AccountsViewsetTestCase): + + instances = User.objects.all() + url_names = { + 'viewset': 'api-v1-accounts:user' + } + status_map = { + 'list_viewset': { + 'editor': 403, 'reviewer': 403, 'api': 200, 'user': 403, 'anonymous': 403 + }, + 'detail_viewset': { + 'editor': 403, 'reviewer': 403, 'api': 200, 'user': 403, 'anonymous': 403 + }, + } diff --git a/rdmo/conditions/tests/__init__.py b/rdmo/conditions/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdmo/conditions/tests/test_views.py b/rdmo/conditions/tests/test_views.py new file mode 100644 index 000000000..9f9e58d3f --- /dev/null +++ b/rdmo/conditions/tests/test_views.py @@ -0,0 +1,58 @@ +from django.test import TestCase + +from test_generator.views import TestListViewMixin + +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions + + +class ConditionsViewTestCase(TestCase): + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json', + 'conditions.json', + 'domain.json', + 'options.json', + ) + + users = ( + ('editor', 'editor'), + ('reviewer', 'reviewer'), + ('user', 'user'), + ('api', 'api'), + ('anonymous', None), + ) + + status_map = { + 'list_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + }, + 'export_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + } + } + + @classmethod + def setUpTestData(cls): + set_group_permissions() + + +class ConditionsTests(TestListViewMixin, ConditionsViewTestCase): + + url_names = { + 'list_view': 'conditions' + } + + +class ConditionExportTests(TestExportViewMixin, ConditionsViewTestCase): + + url_names = { + 'export_view': 'conditions_export' + } + + +class ConditionImportTests(TestImportViewMixin, ConditionsViewTestCase): + + import_file = 'testing/xml/conditions.xml' diff --git a/rdmo/conditions/tests.py b/rdmo/conditions/tests/test_viewsets.py similarity index 55% rename from rdmo/conditions/tests.py rename to rdmo/conditions/tests/test_viewsets.py index 1ff107148..c35be9958 100644 --- a/rdmo/conditions/tests.py +++ b/rdmo/conditions/tests/test_viewsets.py @@ -1,16 +1,18 @@ from django.test import TestCase -from test_generator.views import TestListViewMixin -from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin +from test_generator.viewsets import ( + TestModelViewsetMixin, + TestListViewsetMixin, + TestReadOnlyModelViewsetMixin +) -from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin from rdmo.accounts.utils import set_group_permissions from rdmo.domain.models import Attribute -from .models import Condition +from ..models import Condition -class ConditionsTestCase(TestCase): +class ConditionsViewsetTestCase(TestCase): fixtures = ( 'users.json', @@ -21,10 +23,6 @@ class ConditionsTestCase(TestCase): 'options.json', ) - languages = ( - 'en', - ) - users = ( ('editor', 'editor'), ('reviewer', 'reviewer'), @@ -34,16 +32,10 @@ class ConditionsTestCase(TestCase): ) status_map = { - 'list_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, - 'export_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, 'list_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, - 'retrieve_viewset': { + 'detail_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, 'create_viewset': { @@ -62,26 +54,20 @@ def setUpTestData(cls): set_group_permissions() -class ConditionsTests(TestListViewMixin, ConditionsTestCase): - - url_names = { - 'list_view': 'conditions' - } - - -class ConditionTests(TestModelViewsetMixin, ConditionsTestCase): +class ConditionTests(TestModelViewsetMixin, ConditionsViewsetTestCase): instances = Condition.objects.all() url_names = { 'viewset': 'internal-conditions:condition' } - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) -class AttributeTests(TestListViewsetMixin, ConditionsTestCase): +class AttributeTests(TestListViewsetMixin, ConditionsViewsetTestCase): instances = Attribute.objects.all() url_names = { @@ -89,7 +75,7 @@ class AttributeTests(TestListViewsetMixin, ConditionsTestCase): } -class RelationTests(TestListViewsetMixin, ConditionsTestCase): +class RelationTests(TestListViewsetMixin, ConditionsViewsetTestCase): url_names = { 'viewset': 'internal-conditions:relation' @@ -99,19 +85,7 @@ class RelationTests(TestListViewsetMixin, ConditionsTestCase): } -class ConditionExportTests(TestExportViewMixin, ConditionsTestCase): - - url_names = { - 'export_view': 'conditions_export' - } - - -class ConditionImportTests(TestImportViewMixin, TestCase): - - import_file = 'testing/xml/conditions.xml' - - -class ConditionAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, ConditionsTestCase): +class ConditionAPITests(TestReadOnlyModelViewsetMixin, ConditionsViewsetTestCase): instances = Condition.objects.all() url_names = { diff --git a/rdmo/core/tests/__init__.py b/rdmo/core/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdmo/core/tests/test_tags.py b/rdmo/core/tests/test_tags.py new file mode 100644 index 000000000..889416d4c --- /dev/null +++ b/rdmo/core/tests/test_tags.py @@ -0,0 +1,31 @@ +from django.test import TestCase +from django.conf import settings + +from django.template import RequestContext, Template +from django.test.client import RequestFactory +from django.utils import translation + + +class CoreTagsTests(TestCase): + + def setUp(self): + self.request = RequestFactory().get('/') + super(CoreTagsTests, self).setUp() + + def test_i18n_switcher(self): + """ The language switcher is rendered correctly. """ + + # create a fake template with a name + template = "{% load core_tags %}{% i18n_switcher %}" + + # set a language + translation.activate(settings.LANGUAGES[0][0]) + + # render the link + context = RequestContext(self.request, {}) + rendered_template = Template(template).render(context) + for language in settings.LANGUAGES: + if language == settings.LANGUAGES[0]: + self.assertIn('%s' % language, rendered_template) + else: + self.assertIn('%s' % language, rendered_template) diff --git a/rdmo/core/tests.py b/rdmo/core/tests/test_views.py similarity index 63% rename from rdmo/core/tests.py rename to rdmo/core/tests/test_views.py index c62cb53d4..f1c87fe2a 100644 --- a/rdmo/core/tests.py +++ b/rdmo/core/tests/test_views.py @@ -1,14 +1,11 @@ from django.test import TestCase -from django.conf import settings from django.core.urlresolvers import reverse -from django.template import RequestContext, Template -from django.test.client import RequestFactory from django.utils import translation from rdmo.accounts.utils import set_group_permissions -class CoreTestCase(TestCase): +class CoreViewTests(TestCase): fixtures = ( 'users.json', @@ -20,9 +17,6 @@ def setUp(self): translation.activate('en') set_group_permissions() - -class CoreTests(CoreTestCase): - def test_home_view(self): """ The home page can be accessed. """ @@ -63,28 +57,3 @@ def test_i18n_switcher(self): response = self.client.get(url) self.assertEqual(302, response.status_code) self.assertIn('en', response['Content-Language']) - - -class CoreTagsTests(TestCase): - - def setUp(self): - self.request = RequestFactory().get('/') - super(CoreTagsTests, self).setUp() - - def test_i18n_switcher(self): - """ The language switcher is rendered correctly. """ - - # create a fake template with a name - template = "{% load core_tags %}{% i18n_switcher %}" - - # set a language - translation.activate(settings.LANGUAGES[0][0]) - - # render the link - context = RequestContext(self.request, {}) - rendered_template = Template(template).render(context) - for language in settings.LANGUAGES: - if language == settings.LANGUAGES[0]: - self.assertIn('%s' % language, rendered_template) - else: - self.assertIn('%s' % language, rendered_template) diff --git a/rdmo/domain/tests/__init__.py b/rdmo/domain/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdmo/domain/tests/test_views.py b/rdmo/domain/tests/test_views.py new file mode 100644 index 000000000..e35851b63 --- /dev/null +++ b/rdmo/domain/tests/test_views.py @@ -0,0 +1,60 @@ +from django.test import TestCase + +from test_generator.views import TestListViewMixin + +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions + + +class DomainViewTestCase(TestCase): + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json', + 'conditions.json', + 'domain.json', + 'options.json', + ) + + users = ( + ('editor', 'editor'), + ('reviewer', 'reviewer'), + ('user', 'user'), + ('api', 'api'), + ('anonymous', None), + ) + + status_map = { + 'list_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + }, + 'export_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + } + } + + @classmethod + def setUpTestData(cls): + set_group_permissions() + + +class DomainTests(TestListViewMixin, DomainViewTestCase): + + url_names = { + 'list_view': 'domain' + } + + +class DomainExportTests(TestExportViewMixin, DomainViewTestCase): + + url_names = { + 'list_view': 'domain', + 'export_view': 'domain_export' + } + export_formats = ('xml', 'html', 'rtf', 'csv') + + +class DomainImportTests(TestImportViewMixin, DomainViewTestCase): + + import_file = 'testing/xml/domain.xml' diff --git a/rdmo/domain/tests.py b/rdmo/domain/tests/test_viewsets.py similarity index 56% rename from rdmo/domain/tests.py rename to rdmo/domain/tests/test_viewsets.py index 18abc13a0..83050e360 100644 --- a/rdmo/domain/tests.py +++ b/rdmo/domain/tests/test_viewsets.py @@ -1,24 +1,23 @@ from django.test import TestCase -from test_generator.views import TestListViewMixin from test_generator.viewsets import ( TestModelViewsetMixin, + TestReadOnlyModelViewsetMixin, TestListViewsetMixin, - TestRetrieveViewsetMixin, + TestDetailViewsetMixin, TestUpdateViewsetMixin, TestDeleteViewsetMixin ) -from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin from rdmo.accounts.utils import set_group_permissions from rdmo.conditions.models import Condition from rdmo.options.models import OptionSet -from .models import AttributeEntity, Attribute, Range, VerboseName +from ..models import AttributeEntity, Attribute, Range, VerboseName -class DomainTestCase(TestCase): +class DomainViewsetTestCase(TestCase): fixtures = ( 'users.json', @@ -29,10 +28,6 @@ class DomainTestCase(TestCase): 'options.json', ) - languages = ( - 'en', - ) - users = ( ('editor', 'editor'), ('reviewer', 'reviewer'), @@ -42,16 +37,10 @@ class DomainTestCase(TestCase): ) status_map = { - 'list_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, - 'export_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, 'list_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, - 'retrieve_viewset': { + 'detail_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, 'create_viewset': { @@ -70,41 +59,42 @@ def setUpTestData(cls): set_group_permissions() -class DomainTests(TestListViewMixin, DomainTestCase): - - url_names = { - 'list_view': 'domain' - } - - -class AttributeEntityTests(TestModelViewsetMixin, DomainTestCase): +class AttributeEntityTests(TestModelViewsetMixin, DomainViewsetTestCase): # get entities and order them by level to delete the entities at the bottom of the tree first instances = AttributeEntity.objects.filter(attribute=None).order_by('-level') url_names = { 'viewset': 'internal-domain:entity' } - restore_instance = False - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + + def _test_delete_viewset(self, username): + for instance in self.instances: + self.assert_delete_viewset(username, instance.pk) -class AttributeTests(TestModelViewsetMixin, DomainTestCase): +class AttributeTests(TestModelViewsetMixin, DomainViewsetTestCase): instances = Attribute.objects.all() url_names = { 'viewset': 'internal-domain:attribute' } - restore_instance = False - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + def _test_delete_viewset(self, username): + for instance in self.instances: + self.assert_delete_viewset(username, instance.pk) -class RangeTests(TestListViewsetMixin, TestRetrieveViewsetMixin, TestUpdateViewsetMixin, TestDeleteViewsetMixin, DomainTestCase): + +class RangeTests(TestListViewsetMixin, TestDetailViewsetMixin, TestUpdateViewsetMixin, TestDeleteViewsetMixin, DomainViewsetTestCase): instances = Range.objects.all() url_names = { @@ -112,7 +102,7 @@ class RangeTests(TestListViewsetMixin, TestRetrieveViewsetMixin, TestUpdateViews } -class VerboseNameTests(TestListViewsetMixin, TestRetrieveViewsetMixin, TestUpdateViewsetMixin, TestDeleteViewsetMixin, DomainTestCase): +class VerboseNameTests(TestListViewsetMixin, TestDetailViewsetMixin, TestUpdateViewsetMixin, TestDeleteViewsetMixin, DomainViewsetTestCase): instances = VerboseName.objects.all() url_names = { @@ -120,7 +110,7 @@ class VerboseNameTests(TestListViewsetMixin, TestRetrieveViewsetMixin, TestUpdat } -class ValueTypeTests(TestListViewsetMixin, DomainTestCase): +class ValueTypeTests(TestListViewsetMixin, DomainViewsetTestCase): url_names = { 'viewset': 'internal-domain:valuestype' @@ -132,7 +122,7 @@ class ValueTypeTests(TestListViewsetMixin, DomainTestCase): } -class OptionSetTests(TestListViewsetMixin, TestRetrieveViewsetMixin, DomainTestCase): +class OptionSetTests(TestReadOnlyModelViewsetMixin, DomainViewsetTestCase): instances = OptionSet.objects.all() url_names = { @@ -140,7 +130,7 @@ class OptionSetTests(TestListViewsetMixin, TestRetrieveViewsetMixin, DomainTestC } -class ConditionTests(TestListViewsetMixin, TestRetrieveViewsetMixin, DomainTestCase): +class ConditionTests(TestReadOnlyModelViewsetMixin, DomainViewsetTestCase): instances = Condition.objects.all() url_names = { @@ -148,21 +138,7 @@ class ConditionTests(TestListViewsetMixin, TestRetrieveViewsetMixin, DomainTestC } -class DomainExportTests(TestExportViewMixin, DomainTestCase): - - url_names = { - 'list_view': 'domain', - 'export_view': 'domain_export' - } - export_formats = ('xml', 'html', 'rtf', 'csv') - - -class DomainImportTests(TestImportViewMixin, TestCase): - - import_file = 'testing/xml/domain.xml' - - -class AttributeEntityAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, DomainTestCase): +class AttributeEntityAPITests(TestReadOnlyModelViewsetMixin, DomainViewsetTestCase): instances = AttributeEntity.objects.filter(attribute=None) url_names = { @@ -170,7 +146,7 @@ class AttributeEntityAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, Do } -class AttributeAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, DomainTestCase): +class AttributeAPITests(TestReadOnlyModelViewsetMixin, DomainViewsetTestCase): instances = Attribute.objects.all() url_names = { diff --git a/rdmo/options/tests/__init__.py b/rdmo/options/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdmo/options/tests/test_views.py b/rdmo/options/tests/test_views.py new file mode 100644 index 000000000..1ed2ec2c3 --- /dev/null +++ b/rdmo/options/tests/test_views.py @@ -0,0 +1,58 @@ +from django.test import TestCase + +from test_generator.views import TestListViewMixin + +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions + + +class OptionsViewTestCase(TestCase): + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json', + 'conditions.json', + 'domain.json', + 'options.json', + ) + + users = ( + ('editor', 'editor'), + ('reviewer', 'reviewer'), + ('user', 'user'), + ('api', 'api'), + ('anonymous', None), + ) + + status_map = { + 'list_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + }, + 'export_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + } + } + + @classmethod + def setUpTestData(cls): + set_group_permissions() + + +class OptionsTests(TestListViewMixin, OptionsViewTestCase): + + url_names = { + 'list_view': 'options' + } + + +class OptionsExportTests(TestExportViewMixin, OptionsViewTestCase): + + url_names = { + 'export_view': 'options_export' + } + + +class OptionsImportTests(TestImportViewMixin, OptionsViewTestCase): + + import_file = 'testing/xml/options.xml' diff --git a/rdmo/options/tests.py b/rdmo/options/tests/test_viewsets.py similarity index 52% rename from rdmo/options/tests.py rename to rdmo/options/tests/test_viewsets.py index 8ddb9892a..47bad4df9 100644 --- a/rdmo/options/tests.py +++ b/rdmo/options/tests/test_viewsets.py @@ -1,17 +1,15 @@ from django.test import TestCase -from test_generator.views import TestListViewMixin -from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin +from test_generator.viewsets import TestModelViewsetMixin, TestReadOnlyModelViewsetMixin -from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin from rdmo.accounts.utils import set_group_permissions from rdmo.conditions.models import Condition -from .models import OptionSet, Option +from ..models import OptionSet, Option -class OptionsTestCase(TestCase): +class OptionsViewsetTestCase(TestCase): fixtures = ( 'users.json', @@ -22,10 +20,6 @@ class OptionsTestCase(TestCase): 'options.json', ) - languages = ( - 'en', - ) - users = ( ('editor', 'editor'), ('reviewer', 'reviewer'), @@ -35,16 +29,10 @@ class OptionsTestCase(TestCase): ) status_map = { - 'list_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, - 'export_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, 'list_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, - 'retrieve_viewset': { + 'detail_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, 'create_viewset': { @@ -63,38 +51,33 @@ def setUpTestData(cls): set_group_permissions() -class OptionsTests(TestListViewMixin, OptionsTestCase): - - url_names = { - 'list_view': 'options' - } - - -class OptionSetTests(TestModelViewsetMixin, OptionsTestCase): +class OptionSetTests(TestModelViewsetMixin, OptionsViewsetTestCase): instances = OptionSet.objects.all() url_names = { 'viewset': 'internal-options:optionset' } - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) -class OptionTests(TestModelViewsetMixin, OptionsTestCase): +class OptionTests(TestModelViewsetMixin, OptionsViewsetTestCase): instances = Option.objects.all() url_names = { 'viewset': 'internal-options:option' } - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) -class ConditionTests(TestListViewsetMixin, TestRetrieveViewsetMixin, OptionsTestCase): +class ConditionTests(TestReadOnlyModelViewsetMixin, OptionsViewsetTestCase): instances = Condition.objects.all() url_names = { @@ -102,19 +85,7 @@ class ConditionTests(TestListViewsetMixin, TestRetrieveViewsetMixin, OptionsTest } -class OptionsExportTests(TestExportViewMixin, OptionsTestCase): - - url_names = { - 'export_view': 'options_export' - } - - -class OptionsImportTests(TestImportViewMixin, TestCase): - - import_file = 'testing/xml/options.xml' - - -class OptionSetAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, OptionsTestCase): +class OptionSetAPITests(TestReadOnlyModelViewsetMixin, OptionsViewsetTestCase): instances = OptionSet.objects.all() url_names = { @@ -122,7 +93,7 @@ class OptionSetAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, OptionsT } -class OptionAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, OptionsTestCase): +class OptionAPITests(TestReadOnlyModelViewsetMixin, OptionsViewsetTestCase): instances = Option.objects.all() url_names = { diff --git a/rdmo/projects/tests.py b/rdmo/projects/tests.py deleted file mode 100644 index 59efb2cdb..000000000 --- a/rdmo/projects/tests.py +++ /dev/null @@ -1,251 +0,0 @@ -from django.test import TestCase -from django.utils import translation -from django.core.urlresolvers import reverse - -from test_generator.core import TestModelStringMixin -from test_generator.views import TestUpdateViewMixin, TestDeleteViewMixin, TestModelViewMixin -from test_generator.viewsets import TestModelViewsetMixin, TestReadOnlyModelViewsetMixin - -from rdmo.accounts.utils import set_group_permissions -from rdmo.questions.models import Catalog, QuestionEntity - -from .models import Project, Membership, Value - - -class ProjectsTestCase(TestCase): - - fixtures = ( - 'users.json', - 'groups.json', - 'accounts.json', - 'conditions.json', - 'domain.json', - 'options.json', - 'questions.json', - 'tasks.json', - 'views.json', - 'projects.json', - ) - - languages = ( - 'en', - ) - - users = ( - ('owner', 'owner'), - ('manager', 'manager'), - ('author', 'author'), - ('guest', 'guest'), - ('user', 'user'), - ('anonymous', None), - ) - - @classmethod - def setUpTestData(cls): - set_group_permissions() - - -class ProjectTests(TestModelViewMixin, TestReadOnlyModelViewsetMixin, TestModelStringMixin, ProjectsTestCase): - instances = Project.objects.filter(pk=1) - url_names = { - 'list_view': 'projects', - 'retrieve_view': 'project', - 'create_view': 'project_create', - 'update_view': 'project_update', - 'delete_view': 'project_delete', - 'export_view': 'project_export_xml', - 'viewset': 'internal-projects:project' - } - status_map = { - 'list_view': { - 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 302, - }, - 'retrieve_view': { - 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 403, 'anonymous': 302 - }, - 'create_view_get': { - 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 302 - }, - 'create_view_post': { - 'owner': 302, 'manager': 302, 'author': 302, 'guest': 302, 'user': 302, 'anonymous': 302 - }, - 'update_view_get': { - 'owner': 200, 'manager': 200, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'update_view_post': { - 'owner': 302, 'manager': 302, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'delete_view_get': { - 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'delete_view_post': { - 'owner': 302, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'export_view': { - 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'list_viewset': { - 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 - }, - 'retrieve_viewset': { - 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 404, 'anonymous': 403 - } - } - - def _test_export(self, username, password): - translation.activate(self.lang) - - if password: - self.client.login(username=username, password=password) - - for instance in self.instances: - url = reverse(self.url_names['export_view'], kwargs={'pk': instance.pk}) - response = self.client.get(url) - - try: - self.assertEqual(response.status_code, self.status_map['export_view'][username]) - except AssertionError: - print( - ('test', 'test_export'), - ('username', username), - ('url', url), - ('format', format), - ('status_code', response.status_code), - ('content', response.content) - ) - raise - - self.client.logout() - - -class MembershipTests(TestUpdateViewMixin, TestDeleteViewMixin, TestModelStringMixin, ProjectsTestCase): - - project_id = 1 - instances = Membership.objects.filter(project__pk=project_id) - url_names = { - 'create_view': 'membership_create', - 'update_view': 'membership_update', - 'delete_view': 'membership_delete' - } - status_map = { - 'create_view_get': { - 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'create_view_post': { - 'owner': 302, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'update_view_get': { - 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'update_view_post': { - 'owner': 302, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'delete_view_get': { - 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - }, - 'delete_view_post': { - 'owner': 302, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 - } - } - - def _test_create_view_post(self, username, password): - translation.activate(self.lang) - - if password: - self.client.login(username=username, password=password) - - for role in ['owner', 'manager', 'author', 'guest']: - url = reverse(self.url_names['create_view'], args=[self.project_id]) - data = { - 'username_or_email': 'user', - 'role': role - } - response = self.client.post(url, data) - - try: - self.assertEqual(response.status_code, self.status_map['create_view_post'][username]) - try: - Membership.objects.get(user__username='user', role=role).delete() - except Membership.DoesNotExist: - pass - except AssertionError: - print( - ('test', 'test_create_view_post'), - ('username', username), - ('url', url), - ('data', data), - ('status_code', response.status_code), - ('content', response.content) - ) - raise - - self.client.logout() - - def get_update_url_args(self, instance): - return [self.project_id, instance.pk] - - def get_delete_url_args(self, instance): - return [self.project_id, instance.pk] - - -class ValueTests(TestModelViewsetMixin, ProjectsTestCase): - - project_id = 1 - instances = Value.objects.filter(project__pk=project_id) - url_names = { - 'viewset': 'internal-projects:value' - } - status_map = { - 'list_viewset': {'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 403, 'anonymous': 403}, - 'retrieve_viewset': {'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 403, 'anonymous': 403}, - 'create_viewset': {'owner': 201, 'manager': 201, 'author': 201, 'guest': 403, 'user': 403, 'anonymous': 403}, - 'update_viewset': {'owner': 200, 'manager': 200, 'author': 200, 'guest': 403, 'user': 403, 'anonymous': 403}, - 'delete_viewset': {'owner': 204, 'manager': 204, 'author': 204, 'guest': 403, 'user': 403, 'anonymous': 403} - } - - def get_list_viewset_query_params(self): - return {'project': self.project_id} - - def get_retrieve_viewset_query_params(self, instance): - return {'project': self.project_id} - - def get_create_viewset_query_params(self): - return {'project': self.project_id, 'foo': 'bar'} - - def get_update_viewset_query_params(self, instance): - return {'project': self.project_id} - - def get_delete_viewset_query_params(self, instance): - return {'project': self.project_id} - - -class QuestionEntityTests(TestReadOnlyModelViewsetMixin, ProjectsTestCase): - - instances = QuestionEntity.objects.filter(question__parent=None) - url_names = { - 'viewset': 'internal-projects:entity' - } - status_map = { - 'list_viewset': { - 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 - }, - 'retrieve_viewset': { - 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 - } - } - - -class CatalogTests(TestReadOnlyModelViewsetMixin, ProjectsTestCase): - - instances = Catalog.objects.all() - url_names = { - 'viewset': 'internal-projects:catalog' - } - status_map = { - 'list_viewset': { - 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 - }, - 'retrieve_viewset': { - 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 - } - } diff --git a/rdmo/projects/tests/__init__.py b/rdmo/projects/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdmo/projects/tests/test_views.py b/rdmo/projects/tests/test_views.py new file mode 100644 index 000000000..3de3996bb --- /dev/null +++ b/rdmo/projects/tests/test_views.py @@ -0,0 +1,187 @@ +from django.test import TestCase +from django.core.urlresolvers import reverse + +from test_generator.core import TestModelStringMixin +from test_generator.views import TestModelViewMixin, TestViewMixin + +from rdmo.accounts.utils import set_group_permissions + +from ..models import Project, Membership + + +class ProjectsViewTestCase(TestCase): + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json', + 'conditions.json', + 'domain.json', + 'options.json', + 'questions.json', + 'tasks.json', + 'views.json', + 'projects.json', + ) + + users = ( + ('owner', 'owner'), + ('manager', 'manager'), + ('author', 'author'), + ('guest', 'guest'), + ('user', 'user'), + ('anonymous', None), + ) + + @classmethod + def setUpTestData(cls): + set_group_permissions() + + +class ProjectTests(TestModelViewMixin, TestModelStringMixin, ProjectsViewTestCase): + + instances = Project.objects.filter(pk=1) + + url_names = { + 'list_view': 'projects', + 'detail_view': 'project', + 'create_view': 'project_create', + 'update_view': 'project_update', + 'delete_view': 'project_delete', + 'export_view': 'project_export_xml', + } + + status_map = { + 'list_view': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 302, + }, + 'detail_view': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 403, 'anonymous': 302 + }, + 'create_view_get': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 302 + }, + 'create_view_post': { + 'owner': 302, 'manager': 302, 'author': 302, 'guest': 302, 'user': 302, 'anonymous': 302 + }, + 'update_view_get': { + 'owner': 200, 'manager': 200, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + }, + 'update_view_post': { + 'owner': 302, 'manager': 302, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + }, + 'delete_view_get': { + 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + }, + 'delete_view_post': { + 'owner': 302, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + }, + 'export_view': { + 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + } + } + + def _test_export(self, username): + for instance in self.instances: + + url = reverse(self.url_names['export_view'], kwargs={'pk': instance.pk}) + response = self.client.get(url) + + self.assertEqual(response.status_code, self.status_map['export_view'][username], msg=( + ('username', username), + ('url', url), + ('status_code', response.status_code), + ('content', response.content) + )) + + +class MembershipTests(TestViewMixin, TestModelStringMixin, ProjectsViewTestCase): + + project_id = 1 + instances = Membership.objects.filter(project__pk=project_id) + + url_names = { + 'create_view': 'membership_create', + 'update_view': 'membership_update', + 'delete_view': 'membership_delete' + } + + status_map = { + 'create_view_get': { + 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + }, + 'create_view_post': { + 'owner': 302, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + }, + 'update_view_get': { + 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + }, + 'update_view_post': { + 'owner': 302, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + }, + 'delete_view_get': { + 'owner': 200, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + }, + 'delete_view_post': { + 'owner': 302, 'manager': 403, 'author': 403, 'guest': 403, 'user': 403, 'anonymous': 302 + } + } + + def _test_create_view_get(self, username): + self.assert_create_view_get(username, { + 'project_id': self.project_id + }) + + def _test_create_view_post(self, username): + + for role in ['owner', 'manager', 'author', 'guest']: + + url = reverse(self.url_names['create_view'], kwargs={'project_id': self.project_id}) + data = { + 'username_or_email': 'user', + 'role': role + } + response = self.client.post(url, data) + + self.assertEqual(response.status_code, self.status_map['create_view_post'][username], msg=( + ('username', username), + ('url', url), + ('data', data), + ('status_code', response.status_code), + ('content', response.content) + )) + + try: + Membership.objects.get(user__username='user', role=role).delete() + except Membership.DoesNotExist: + pass + + def _test_update_view_get(self, username): + for instance in self.instances: + self.assert_update_view_get(username, { + 'project_id': self.project_id, + 'pk': instance.pk + }) + + def _test_update_view_post(self, username): + for instance in self.instances: + data = self.get_instance_as_dict(instance) + self.assert_update_view_post(username, { + 'project_id': self.project_id, + 'pk': instance.pk + }, data) + + def _test_delete_view_get(self, username): + for instance in self.instances: + self.assert_delete_view_get(username, { + 'project_id': self.project_id, + 'pk': instance.pk + }) + + def _test_delete_view_post(self, username): + for instance in self.instances: + self.assert_delete_view_post(username, { + 'project_id': self.project_id, + 'pk': instance.pk + }) + instance.save(update_fields=None) diff --git a/rdmo/projects/tests/test_viewsets.py b/rdmo/projects/tests/test_viewsets.py new file mode 100644 index 000000000..4aa63cd21 --- /dev/null +++ b/rdmo/projects/tests/test_viewsets.py @@ -0,0 +1,150 @@ +from django.test import TestCase + +from test_generator.core import TestModelStringMixin +from test_generator.viewsets import TestReadOnlyModelViewsetMixin + +from rdmo.accounts.utils import set_group_permissions +from rdmo.questions.models import Catalog, QuestionEntity + +from ..models import Project, Value + + +class ProjectsViewsetTestCase(TestCase): + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json', + 'conditions.json', + 'domain.json', + 'options.json', + 'questions.json', + 'tasks.json', + 'views.json', + 'projects.json', + ) + + users = ( + ('owner', 'owner'), + ('manager', 'manager'), + ('author', 'author'), + ('guest', 'guest'), + ('user', 'user'), + ('anonymous', None), + ) + + @classmethod + def setUpTestData(cls): + set_group_permissions() + + +class ProjectTests(TestReadOnlyModelViewsetMixin, TestModelStringMixin, ProjectsViewsetTestCase): + + instances = Project.objects.filter(pk=1) + + url_names = { + 'viewset': 'internal-projects:project' + } + + status_map = { + 'list_viewset': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 + }, + 'detail_viewset': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 404, 'anonymous': 403 + } + } + + +class ValueTests(ProjectsViewsetTestCase): + + project_id = 1 + instances = Value.objects.filter(project__pk=project_id) + + url_names = { + 'viewset': 'internal-projects:value' + } + + status_map = { + 'list_viewset': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 403, 'anonymous': 403 + }, + 'detail_viewset': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 403, 'anonymous': 403 + }, + 'create_viewset': { + 'owner': 201, 'manager': 201, 'author': 201, 'guest': 403, 'user': 403, 'anonymous': 403 + }, + 'update_viewset': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 403, 'user': 403, 'anonymous': 403 + }, + 'delete_viewset': { + 'owner': 204, 'manager': 204, 'author': 204, 'guest': 403, 'user': 403, 'anonymous': 403 + } + } + + def _test_list_viewset(self, username): + self.assert_list_viewset(username, { + 'project': self.project_id + }) + + def _test_create_viewset(self, username): + for instance in self.instances: + self.assert_create_viewset(username, self.get_instance_as_dict(instance), { + 'project': self.project_id + }) + + def _test_detail_viewset(self, username): + for instance in self.instances: + self.assert_detail_viewset(username, instance.pk, { + 'project': self.project_id + }) + + def _test_update_viewset(self, username): + for instance in self.instances: + self.assert_update_viewset(username, instance.pk, self.get_instance_as_dict(instance), { + 'project': self.project_id + }) + + def _test_delete_viewset(self, username): + for instance in self.instances: + self.assert_delete_viewset(username, instance.pk, { + 'project': self.project_id + }) + instance.save(update_fields=None) + + +class QuestionEntityTests(TestReadOnlyModelViewsetMixin, ProjectsViewsetTestCase): + + instances = QuestionEntity.objects.filter(question__parent=None) + + url_names = { + 'viewset': 'internal-projects:entity' + } + + status_map = { + 'list_viewset': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 + }, + 'detail_viewset': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 + } + } + + +class CatalogTests(TestReadOnlyModelViewsetMixin, ProjectsViewsetTestCase): + + instances = Catalog.objects.all() + + url_names = { + 'viewset': 'internal-projects:catalog' + } + + status_map = { + 'list_viewset': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 + }, + 'detail_viewset': { + 'owner': 200, 'manager': 200, 'author': 200, 'guest': 200, 'user': 200, 'anonymous': 403 + } + } diff --git a/rdmo/questions/tests.py b/rdmo/questions/tests.py deleted file mode 100644 index 4c38b6c07..000000000 --- a/rdmo/questions/tests.py +++ /dev/null @@ -1,222 +0,0 @@ -from django.core.urlresolvers import reverse -from django.test import TestCase - -from test_generator.views import TestListViewMixin -from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin - -from rdmo.core.testing.mixins import TestImportViewMixin -from rdmo.accounts.utils import set_group_permissions - -from .models import Catalog, Section, Subsection, QuestionEntity, Question - - -class QuestionsTestCase(TestCase): - - fixtures = ( - 'users.json', - 'groups.json', - 'accounts.json', - 'conditions.json', - 'domain.json', - 'options.json', - 'questions.json', - ) - - languages = ( - 'en', - ) - - users = ( - ('editor', 'editor'), - ('reviewer', 'reviewer'), - ('user', 'user'), - ('api', 'api'), - ('anonymous', None), - ) - - status_map = { - 'list_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, - 'export_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, - 'list_viewset': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 - }, - 'retrieve_viewset': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 - }, - 'create_viewset': { - 'editor': 201, 'reviewer': 403, 'api': 403, 'user': 403, 'anonymous': 403 - }, - 'update_viewset': { - 'editor': 200, 'reviewer': 403, 'api': 403, 'user': 403, 'anonymous': 403 - }, - 'delete_viewset': { - 'editor': 204, 'reviewer': 403, 'api': 403, 'user': 403, 'anonymous': 403 - } - } - - @classmethod - def setUpTestData(cls): - set_group_permissions() - - -class QuestionsTests(TestListViewMixin, QuestionsTestCase): - - url_names = { - 'list_view': 'catalogs' - } - - -class CatalogTests(TestModelViewsetMixin, QuestionsTestCase): - - instances = Catalog.objects.all() - url_names = { - 'viewset': 'internal-questions:catalog' - } - - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance - - -class SectionTests(TestModelViewsetMixin, QuestionsTestCase): - - instances = Section.objects.all() - url_names = { - 'viewset': 'internal-questions:section' - } - - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance - - -class SubsectionTests(TestModelViewsetMixin, QuestionsTestCase): - - instances = Subsection.objects.all() - url_names = { - 'viewset': 'internal-questions:subsection' - } - - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance - - -class QuestionSetTests(TestModelViewsetMixin, QuestionsTestCase): - - instances = QuestionEntity.objects.filter(question=None) - url_names = { - 'viewset': 'internal-questions:questionset' - } - - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance - - -class QuestionTests(TestModelViewsetMixin, QuestionsTestCase): - - instances = Question.objects.all() - url_names = { - 'viewset': 'internal-questions:question' - } - - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance - - -class WidgetTypeTests(TestListViewsetMixin, QuestionsTestCase): - - url_names = { - 'viewset': 'internal-questions:widgettype' - } - status_map = { - 'list_viewset': {'editor': 200, 'reviewer': 200, 'api': 200, 'user': 200, 'anonymous': 403} - } - - -class CatalogExportTests(QuestionsTestCase): - - instances = Catalog.objects.all() - url_names = { - 'export_view': 'questions_catalog_export' - } - export_formats = ('xml', 'html', 'rtf') - - def _test_export_detail(self, username, password): - - if password: - self.client.login(username=username, password=password) - - for instance in self.instances: - for format in self.export_formats: - url = reverse(self.url_names['export_view'], kwargs={ - 'pk': instance.pk, - 'format': format - }) - response = self.client.get(url) - - try: - self.assertEqual(response.status_code, self.status_map['export_view'][username]) - except AssertionError: - print( - ('test', 'test_export'), - ('username', username), - ('url', url), - ('format', format), - ('status_code', response.status_code), - ('content', response.content) - ) - raise - - self.client.logout() - - -class CatalogImportTests(TestImportViewMixin, TestCase): - - import_file = 'testing/xml/catalog.xml' - - -class CatalogAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, QuestionsTestCase): - - instances = Catalog.objects.all() - url_names = { - 'viewset': 'api-v1-questions:catalog' - } - - -class SectionAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, QuestionsTestCase): - - instances = Section.objects.all() - url_names = { - 'viewset': 'api-v1-questions:section' - } - - -class SubsectionAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, QuestionsTestCase): - - instances = Subsection.objects.all() - url_names = { - 'viewset': 'api-v1-questions:subsection' - } - - -class QuestionSetAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, QuestionsTestCase): - - instances = QuestionEntity.objects.filter(question=None) - url_names = { - 'viewset': 'api-v1-questions:questionset' - } - - -class QuestionAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, QuestionsTestCase): - - instances = Question.objects.all() - url_names = { - 'viewset': 'api-v1-questions:question' - } diff --git a/rdmo/questions/tests/__init__.py b/rdmo/questions/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdmo/questions/tests/test_views.py b/rdmo/questions/tests/test_views.py new file mode 100644 index 000000000..cff379ef2 --- /dev/null +++ b/rdmo/questions/tests/test_views.py @@ -0,0 +1,92 @@ +from django.core.urlresolvers import reverse +from django.test import TestCase + +from test_generator.views import TestListViewMixin + +from rdmo.core.testing.mixins import TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions + +from ..models import Catalog + + +class QuestionsViewTestCase(TestCase): + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json', + 'conditions.json', + 'domain.json', + 'options.json', + 'questions.json', + ) + + users = ( + ('editor', 'editor'), + ('reviewer', 'reviewer'), + ('user', 'user'), + ('api', 'api'), + ('anonymous', None), + ) + + status_map = { + 'list_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + }, + 'export_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + } + } + + @classmethod + def setUpTestData(cls): + set_group_permissions() + + +class QuestionsTests(TestListViewMixin, QuestionsViewTestCase): + + url_names = { + 'list_view': 'catalogs' + } + + +class CatalogExportTests(QuestionsViewTestCase): + + instances = Catalog.objects.all() + url_names = { + 'export_view': 'questions_catalog_export' + } + export_formats = ('xml', 'html', 'rtf') + + def _test_export_detail(self, username, password): + + if password: + self.client.login(username=username, password=password) + + for instance in self.instances: + for format in self.export_formats: + url = reverse(self.url_names['export_view'], kwargs={ + 'pk': instance.pk, + 'format': format + }) + response = self.client.get(url) + + try: + self.assertEqual(response.status_code, self.status_map['export_view'][username]) + except AssertionError: + print( + ('test', 'test_export'), + ('username', username), + ('url', url), + ('format', format), + ('status_code', response.status_code), + ('content', response.content) + ) + raise + + self.client.logout() + + +class CatalogImportTests(TestImportViewMixin, QuestionsViewTestCase): + + import_file = 'testing/xml/catalog.xml' diff --git a/rdmo/questions/tests/test_viewsets.py b/rdmo/questions/tests/test_viewsets.py new file mode 100644 index 000000000..c1ffaf691 --- /dev/null +++ b/rdmo/questions/tests/test_viewsets.py @@ -0,0 +1,175 @@ +from django.test import TestCase + +from test_generator.viewsets import ( + TestModelViewsetMixin, + TestListViewsetMixin, + TestReadOnlyModelViewsetMixin +) + +from rdmo.core.testing.mixins import TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions + +from ..models import Catalog, Section, Subsection, QuestionEntity, Question + + +class QuestionsViewsetTestCase(TestCase): + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json', + 'conditions.json', + 'domain.json', + 'options.json', + 'questions.json', + ) + + users = ( + ('editor', 'editor'), + ('reviewer', 'reviewer'), + ('user', 'user'), + ('api', 'api'), + ('anonymous', None), + ) + + status_map = { + 'list_viewset': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 + }, + 'detail_viewset': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 + }, + 'create_viewset': { + 'editor': 201, 'reviewer': 403, 'api': 403, 'user': 403, 'anonymous': 403 + }, + 'update_viewset': { + 'editor': 200, 'reviewer': 403, 'api': 403, 'user': 403, 'anonymous': 403 + }, + 'delete_viewset': { + 'editor': 204, 'reviewer': 403, 'api': 403, 'user': 403, 'anonymous': 403 + } + } + + @classmethod + def setUpTestData(cls): + set_group_permissions() + + +class CatalogTests(TestModelViewsetMixin, QuestionsViewsetTestCase): + + instances = Catalog.objects.all() + url_names = { + 'viewset': 'internal-questions:catalog' + } + + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + + +class SectionTests(TestModelViewsetMixin, QuestionsViewsetTestCase): + + instances = Section.objects.all() + url_names = { + 'viewset': 'internal-questions:section' + } + + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + + +class SubsectionTests(TestModelViewsetMixin, QuestionsViewsetTestCase): + + instances = Subsection.objects.all() + url_names = { + 'viewset': 'internal-questions:subsection' + } + + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + + +class QuestionSetTests(TestModelViewsetMixin, QuestionsViewsetTestCase): + + instances = QuestionEntity.objects.filter(question=None) + url_names = { + 'viewset': 'internal-questions:questionset' + } + + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + + +class QuestionTests(TestModelViewsetMixin, QuestionsViewsetTestCase): + + instances = Question.objects.all() + url_names = { + 'viewset': 'internal-questions:question' + } + + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + + +class WidgetTypeTests(TestListViewsetMixin, QuestionsViewsetTestCase): + + url_names = { + 'viewset': 'internal-questions:widgettype' + } + status_map = { + 'list_viewset': {'editor': 200, 'reviewer': 200, 'api': 200, 'user': 200, 'anonymous': 403} + } + + +class CatalogImportTests(TestImportViewMixin, TestCase): + + import_file = 'testing/xml/catalog.xml' + + +class CatalogAPITests(TestReadOnlyModelViewsetMixin, QuestionsViewsetTestCase): + + instances = Catalog.objects.all() + url_names = { + 'viewset': 'api-v1-questions:catalog' + } + + +class SectionAPITests(TestReadOnlyModelViewsetMixin, QuestionsViewsetTestCase): + + instances = Section.objects.all() + url_names = { + 'viewset': 'api-v1-questions:section' + } + + +class SubsectionAPITests(TestReadOnlyModelViewsetMixin, QuestionsViewsetTestCase): + + instances = Subsection.objects.all() + url_names = { + 'viewset': 'api-v1-questions:subsection' + } + + +class QuestionSetAPITests(TestReadOnlyModelViewsetMixin, QuestionsViewsetTestCase): + + instances = QuestionEntity.objects.filter(question=None) + url_names = { + 'viewset': 'api-v1-questions:questionset' + } + + +class QuestionAPITests(TestReadOnlyModelViewsetMixin, QuestionsViewsetTestCase): + + instances = Question.objects.all() + url_names = { + 'viewset': 'api-v1-questions:question' + } diff --git a/rdmo/tasks/tests/__init__.py b/rdmo/tasks/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdmo/tasks/tests/test_views.py b/rdmo/tasks/tests/test_views.py new file mode 100644 index 000000000..e54693fe7 --- /dev/null +++ b/rdmo/tasks/tests/test_views.py @@ -0,0 +1,58 @@ +from django.test import TestCase + +from test_generator.views import TestListViewMixin + +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions + + +class TasksViewTestCase(TestCase): + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json', + 'conditions.json', + 'domain.json', + 'options.json', + 'tasks.json', + ) + + users = ( + ('editor', 'editor'), + ('reviewer', 'reviewer'), + ('user', 'user'), + ('api', 'api'), + ('anonymous', None), + ) + + status_map = { + 'list_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + }, + 'export_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + } + } + + @classmethod + def setUpTestData(cls): + set_group_permissions() + + +class TasksTests(TestListViewMixin, TasksViewTestCase): + + url_names = { + 'list_view': 'tasks' + } + +class TasksExportTests(TestExportViewMixin, TasksViewTestCase): + + url_names = { + 'export_view': 'tasks_export' + } + + +class TasksImportTests(TestImportViewMixin, TasksViewTestCase): + + import_file = 'testing/xml/tasks.xml' diff --git a/rdmo/tasks/tests.py b/rdmo/tasks/tests/test_viewsets.py similarity index 54% rename from rdmo/tasks/tests.py rename to rdmo/tasks/tests/test_viewsets.py index 5c5109dde..4db81deb6 100644 --- a/rdmo/tasks/tests.py +++ b/rdmo/tasks/tests/test_viewsets.py @@ -1,16 +1,14 @@ from django.test import TestCase -from test_generator.views import TestListViewMixin -from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin +from test_generator.viewsets import TestModelViewsetMixin, TestReadOnlyModelViewsetMixin -from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin from rdmo.accounts.utils import set_group_permissions from rdmo.conditions.models import Condition -from .models import Task +from ..models import Task -class TasksTestCase(TestCase): +class TasksViewsetTestCase(TestCase): fixtures = ( 'users.json', @@ -22,10 +20,6 @@ class TasksTestCase(TestCase): 'tasks.json', ) - languages = ( - 'en', - ) - users = ( ('editor', 'editor'), ('reviewer', 'reviewer'), @@ -35,16 +29,10 @@ class TasksTestCase(TestCase): ) status_map = { - 'list_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, - 'export_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, 'list_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, - 'retrieve_viewset': { + 'detail_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, 'create_viewset': { @@ -63,26 +51,20 @@ def setUpTestData(cls): set_group_permissions() -class TasksTests(TestListViewMixin, TasksTestCase): - - url_names = { - 'list_view': 'tasks' - } - - -class TaskTests(TestModelViewsetMixin, TasksTestCase): +class TaskTests(TestModelViewsetMixin, TasksViewsetTestCase): instances = Task.objects.all() url_names = { 'viewset': 'internal-tasks:task' } - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) -class ConditionTests(TestListViewsetMixin, TestRetrieveViewsetMixin, TasksTestCase): +class ConditionTests(TestReadOnlyModelViewsetMixin, TasksViewsetTestCase): instances = Condition.objects.all() url_names = { @@ -90,19 +72,7 @@ class ConditionTests(TestListViewsetMixin, TestRetrieveViewsetMixin, TasksTestCa } -class TasksExportTests(TestExportViewMixin, TasksTestCase): - - url_names = { - 'export_view': 'tasks_export' - } - - -class TasksImportTests(TestImportViewMixin, TestCase): - - import_file = 'testing/xml/tasks.xml' - - -class TaskAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, TasksTestCase): +class TaskAPITests(TestReadOnlyModelViewsetMixin, TasksViewsetTestCase): instances = Task.objects.all() url_names = { diff --git a/rdmo/views/tests/__init__.py b/rdmo/views/tests/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/rdmo/views/tests/test_views.py b/rdmo/views/tests/test_views.py new file mode 100644 index 000000000..2cc28a62e --- /dev/null +++ b/rdmo/views/tests/test_views.py @@ -0,0 +1,59 @@ +from django.test import TestCase + +from test_generator.views import TestListViewMixin + +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions + + +class ViewsViewTestCase(TestCase): + + fixtures = ( + 'users.json', + 'groups.json', + 'accounts.json', + 'conditions.json', + 'domain.json', + 'options.json', + 'views.json', + ) + + users = ( + ('editor', 'editor'), + ('reviewer', 'reviewer'), + ('user', 'user'), + ('api', 'api'), + ('anonymous', None), + ) + + status_map = { + 'list_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + }, + 'export_view': { + 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 + } + } + + @classmethod + def setUpTestData(cls): + set_group_permissions() + + +class ViewsTests(TestListViewMixin, ViewsViewTestCase): + + url_names = { + 'list_view': 'views' + } + + +class ViewsExportTests(TestExportViewMixin, ViewsViewTestCase): + + url_names = { + 'export_view': 'views_export' + } + + +class ViewsImportTests(TestImportViewMixin, ViewsViewTestCase): + + import_file = 'testing/xml/views.xml' diff --git a/rdmo/views/tests.py b/rdmo/views/tests/test_viewsets.py similarity index 54% rename from rdmo/views/tests.py rename to rdmo/views/tests/test_viewsets.py index 3bb9e6d92..ba92c3cf0 100644 --- a/rdmo/views/tests.py +++ b/rdmo/views/tests/test_viewsets.py @@ -1,15 +1,13 @@ from django.test import TestCase -from test_generator.views import TestListViewMixin -from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin +from test_generator.viewsets import TestModelViewsetMixin, TestReadOnlyModelViewsetMixin -from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin from rdmo.accounts.utils import set_group_permissions -from .models import View +from ..models import View -class ViewsTestCase(TestCase): +class ViewsViewsetTestCase(TestCase): fixtures = ( 'users.json', @@ -34,16 +32,10 @@ class ViewsTestCase(TestCase): ) status_map = { - 'list_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, - 'export_view': { - 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 302 - }, 'list_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, - 'retrieve_viewset': { + 'detail_viewset': { 'editor': 200, 'reviewer': 200, 'api': 200, 'user': 403, 'anonymous': 403 }, 'create_viewset': { @@ -62,38 +54,20 @@ def setUpTestData(cls): set_group_permissions() -class ViewsTests(TestListViewMixin, ViewsTestCase): - - url_names = { - 'list_view': 'views' - } - - -class ViewTests(TestModelViewsetMixin, ViewsTestCase): +class ViewTests(TestModelViewsetMixin, ViewsViewsetTestCase): instances = View.objects.all() url_names = { 'viewset': 'internal-views:view' } - def prepare_create_instance(self, instance): - instance.key += '_new' - return instance - - -class ViewsExportTests(TestExportViewMixin, ViewsTestCase): - - url_names = { - 'export_view': 'views_export' - } - - -class ViewsImportTests(TestImportViewMixin, TestCase): - - import_file = 'testing/xml/views.xml' + def _test_create_viewset(self, username): + for instance in self.instances: + instance.key += '_new' + self.assert_create_viewset(username, self.get_instance_as_dict(instance)) -class ViewAPITests(TestListViewsetMixin, TestRetrieveViewsetMixin, ViewsTestCase): +class ViewAPITests(TestReadOnlyModelViewsetMixin, ViewsViewsetTestCase): instances = View.objects.all() url_names = { diff --git a/setup.py b/setup.py index e2eb34ef5..c9f0f6e1c 100644 --- a/setup.py +++ b/setup.py @@ -33,7 +33,7 @@ 'pypandoc==1.3.3', 'lxml==3.7.3', 'coverage', - 'django-test-generator<=0.2.1' + 'django-test-generator>=0.3.1' ], classifiers=[ 'Development Status :: 1 - Planning', diff --git a/testing/fixtures/projects.json b/testing/fixtures/projects.json index d91401d94..73906181f 100644 --- a/testing/fixtures/projects.json +++ b/testing/fixtures/projects.json @@ -1 +1,718 @@ -[{"model": "projects.project", "pk": 1, "fields": {"created": "2017-01-30T07:55:13.007Z", "updated": "2017-03-01T13:57:34.993Z", "title": "Test", "description": "", "catalog": 1}}, {"model": "projects.membership", "pk": 1, "fields": {"project": 1, "user": 1, "role": "owner"}}, {"model": "projects.membership", "pk": 2, "fields": {"project": 1, "user": 5, "role": "owner"}}, {"model": "projects.membership", "pk": 3, "fields": {"project": 1, "user": 6, "role": "manager"}}, {"model": "projects.membership", "pk": 4, "fields": {"project": 1, "user": 7, "role": "author"}}, {"model": "projects.membership", "pk": 5, "fields": {"project": 1, "user": 8, "role": "guest"}}, {"model": "projects.value", "pk": 1, "fields": {"created": "2017-04-25T14:52:59.412Z", "updated": "2017-04-25T14:52:59.412Z", "project": 1, "snapshot": null, "attribute": 3, "set_index": 0, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", "option": null}}, {"model": "projects.value", "pk": 2, "fields": {"created": "2017-04-25T14:53:03.399Z", "updated": "2017-04-25T14:53:03.399Z", "project": 1, "snapshot": null, "attribute": 4, "set_index": 0, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", "option": null}}, {"model": "projects.value", "pk": 3, "fields": {"created": "2017-04-25T14:53:05.503Z", "updated": "2017-04-25T14:53:05.503Z", "project": 1, "snapshot": null, "attribute": 8, "set_index": 0, "collection_index": 0, "text": "1", "option": null}}, {"model": "projects.value", "pk": 4, "fields": {"created": "2017-04-25T14:53:12.956Z", "updated": "2017-04-25T14:53:12.956Z", "project": 1, "snapshot": null, "attribute": 11, "set_index": 0, "collection_index": 0, "text": "Lorem ipsum", "option": 7}}, {"model": "projects.value", "pk": 5, "fields": {"created": "2017-04-25T14:53:15.855Z", "updated": "2017-04-25T14:53:15.855Z", "project": 1, "snapshot": null, "attribute": 12, "set_index": 0, "collection_index": 0, "text": "", "option": 1}}, {"model": "projects.value", "pk": 6, "fields": {"created": "2017-04-25T14:53:21.131Z", "updated": "2017-04-25T14:53:21.131Z", "project": 1, "snapshot": null, "attribute": 7, "set_index": 0, "collection_index": 0, "text": "70", "option": null}}, {"model": "projects.value", "pk": 7, "fields": {"created": "2017-04-25T14:53:30.134Z", "updated": "2017-04-25T14:53:30.134Z", "project": 1, "snapshot": null, "attribute": 9, "set_index": 0, "collection_index": 0, "text": "2017-02-28T00:00:00+01:00", "option": null}}, {"model": "projects.value", "pk": 8, "fields": {"created": "2017-04-25T14:53:40.735Z", "updated": "2017-04-25T14:53:40.735Z", "project": 1, "snapshot": null, "attribute": 21, "set_index": 0, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", "option": null}}, {"model": "projects.value", "pk": 9, "fields": {"created": "2017-04-25T14:53:40.744Z", "updated": "2017-04-25T14:53:40.744Z", "project": 1, "snapshot": null, "attribute": 21, "set_index": 0, "collection_index": 1, "text": "sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua", "option": null}}, {"model": "projects.value", "pk": 10, "fields": {"created": "2017-04-25T14:53:45.659Z", "updated": "2017-04-25T14:53:56.537Z", "project": 1, "snapshot": null, "attribute": 22, "set_index": 0, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", "option": null}}, {"model": "projects.value", "pk": 11, "fields": {"created": "2017-04-25T14:53:56.532Z", "updated": "2017-04-25T14:53:56.532Z", "project": 1, "snapshot": null, "attribute": 22, "set_index": 0, "collection_index": 1, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", "option": null}}, {"model": "projects.value", "pk": 12, "fields": {"created": "2017-04-25T14:54:01.077Z", "updated": "2017-04-25T14:54:01.077Z", "project": 1, "snapshot": null, "attribute": 13, "set_index": 0, "collection_index": 1, "text": "0", "option": null}}, {"model": "projects.value", "pk": 13, "fields": {"created": "2017-04-25T14:54:01.087Z", "updated": "2017-04-25T14:54:01.087Z", "project": 1, "snapshot": null, "attribute": 13, "set_index": 0, "collection_index": 0, "text": "1", "option": null}}, {"model": "projects.value", "pk": 14, "fields": {"created": "2017-04-25T14:54:01.088Z", "updated": "2017-04-25T14:54:01.088Z", "project": 1, "snapshot": null, "attribute": 13, "set_index": 0, "collection_index": 2, "text": "1", "option": null}}, {"model": "projects.value", "pk": 15, "fields": {"created": "2017-04-25T14:54:41.838Z", "updated": "2017-04-25T14:54:41.838Z", "project": 1, "snapshot": null, "attribute": 15, "set_index": 0, "collection_index": 2, "text": "", "option": 6}}, {"model": "projects.value", "pk": 16, "fields": {"created": "2017-04-25T14:54:41.842Z", "updated": "2017-04-25T14:54:41.842Z", "project": 1, "snapshot": null, "attribute": 15, "set_index": 0, "collection_index": 1, "text": "", "option": 5}}, {"model": "projects.value", "pk": 17, "fields": {"created": "2017-04-25T14:54:41.844Z", "updated": "2017-04-25T14:54:41.844Z", "project": 1, "snapshot": null, "attribute": 15, "set_index": 0, "collection_index": 0, "text": "", "option": 4}}, {"model": "projects.value", "pk": 18, "fields": {"created": "2017-04-25T14:54:48.745Z", "updated": "2017-04-25T14:54:48.745Z", "project": 1, "snapshot": null, "attribute": 20, "set_index": 0, "collection_index": 1, "text": "", "option": 2}}, {"model": "projects.value", "pk": 19, "fields": {"created": "2017-04-25T14:54:48.750Z", "updated": "2017-04-25T14:54:48.750Z", "project": 1, "snapshot": null, "attribute": 20, "set_index": 0, "collection_index": 2, "text": "", "option": 3}}, {"model": "projects.value", "pk": 20, "fields": {"created": "2017-04-25T14:54:48.751Z", "updated": "2017-04-25T14:54:48.751Z", "project": 1, "snapshot": null, "attribute": 20, "set_index": 0, "collection_index": 0, "text": "", "option": 1}}, {"model": "projects.value", "pk": 21, "fields": {"created": "2017-04-25T14:54:57.674Z", "updated": "2017-04-25T14:54:57.674Z", "project": 1, "snapshot": null, "attribute": 19, "set_index": 0, "collection_index": 1, "text": "50", "option": null}}, {"model": "projects.value", "pk": 22, "fields": {"created": "2017-04-25T14:54:57.682Z", "updated": "2017-04-25T14:54:57.682Z", "project": 1, "snapshot": null, "attribute": 19, "set_index": 0, "collection_index": 0, "text": "0", "option": null}}, {"model": "projects.value", "pk": 23, "fields": {"created": "2017-04-25T14:54:57.685Z", "updated": "2017-04-25T14:54:57.685Z", "project": 1, "snapshot": null, "attribute": 19, "set_index": 0, "collection_index": 2, "text": "100", "option": null}}, {"model": "projects.value", "pk": 24, "fields": {"created": "2017-04-25T14:55:06.062Z", "updated": "2017-04-25T14:55:06.062Z", "project": 1, "snapshot": null, "attribute": 16, "set_index": 0, "collection_index": 1, "text": "2017-04-02T00:00:00+02:00", "option": null}}, {"model": "projects.value", "pk": 25, "fields": {"created": "2017-04-25T14:55:06.073Z", "updated": "2017-04-25T14:55:06.073Z", "project": 1, "snapshot": null, "attribute": 16, "set_index": 0, "collection_index": 0, "text": "2017-04-01T00:00:00+02:00", "option": null}}, {"model": "projects.value", "pk": 26, "fields": {"created": "2017-04-25T14:55:06.075Z", "updated": "2017-04-25T14:55:06.075Z", "project": 1, "snapshot": null, "attribute": 16, "set_index": 0, "collection_index": 2, "text": "2017-04-03T00:00:00+02:00", "option": null}}, {"model": "projects.value", "pk": 27, "fields": {"created": "2017-04-25T14:55:11.016Z", "updated": "2017-04-25T14:55:11.016Z", "project": 1, "snapshot": null, "attribute": 14, "set_index": 0, "collection_index": 0, "text": "", "option": 4}}, {"model": "projects.value", "pk": 28, "fields": {"created": "2017-04-25T14:55:11.017Z", "updated": "2017-04-25T14:55:11.017Z", "project": 1, "snapshot": null, "attribute": 14, "set_index": 0, "collection_index": 2, "text": "", "option": 6}}, {"model": "projects.value", "pk": 29, "fields": {"created": "2017-04-25T14:55:19.847Z", "updated": "2017-04-25T14:55:19.847Z", "project": 1, "snapshot": null, "attribute": 49, "set_index": 0, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", "option": null}}, {"model": "projects.value", "pk": 30, "fields": {"created": "2017-04-25T14:55:19.853Z", "updated": "2017-04-25T14:55:19.853Z", "project": 1, "snapshot": null, "attribute": 50, "set_index": 0, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", "option": null}}, {"model": "projects.value", "pk": 31, "fields": {"created": "2017-04-25T14:55:25.443Z", "updated": "2017-04-25T14:55:42.057Z", "project": 1, "snapshot": null, "attribute": 47, "set_index": 0, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", "option": null}}, {"model": "projects.value", "pk": 32, "fields": {"created": "2017-04-25T14:55:25.449Z", "updated": "2017-04-25T14:55:42.049Z", "project": 1, "snapshot": null, "attribute": 48, "set_index": 0, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", "option": null}}, {"model": "projects.value", "pk": 33, "fields": {"created": "2017-04-25T14:55:25.450Z", "updated": "2017-04-25T14:55:25.450Z", "project": 1, "snapshot": null, "attribute": 46, "set_index": 0, "collection_index": 0, "text": "Lorem", "option": null}}, {"model": "projects.value", "pk": 34, "fields": {"created": "2017-04-25T14:55:30.120Z", "updated": "2017-04-25T14:55:42.068Z", "project": 1, "snapshot": null, "attribute": 48, "set_index": 1, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", "option": null}}, {"model": "projects.value", "pk": 35, "fields": {"created": "2017-04-25T14:55:30.124Z", "updated": "2017-04-25T14:55:42.063Z", "project": 1, "snapshot": null, "attribute": 47, "set_index": 1, "collection_index": 0, "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", "option": null}}, {"model": "projects.value", "pk": 36, "fields": {"created": "2017-04-25T14:55:30.125Z", "updated": "2017-04-25T14:55:30.125Z", "project": 1, "snapshot": null, "attribute": 46, "set_index": 1, "collection_index": 0, "text": "Ipsum", "option": null}}, {"model": "projects.value", "pk": 37, "fields": {"created": "2017-04-25T14:55:45.327Z", "updated": "2017-04-25T14:55:45.327Z", "project": 1, "snapshot": null, "attribute": 59, "set_index": 0, "collection_index": 0, "text": "1", "option": null}}, {"model": "projects.value", "pk": 38, "fields": {"created": "2017-04-25T14:55:45.330Z", "updated": "2017-04-25T14:55:45.330Z", "project": 1, "snapshot": null, "attribute": 60, "set_index": 0, "collection_index": 0, "text": "0", "option": null}}, {"model": "projects.value", "pk": 39, "fields": {"created": "2017-04-25T14:55:54.602Z", "updated": "2017-04-25T14:55:54.602Z", "project": 1, "snapshot": null, "attribute": 57, "set_index": 0, "collection_index": 0, "text": "2017-04-01T00:00:00+02:00", "option": null}}, {"model": "projects.value", "pk": 40, "fields": {"created": "2017-04-25T14:55:54.604Z", "updated": "2017-04-25T14:55:54.604Z", "project": 1, "snapshot": null, "attribute": 56, "set_index": 0, "collection_index": 0, "text": "2017-04-29T00:00:00+02:00", "option": null}}, {"model": "projects.value", "pk": 41, "fields": {"created": "2017-04-25T14:55:54.611Z", "updated": "2017-04-25T14:55:54.611Z", "project": 1, "snapshot": null, "attribute": 56, "set_index": 0, "collection_index": 1, "text": "2017-04-30T00:00:00+02:00", "option": null}}, {"model": "projects.value", "pk": 42, "fields": {"created": "2017-04-25T14:56:04.838Z", "updated": "2017-04-25T14:56:04.838Z", "project": 1, "snapshot": null, "attribute": 54, "set_index": 0, "collection_index": 0, "text": "2017-04-29T00:00:00+02:00", "option": null}}, {"model": "projects.value", "pk": 43, "fields": {"created": "2017-04-25T14:56:04.847Z", "updated": "2017-04-25T14:56:04.847Z", "project": 1, "snapshot": null, "attribute": 55, "set_index": 0, "collection_index": 0, "text": "2017-05-01T00:00:00+02:00", "option": null}}, {"model": "projects.value", "pk": 44, "fields": {"created": "2017-04-25T14:56:04.850Z", "updated": "2017-04-25T14:56:04.850Z", "project": 1, "snapshot": null, "attribute": 54, "set_index": 0, "collection_index": 1, "text": "2017-04-30T00:00:00+02:00", "option": null}}] \ No newline at end of file +[ + { + "model": "projects.project", + "pk": 1, + "fields": { + "created": "2017-01-30T07:55:13.007Z", + "updated": "2017-03-01T13:57:34.993Z", + "title": "Test", + "description": "", + "catalog": 1 + } + }, + { + "model": "projects.membership", + "pk": 1, + "fields": { + "project": 1, + "user": 1, + "role": "owner" + } + }, + { + "model": "projects.membership", + "pk": 2, + "fields": { + "project": 1, + "user": 5, + "role": "owner" + } + }, + { + "model": "projects.membership", + "pk": 3, + "fields": { + "project": 1, + "user": 6, + "role": "manager" + } + }, + { + "model": "projects.membership", + "pk": 4, + "fields": { + "project": 1, + "user": 7, + "role": "author" + } + }, + { + "model": "projects.membership", + "pk": 5, + "fields": { + "project": 1, + "user": 8, + "role": "guest" + } + }, + { + "model": "projects.value", + "pk": 1, + "fields": { + "created": "2017-04-25T14:52:59.412Z", + "updated": "2017-04-25T14:52:59.412Z", + "project": 1, + "snapshot": null, + "attribute": 3, + "set_index": 0, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", + "option": null + } + }, + { + "model": "projects.value", + "pk": 2, + "fields": { + "created": "2017-04-25T14:53:03.399Z", + "updated": "2017-04-25T14:53:03.399Z", + "project": 1, + "snapshot": null, + "attribute": 4, + "set_index": 0, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", + "option": null + } + }, + { + "model": "projects.value", + "pk": 3, + "fields": { + "created": "2017-04-25T14:53:05.503Z", + "updated": "2017-04-25T14:53:05.503Z", + "project": 1, + "snapshot": null, + "attribute": 8, + "set_index": 0, + "collection_index": 0, + "text": "1", + "option": null + } + }, + { + "model": "projects.value", + "pk": 4, + "fields": { + "created": "2017-04-25T14:53:12.956Z", + "updated": "2017-04-25T14:53:12.956Z", + "project": 1, + "snapshot": null, + "attribute": 11, + "set_index": 0, + "collection_index": 0, + "text": "Lorem ipsum", + "option": 7 + } + }, + { + "model": "projects.value", + "pk": 5, + "fields": { + "created": "2017-04-25T14:53:15.855Z", + "updated": "2017-04-25T14:53:15.855Z", + "project": 1, + "snapshot": null, + "attribute": 12, + "set_index": 0, + "collection_index": 0, + "text": "", + "option": 1 + } + }, + { + "model": "projects.value", + "pk": 6, + "fields": { + "created": "2017-04-25T14:53:21.131Z", + "updated": "2017-04-25T14:53:21.131Z", + "project": 1, + "snapshot": null, + "attribute": 7, + "set_index": 0, + "collection_index": 0, + "text": "70", + "option": null + } + }, + { + "model": "projects.value", + "pk": 7, + "fields": { + "created": "2017-04-25T14:53:30.134Z", + "updated": "2017-04-25T14:53:30.134Z", + "project": 1, + "snapshot": null, + "attribute": 9, + "set_index": 0, + "collection_index": 0, + "text": "2017-02-28T00:00:00+01:00", + "option": null + } + }, + { + "model": "projects.value", + "pk": 8, + "fields": { + "created": "2017-04-25T14:53:40.735Z", + "updated": "2017-04-25T14:53:40.735Z", + "project": 1, + "snapshot": null, + "attribute": 21, + "set_index": 0, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", + "option": null + } + }, + { + "model": "projects.value", + "pk": 9, + "fields": { + "created": "2017-04-25T14:53:40.744Z", + "updated": "2017-04-25T14:53:40.744Z", + "project": 1, + "snapshot": null, + "attribute": 21, + "set_index": 0, + "collection_index": 1, + "text": "sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua", + "option": null + } + }, + { + "model": "projects.value", + "pk": 10, + "fields": { + "created": "2017-04-25T14:53:45.659Z", + "updated": "2017-04-25T14:53:56.537Z", + "project": 1, + "snapshot": null, + "attribute": 22, + "set_index": 0, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", + "option": null + } + }, + { + "model": "projects.value", + "pk": 11, + "fields": { + "created": "2017-04-25T14:53:56.532Z", + "updated": "2017-04-25T14:53:56.532Z", + "project": 1, + "snapshot": null, + "attribute": 22, + "set_index": 0, + "collection_index": 1, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", + "option": null + } + }, + { + "model": "projects.value", + "pk": 12, + "fields": { + "created": "2017-04-25T14:54:01.077Z", + "updated": "2017-04-25T14:54:01.077Z", + "project": 1, + "snapshot": null, + "attribute": 13, + "set_index": 0, + "collection_index": 1, + "text": "0", + "option": null + } + }, + { + "model": "projects.value", + "pk": 13, + "fields": { + "created": "2017-04-25T14:54:01.087Z", + "updated": "2017-04-25T14:54:01.087Z", + "project": 1, + "snapshot": null, + "attribute": 13, + "set_index": 0, + "collection_index": 0, + "text": "1", + "option": null + } + }, + { + "model": "projects.value", + "pk": 14, + "fields": { + "created": "2017-04-25T14:54:01.088Z", + "updated": "2017-04-25T14:54:01.088Z", + "project": 1, + "snapshot": null, + "attribute": 13, + "set_index": 0, + "collection_index": 2, + "text": "1", + "option": null + } + }, + { + "model": "projects.value", + "pk": 15, + "fields": { + "created": "2017-04-25T14:54:41.838Z", + "updated": "2017-04-25T14:54:41.838Z", + "project": 1, + "snapshot": null, + "attribute": 15, + "set_index": 0, + "collection_index": 2, + "text": "", + "option": 6 + } + }, + { + "model": "projects.value", + "pk": 16, + "fields": { + "created": "2017-04-25T14:54:41.842Z", + "updated": "2017-04-25T14:54:41.842Z", + "project": 1, + "snapshot": null, + "attribute": 15, + "set_index": 0, + "collection_index": 1, + "text": "", + "option": 5 + } + }, + { + "model": "projects.value", + "pk": 17, + "fields": { + "created": "2017-04-25T14:54:41.844Z", + "updated": "2017-04-25T14:54:41.844Z", + "project": 1, + "snapshot": null, + "attribute": 15, + "set_index": 0, + "collection_index": 0, + "text": "", + "option": 4 + } + }, + { + "model": "projects.value", + "pk": 18, + "fields": { + "created": "2017-04-25T14:54:48.745Z", + "updated": "2017-04-25T14:54:48.745Z", + "project": 1, + "snapshot": null, + "attribute": 20, + "set_index": 0, + "collection_index": 1, + "text": "", + "option": 2 + } + }, + { + "model": "projects.value", + "pk": 19, + "fields": { + "created": "2017-04-25T14:54:48.750Z", + "updated": "2017-04-25T14:54:48.750Z", + "project": 1, + "snapshot": null, + "attribute": 20, + "set_index": 0, + "collection_index": 2, + "text": "", + "option": 3 + } + }, + { + "model": "projects.value", + "pk": 20, + "fields": { + "created": "2017-04-25T14:54:48.751Z", + "updated": "2017-04-25T14:54:48.751Z", + "project": 1, + "snapshot": null, + "attribute": 20, + "set_index": 0, + "collection_index": 0, + "text": "", + "option": 1 + } + }, + { + "model": "projects.value", + "pk": 21, + "fields": { + "created": "2017-04-25T14:54:57.674Z", + "updated": "2017-04-25T14:54:57.674Z", + "project": 1, + "snapshot": null, + "attribute": 19, + "set_index": 0, + "collection_index": 1, + "text": "50", + "option": null + } + }, + { + "model": "projects.value", + "pk": 22, + "fields": { + "created": "2017-04-25T14:54:57.682Z", + "updated": "2017-04-25T14:54:57.682Z", + "project": 1, + "snapshot": null, + "attribute": 19, + "set_index": 0, + "collection_index": 0, + "text": "0", + "option": null + } + }, + { + "model": "projects.value", + "pk": 23, + "fields": { + "created": "2017-04-25T14:54:57.685Z", + "updated": "2017-04-25T14:54:57.685Z", + "project": 1, + "snapshot": null, + "attribute": 19, + "set_index": 0, + "collection_index": 2, + "text": "100", + "option": null + } + }, + { + "model": "projects.value", + "pk": 24, + "fields": { + "created": "2017-04-25T14:55:06.062Z", + "updated": "2017-04-25T14:55:06.062Z", + "project": 1, + "snapshot": null, + "attribute": 16, + "set_index": 0, + "collection_index": 1, + "text": "2017-04-02T00:00:00+02:00", + "option": null + } + }, + { + "model": "projects.value", + "pk": 25, + "fields": { + "created": "2017-04-25T14:55:06.073Z", + "updated": "2017-04-25T14:55:06.073Z", + "project": 1, + "snapshot": null, + "attribute": 16, + "set_index": 0, + "collection_index": 0, + "text": "2017-04-01T00:00:00+02:00", + "option": null + } + }, + { + "model": "projects.value", + "pk": 26, + "fields": { + "created": "2017-04-25T14:55:06.075Z", + "updated": "2017-04-25T14:55:06.075Z", + "project": 1, + "snapshot": null, + "attribute": 16, + "set_index": 0, + "collection_index": 2, + "text": "2017-04-03T00:00:00+02:00", + "option": null + } + }, + { + "model": "projects.value", + "pk": 27, + "fields": { + "created": "2017-04-25T14:55:11.016Z", + "updated": "2017-04-25T14:55:11.016Z", + "project": 1, + "snapshot": null, + "attribute": 14, + "set_index": 0, + "collection_index": 0, + "text": "", + "option": 4 + } + }, + { + "model": "projects.value", + "pk": 28, + "fields": { + "created": "2017-04-25T14:55:11.017Z", + "updated": "2017-04-25T14:55:11.017Z", + "project": 1, + "snapshot": null, + "attribute": 14, + "set_index": 0, + "collection_index": 2, + "text": "", + "option": 6 + } + }, + { + "model": "projects.value", + "pk": 29, + "fields": { + "created": "2017-04-25T14:55:19.847Z", + "updated": "2017-04-25T14:55:19.847Z", + "project": 1, + "snapshot": null, + "attribute": 49, + "set_index": 0, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", + "option": null + } + }, + { + "model": "projects.value", + "pk": 30, + "fields": { + "created": "2017-04-25T14:55:19.853Z", + "updated": "2017-04-25T14:55:19.853Z", + "project": 1, + "snapshot": null, + "attribute": 50, + "set_index": 0, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", + "option": null + } + }, + { + "model": "projects.value", + "pk": 31, + "fields": { + "created": "2017-04-25T14:55:25.443Z", + "updated": "2017-04-25T14:55:42.057Z", + "project": 1, + "snapshot": null, + "attribute": 47, + "set_index": 0, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", + "option": null + } + }, + { + "model": "projects.value", + "pk": 32, + "fields": { + "created": "2017-04-25T14:55:25.449Z", + "updated": "2017-04-25T14:55:42.049Z", + "project": 1, + "snapshot": null, + "attribute": 48, + "set_index": 0, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", + "option": null + } + }, + { + "model": "projects.value", + "pk": 33, + "fields": { + "created": "2017-04-25T14:55:25.450Z", + "updated": "2017-04-25T14:55:25.450Z", + "project": 1, + "snapshot": null, + "attribute": 46, + "set_index": 0, + "collection_index": 0, + "text": "Lorem", + "option": null + } + }, + { + "model": "projects.value", + "pk": 34, + "fields": { + "created": "2017-04-25T14:55:30.120Z", + "updated": "2017-04-25T14:55:42.068Z", + "project": 1, + "snapshot": null, + "attribute": 48, + "set_index": 1, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est. Lorem ipsum dolor sit amet.", + "option": null + } + }, + { + "model": "projects.value", + "pk": 35, + "fields": { + "created": "2017-04-25T14:55:30.124Z", + "updated": "2017-04-25T14:55:42.063Z", + "project": 1, + "snapshot": null, + "attribute": 47, + "set_index": 1, + "collection_index": 0, + "text": "Lorem ipsum dolor sit amet, consetetur sadipscing elitr", + "option": null + } + }, + { + "model": "projects.value", + "pk": 36, + "fields": { + "created": "2017-04-25T14:55:30.125Z", + "updated": "2017-04-25T14:55:30.125Z", + "project": 1, + "snapshot": null, + "attribute": 46, + "set_index": 1, + "collection_index": 0, + "text": "Ipsum", + "option": null + } + }, + { + "model": "projects.value", + "pk": 37, + "fields": { + "created": "2017-04-25T14:55:45.327Z", + "updated": "2017-04-25T14:55:45.327Z", + "project": 1, + "snapshot": null, + "attribute": 59, + "set_index": 0, + "collection_index": 0, + "text": "1", + "option": null + } + }, + { + "model": "projects.value", + "pk": 38, + "fields": { + "created": "2017-04-25T14:55:45.330Z", + "updated": "2017-04-25T14:55:45.330Z", + "project": 1, + "snapshot": null, + "attribute": 60, + "set_index": 0, + "collection_index": 0, + "text": "0", + "option": null + } + }, + { + "model": "projects.value", + "pk": 39, + "fields": { + "created": "2017-04-25T14:55:54.602Z", + "updated": "2017-04-25T14:55:54.602Z", + "project": 1, + "snapshot": null, + "attribute": 57, + "set_index": 0, + "collection_index": 0, + "text": "2017-04-01T00:00:00+02:00", + "option": null + } + }, + { + "model": "projects.value", + "pk": 40, + "fields": { + "created": "2017-04-25T14:55:54.604Z", + "updated": "2017-04-25T14:55:54.604Z", + "project": 1, + "snapshot": null, + "attribute": 56, + "set_index": 0, + "collection_index": 0, + "text": "2017-04-29T00:00:00+02:00", + "option": null + } + }, + { + "model": "projects.value", + "pk": 41, + "fields": { + "created": "2017-04-25T14:55:54.611Z", + "updated": "2017-04-25T14:55:54.611Z", + "project": 1, + "snapshot": null, + "attribute": 56, + "set_index": 0, + "collection_index": 1, + "text": "2017-04-30T00:00:00+02:00", + "option": null + } + }, + { + "model": "projects.value", + "pk": 42, + "fields": { + "created": "2017-04-25T14:56:04.838Z", + "updated": "2017-04-25T14:56:04.838Z", + "project": 1, + "snapshot": null, + "attribute": 54, + "set_index": 0, + "collection_index": 0, + "text": "2017-04-29T00:00:00+02:00", + "option": null + } + }, + { + "model": "projects.value", + "pk": 43, + "fields": { + "created": "2017-04-25T14:56:04.847Z", + "updated": "2017-04-25T14:56:04.847Z", + "project": 1, + "snapshot": null, + "attribute": 55, + "set_index": 0, + "collection_index": 0, + "text": "2017-05-01T00:00:00+02:00", + "option": null + } + }, + { + "model": "projects.value", + "pk": 44, + "fields": { + "created": "2017-04-25T14:56:04.850Z", + "updated": "2017-04-25T14:56:04.850Z", + "project": 1, + "snapshot": null, + "attribute": 54, + "set_index": 0, + "collection_index": 1, + "text": "2017-04-30T00:00:00+02:00", + "option": null + } + } +] \ No newline at end of file diff --git a/testing/runtests.py b/testing/runtests.py index d7b94c37b..52ed03a65 100644 --- a/testing/runtests.py +++ b/testing/runtests.py @@ -10,6 +10,7 @@ def main(): parser = argparse.ArgumentParser(description='Run the tests for RDMO.') + parser.add_argument('test_label', nargs='*', help='Module paths to test; can be modulename, modulename.TestCase or modulename.TestCase.test_method') parser.add_argument('-k', '--keepdb', action='store_true', help='Preserves the test database between runs.') args = parser.parse_args() @@ -18,7 +19,7 @@ def main(): django.setup() TestRunner = get_runner(settings) - failures = TestRunner(verbosity=1, keepdb=args.keepdb).run_tests([]) + failures = TestRunner(verbosity=1, keepdb=args.keepdb).run_tests(args.test_label) sys.exit(bool(failures)) From 4c4a966a76c794d69a7d240952e0ded14d1178d8 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Thu, 24 Aug 2017 20:31:29 +0200 Subject: [PATCH 09/34] fix tests --- rdmo/projects/tests/test_viewsets.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rdmo/projects/tests/test_viewsets.py b/rdmo/projects/tests/test_viewsets.py index 4aa63cd21..bcf7ef580 100644 --- a/rdmo/projects/tests/test_viewsets.py +++ b/rdmo/projects/tests/test_viewsets.py @@ -1,7 +1,7 @@ from django.test import TestCase -from test_generator.core import TestModelStringMixin -from test_generator.viewsets import TestReadOnlyModelViewsetMixin +from test_generator.core import TestSingleObjectMixin, TestModelStringMixin +from test_generator.viewsets import TestReadOnlyModelViewsetMixin, TestViewsetMixin from rdmo.accounts.utils import set_group_permissions from rdmo.questions.models import Catalog, QuestionEntity @@ -56,7 +56,7 @@ class ProjectTests(TestReadOnlyModelViewsetMixin, TestModelStringMixin, Projects } -class ValueTests(ProjectsViewsetTestCase): +class ValueTests(TestViewsetMixin, TestSingleObjectMixin, ProjectsViewsetTestCase): project_id = 1 instances = Value.objects.filter(project__pk=project_id) @@ -84,31 +84,31 @@ class ValueTests(ProjectsViewsetTestCase): } def _test_list_viewset(self, username): - self.assert_list_viewset(username, { + self.assert_list_viewset(username, query_params={ 'project': self.project_id }) def _test_create_viewset(self, username): for instance in self.instances: - self.assert_create_viewset(username, self.get_instance_as_dict(instance), { + self.assert_create_viewset(username, self.get_instance_as_dict(instance), query_params={ 'project': self.project_id }) def _test_detail_viewset(self, username): for instance in self.instances: - self.assert_detail_viewset(username, instance.pk, { + self.assert_detail_viewset(username, instance.pk, query_params={ 'project': self.project_id }) def _test_update_viewset(self, username): for instance in self.instances: - self.assert_update_viewset(username, instance.pk, self.get_instance_as_dict(instance), { + self.assert_update_viewset(username, instance.pk, self.get_instance_as_dict(instance), query_params={ 'project': self.project_id }) def _test_delete_viewset(self, username): for instance in self.instances: - self.assert_delete_viewset(username, instance.pk, { + self.assert_delete_viewset(username, instance.pk, query_params={ 'project': self.project_id }) instance.save(update_fields=None) From 5c02b0c57a59c936c614e8cae228d62ce8f88617 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Sat, 26 Aug 2017 12:09:37 +0200 Subject: [PATCH 10/34] fix tests --- rdmo/conditions/tests/test_viewsets.py | 2 +- rdmo/domain/tests/test_viewsets.py | 12 ++++++++---- rdmo/options/tests/test_viewsets.py | 4 ++-- rdmo/projects/tests/test_viewsets.py | 14 ++++++++++---- rdmo/questions/tests/test_viewsets.py | 10 +++++----- rdmo/tasks/tests/test_viewsets.py | 2 +- rdmo/views/tests/test_viewsets.py | 2 +- 7 files changed, 28 insertions(+), 18 deletions(-) diff --git a/rdmo/conditions/tests/test_viewsets.py b/rdmo/conditions/tests/test_viewsets.py index c35be9958..406205564 100644 --- a/rdmo/conditions/tests/test_viewsets.py +++ b/rdmo/conditions/tests/test_viewsets.py @@ -64,7 +64,7 @@ class ConditionTests(TestModelViewsetMixin, ConditionsViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class AttributeTests(TestListViewsetMixin, ConditionsViewsetTestCase): diff --git a/rdmo/domain/tests/test_viewsets.py b/rdmo/domain/tests/test_viewsets.py index 83050e360..9501fa858 100644 --- a/rdmo/domain/tests/test_viewsets.py +++ b/rdmo/domain/tests/test_viewsets.py @@ -70,11 +70,13 @@ class AttributeEntityTests(TestModelViewsetMixin, DomainViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) def _test_delete_viewset(self, username): for instance in self.instances: - self.assert_delete_viewset(username, instance.pk) + self.assert_delete_viewset(username, kwargs={ + 'pk': instance.pk + }) class AttributeTests(TestModelViewsetMixin, DomainViewsetTestCase): @@ -87,11 +89,13 @@ class AttributeTests(TestModelViewsetMixin, DomainViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) def _test_delete_viewset(self, username): for instance in self.instances: - self.assert_delete_viewset(username, instance.pk) + self.assert_delete_viewset(username, kwargs={ + 'pk': instance.pk + }) class RangeTests(TestListViewsetMixin, TestDetailViewsetMixin, TestUpdateViewsetMixin, TestDeleteViewsetMixin, DomainViewsetTestCase): diff --git a/rdmo/options/tests/test_viewsets.py b/rdmo/options/tests/test_viewsets.py index 47bad4df9..91bfadb6f 100644 --- a/rdmo/options/tests/test_viewsets.py +++ b/rdmo/options/tests/test_viewsets.py @@ -61,7 +61,7 @@ class OptionSetTests(TestModelViewsetMixin, OptionsViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class OptionTests(TestModelViewsetMixin, OptionsViewsetTestCase): @@ -74,7 +74,7 @@ class OptionTests(TestModelViewsetMixin, OptionsViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class ConditionTests(TestReadOnlyModelViewsetMixin, OptionsViewsetTestCase): diff --git a/rdmo/projects/tests/test_viewsets.py b/rdmo/projects/tests/test_viewsets.py index bcf7ef580..ae3838e0e 100644 --- a/rdmo/projects/tests/test_viewsets.py +++ b/rdmo/projects/tests/test_viewsets.py @@ -90,25 +90,31 @@ def _test_list_viewset(self, username): def _test_create_viewset(self, username): for instance in self.instances: - self.assert_create_viewset(username, self.get_instance_as_dict(instance), query_params={ + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance), query_params={ 'project': self.project_id }) def _test_detail_viewset(self, username): for instance in self.instances: - self.assert_detail_viewset(username, instance.pk, query_params={ + self.assert_detail_viewset(username, kwargs={ + 'pk': instance.pk + }, query_params={ 'project': self.project_id }) def _test_update_viewset(self, username): for instance in self.instances: - self.assert_update_viewset(username, instance.pk, self.get_instance_as_dict(instance), query_params={ + self.assert_update_viewset(username, kwargs={ + 'pk': instance.pk + }, data=self.get_instance_as_dict(instance), query_params={ 'project': self.project_id }) def _test_delete_viewset(self, username): for instance in self.instances: - self.assert_delete_viewset(username, instance.pk, query_params={ + self.assert_delete_viewset(username, kwargs={ + 'pk': instance.pk + }, query_params={ 'project': self.project_id }) instance.save(update_fields=None) diff --git a/rdmo/questions/tests/test_viewsets.py b/rdmo/questions/tests/test_viewsets.py index c1ffaf691..019dc3fb3 100644 --- a/rdmo/questions/tests/test_viewsets.py +++ b/rdmo/questions/tests/test_viewsets.py @@ -65,7 +65,7 @@ class CatalogTests(TestModelViewsetMixin, QuestionsViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class SectionTests(TestModelViewsetMixin, QuestionsViewsetTestCase): @@ -78,7 +78,7 @@ class SectionTests(TestModelViewsetMixin, QuestionsViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class SubsectionTests(TestModelViewsetMixin, QuestionsViewsetTestCase): @@ -91,7 +91,7 @@ class SubsectionTests(TestModelViewsetMixin, QuestionsViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class QuestionSetTests(TestModelViewsetMixin, QuestionsViewsetTestCase): @@ -104,7 +104,7 @@ class QuestionSetTests(TestModelViewsetMixin, QuestionsViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class QuestionTests(TestModelViewsetMixin, QuestionsViewsetTestCase): @@ -117,7 +117,7 @@ class QuestionTests(TestModelViewsetMixin, QuestionsViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class WidgetTypeTests(TestListViewsetMixin, QuestionsViewsetTestCase): diff --git a/rdmo/tasks/tests/test_viewsets.py b/rdmo/tasks/tests/test_viewsets.py index 4db81deb6..4abe22544 100644 --- a/rdmo/tasks/tests/test_viewsets.py +++ b/rdmo/tasks/tests/test_viewsets.py @@ -61,7 +61,7 @@ class TaskTests(TestModelViewsetMixin, TasksViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class ConditionTests(TestReadOnlyModelViewsetMixin, TasksViewsetTestCase): diff --git a/rdmo/views/tests/test_viewsets.py b/rdmo/views/tests/test_viewsets.py index ba92c3cf0..6856d7d01 100644 --- a/rdmo/views/tests/test_viewsets.py +++ b/rdmo/views/tests/test_viewsets.py @@ -64,7 +64,7 @@ class ViewTests(TestModelViewsetMixin, ViewsViewsetTestCase): def _test_create_viewset(self, username): for instance in self.instances: instance.key += '_new' - self.assert_create_viewset(username, self.get_instance_as_dict(instance)) + self.assert_create_viewset(username, data=self.get_instance_as_dict(instance)) class ViewAPITests(TestReadOnlyModelViewsetMixin, ViewsViewsetTestCase): From 2e4362263258eb8f71b5bc7725c58b4d25104fed Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 6 Sep 2017 11:38:22 +0200 Subject: [PATCH 11/34] fix deploy script --- rdmo/core/management/commands/deploy.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rdmo/core/management/commands/deploy.py b/rdmo/core/management/commands/deploy.py index eddcdd7ea..d8905f0c9 100644 --- a/rdmo/core/management/commands/deploy.py +++ b/rdmo/core/management/commands/deploy.py @@ -9,4 +9,4 @@ class Command(BaseCommand): def handle(self, *args, **options): call_command('collectstatic', '--noinput') - subprocess.call(['touch', 'rdmo/wsgi.py']) + subprocess.call(['touch', 'config/wsgi.py']) From a3f17fa3003b03f9d6a223aaa3a437a9248ffb56 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Fri, 29 Sep 2017 15:43:18 +0200 Subject: [PATCH 12/34] remove bower dependency --- .../templates/conditions/conditions.html | 7 +- .../commands/download_vendor_files.py | 48 +++++++ rdmo/core/settings.py | 121 ++++++++++++++++-- rdmo/core/templates/core/base_head.html | 8 +- rdmo/core/templatetags/core_tags.py | 45 +++++++ rdmo/domain/templates/domain/domain.html | 7 +- rdmo/options/templates/options/options.html | 7 +- .../templates/projects/project_questions.html | 17 +-- rdmo/questions/serializers/nested.py | 4 +- .../templates/questions/catalogs.html | 8 +- rdmo/tasks/templates/tasks/tasks.html | 8 +- rdmo/views/templates/views/views.html | 11 +- setup.py | 1 - 13 files changed, 247 insertions(+), 45 deletions(-) create mode 100644 rdmo/core/management/commands/download_vendor_files.py diff --git a/rdmo/conditions/templates/conditions/conditions.html b/rdmo/conditions/templates/conditions/conditions.html index 832921491..5ac97d97e 100644 --- a/rdmo/conditions/templates/conditions/conditions.html +++ b/rdmo/conditions/templates/conditions/conditions.html @@ -2,18 +2,21 @@ {% load staticfiles %} {% load compress %} {% load i18n %} +{% load core_tags %} {% block head %} + {% vendor 'angular' %} + {% compress css %} {% endcompress %} - - + {% compress js %} + {% endcompress %} {% endblock %} {% block bodyattr %} ng-app="conditions" ng-controller="ConditionsController" {% endblock %} diff --git a/rdmo/core/management/commands/download_vendor_files.py b/rdmo/core/management/commands/download_vendor_files.py new file mode 100644 index 000000000..a06f7c03a --- /dev/null +++ b/rdmo/core/management/commands/download_vendor_files.py @@ -0,0 +1,48 @@ +import base64 +import hashlib +import os + +import requests + +from django.conf import settings +from django.core.management.base import BaseCommand + + +class Command(BaseCommand): + + def handle(self, *args, **options): + + for key, vendor_conf in settings.VENDOR.items(): + for file_type in ['js', 'css', 'img', 'font']: + if file_type in vendor_conf: + for file in vendor_conf[file_type]: + # get the directory and the file_name + path_tokens = ['vendor', key] + os.path.normpath(file['path']).split(os.path.sep) + directory = os.path.join(*path_tokens[:-1]) + file_name = os.path.join(*path_tokens) + + # create the needed diredtories + try: + os.makedirs(directory) + except OSError: + pass + + # get the full url of the file + url = requests.compat.urljoin(vendor_conf['url'], file['path']) + + print('%s -> %s' % (url, file_name)) + + # fetch the file from the cdn + response = requests.get(url) + response.raise_for_status() + with open(file_name, 'wb') as f: + f.write(response.content) + + # check the intergrety of the file if a SRI was supplied + if 'sri' in file: + algorithm, file_hash = file['sri'].split('-') + + h = hashlib.new(algorithm) + h.update(open(file_name, 'rb').read()) + if base64.b64encode(h.digest()).decode() != file_hash: + raise Exception('Subresource Integrity (SRI) failed for %s' % file_name) diff --git a/rdmo/core/settings.py b/rdmo/core/settings.py index 4fc191882..93206eb38 100644 --- a/rdmo/core/settings.py +++ b/rdmo/core/settings.py @@ -25,7 +25,6 @@ 'widget_tweaks', 'markdown', 'compressor', - 'djangobower', 'django_extensions', 'mptt', 'rules' @@ -120,16 +119,6 @@ 'djangobower.finders.BowerFinder', ) -BOWER_INSTALLED_APPS = ( - "angular#~1.5.8", - "bootstrap#~3.3.7", - "angular-resource#~1.5.8", - "codemirror#~5.18.2", - "components-font-awesome#~4.6.3", - "bootstrap-datepicker#~1.6.4", - "moment#~2.14.1" -) - CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', @@ -175,3 +164,113 @@ ) DEFAULT_URI_PREFIX = 'http://example.com/terms' + +VENDOR_CDN = True + +VENDOR = { + 'jquery': { + 'url': 'https://code.jquery.com/', + 'js': [ + { + 'path': 'jquery-3.2.1.min.js', + 'sri': 'sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=', + } + ] + }, + 'bootstrap': { + 'url': 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/', + 'js': [ + { + 'path': 'js/bootstrap.min.js', + 'sri': 'sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa', + } + ], + 'css': [ + { + 'path': 'css/bootstrap.min.css', + 'sri': 'sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u', + } + ] + }, + 'bootstrap-datepicker': { + 'url': 'https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.7.1/', + 'css': [ + { + 'path': 'css/bootstrap-datepicker.min.css' + } + ], + 'js': [ + { + 'path': 'js/bootstrap-datepicker.min.js' + } + ] + }, + 'font-awesome': { + 'url': 'https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/', + 'css': [ + { + 'path': 'css/font-awesome.min.css' + } + ], + 'font': [ + { + 'path': 'fonts/fontawesome-webfont.eot' + }, + { + 'path': 'fonts/fontawesome-webfont.woff2' + }, + { + 'path': 'fonts/fontawesome-webfont.woff' + }, + { + 'path': 'fonts/fontawesome-webfont.ttf' + }, + { + 'path': 'fonts/fontawesome-webfont.svg' + } + ] + }, + 'angular': { + 'url': 'https://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/', + 'js': [ + { + 'path': 'angular.min.js' + }, + { + 'path': 'angular-resource.min.js' + } + ] + }, + 'moment': { + 'url': 'https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/', + 'js': [ + { + 'path': 'moment.min.js', + 'sri': 'sha256-1hjUhpc44NwiNg8OwMu2QzJXhD8kcj+sJA3aCQZoUjg=' + } + ] + }, + 'codemirror': { + 'url': 'https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.29.0/', + 'js': [ + { + 'path': 'codemirror.min.js', + 'sri': 'sha256-0LRLvWWVXwt0eH0/Bzd0PHICg/bSMDIe5sXgaDSpZaA=' + }, + { + 'path': 'addon/mode/overlay.min.js', + 'sri': 'sha256-ffWkw3Pn4ieMygm1vwdRKcMtBJ6E6kuBi8GlVVPXWEs=' + }, + { + 'path': 'mode/django/django.min.js', + 'sri': 'sha256-6hO1TjC+3W73p+kXnCqcHVjfRa4KMdG7hvWencnu0XM=' + } + ], + 'css': [ + { + 'path': 'codemirror.min.css', + 'sri': 'sha256-wluO/w4cnorJpS0JmcdTSYzwdb5E6u045qa4Ervfb1k=' + } + ] + } +} diff --git a/rdmo/core/templates/core/base_head.html b/rdmo/core/templates/core/base_head.html index 5946fc7bc..eaa524a22 100644 --- a/rdmo/core/templates/core/base_head.html +++ b/rdmo/core/templates/core/base_head.html @@ -15,8 +15,9 @@ - - + {% vendor 'jquery' %} + {% vendor 'bootstrap' %} + {% vendor 'font-awesome' %} {% compress css %} @@ -24,6 +25,3 @@ {% endcompress %} - - - diff --git a/rdmo/core/templatetags/core_tags.py b/rdmo/core/templatetags/core_tags.py index 411bb5451..1edd37c34 100644 --- a/rdmo/core/templatetags/core_tags.py +++ b/rdmo/core/templatetags/core_tags.py @@ -25,6 +25,51 @@ def i18n_switcher(): return mark_safe(string) +@register.simple_tag() +@stringfilter +def vendor(vendor_key): + vendor_config = settings.VENDOR[vendor_key] + + tags = [] + + if 'js' in vendor_config: + for file in vendor_config['js']: + if settings.VENDOR_CDN: + tag = '' % { + 'url': vendor_config['url'], + 'path': file['path'], + 'sri': file['sri'] if 'sri' in file else '' + } + else: + tag = '' % { + 'static_url': settings.STATIC_URL.rstrip('/'), + 'vendor_key': vendor_key, + 'path': file['path'] + } + + tags.append(tag) + + + if 'css' in vendor_config: + for file in vendor_config['css']: + if settings.VENDOR_CDN: + tag = '' % { + 'url': vendor_config['url'], + 'path': file['path'], + 'sri': file['sri'] if 'sri' in file else '' + } + else: + tag = '' % { + 'static_url': settings.STATIC_URL.rstrip('/'), + 'vendor_key': vendor_key, + 'path': file['path'] + } + + tags.append(tag) + + return mark_safe(''.join(tags)) + + @register.simple_tag(takes_context=True) def bootstrap_form(context, **kwargs): form_context = {} diff --git a/rdmo/domain/templates/domain/domain.html b/rdmo/domain/templates/domain/domain.html index 4f438e204..50a147883 100644 --- a/rdmo/domain/templates/domain/domain.html +++ b/rdmo/domain/templates/domain/domain.html @@ -2,18 +2,21 @@ {% load staticfiles %} {% load compress %} {% load i18n %} +{% load core_tags %} {% block head %} + {% vendor 'angular' %} + {% compress css %} {% endcompress %} - - + {% compress js %} + {% endcompress %} {% endblock %} {% block bodyattr %} ng-app="domain" ng-controller="DomainController" {% endblock %} diff --git a/rdmo/options/templates/options/options.html b/rdmo/options/templates/options/options.html index e40d56805..e8a08a420 100644 --- a/rdmo/options/templates/options/options.html +++ b/rdmo/options/templates/options/options.html @@ -2,18 +2,21 @@ {% load staticfiles %} {% load compress %} {% load i18n %} +{% load core_tags %} {% block head %} + {% vendor 'angular' %} + {% compress css %} {% endcompress %} - - + {% compress js %} + {% endcompress %} {% endblock %} {% block bodyattr %} ng-app="options" ng-controller="OptionsController" {% endblock %} diff --git a/rdmo/projects/templates/projects/project_questions.html b/rdmo/projects/templates/projects/project_questions.html index 040d66a59..88452d7aa 100644 --- a/rdmo/projects/templates/projects/project_questions.html +++ b/rdmo/projects/templates/projects/project_questions.html @@ -9,25 +9,22 @@ + {% vendor 'angular' %} + {% vendor 'codemirror' %} + {% vendor 'moment' %} + {% vendor 'bootstrap-datepicker' %} + {% compress css %} - {% endcompress %} - - - - - - - + {% compress js %} - - + {% endcompress %} {% endblock %} {% block bodyattr %} ng-app="project_questions" ng-controller="QuestionsController" ng-init="service.init({{ project.id }})" {% endblock %} diff --git a/rdmo/questions/serializers/nested.py b/rdmo/questions/serializers/nested.py index 24acf5d06..f79dced82 100644 --- a/rdmo/questions/serializers/nested.py +++ b/rdmo/questions/serializers/nested.py @@ -139,6 +139,6 @@ def get_urls(self, obj): urls = { 'xml': reverse('questions_catalog_export', args=[obj.pk, 'xml']) } - for format in settings.EXPORT_FORMATS: - urls[format] = reverse('questions_catalog_export', args=[obj.pk, format]) + for key, text in settings.EXPORT_FORMATS: + urls[key] = reverse('questions_catalog_export', args=[obj.pk, key]) return urls diff --git a/rdmo/questions/templates/questions/catalogs.html b/rdmo/questions/templates/questions/catalogs.html index 4f941f551..7bfa05f7d 100644 --- a/rdmo/questions/templates/questions/catalogs.html +++ b/rdmo/questions/templates/questions/catalogs.html @@ -2,20 +2,24 @@ {% load staticfiles %} {% load compress %} {% load i18n %} +{% load core_tags %} {% block head %} + {% vendor 'angular' %} + {% vendor 'moment' %} + {% compress css %} {% endcompress %} - - + {% compress js %} + {% endcompress %} {% endblock %} {% block bodyattr %} ng-app="catalogs" ng-controller="CatalogsController"{% endblock %} diff --git a/rdmo/tasks/templates/tasks/tasks.html b/rdmo/tasks/templates/tasks/tasks.html index c04af3849..4ab3fc792 100644 --- a/rdmo/tasks/templates/tasks/tasks.html +++ b/rdmo/tasks/templates/tasks/tasks.html @@ -2,18 +2,22 @@ {% load staticfiles %} {% load compress %} {% load i18n %} +{% load core_tags %} {% block head %} + {% vendor 'angular' %} + {% vendor 'codemirror' %} + {% compress css %} {% endcompress %} - - + {% compress js %} + {% endcompress %} {% endblock %} {% block bodyattr %} ng-app="tasks" ng-controller="TasksController" {% endblock %} diff --git a/rdmo/views/templates/views/views.html b/rdmo/views/templates/views/views.html index 830502f99..394773926 100644 --- a/rdmo/views/templates/views/views.html +++ b/rdmo/views/templates/views/views.html @@ -2,24 +2,23 @@ {% load staticfiles %} {% load compress %} {% load i18n %} +{% load core_tags %} {% block head %} - + {% vendor 'angular' %} + {% vendor 'codemirror' %} {% compress css %} {% endcompress %} - - - - - + {% compress js %} + {% endcompress %} {% endblock %} {% block bodyattr %} ng-app="views" ng-controller="ViewsController" {% endblock %} diff --git a/setup.py b/setup.py index c9f0f6e1c..429bb3345 100644 --- a/setup.py +++ b/setup.py @@ -24,7 +24,6 @@ 'django-mptt==0.8.7', 'django-compressor==2.1.1', 'django-libsass==0.7', - 'django-bower==5.2.0', 'django-settings-export==1.2.1', 'rules==1.2', 'jsonfield==1.0.0', From 5ecc909a9920a8bf71631ad201490709e0b592e1 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Fri, 29 Sep 2017 15:58:48 +0200 Subject: [PATCH 13/34] fix settings --- rdmo/core/settings.py | 1 - 1 file changed, 1 deletion(-) diff --git a/rdmo/core/settings.py b/rdmo/core/settings.py index 93206eb38..d4e8efb07 100644 --- a/rdmo/core/settings.py +++ b/rdmo/core/settings.py @@ -116,7 +116,6 @@ 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', 'compressor.finders.CompressorFinder', - 'djangobower.finders.BowerFinder', ) CACHES = { From 58db41c1ec0abd9a3601b8f34881eec291abe0fa Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 14:01:26 +0200 Subject: [PATCH 14/34] refactor directories --- apps/accounts/__init__.py | 1 - apps/conditions/__init__.py | 1 - apps/domain/__init__.py | 1 - apps/options/__init__.py | 1 - apps/projects/__init__.py | 1 - apps/questions/__init__.py | 1 - apps/tasks/__init__.py | 1 - apps/views/__init__.py | 1 - {apps => config}/__init__.py | 0 {rdmo => config}/settings/__init__.py | 0 {rdmo => config}/settings/base.py | 22 +-- config/settings/local.py | 157 ++++++++++++++++++ {rdmo => config}/settings/sample.local.py | 0 {rdmo => config}/urls.py | 20 +-- {rdmo => config}/wsgi.py | 2 +- manage.py | 2 +- rdmo/accounts/__init__.py | 1 + {apps => rdmo}/accounts/adapter.py | 0 {apps => rdmo}/accounts/admin.py | 0 {apps => rdmo}/accounts/app_config.py | 2 +- {apps => rdmo}/accounts/forms.py | 0 .../accounts/migrations/0001_initial.py | 0 ..._detail_key_type_field_length_increased.py | 0 .../0003_hint_renamed_to_help_text.py | 0 .../migrations/0004_permission_added.py | 0 .../accounts/migrations/0005_field_type.py | 0 .../migrations/0006_permissions_removed.py | 0 .../migrations/0007_additional_fields.py | 8 +- .../accounts/migrations/0008_related_name.py | 0 .../accounts/migrations/0009_proxyuser.py | 0 .../accounts/migrations/__init__.py | 0 {apps => rdmo}/accounts/models.py | 2 +- .../accounts/serializers/__init__.py | 0 {apps => rdmo}/accounts/serializers/api.py | 0 {apps => rdmo}/accounts/settings.py | 0 .../accounts/templates/account/email.html | 0 .../email/password_reset_key_message.txt | 0 .../email/password_reset_key_subject.txt | 0 .../templates/account/email_confirm.html | 0 .../accounts/templates/account/login.html | 0 .../templates/account/login_form.html | 0 .../templates/account/login_form_account.html | 0 .../account/login_form_socialaccount.html | 0 .../accounts/templates/account/logout.html | 0 .../templates/account/logout_form.html | 0 .../templates/account/password_change.html | 0 .../templates/account/password_reset.html | 0 .../account/password_reset_done.html | 0 .../account/password_reset_from_key.html | 0 .../account/password_reset_from_key_done.html | 0 .../templates/account/password_set.html | 0 .../accounts/templates/account/signup.html | 0 .../templates/account/signup_closed.html | 0 .../templates/account/verification_sent.html | 0 .../account/verified_email_required.html | 0 .../profile/profile_update_closed.html | 0 .../profile/profile_update_form.html | 0 .../socialaccount/authentication_error.html | 0 .../templates/socialaccount/connections.html | 0 .../socialaccount/login_cancelled.html | 0 .../templates/socialaccount/signup.html | 0 .../socialaccount/snippets/provider_list.html | 0 .../accounts/templatetags/__init__.py | 0 .../accounts/templatetags/accounts_tags.py | 0 {apps => rdmo}/accounts/tests.py | 2 +- {apps => rdmo}/accounts/urls.py | 0 {apps => rdmo}/accounts/utils.py | 0 {apps => rdmo}/accounts/views.py | 2 +- {apps => rdmo}/accounts/viewsets.py | 2 +- rdmo/conditions/__init__.py | 1 + {apps => rdmo}/conditions/admin.py | 0 {apps => rdmo}/conditions/app_config.py | 2 +- .../conditions/migrations/0001_initial.py | 0 .../0002_many_to_many_for_conditions.py | 0 .../conditions/migrations/0003_meta.py | 0 .../migrations/0004_condition_title.py | 0 .../migrations/0005_empty_relation.py | 0 .../migrations/0006_db_constraint_false.py | 0 .../conditions/migrations/0007_ordering.py | 0 .../conditions/migrations/0008_validator.py | 0 .../conditions/migrations/0009_options.py | 0 .../conditions/migrations/0010_refactoring.py | 0 .../conditions/migrations/0011_refactoring.py | 0 .../conditions/migrations/0012_permissions.py | 0 .../conditions/migrations/0013_meta.py | 0 .../conditions/migrations/__init__.py | 0 {apps => rdmo}/conditions/models.py | 2 +- {apps => rdmo}/conditions/renderers.py | 2 +- .../conditions/serializers/__init__.py | 4 +- {apps => rdmo}/conditions/serializers/api.py | 0 .../conditions/serializers/export.py | 0 .../static/conditions/css/conditions.scss | 0 .../static/conditions/js/conditions.js | 0 .../templates/conditions/conditions.html | 0 .../conditions/conditions_export.html | 0 .../conditions_modal_delete_conditions.html | 0 .../conditions_modal_form_conditions.html | 0 {apps => rdmo}/conditions/tests.py | 6 +- {apps => rdmo}/conditions/urls.py | 0 {apps => rdmo}/conditions/utils.py | 6 +- {apps => rdmo}/conditions/validators.py | 2 +- {apps => rdmo}/conditions/views.py | 4 +- {apps => rdmo}/conditions/viewsets.py | 10 +- {apps => rdmo}/core/__init__.py | 0 {apps => rdmo}/core/exceptions.py | 0 {apps => rdmo}/core/management/__init__.py | 0 .../core/management/commands/__init__.py | 0 .../core/management/commands/coverage.py | 0 .../management/commands/create-admin-user.py | 0 .../core/management/commands/create-groups.py | 2 +- .../core/management/commands/deploy.py | 0 .../core/management/commands/import.py | 14 +- .../core/management/commands/poedit.py | 0 .../commands/promote-user-to-superuser.py | 0 .../management/commands/set-uri-prefix.py | 12 +- {apps => rdmo}/core/models.py | 2 +- {apps => rdmo}/core/permissions.py | 0 {apps => rdmo}/core/renderers.py | 0 {apps => rdmo}/core/serializers.py | 0 {apps => rdmo}/core/static/core/css/base.scss | 0 .../core/static/core/css/codemirror.scss | 0 .../core/static/core/css/fonts.scss | 0 .../core/static/core/css/footer.scss | 0 .../core/static/core/css/header.scss | 0 .../core/static/core/css/style.scss | 0 .../core/static/core/css/variables.scss | 0 .../core/static/core/fonts/DroidSans-Bold.ttf | Bin .../core/static/core/fonts/DroidSans.ttf | Bin .../core/static/core/fonts/DroidSansMono.ttf | Bin .../static/core/fonts/DroidSerif-Bold.ttf | Bin .../core/fonts/DroidSerif-BoldItalic.ttf | Bin .../static/core/fonts/DroidSerif-Italic.ttf | Bin .../core/static/core/fonts/DroidSerif.ttf | Bin .../static/core/html/formgroup_checkbox.html | 0 .../core/html/formgroup_codemirror.html | 0 .../static/core/html/formgroup_number.html | 0 .../static/core/html/formgroup_select.html | 0 .../core/html/formgroup_selectmultiple.html | 0 .../core/html/formgroup_selectnumber.html | 0 .../core/static/core/html/formgroup_text.html | 0 .../static/core/html/formgroup_textarea.html | 0 .../core/static/core/img/favicon.png | Bin .../static/core/img/header/collection.jpg | Bin .../core/static/core/img/header/library.jpg | Bin .../static/core/img/header/supercomputer.jpg | Bin {apps => rdmo}/core/static/core/js/core.js | 0 {apps => rdmo}/core/static/core/js/header.js | 0 {apps => rdmo}/core/templates/core/404.html | 0 {apps => rdmo}/core/templates/core/base.html | 0 .../core/templates/core/base_analytics.html | 0 .../core/templates/core/base_footer.html | 0 .../core/templates/core/base_head.html | 0 .../core/templates/core/base_navigation.html | 0 .../core/base_navigation_account.html | 0 .../core/base_navigation_socialaccount.html | 0 .../templates/core/bootstrap_delete_form.html | 0 .../core/templates/core/bootstrap_form.html | 0 .../templates/core/bootstrap_form_fields.html | 0 .../core/templates/core/export.html | 0 {apps => rdmo}/core/templates/core/home.html | 0 .../core/templates/core/home_text_de.html | 0 .../core/templates/core/home_text_en.html | 0 {apps => rdmo}/core/templates/core/page.html | 0 {apps => rdmo}/core/templatetags/__init__.py | 0 {apps => rdmo}/core/templatetags/core_tags.py | 0 {apps => rdmo}/core/testing/__init__.py | 0 {apps => rdmo}/core/testing/mixins.py | 0 {apps => rdmo}/core/tests.py | 2 +- {apps => rdmo}/core/utils.py | 0 {apps => rdmo}/core/validators.py | 0 {apps => rdmo}/core/views.py | 0 rdmo/domain/__init__.py | 1 + {apps => rdmo}/domain/admin.py | 0 {apps => rdmo}/domain/app_config.py | 2 +- .../migrations/0001_initial_after_reset.py | 6 +- .../migrations/0002_additional_input.py | 0 .../domain/migrations/0003_condition.py | 0 .../domain/migrations/0004_verbosename.py | 4 +- {apps => rdmo}/domain/migrations/0005_meta.py | 0 .../0006_attributeentity_parent_collection.py | 0 .../domain/migrations/0007_db_index.py | 0 {apps => rdmo}/domain/migrations/0008_meta.py | 0 .../migrations/0009_remove_condition.py | 0 .../0010_many_to_many_for_conditions.py | 0 {apps => rdmo}/domain/migrations/0011_meta.py | 0 .../domain/migrations/0012_renaming.py | 0 {apps => rdmo}/domain/migrations/0013_mptt.py | 0 .../domain/migrations/0014_is_attribute.py | 0 .../domain/migrations/0015_label.py | 0 .../domain/migrations/0016_label.py | 0 .../domain/migrations/0017_url_value_type.py | 0 .../domain/migrations/0018_validator.py | 0 {apps => rdmo}/domain/migrations/0019_meta.py | 0 {apps => rdmo}/domain/migrations/0020_meta.py | 0 .../domain/migrations/0021_options.py | 0 .../domain/migrations/0022_options.py | 0 .../domain/migrations/0023_fix_label.py | 0 {apps => rdmo}/domain/migrations/0024_meta.py | 0 .../domain/migrations/0025_refactoring.py | 0 .../domain/migrations/0026_refactoring.py | 0 {apps => rdmo}/domain/migrations/0027_meta.py | 0 {apps => rdmo}/domain/migrations/0028_path.py | 0 {apps => rdmo}/domain/migrations/0029_meta.py | 0 .../domain/migrations/0030_permissions.py | 0 {apps => rdmo}/domain/migrations/0031_meta.py | 0 {apps => rdmo}/domain/migrations/__init__.py | 0 {apps => rdmo}/domain/models.py | 6 +- {apps => rdmo}/domain/renderers.py | 2 +- {apps => rdmo}/domain/serializers/__init__.py | 4 +- {apps => rdmo}/domain/serializers/api.py | 0 {apps => rdmo}/domain/serializers/export.py | 0 .../domain/static/domain/css/domain.scss | 0 .../domain/static/domain/js/domain.js | 0 .../domain/templates/domain/domain.html | 0 .../templates/domain/domain_export.html | 0 .../domain_modal_delete_attributes.html | 0 .../domain/domain_modal_delete_entities.html | 0 .../domain/domain_modal_form_attributes.html | 0 .../domain/domain_modal_form_conditions.html | 0 .../domain/domain_modal_form_entities.html | 0 .../domain/domain_modal_form_optionsets.html | 0 .../domain/domain_modal_form_ranges.html | 0 .../domain_modal_form_verbosenames.html | 0 .../templates/domain/domain_options.html | 0 {apps => rdmo}/domain/tests.py | 8 +- {apps => rdmo}/domain/urls.py | 0 {apps => rdmo}/domain/utils.py | 6 +- {apps => rdmo}/domain/validators.py | 2 +- {apps => rdmo}/domain/views.py | 4 +- {apps => rdmo}/domain/viewsets.py | 8 +- rdmo/options/__init__.py | 1 + {apps => rdmo}/options/admin.py | 0 {apps => rdmo}/options/app_config.py | 2 +- .../options/migrations/0001_initial.py | 4 +- .../options/migrations/0002_meta.py | 0 .../options/migrations/0003_data_migration.py | 0 .../options/migrations/0004_conditions.py | 0 .../options/migrations/0005_refactoring.py | 0 .../options/migrations/0006_refactoring.py | 0 .../options/migrations/0007_meta.py | 0 .../options/migrations/0008_option_path.py | 0 .../options/migrations/0009_data_migration.py | 0 .../options/migrations/0010_meta.py | 0 .../options/migrations/0011_permissions.py | 0 .../options/migrations/0012_meta.py | 0 {apps => rdmo}/options/migrations/__init__.py | 0 {apps => rdmo}/options/models.py | 6 +- {apps => rdmo}/options/renderers.py | 2 +- .../options/serializers/__init__.py | 2 +- {apps => rdmo}/options/serializers/api.py | 0 {apps => rdmo}/options/serializers/export.py | 2 +- .../options/static/options/css/options.scss | 0 .../options/static/options/js/options.js | 0 .../options/templates/options/options.html | 0 .../templates/options/options_export.html | 0 .../options/options_modal_delete_options.html | 0 .../options_modal_delete_optionsets.html | 0 .../options_modal_form_conditions.html | 0 .../options/options_modal_form_options.html | 0 .../options_modal_form_optionsets.html | 0 {apps => rdmo}/options/tests.py | 6 +- {apps => rdmo}/options/urls.py | 0 {apps => rdmo}/options/utils.py | 2 +- {apps => rdmo}/options/validators.py | 2 +- {apps => rdmo}/options/views.py | 4 +- {apps => rdmo}/options/viewsets.py | 4 +- rdmo/projects/__init__.py | 1 + {apps => rdmo}/projects/admin.py | 0 {apps => rdmo}/projects/app_config.py | 2 +- {apps => rdmo}/projects/forms.py | 0 .../migrations/0001_initial_after_reset.py | 0 .../projects/migrations/0002_meta.py | 0 .../projects/migrations/0003_meta.py | 0 .../0004_remove_current_snapshot.py | 0 .../projects/migrations/0005_snapshot.py | 0 .../migrations/0006_project_values.py | 0 .../migrations/0007_data_migration.py | 0 .../projects/migrations/0008_not_null.py | 0 .../projects/migrations/0009_options.py | 0 .../migrations/0010_add_db_contraint.py | 0 .../projects/migrations/0011_refactoring.py | 0 .../projects/migrations/0012_membership.py | 0 .../migrations/0013_data_migration.py | 0 .../projects/migrations/0014_remove_owner.py | 0 .../projects/migrations/0015_permissions.py | 0 .../projects/migrations/__init__.py | 0 {apps => rdmo}/projects/models.py | 8 +- {apps => rdmo}/projects/renderers.py | 2 +- {apps => rdmo}/projects/rules.py | 0 .../projects/serializers/__init__.py | 0 {apps => rdmo}/projects/serializers/api.py | 0 .../projects/serializers/catalog.py | 2 +- {apps => rdmo}/projects/serializers/export.py | 0 .../projects/serializers/question_entity.py | 10 +- .../projects/css/project_questions.scss | 0 .../projects/js/project_questions/app.js | 0 .../js/project_questions/controllers.js | 0 .../js/project_questions/directives.js | 0 .../projects/js/project_questions/services.js | 0 .../projects/membership_confirm_delete.html | 0 .../templates/projects/membership_form.html | 0 .../templates/projects/project_answers.html | 0 .../projects/project_answers_export.html | 0 .../projects/project_answers_tree.html | 0 .../projects/project_confirm_delete.html | 0 .../templates/projects/project_detail.html | 0 .../projects/project_detail_memberships.html | 0 .../projects/project_detail_snapshots.html | 0 .../projects/project_detail_tasks.html | 0 .../projects/project_detail_views.html | 0 .../templates/projects/project_form.html | 0 .../templates/projects/project_questions.html | 0 .../project_questions_add_field_button.html | 0 .../project_questions_add_field_help.html | 0 .../projects/project_questions_done.html | 0 ...project_questions_form_group_checkbox.html | 0 .../project_questions_form_group_date.html | 0 .../project_questions_form_group_radio.html | 0 .../project_questions_form_group_range.html | 0 .../project_questions_form_group_select.html | 0 .../project_questions_form_group_text.html | 0 ...project_questions_form_group_textarea.html | 0 .../project_questions_form_group_yesno.html | 0 ...ject_questions_modal_delete_valuesets.html | 0 ...roject_questions_modal_form_valuesets.html | 0 .../project_questions_questionset_head.html | 0 .../project_questions_remove_field.html | 0 .../projects/project_questions_sidebar.html | 0 .../templates/projects/project_view.html | 0 .../projects/project_view_export.html | 0 .../projects/templates/projects/projects.html | 0 .../templates/projects/snapshot_form.html | 0 .../templates/projects/snapshot_rollback.html | 0 {apps => rdmo}/projects/tests.py | 4 +- {apps => rdmo}/projects/urls.py | 0 {apps => rdmo}/projects/utils.py | 8 +- {apps => rdmo}/projects/views.py | 8 +- {apps => rdmo}/projects/viewsets.py | 6 +- rdmo/questions/__init__.py | 1 + {apps => rdmo}/questions/admin.py | 0 {apps => rdmo}/questions/app_config.py | 2 +- {apps => rdmo}/questions/managers.py | 0 .../migrations/0001_initial_after_reset.py | 10 +- .../questions/migrations/0002_meta.py | 0 .../questions/migrations/0003_renaming.py | 0 .../questions/migrations/0004_full_title.py | 0 .../questions/migrations/0005_label.py | 0 .../migrations/0006_auto_20160803_1619.py | 0 .../questions/migrations/0007_refactoring.py | 0 .../migrations/0008_data_migration.py | 0 .../questions/migrations/0009_meta.py | 0 .../questions/migrations/0010_label.py | 0 .../questions/migrations/0011_path.py | 0 .../questions/migrations/0012_meta.py | 0 .../questions/migrations/0013_permissions.py | 0 .../questions/migrations/0014_meta.py | 0 .../questions/migrations/__init__.py | 0 {apps => rdmo}/questions/models.py | 6 +- {apps => rdmo}/questions/renderers.py | 2 +- .../questions/serializers/__init__.py | 2 +- {apps => rdmo}/questions/serializers/api.py | 0 .../questions/serializers/export.py | 0 .../questions/serializers/nested.py | 2 +- .../static/questions/css/catalogs.scss | 0 .../questions/static/questions/js/catalogs.js | 0 .../templates/questions/catalog_export.html | 0 .../templates/questions/catalog_tree.html | 0 .../templates/questions/catalogs.html | 0 .../catalogs_modal_delete_catalogs.html | 0 .../catalogs_modal_delete_questions.html | 0 .../catalogs_modal_delete_questionsets.html | 0 .../catalogs_modal_delete_sections.html | 0 .../catalogs_modal_delete_subsections.html | 0 .../catalogs_modal_form_catalogs.html | 0 .../catalogs_modal_form_questions.html | 0 .../catalogs_modal_form_questionsets.html | 0 .../catalogs_modal_form_sections.html | 0 .../catalogs_modal_form_subsections.html | 0 .../questions/catalogs_options_questions.html | 0 .../catalogs_options_questionsets.html | 0 .../questions/catalogs_options_sections.html | 0 .../catalogs_options_subsections.html | 0 .../templates/questions/catalogs_sidebar.html | 0 {apps => rdmo}/questions/tests.py | 4 +- {apps => rdmo}/questions/urls.py | 0 {apps => rdmo}/questions/utils.py | 4 +- {apps => rdmo}/questions/validators.py | 2 +- {apps => rdmo}/questions/views.py | 4 +- {apps => rdmo}/questions/viewsets.py | 6 +- rdmo/tasks/__init__.py | 1 + {apps => rdmo}/tasks/admin.py | 0 {apps => rdmo}/tasks/app_config.py | 2 +- {apps => rdmo}/tasks/managers.py | 0 .../tasks/migrations/0001_initial.py | 4 +- .../0002_many_to_many_for_conditions.py | 0 {apps => rdmo}/tasks/migrations/0003_meta.py | 0 .../tasks/migrations/0004_refactoring.py | 0 .../tasks/migrations/0005_data_migration.py | 0 {apps => rdmo}/tasks/migrations/0006_meta.py | 0 .../tasks/migrations/0007_permissions.py | 0 .../migrations/0008_remove_time_period.py | 0 .../tasks/migrations/0009_timeframe.py | 0 {apps => rdmo}/tasks/migrations/0010_meta.py | 0 .../tasks/migrations/0011_task_text.py | 0 {apps => rdmo}/tasks/migrations/__init__.py | 0 {apps => rdmo}/tasks/models.py | 10 +- {apps => rdmo}/tasks/renderers.py | 2 +- {apps => rdmo}/tasks/serializers/__init__.py | 4 +- {apps => rdmo}/tasks/serializers/api.py | 4 +- {apps => rdmo}/tasks/serializers/export.py | 0 .../tasks/static/tasks/css/tasks.scss | 0 {apps => rdmo}/tasks/static/tasks/js/tasks.js | 0 .../tasks/templates/tasks/tasks.html | 0 .../tasks/templates/tasks/tasks_export.html | 0 .../tasks/tasks_modal_delete_tasks.html | 0 .../tasks/tasks_modal_form_conditions.html | 0 .../tasks/tasks_modal_form_tasks.html | 0 .../tasks/tasks_modal_form_timeframes.html | 0 {apps => rdmo}/tasks/tests.py | 6 +- {apps => rdmo}/tasks/urls.py | 0 {apps => rdmo}/tasks/utils.py | 6 +- {apps => rdmo}/tasks/validators.py | 2 +- {apps => rdmo}/tasks/views.py | 4 +- {apps => rdmo}/tasks/viewsets.py | 6 +- rdmo/views/__init__.py | 1 + {apps => rdmo}/views/admin.py | 0 {apps => rdmo}/views/app_config.py | 2 +- .../views/migrations/0001_initial.py | 0 .../views/migrations/0002_view_template.py | 0 .../views/migrations/0003_refactoring.py | 0 .../views/migrations/0004_refactoring.py | 0 {apps => rdmo}/views/migrations/0005_meta.py | 0 .../views/migrations/0006_title_and_help.py | 0 .../views/migrations/0007_data_migration.py | 0 .../views/migrations/0008_permissions.py | 0 {apps => rdmo}/views/migrations/0009_meta.py | 0 {apps => rdmo}/views/migrations/__init__.py | 0 {apps => rdmo}/views/models.py | 8 +- {apps => rdmo}/views/renderers.py | 2 +- {apps => rdmo}/views/serializers/__init__.py | 0 {apps => rdmo}/views/serializers/api.py | 0 {apps => rdmo}/views/serializers/export.py | 0 .../views/static/views/css/views.scss | 0 {apps => rdmo}/views/static/views/js/views.js | 0 .../views/templates/views/views.html | 0 .../views/templates/views/views_export.html | 0 .../views/views_modal_delete_views.html | 0 .../views/views_modal_form_templates.html | 0 .../views/views_modal_form_views.html | 0 {apps => rdmo}/views/tests.py | 4 +- {apps => rdmo}/views/urls.py | 0 {apps => rdmo}/views/utils.py | 4 +- {apps => rdmo}/views/validators.py | 2 +- {apps => rdmo}/views/views.py | 4 +- {apps => rdmo}/views/viewsets.py | 2 +- 455 files changed, 364 insertions(+), 203 deletions(-) delete mode 100644 apps/accounts/__init__.py delete mode 100644 apps/conditions/__init__.py delete mode 100644 apps/domain/__init__.py delete mode 100644 apps/options/__init__.py delete mode 100644 apps/projects/__init__.py delete mode 100644 apps/questions/__init__.py delete mode 100644 apps/tasks/__init__.py delete mode 100644 apps/views/__init__.py rename {apps => config}/__init__.py (100%) rename {rdmo => config}/settings/__init__.py (100%) rename {rdmo => config}/settings/base.py (95%) create mode 100644 config/settings/local.py rename {rdmo => config}/settings/sample.local.py (100%) rename {rdmo => config}/urls.py (81%) rename {rdmo => config}/wsgi.py (59%) create mode 100644 rdmo/accounts/__init__.py rename {apps => rdmo}/accounts/adapter.py (100%) rename {apps => rdmo}/accounts/admin.py (100%) rename {apps => rdmo}/accounts/app_config.py (85%) rename {apps => rdmo}/accounts/forms.py (100%) rename {apps => rdmo}/accounts/migrations/0001_initial.py (100%) rename {apps => rdmo}/accounts/migrations/0002_detail_key_type_field_length_increased.py (100%) rename {apps => rdmo}/accounts/migrations/0003_hint_renamed_to_help_text.py (100%) rename {apps => rdmo}/accounts/migrations/0004_permission_added.py (100%) rename {apps => rdmo}/accounts/migrations/0005_field_type.py (100%) rename {apps => rdmo}/accounts/migrations/0006_permissions_removed.py (100%) rename {apps => rdmo}/accounts/migrations/0007_additional_fields.py (94%) rename {apps => rdmo}/accounts/migrations/0008_related_name.py (100%) rename {apps => rdmo}/accounts/migrations/0009_proxyuser.py (100%) rename {apps => rdmo}/accounts/migrations/__init__.py (100%) rename {apps => rdmo}/accounts/models.py (97%) rename {apps => rdmo}/accounts/serializers/__init__.py (100%) rename {apps => rdmo}/accounts/serializers/api.py (100%) rename {apps => rdmo}/accounts/settings.py (100%) rename {apps => rdmo}/accounts/templates/account/email.html (100%) rename {apps => rdmo}/accounts/templates/account/email/password_reset_key_message.txt (100%) rename {apps => rdmo}/accounts/templates/account/email/password_reset_key_subject.txt (100%) rename {apps => rdmo}/accounts/templates/account/email_confirm.html (100%) rename {apps => rdmo}/accounts/templates/account/login.html (100%) rename {apps => rdmo}/accounts/templates/account/login_form.html (100%) rename {apps => rdmo}/accounts/templates/account/login_form_account.html (100%) rename {apps => rdmo}/accounts/templates/account/login_form_socialaccount.html (100%) rename {apps => rdmo}/accounts/templates/account/logout.html (100%) rename {apps => rdmo}/accounts/templates/account/logout_form.html (100%) rename {apps => rdmo}/accounts/templates/account/password_change.html (100%) rename {apps => rdmo}/accounts/templates/account/password_reset.html (100%) rename {apps => rdmo}/accounts/templates/account/password_reset_done.html (100%) rename {apps => rdmo}/accounts/templates/account/password_reset_from_key.html (100%) rename {apps => rdmo}/accounts/templates/account/password_reset_from_key_done.html (100%) rename {apps => rdmo}/accounts/templates/account/password_set.html (100%) rename {apps => rdmo}/accounts/templates/account/signup.html (100%) rename {apps => rdmo}/accounts/templates/account/signup_closed.html (100%) rename {apps => rdmo}/accounts/templates/account/verification_sent.html (100%) rename {apps => rdmo}/accounts/templates/account/verified_email_required.html (100%) rename {apps => rdmo}/accounts/templates/profile/profile_update_closed.html (100%) rename {apps => rdmo}/accounts/templates/profile/profile_update_form.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/authentication_error.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/connections.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/login_cancelled.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/signup.html (100%) rename {apps => rdmo}/accounts/templates/socialaccount/snippets/provider_list.html (100%) rename {apps => rdmo}/accounts/templatetags/__init__.py (100%) rename {apps => rdmo}/accounts/templatetags/accounts_tags.py (100%) rename {apps => rdmo}/accounts/tests.py (99%) rename {apps => rdmo}/accounts/urls.py (100%) rename {apps => rdmo}/accounts/utils.py (100%) rename {apps => rdmo}/accounts/views.py (93%) rename {apps => rdmo}/accounts/viewsets.py (92%) create mode 100644 rdmo/conditions/__init__.py rename {apps => rdmo}/conditions/admin.py (100%) rename {apps => rdmo}/conditions/app_config.py (84%) rename {apps => rdmo}/conditions/migrations/0001_initial.py (100%) rename {apps => rdmo}/conditions/migrations/0002_many_to_many_for_conditions.py (100%) rename {apps => rdmo}/conditions/migrations/0003_meta.py (100%) rename {apps => rdmo}/conditions/migrations/0004_condition_title.py (100%) rename {apps => rdmo}/conditions/migrations/0005_empty_relation.py (100%) rename {apps => rdmo}/conditions/migrations/0006_db_constraint_false.py (100%) rename {apps => rdmo}/conditions/migrations/0007_ordering.py (100%) rename {apps => rdmo}/conditions/migrations/0008_validator.py (100%) rename {apps => rdmo}/conditions/migrations/0009_options.py (100%) rename {apps => rdmo}/conditions/migrations/0010_refactoring.py (100%) rename {apps => rdmo}/conditions/migrations/0011_refactoring.py (100%) rename {apps => rdmo}/conditions/migrations/0012_permissions.py (100%) rename {apps => rdmo}/conditions/migrations/0013_meta.py (100%) rename {apps => rdmo}/conditions/migrations/__init__.py (100%) rename {apps => rdmo}/conditions/models.py (99%) rename {apps => rdmo}/conditions/renderers.py (95%) rename {apps => rdmo}/conditions/serializers/__init__.py (95%) rename {apps => rdmo}/conditions/serializers/api.py (100%) rename {apps => rdmo}/conditions/serializers/export.py (100%) rename {apps => rdmo}/conditions/static/conditions/css/conditions.scss (100%) rename {apps => rdmo}/conditions/static/conditions/js/conditions.js (100%) rename {apps => rdmo}/conditions/templates/conditions/conditions.html (100%) rename {apps => rdmo}/conditions/templates/conditions/conditions_export.html (100%) rename {apps => rdmo}/conditions/templates/conditions/conditions_modal_delete_conditions.html (100%) rename {apps => rdmo}/conditions/templates/conditions/conditions_modal_form_conditions.html (100%) rename {apps => rdmo}/conditions/tests.py (94%) rename {apps => rdmo}/conditions/urls.py (100%) rename {apps => rdmo}/conditions/utils.py (91%) rename {apps => rdmo}/conditions/validators.py (69%) rename {apps => rdmo}/conditions/views.py (93%) rename {apps => rdmo}/conditions/viewsets.py (92%) rename {apps => rdmo}/core/__init__.py (100%) rename {apps => rdmo}/core/exceptions.py (100%) rename {apps => rdmo}/core/management/__init__.py (100%) rename {apps => rdmo}/core/management/commands/__init__.py (100%) rename {apps => rdmo}/core/management/commands/coverage.py (100%) rename {apps => rdmo}/core/management/commands/create-admin-user.py (100%) rename {apps => rdmo}/core/management/commands/create-groups.py (92%) rename {apps => rdmo}/core/management/commands/deploy.py (100%) rename {apps => rdmo}/core/management/commands/import.py (81%) rename {apps => rdmo}/core/management/commands/poedit.py (100%) rename {apps => rdmo}/core/management/commands/promote-user-to-superuser.py (100%) rename {apps => rdmo}/core/management/commands/set-uri-prefix.py (84%) rename {apps => rdmo}/core/models.py (95%) rename {apps => rdmo}/core/permissions.py (100%) rename {apps => rdmo}/core/renderers.py (100%) rename {apps => rdmo}/core/serializers.py (100%) rename {apps => rdmo}/core/static/core/css/base.scss (100%) rename {apps => rdmo}/core/static/core/css/codemirror.scss (100%) rename {apps => rdmo}/core/static/core/css/fonts.scss (100%) rename {apps => rdmo}/core/static/core/css/footer.scss (100%) rename {apps => rdmo}/core/static/core/css/header.scss (100%) rename {apps => rdmo}/core/static/core/css/style.scss (100%) rename {apps => rdmo}/core/static/core/css/variables.scss (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSans-Bold.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSans.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSansMono.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSerif-Bold.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSerif-BoldItalic.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSerif-Italic.ttf (100%) rename {apps => rdmo}/core/static/core/fonts/DroidSerif.ttf (100%) rename {apps => rdmo}/core/static/core/html/formgroup_checkbox.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_codemirror.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_number.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_select.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_selectmultiple.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_selectnumber.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_text.html (100%) rename {apps => rdmo}/core/static/core/html/formgroup_textarea.html (100%) rename {apps => rdmo}/core/static/core/img/favicon.png (100%) rename {apps => rdmo}/core/static/core/img/header/collection.jpg (100%) rename {apps => rdmo}/core/static/core/img/header/library.jpg (100%) rename {apps => rdmo}/core/static/core/img/header/supercomputer.jpg (100%) rename {apps => rdmo}/core/static/core/js/core.js (100%) rename {apps => rdmo}/core/static/core/js/header.js (100%) rename {apps => rdmo}/core/templates/core/404.html (100%) rename {apps => rdmo}/core/templates/core/base.html (100%) rename {apps => rdmo}/core/templates/core/base_analytics.html (100%) rename {apps => rdmo}/core/templates/core/base_footer.html (100%) rename {apps => rdmo}/core/templates/core/base_head.html (100%) rename {apps => rdmo}/core/templates/core/base_navigation.html (100%) rename {apps => rdmo}/core/templates/core/base_navigation_account.html (100%) rename {apps => rdmo}/core/templates/core/base_navigation_socialaccount.html (100%) rename {apps => rdmo}/core/templates/core/bootstrap_delete_form.html (100%) rename {apps => rdmo}/core/templates/core/bootstrap_form.html (100%) rename {apps => rdmo}/core/templates/core/bootstrap_form_fields.html (100%) rename {apps => rdmo}/core/templates/core/export.html (100%) rename {apps => rdmo}/core/templates/core/home.html (100%) rename {apps => rdmo}/core/templates/core/home_text_de.html (100%) rename {apps => rdmo}/core/templates/core/home_text_en.html (100%) rename {apps => rdmo}/core/templates/core/page.html (100%) rename {apps => rdmo}/core/templatetags/__init__.py (100%) rename {apps => rdmo}/core/templatetags/core_tags.py (100%) rename {apps => rdmo}/core/testing/__init__.py (100%) rename {apps => rdmo}/core/testing/mixins.py (100%) rename {apps => rdmo}/core/tests.py (98%) rename {apps => rdmo}/core/utils.py (100%) rename {apps => rdmo}/core/validators.py (100%) rename {apps => rdmo}/core/views.py (100%) create mode 100644 rdmo/domain/__init__.py rename {apps => rdmo}/domain/admin.py (100%) rename {apps => rdmo}/domain/app_config.py (86%) rename {apps => rdmo}/domain/migrations/0001_initial_after_reset.py (97%) rename {apps => rdmo}/domain/migrations/0002_additional_input.py (100%) rename {apps => rdmo}/domain/migrations/0003_condition.py (100%) rename {apps => rdmo}/domain/migrations/0004_verbosename.py (91%) rename {apps => rdmo}/domain/migrations/0005_meta.py (100%) rename {apps => rdmo}/domain/migrations/0006_attributeentity_parent_collection.py (100%) rename {apps => rdmo}/domain/migrations/0007_db_index.py (100%) rename {apps => rdmo}/domain/migrations/0008_meta.py (100%) rename {apps => rdmo}/domain/migrations/0009_remove_condition.py (100%) rename {apps => rdmo}/domain/migrations/0010_many_to_many_for_conditions.py (100%) rename {apps => rdmo}/domain/migrations/0011_meta.py (100%) rename {apps => rdmo}/domain/migrations/0012_renaming.py (100%) rename {apps => rdmo}/domain/migrations/0013_mptt.py (100%) rename {apps => rdmo}/domain/migrations/0014_is_attribute.py (100%) rename {apps => rdmo}/domain/migrations/0015_label.py (100%) rename {apps => rdmo}/domain/migrations/0016_label.py (100%) rename {apps => rdmo}/domain/migrations/0017_url_value_type.py (100%) rename {apps => rdmo}/domain/migrations/0018_validator.py (100%) rename {apps => rdmo}/domain/migrations/0019_meta.py (100%) rename {apps => rdmo}/domain/migrations/0020_meta.py (100%) rename {apps => rdmo}/domain/migrations/0021_options.py (100%) rename {apps => rdmo}/domain/migrations/0022_options.py (100%) rename {apps => rdmo}/domain/migrations/0023_fix_label.py (100%) rename {apps => rdmo}/domain/migrations/0024_meta.py (100%) rename {apps => rdmo}/domain/migrations/0025_refactoring.py (100%) rename {apps => rdmo}/domain/migrations/0026_refactoring.py (100%) rename {apps => rdmo}/domain/migrations/0027_meta.py (100%) rename {apps => rdmo}/domain/migrations/0028_path.py (100%) rename {apps => rdmo}/domain/migrations/0029_meta.py (100%) rename {apps => rdmo}/domain/migrations/0030_permissions.py (100%) rename {apps => rdmo}/domain/migrations/0031_meta.py (100%) rename {apps => rdmo}/domain/migrations/__init__.py (100%) rename {apps => rdmo}/domain/models.py (98%) rename {apps => rdmo}/domain/renderers.py (98%) rename {apps => rdmo}/domain/serializers/__init__.py (97%) rename {apps => rdmo}/domain/serializers/api.py (100%) rename {apps => rdmo}/domain/serializers/export.py (100%) rename {apps => rdmo}/domain/static/domain/css/domain.scss (100%) rename {apps => rdmo}/domain/static/domain/js/domain.js (100%) rename {apps => rdmo}/domain/templates/domain/domain.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_export.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_delete_attributes.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_delete_entities.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_attributes.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_conditions.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_entities.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_optionsets.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_ranges.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_modal_form_verbosenames.html (100%) rename {apps => rdmo}/domain/templates/domain/domain_options.html (100%) rename {apps => rdmo}/domain/tests.py (95%) rename {apps => rdmo}/domain/urls.py (100%) rename {apps => rdmo}/domain/utils.py (97%) rename {apps => rdmo}/domain/validators.py (85%) rename {apps => rdmo}/domain/views.py (95%) rename {apps => rdmo}/domain/viewsets.py (95%) create mode 100644 rdmo/options/__init__.py rename {apps => rdmo}/options/admin.py (100%) rename {apps => rdmo}/options/app_config.py (85%) rename {apps => rdmo}/options/migrations/0001_initial.py (95%) rename {apps => rdmo}/options/migrations/0002_meta.py (100%) rename {apps => rdmo}/options/migrations/0003_data_migration.py (100%) rename {apps => rdmo}/options/migrations/0004_conditions.py (100%) rename {apps => rdmo}/options/migrations/0005_refactoring.py (100%) rename {apps => rdmo}/options/migrations/0006_refactoring.py (100%) rename {apps => rdmo}/options/migrations/0007_meta.py (100%) rename {apps => rdmo}/options/migrations/0008_option_path.py (100%) rename {apps => rdmo}/options/migrations/0009_data_migration.py (100%) rename {apps => rdmo}/options/migrations/0010_meta.py (100%) rename {apps => rdmo}/options/migrations/0011_permissions.py (100%) rename {apps => rdmo}/options/migrations/0012_meta.py (100%) rename {apps => rdmo}/options/migrations/__init__.py (100%) rename {apps => rdmo}/options/models.py (97%) rename {apps => rdmo}/options/renderers.py (97%) rename {apps => rdmo}/options/serializers/__init__.py (97%) rename {apps => rdmo}/options/serializers/api.py (100%) rename {apps => rdmo}/options/serializers/export.py (94%) rename {apps => rdmo}/options/static/options/css/options.scss (100%) rename {apps => rdmo}/options/static/options/js/options.js (100%) rename {apps => rdmo}/options/templates/options/options.html (100%) rename {apps => rdmo}/options/templates/options/options_export.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_delete_options.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_delete_optionsets.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_form_conditions.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_form_options.html (100%) rename {apps => rdmo}/options/templates/options/options_modal_form_optionsets.html (100%) rename {apps => rdmo}/options/tests.py (95%) rename {apps => rdmo}/options/urls.py (100%) rename {apps => rdmo}/options/utils.py (97%) rename {apps => rdmo}/options/validators.py (83%) rename {apps => rdmo}/options/views.py (93%) rename {apps => rdmo}/options/viewsets.py (95%) create mode 100644 rdmo/projects/__init__.py rename {apps => rdmo}/projects/admin.py (100%) rename {apps => rdmo}/projects/app_config.py (88%) rename {apps => rdmo}/projects/forms.py (100%) rename {apps => rdmo}/projects/migrations/0001_initial_after_reset.py (100%) rename {apps => rdmo}/projects/migrations/0002_meta.py (100%) rename {apps => rdmo}/projects/migrations/0003_meta.py (100%) rename {apps => rdmo}/projects/migrations/0004_remove_current_snapshot.py (100%) rename {apps => rdmo}/projects/migrations/0005_snapshot.py (100%) rename {apps => rdmo}/projects/migrations/0006_project_values.py (100%) rename {apps => rdmo}/projects/migrations/0007_data_migration.py (100%) rename {apps => rdmo}/projects/migrations/0008_not_null.py (100%) rename {apps => rdmo}/projects/migrations/0009_options.py (100%) rename {apps => rdmo}/projects/migrations/0010_add_db_contraint.py (100%) rename {apps => rdmo}/projects/migrations/0011_refactoring.py (100%) rename {apps => rdmo}/projects/migrations/0012_membership.py (100%) rename {apps => rdmo}/projects/migrations/0013_data_migration.py (100%) rename {apps => rdmo}/projects/migrations/0014_remove_owner.py (100%) rename {apps => rdmo}/projects/migrations/0015_permissions.py (100%) rename {apps => rdmo}/projects/migrations/__init__.py (100%) rename {apps => rdmo}/projects/models.py (98%) rename {apps => rdmo}/projects/renderers.py (98%) rename {apps => rdmo}/projects/rules.py (100%) rename {apps => rdmo}/projects/serializers/__init__.py (100%) rename {apps => rdmo}/projects/serializers/api.py (100%) rename {apps => rdmo}/projects/serializers/catalog.py (95%) rename {apps => rdmo}/projects/serializers/export.py (100%) rename {apps => rdmo}/projects/serializers/question_entity.py (95%) rename {apps => rdmo}/projects/static/projects/css/project_questions.scss (100%) rename {apps => rdmo}/projects/static/projects/js/project_questions/app.js (100%) rename {apps => rdmo}/projects/static/projects/js/project_questions/controllers.js (100%) rename {apps => rdmo}/projects/static/projects/js/project_questions/directives.js (100%) rename {apps => rdmo}/projects/static/projects/js/project_questions/services.js (100%) rename {apps => rdmo}/projects/templates/projects/membership_confirm_delete.html (100%) rename {apps => rdmo}/projects/templates/projects/membership_form.html (100%) rename {apps => rdmo}/projects/templates/projects/project_answers.html (100%) rename {apps => rdmo}/projects/templates/projects/project_answers_export.html (100%) rename {apps => rdmo}/projects/templates/projects/project_answers_tree.html (100%) rename {apps => rdmo}/projects/templates/projects/project_confirm_delete.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail_memberships.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail_snapshots.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail_tasks.html (100%) rename {apps => rdmo}/projects/templates/projects/project_detail_views.html (100%) rename {apps => rdmo}/projects/templates/projects/project_form.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_add_field_button.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_add_field_help.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_done.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_checkbox.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_date.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_radio.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_range.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_select.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_text.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_textarea.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_form_group_yesno.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_modal_delete_valuesets.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_modal_form_valuesets.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_questionset_head.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_remove_field.html (100%) rename {apps => rdmo}/projects/templates/projects/project_questions_sidebar.html (100%) rename {apps => rdmo}/projects/templates/projects/project_view.html (100%) rename {apps => rdmo}/projects/templates/projects/project_view_export.html (100%) rename {apps => rdmo}/projects/templates/projects/projects.html (100%) rename {apps => rdmo}/projects/templates/projects/snapshot_form.html (100%) rename {apps => rdmo}/projects/templates/projects/snapshot_rollback.html (100%) rename {apps => rdmo}/projects/tests.py (98%) rename {apps => rdmo}/projects/urls.py (100%) rename {apps => rdmo}/projects/utils.py (98%) rename {apps => rdmo}/projects/views.py (98%) rename {apps => rdmo}/projects/viewsets.py (97%) create mode 100644 rdmo/questions/__init__.py rename {apps => rdmo}/questions/admin.py (100%) rename {apps => rdmo}/questions/app_config.py (85%) rename {apps => rdmo}/questions/managers.py (100%) rename {apps => rdmo}/questions/migrations/0001_initial_after_reset.py (95%) rename {apps => rdmo}/questions/migrations/0002_meta.py (100%) rename {apps => rdmo}/questions/migrations/0003_renaming.py (100%) rename {apps => rdmo}/questions/migrations/0004_full_title.py (100%) rename {apps => rdmo}/questions/migrations/0005_label.py (100%) rename {apps => rdmo}/questions/migrations/0006_auto_20160803_1619.py (100%) rename {apps => rdmo}/questions/migrations/0007_refactoring.py (100%) rename {apps => rdmo}/questions/migrations/0008_data_migration.py (100%) rename {apps => rdmo}/questions/migrations/0009_meta.py (100%) rename {apps => rdmo}/questions/migrations/0010_label.py (100%) rename {apps => rdmo}/questions/migrations/0011_path.py (100%) rename {apps => rdmo}/questions/migrations/0012_meta.py (100%) rename {apps => rdmo}/questions/migrations/0013_permissions.py (100%) rename {apps => rdmo}/questions/migrations/0014_meta.py (100%) rename {apps => rdmo}/questions/migrations/__init__.py (100%) rename {apps => rdmo}/questions/models.py (98%) rename {apps => rdmo}/questions/renderers.py (98%) rename {apps => rdmo}/questions/serializers/__init__.py (98%) rename {apps => rdmo}/questions/serializers/api.py (100%) rename {apps => rdmo}/questions/serializers/export.py (100%) rename {apps => rdmo}/questions/serializers/nested.py (98%) rename {apps => rdmo}/questions/static/questions/css/catalogs.scss (100%) rename {apps => rdmo}/questions/static/questions/js/catalogs.js (100%) rename {apps => rdmo}/questions/templates/questions/catalog_export.html (100%) rename {apps => rdmo}/questions/templates/questions/catalog_tree.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_catalogs.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_questions.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_questionsets.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_sections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_delete_subsections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_catalogs.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_questions.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_questionsets.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_sections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_modal_form_subsections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_options_questions.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_options_questionsets.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_options_sections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_options_subsections.html (100%) rename {apps => rdmo}/questions/templates/questions/catalogs_sidebar.html (100%) rename {apps => rdmo}/questions/tests.py (98%) rename {apps => rdmo}/questions/urls.py (100%) rename {apps => rdmo}/questions/utils.py (98%) rename {apps => rdmo}/questions/validators.py (94%) rename {apps => rdmo}/questions/views.py (93%) rename {apps => rdmo}/questions/viewsets.py (97%) create mode 100644 rdmo/tasks/__init__.py rename {apps => rdmo}/tasks/admin.py (100%) rename {apps => rdmo}/tasks/app_config.py (86%) rename {apps => rdmo}/tasks/managers.py (100%) rename {apps => rdmo}/tasks/migrations/0001_initial.py (93%) rename {apps => rdmo}/tasks/migrations/0002_many_to_many_for_conditions.py (100%) rename {apps => rdmo}/tasks/migrations/0003_meta.py (100%) rename {apps => rdmo}/tasks/migrations/0004_refactoring.py (100%) rename {apps => rdmo}/tasks/migrations/0005_data_migration.py (100%) rename {apps => rdmo}/tasks/migrations/0006_meta.py (100%) rename {apps => rdmo}/tasks/migrations/0007_permissions.py (100%) rename {apps => rdmo}/tasks/migrations/0008_remove_time_period.py (100%) rename {apps => rdmo}/tasks/migrations/0009_timeframe.py (100%) rename {apps => rdmo}/tasks/migrations/0010_meta.py (100%) rename {apps => rdmo}/tasks/migrations/0011_task_text.py (100%) rename {apps => rdmo}/tasks/migrations/__init__.py (100%) rename {apps => rdmo}/tasks/models.py (96%) rename {apps => rdmo}/tasks/renderers.py (97%) rename {apps => rdmo}/tasks/serializers/__init__.py (93%) rename {apps => rdmo}/tasks/serializers/api.py (91%) rename {apps => rdmo}/tasks/serializers/export.py (100%) rename {apps => rdmo}/tasks/static/tasks/css/tasks.scss (100%) rename {apps => rdmo}/tasks/static/tasks/js/tasks.js (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_export.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_modal_delete_tasks.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_modal_form_conditions.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_modal_form_tasks.html (100%) rename {apps => rdmo}/tasks/templates/tasks/tasks_modal_form_timeframes.html (100%) rename {apps => rdmo}/tasks/tests.py (94%) rename {apps => rdmo}/tasks/urls.py (100%) rename {apps => rdmo}/tasks/utils.py (91%) rename {apps => rdmo}/tasks/validators.py (66%) rename {apps => rdmo}/tasks/views.py (92%) rename {apps => rdmo}/tasks/viewsets.py (93%) create mode 100644 rdmo/views/__init__.py rename {apps => rdmo}/views/admin.py (100%) rename {apps => rdmo}/views/app_config.py (86%) rename {apps => rdmo}/views/migrations/0001_initial.py (100%) rename {apps => rdmo}/views/migrations/0002_view_template.py (100%) rename {apps => rdmo}/views/migrations/0003_refactoring.py (100%) rename {apps => rdmo}/views/migrations/0004_refactoring.py (100%) rename {apps => rdmo}/views/migrations/0005_meta.py (100%) rename {apps => rdmo}/views/migrations/0006_title_and_help.py (100%) rename {apps => rdmo}/views/migrations/0007_data_migration.py (100%) rename {apps => rdmo}/views/migrations/0008_permissions.py (100%) rename {apps => rdmo}/views/migrations/0009_meta.py (100%) rename {apps => rdmo}/views/migrations/__init__.py (100%) rename {apps => rdmo}/views/models.py (97%) rename {apps => rdmo}/views/renderers.py (95%) rename {apps => rdmo}/views/serializers/__init__.py (100%) rename {apps => rdmo}/views/serializers/api.py (100%) rename {apps => rdmo}/views/serializers/export.py (100%) rename {apps => rdmo}/views/static/views/css/views.scss (100%) rename {apps => rdmo}/views/static/views/js/views.js (100%) rename {apps => rdmo}/views/templates/views/views.html (100%) rename {apps => rdmo}/views/templates/views/views_export.html (100%) rename {apps => rdmo}/views/templates/views/views_modal_delete_views.html (100%) rename {apps => rdmo}/views/templates/views/views_modal_form_templates.html (100%) rename {apps => rdmo}/views/templates/views/views_modal_form_views.html (100%) rename {apps => rdmo}/views/tests.py (95%) rename {apps => rdmo}/views/urls.py (100%) rename {apps => rdmo}/views/utils.py (89%) rename {apps => rdmo}/views/validators.py (66%) rename {apps => rdmo}/views/views.py (92%) rename {apps => rdmo}/views/viewsets.py (95%) diff --git a/apps/accounts/__init__.py b/apps/accounts/__init__.py deleted file mode 100644 index 6e06525b9..000000000 --- a/apps/accounts/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.accounts.app_config.AccountsConfig' diff --git a/apps/conditions/__init__.py b/apps/conditions/__init__.py deleted file mode 100644 index e7a64215d..000000000 --- a/apps/conditions/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.conditions.app_config.ConditionsConfig' diff --git a/apps/domain/__init__.py b/apps/domain/__init__.py deleted file mode 100644 index d68550164..000000000 --- a/apps/domain/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.domain.app_config.DomainConfig' diff --git a/apps/options/__init__.py b/apps/options/__init__.py deleted file mode 100644 index 48f8b231a..000000000 --- a/apps/options/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.options.app_config.OptionsConfig' diff --git a/apps/projects/__init__.py b/apps/projects/__init__.py deleted file mode 100644 index db9141a74..000000000 --- a/apps/projects/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.projects.app_config.ProjectsConfig' diff --git a/apps/questions/__init__.py b/apps/questions/__init__.py deleted file mode 100644 index 3fde3709c..000000000 --- a/apps/questions/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.questions.app_config.QuestionsConfig' diff --git a/apps/tasks/__init__.py b/apps/tasks/__init__.py deleted file mode 100644 index 00803b70b..000000000 --- a/apps/tasks/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.tasks.app_config.TasksConfig' diff --git a/apps/views/__init__.py b/apps/views/__init__.py deleted file mode 100644 index 0bb989e90..000000000 --- a/apps/views/__init__.py +++ /dev/null @@ -1 +0,0 @@ -default_app_config = 'apps.views.app_config.ViewsConfig' diff --git a/apps/__init__.py b/config/__init__.py similarity index 100% rename from apps/__init__.py rename to config/__init__.py diff --git a/rdmo/settings/__init__.py b/config/settings/__init__.py similarity index 100% rename from rdmo/settings/__init__.py rename to config/settings/__init__.py diff --git a/rdmo/settings/base.py b/config/settings/base.py similarity index 95% rename from rdmo/settings/base.py rename to config/settings/base.py index 778810ab2..fcc4e0ae0 100644 --- a/rdmo/settings/base.py +++ b/config/settings/base.py @@ -25,15 +25,15 @@ 'django.contrib.staticfiles', 'django.contrib.sites', # rdmo modules - 'apps.core', - 'apps.accounts', - 'apps.domain', - 'apps.options', - 'apps.conditions', - 'apps.questions', - 'apps.tasks', - 'apps.views', - 'apps.projects', + 'rdmo.core', + 'rdmo.accounts', + 'rdmo.domain', + 'rdmo.options', + 'rdmo.conditions', + 'rdmo.questions', + 'rdmo.tasks', + 'rdmo.views', + 'rdmo.projects', # 3rd party modules 'rest_framework', 'rest_framework.authtoken', @@ -59,7 +59,7 @@ 'django.contrib.sites.middleware.CurrentSiteMiddleware' ] -ROOT_URLCONF = 'rdmo.urls' +ROOT_URLCONF = 'config.urls' TEMPLATES = [ { @@ -82,7 +82,7 @@ ('text/x-scss', 'django_libsass.SassCompiler'), ) -WSGI_APPLICATION = 'rdmo.wsgi.application' +WSGI_APPLICATION = 'config.wsgi.application' DATABASES = { 'default': { diff --git a/config/settings/local.py b/config/settings/local.py new file mode 100644 index 000000000..ea748d21b --- /dev/null +++ b/config/settings/local.py @@ -0,0 +1,157 @@ +import os +from .base import BASE_DIR, INSTALLED_APPS, AUTHENTICATION_BACKENDS, MIDDLEWARE_CLASSES + +DEBUG = True + +ALLOWED_HOSTS = ['localhost', 'ip6-localhost', '127.0.0.1', '[::1]'] + +# BASE_URL = '/foo' + +# THEME_DIR = os.path.join(BASE_DIR, 'themes/bwFDM-info') + +# DATABASES = { +# 'default': { +# 'ENGINE': 'django.db.backends.postgresql_psycopg2', +# 'NAME': 'rdmo', +# # 'NAME': 'rdmo_catalog' +# } +# } + +# DATABASES = { +# 'default': { +# 'ENGINE': 'django.db.backends.mysql', +# 'NAME': 'rdmo', +# 'USER': 'rdmo', +# 'PASSWORD': 'rdmo', +# } +# } + +''' +ALLAUTH +''' + +# INSTALLED_APPS += [ +# 'allauth', +# 'allauth.account', +# # 'allauth.socialaccount' +# # 'allauth.socialaccount.providers.facebook', +# # 'allauth.socialaccount.providers.github', +# # 'allauth.socialaccount.providers.google', +# # 'allauth.socialaccount.providers.orcid', +# # 'allauth.socialaccount.providers.twitter', +# ] + +# ACCOUNT = True +# ACCOUNT_SIGNUP = True +# SOCIALACCOUNT = False + +''' +LDAP +''' + +# PROFILE_UPDATE = False +# +# import ldap +# from django_auth_ldap.config import LDAPSearch +# +# AUTH_LDAP_SERVER_URI = "ldap://idp.vbox" +# AUTH_LDAP_BIND_DN = "cn=admin,dc=ldap,dc=vbox" +# AUTH_LDAP_BIND_PASSWORD = "admin" +# AUTH_LDAP_USER_SEARCH = LDAPSearch("dc=ldap,dc=vbox", ldap.SCOPE_SUBTREE, "(uid=%(user)s)") +# +# AUTH_LDAP_USER_ATTR_MAP = { +# "first_name": "givenName", +# "last_name": "sn", +# 'email': 'mail' +# } +# +# AUTHENTICATION_BACKENDS.insert( +# AUTHENTICATION_BACKENDS.index('django.contrib.auth.backends.ModelBackend'), +# 'django_auth_ldap.backend.LDAPBackend' +# ) + +''' +Shibboleth +''' + +# SHIBBOLETH = True +# PROFILE_UPDATE = False +# +# INSTALLED_APPS += ['shibboleth'] +# +# SHIBBOLETH_ATTRIBUTE_MAP = { +# 'uid': (True, 'username'), +# 'givenName': (True, 'first_name'), +# 'sn': (True, 'last_name'), +# 'mail': (True, 'email'), +# } +# +# AUTHENTICATION_BACKENDS.append('shibboleth.backends.ShibbolethRemoteUserBackend') +# +# MIDDLEWARE_CLASSES.insert( +# MIDDLEWARE_CLASSES.index('django.contrib.auth.middleware.AuthenticationMiddleware') + 1, +# 'shibboleth.middleware.ShibbolethRemoteUserMiddleware' +# ) +# +# LOGIN_URL = '/Shibboleth.sso/Login?target=/projects' +# LOGOUT_URL = '/Shibboleth.sso/Logout' + +''' +Cache +''' + +# CACHES = { +# 'default': { +# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', +# 'LOCATION': '127.0.0.1:11211', +# 'KEY_PREFIX': 'rdmo' +# }, +# 'api': { +# 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', +# 'LOCATION': '127.0.0.1:11211', +# 'KEY_PREFIX': 'rdmo_api' +# } +# } + +''' +Logging +''' + +# LOGGING = { +# 'disable_existing_loggers': False, +# 'version': 1, +# 'handlers': { +# 'sql': { +# 'class': 'logging.FileHandler', +# 'level': 'DEBUG', +# 'filename': '/var/log/django/sql.log', +# }, +# 'rules': { +# 'class': 'logging.FileHandler', +# 'level': 'DEBUG', +# 'filename': '/var/log/django/rules.log', +# }, +# 'ldap': { +# 'class': 'logging.FileHandler', +# 'level': 'DEBUG', +# 'filename': '/var/log/django/ldap.log', +# }, +# }, +# 'loggers': { +# 'django.db.backends': { +# 'handlers': ['sql'], +# 'level': 'DEBUG', +# 'propagate': False, +# }, +# 'rules': { +# 'handlers': ['rules'], +# 'level': 'DEBUG', +# 'propagate': True, +# }, +# 'django_auth_ldap': { +# 'handlers': ['ldap'], +# 'level': 'DEBUG', +# 'propagate': False, +# }, +# }, +# } diff --git a/rdmo/settings/sample.local.py b/config/settings/sample.local.py similarity index 100% rename from rdmo/settings/sample.local.py rename to config/settings/sample.local.py diff --git a/rdmo/urls.py b/config/urls.py similarity index 81% rename from rdmo/urls.py rename to config/urls.py index 5684dfe0f..095885056 100644 --- a/rdmo/urls.py +++ b/config/urls.py @@ -1,16 +1,16 @@ from django.conf.urls import include, url from django.contrib import admin -from apps.core.views import home, i18n_switcher - -from apps.accounts.urls import accounts_patterns, accounts_patterns_api -from apps.conditions.urls import conditions_patterns, conditions_patterns_internal, conditions_patterns_api -from apps.domain.urls import domain_patterns, domain_patterns_internal, domain_patterns_api -from apps.options.urls import options_patterns, options_patterns_internal, options_patterns_api -from apps.projects.urls import projects_patterns, projects_patterns_internal, projects_patterns_api -from apps.questions.urls import questions_patterns, questions_patterns_internal, questions_patterns_api -from apps.tasks.urls import tasks_patterns, tasks_patterns_internal, tasks_patterns_api -from apps.views.urls import views_patterns, views_patterns_internal, views_patterns_api +from rdmo.core.views import home, i18n_switcher + +from rdmo.accounts.urls import accounts_patterns, accounts_patterns_api +from rdmo.conditions.urls import conditions_patterns, conditions_patterns_internal, conditions_patterns_api +from rdmo.domain.urls import domain_patterns, domain_patterns_internal, domain_patterns_api +from rdmo.options.urls import options_patterns, options_patterns_internal, options_patterns_api +from rdmo.projects.urls import projects_patterns, projects_patterns_internal, projects_patterns_api +from rdmo.questions.urls import questions_patterns, questions_patterns_internal, questions_patterns_api +from rdmo.tasks.urls import tasks_patterns, tasks_patterns_internal, tasks_patterns_api +from rdmo.views.urls import views_patterns, views_patterns_internal, views_patterns_api urlpatterns = [ diff --git a/rdmo/wsgi.py b/config/wsgi.py similarity index 59% rename from rdmo/wsgi.py rename to config/wsgi.py index 578412e7e..850933564 100644 --- a/rdmo/wsgi.py +++ b/config/wsgi.py @@ -2,6 +2,6 @@ from django.core.wsgi import get_wsgi_application -os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rdmo.settings") +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings") application = get_wsgi_application() diff --git a/manage.py b/manage.py index 36f1459e9..5ec273e19 100755 --- a/manage.py +++ b/manage.py @@ -3,7 +3,7 @@ import sys if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "rdmo.settings") + os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings") from django.core.management import execute_from_command_line diff --git a/rdmo/accounts/__init__.py b/rdmo/accounts/__init__.py new file mode 100644 index 000000000..ded192917 --- /dev/null +++ b/rdmo/accounts/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.accounts.app_config.AccountsConfig' diff --git a/apps/accounts/adapter.py b/rdmo/accounts/adapter.py similarity index 100% rename from apps/accounts/adapter.py rename to rdmo/accounts/adapter.py diff --git a/apps/accounts/admin.py b/rdmo/accounts/admin.py similarity index 100% rename from apps/accounts/admin.py rename to rdmo/accounts/admin.py diff --git a/apps/accounts/app_config.py b/rdmo/accounts/app_config.py similarity index 85% rename from apps/accounts/app_config.py rename to rdmo/accounts/app_config.py index 02704c503..40e2233ca 100644 --- a/apps/accounts/app_config.py +++ b/rdmo/accounts/app_config.py @@ -3,5 +3,5 @@ class AccountsConfig(AppConfig): - name = 'apps.accounts' + name = 'rdmo.accounts' verbose_name = _('Accounts') diff --git a/apps/accounts/forms.py b/rdmo/accounts/forms.py similarity index 100% rename from apps/accounts/forms.py rename to rdmo/accounts/forms.py diff --git a/apps/accounts/migrations/0001_initial.py b/rdmo/accounts/migrations/0001_initial.py similarity index 100% rename from apps/accounts/migrations/0001_initial.py rename to rdmo/accounts/migrations/0001_initial.py diff --git a/apps/accounts/migrations/0002_detail_key_type_field_length_increased.py b/rdmo/accounts/migrations/0002_detail_key_type_field_length_increased.py similarity index 100% rename from apps/accounts/migrations/0002_detail_key_type_field_length_increased.py rename to rdmo/accounts/migrations/0002_detail_key_type_field_length_increased.py diff --git a/apps/accounts/migrations/0003_hint_renamed_to_help_text.py b/rdmo/accounts/migrations/0003_hint_renamed_to_help_text.py similarity index 100% rename from apps/accounts/migrations/0003_hint_renamed_to_help_text.py rename to rdmo/accounts/migrations/0003_hint_renamed_to_help_text.py diff --git a/apps/accounts/migrations/0004_permission_added.py b/rdmo/accounts/migrations/0004_permission_added.py similarity index 100% rename from apps/accounts/migrations/0004_permission_added.py rename to rdmo/accounts/migrations/0004_permission_added.py diff --git a/apps/accounts/migrations/0005_field_type.py b/rdmo/accounts/migrations/0005_field_type.py similarity index 100% rename from apps/accounts/migrations/0005_field_type.py rename to rdmo/accounts/migrations/0005_field_type.py diff --git a/apps/accounts/migrations/0006_permissions_removed.py b/rdmo/accounts/migrations/0006_permissions_removed.py similarity index 100% rename from apps/accounts/migrations/0006_permissions_removed.py rename to rdmo/accounts/migrations/0006_permissions_removed.py diff --git a/apps/accounts/migrations/0007_additional_fields.py b/rdmo/accounts/migrations/0007_additional_fields.py similarity index 94% rename from apps/accounts/migrations/0007_additional_fields.py rename to rdmo/accounts/migrations/0007_additional_fields.py index 8faf7bf2e..e87eb0d06 100644 --- a/apps/accounts/migrations/0007_additional_fields.py +++ b/rdmo/accounts/migrations/0007_additional_fields.py @@ -2,7 +2,11 @@ # Generated by Django 1.9 on 2016-11-14 12:13 from __future__ import unicode_literals -import apps.core.models +try: + import rdmo.core.models +except ImportError: + import rdmo.core.models + from django.conf import settings from django.db import migrations, models import django.db.models.deletion @@ -33,7 +37,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Additional field', 'verbose_name_plural': 'Additional fields', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='AdditionalFieldValue', diff --git a/apps/accounts/migrations/0008_related_name.py b/rdmo/accounts/migrations/0008_related_name.py similarity index 100% rename from apps/accounts/migrations/0008_related_name.py rename to rdmo/accounts/migrations/0008_related_name.py diff --git a/apps/accounts/migrations/0009_proxyuser.py b/rdmo/accounts/migrations/0009_proxyuser.py similarity index 100% rename from apps/accounts/migrations/0009_proxyuser.py rename to rdmo/accounts/migrations/0009_proxyuser.py diff --git a/apps/accounts/migrations/__init__.py b/rdmo/accounts/migrations/__init__.py similarity index 100% rename from apps/accounts/migrations/__init__.py rename to rdmo/accounts/migrations/__init__.py diff --git a/apps/accounts/models.py b/rdmo/accounts/models.py similarity index 97% rename from apps/accounts/models.py rename to rdmo/accounts/models.py index ebc5e5212..e7a0e26ad 100644 --- a/apps/accounts/models.py +++ b/rdmo/accounts/models.py @@ -5,7 +5,7 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.models import TranslationMixin +from rdmo.core.models import TranslationMixin class ProxyUser(User): diff --git a/apps/accounts/serializers/__init__.py b/rdmo/accounts/serializers/__init__.py similarity index 100% rename from apps/accounts/serializers/__init__.py rename to rdmo/accounts/serializers/__init__.py diff --git a/apps/accounts/serializers/api.py b/rdmo/accounts/serializers/api.py similarity index 100% rename from apps/accounts/serializers/api.py rename to rdmo/accounts/serializers/api.py diff --git a/apps/accounts/settings.py b/rdmo/accounts/settings.py similarity index 100% rename from apps/accounts/settings.py rename to rdmo/accounts/settings.py diff --git a/apps/accounts/templates/account/email.html b/rdmo/accounts/templates/account/email.html similarity index 100% rename from apps/accounts/templates/account/email.html rename to rdmo/accounts/templates/account/email.html diff --git a/apps/accounts/templates/account/email/password_reset_key_message.txt b/rdmo/accounts/templates/account/email/password_reset_key_message.txt similarity index 100% rename from apps/accounts/templates/account/email/password_reset_key_message.txt rename to rdmo/accounts/templates/account/email/password_reset_key_message.txt diff --git a/apps/accounts/templates/account/email/password_reset_key_subject.txt b/rdmo/accounts/templates/account/email/password_reset_key_subject.txt similarity index 100% rename from apps/accounts/templates/account/email/password_reset_key_subject.txt rename to rdmo/accounts/templates/account/email/password_reset_key_subject.txt diff --git a/apps/accounts/templates/account/email_confirm.html b/rdmo/accounts/templates/account/email_confirm.html similarity index 100% rename from apps/accounts/templates/account/email_confirm.html rename to rdmo/accounts/templates/account/email_confirm.html diff --git a/apps/accounts/templates/account/login.html b/rdmo/accounts/templates/account/login.html similarity index 100% rename from apps/accounts/templates/account/login.html rename to rdmo/accounts/templates/account/login.html diff --git a/apps/accounts/templates/account/login_form.html b/rdmo/accounts/templates/account/login_form.html similarity index 100% rename from apps/accounts/templates/account/login_form.html rename to rdmo/accounts/templates/account/login_form.html diff --git a/apps/accounts/templates/account/login_form_account.html b/rdmo/accounts/templates/account/login_form_account.html similarity index 100% rename from apps/accounts/templates/account/login_form_account.html rename to rdmo/accounts/templates/account/login_form_account.html diff --git a/apps/accounts/templates/account/login_form_socialaccount.html b/rdmo/accounts/templates/account/login_form_socialaccount.html similarity index 100% rename from apps/accounts/templates/account/login_form_socialaccount.html rename to rdmo/accounts/templates/account/login_form_socialaccount.html diff --git a/apps/accounts/templates/account/logout.html b/rdmo/accounts/templates/account/logout.html similarity index 100% rename from apps/accounts/templates/account/logout.html rename to rdmo/accounts/templates/account/logout.html diff --git a/apps/accounts/templates/account/logout_form.html b/rdmo/accounts/templates/account/logout_form.html similarity index 100% rename from apps/accounts/templates/account/logout_form.html rename to rdmo/accounts/templates/account/logout_form.html diff --git a/apps/accounts/templates/account/password_change.html b/rdmo/accounts/templates/account/password_change.html similarity index 100% rename from apps/accounts/templates/account/password_change.html rename to rdmo/accounts/templates/account/password_change.html diff --git a/apps/accounts/templates/account/password_reset.html b/rdmo/accounts/templates/account/password_reset.html similarity index 100% rename from apps/accounts/templates/account/password_reset.html rename to rdmo/accounts/templates/account/password_reset.html diff --git a/apps/accounts/templates/account/password_reset_done.html b/rdmo/accounts/templates/account/password_reset_done.html similarity index 100% rename from apps/accounts/templates/account/password_reset_done.html rename to rdmo/accounts/templates/account/password_reset_done.html diff --git a/apps/accounts/templates/account/password_reset_from_key.html b/rdmo/accounts/templates/account/password_reset_from_key.html similarity index 100% rename from apps/accounts/templates/account/password_reset_from_key.html rename to rdmo/accounts/templates/account/password_reset_from_key.html diff --git a/apps/accounts/templates/account/password_reset_from_key_done.html b/rdmo/accounts/templates/account/password_reset_from_key_done.html similarity index 100% rename from apps/accounts/templates/account/password_reset_from_key_done.html rename to rdmo/accounts/templates/account/password_reset_from_key_done.html diff --git a/apps/accounts/templates/account/password_set.html b/rdmo/accounts/templates/account/password_set.html similarity index 100% rename from apps/accounts/templates/account/password_set.html rename to rdmo/accounts/templates/account/password_set.html diff --git a/apps/accounts/templates/account/signup.html b/rdmo/accounts/templates/account/signup.html similarity index 100% rename from apps/accounts/templates/account/signup.html rename to rdmo/accounts/templates/account/signup.html diff --git a/apps/accounts/templates/account/signup_closed.html b/rdmo/accounts/templates/account/signup_closed.html similarity index 100% rename from apps/accounts/templates/account/signup_closed.html rename to rdmo/accounts/templates/account/signup_closed.html diff --git a/apps/accounts/templates/account/verification_sent.html b/rdmo/accounts/templates/account/verification_sent.html similarity index 100% rename from apps/accounts/templates/account/verification_sent.html rename to rdmo/accounts/templates/account/verification_sent.html diff --git a/apps/accounts/templates/account/verified_email_required.html b/rdmo/accounts/templates/account/verified_email_required.html similarity index 100% rename from apps/accounts/templates/account/verified_email_required.html rename to rdmo/accounts/templates/account/verified_email_required.html diff --git a/apps/accounts/templates/profile/profile_update_closed.html b/rdmo/accounts/templates/profile/profile_update_closed.html similarity index 100% rename from apps/accounts/templates/profile/profile_update_closed.html rename to rdmo/accounts/templates/profile/profile_update_closed.html diff --git a/apps/accounts/templates/profile/profile_update_form.html b/rdmo/accounts/templates/profile/profile_update_form.html similarity index 100% rename from apps/accounts/templates/profile/profile_update_form.html rename to rdmo/accounts/templates/profile/profile_update_form.html diff --git a/apps/accounts/templates/socialaccount/authentication_error.html b/rdmo/accounts/templates/socialaccount/authentication_error.html similarity index 100% rename from apps/accounts/templates/socialaccount/authentication_error.html rename to rdmo/accounts/templates/socialaccount/authentication_error.html diff --git a/apps/accounts/templates/socialaccount/connections.html b/rdmo/accounts/templates/socialaccount/connections.html similarity index 100% rename from apps/accounts/templates/socialaccount/connections.html rename to rdmo/accounts/templates/socialaccount/connections.html diff --git a/apps/accounts/templates/socialaccount/login_cancelled.html b/rdmo/accounts/templates/socialaccount/login_cancelled.html similarity index 100% rename from apps/accounts/templates/socialaccount/login_cancelled.html rename to rdmo/accounts/templates/socialaccount/login_cancelled.html diff --git a/apps/accounts/templates/socialaccount/signup.html b/rdmo/accounts/templates/socialaccount/signup.html similarity index 100% rename from apps/accounts/templates/socialaccount/signup.html rename to rdmo/accounts/templates/socialaccount/signup.html diff --git a/apps/accounts/templates/socialaccount/snippets/provider_list.html b/rdmo/accounts/templates/socialaccount/snippets/provider_list.html similarity index 100% rename from apps/accounts/templates/socialaccount/snippets/provider_list.html rename to rdmo/accounts/templates/socialaccount/snippets/provider_list.html diff --git a/apps/accounts/templatetags/__init__.py b/rdmo/accounts/templatetags/__init__.py similarity index 100% rename from apps/accounts/templatetags/__init__.py rename to rdmo/accounts/templatetags/__init__.py diff --git a/apps/accounts/templatetags/accounts_tags.py b/rdmo/accounts/templatetags/accounts_tags.py similarity index 100% rename from apps/accounts/templatetags/accounts_tags.py rename to rdmo/accounts/templatetags/accounts_tags.py diff --git a/apps/accounts/tests.py b/rdmo/accounts/tests.py similarity index 99% rename from apps/accounts/tests.py rename to rdmo/accounts/tests.py index 57ca030c9..b59af79f1 100644 --- a/apps/accounts/tests.py +++ b/rdmo/accounts/tests.py @@ -10,7 +10,7 @@ from test_generator.core import TestModelStringMixin from test_generator.viewsets import TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.accounts.utils import set_group_permissions +from rdmo.accounts.utils import set_group_permissions class AccountsTestCase(TestCase): diff --git a/apps/accounts/urls.py b/rdmo/accounts/urls.py similarity index 100% rename from apps/accounts/urls.py rename to rdmo/accounts/urls.py diff --git a/apps/accounts/utils.py b/rdmo/accounts/utils.py similarity index 100% rename from apps/accounts/utils.py rename to rdmo/accounts/utils.py diff --git a/apps/accounts/views.py b/rdmo/accounts/views.py similarity index 93% rename from apps/accounts/views.py rename to rdmo/accounts/views.py index c75a679d2..397a48f0c 100644 --- a/apps/accounts/views.py +++ b/rdmo/accounts/views.py @@ -2,7 +2,7 @@ from django.shortcuts import render from django.contrib.auth.decorators import login_required from django.http import HttpResponseRedirect -from apps.core.utils import get_referer_path_info, get_next +from rdmo.core.utils import get_referer_path_info, get_next from .forms import ProfileForm diff --git a/apps/accounts/viewsets.py b/rdmo/accounts/viewsets.py similarity index 92% rename from apps/accounts/viewsets.py rename to rdmo/accounts/viewsets.py index 22a583c96..fc87912c1 100644 --- a/apps/accounts/viewsets.py +++ b/rdmo/accounts/viewsets.py @@ -4,7 +4,7 @@ from rest_framework.filters import DjangoFilterBackend from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.permissions import HasModelPermission +from rdmo.core.permissions import HasModelPermission from .serializers.api import ( UserSerializer as UserApiSerializer, diff --git a/rdmo/conditions/__init__.py b/rdmo/conditions/__init__.py new file mode 100644 index 000000000..5a1e57750 --- /dev/null +++ b/rdmo/conditions/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.conditions.app_config.ConditionsConfig' diff --git a/apps/conditions/admin.py b/rdmo/conditions/admin.py similarity index 100% rename from apps/conditions/admin.py rename to rdmo/conditions/admin.py diff --git a/apps/conditions/app_config.py b/rdmo/conditions/app_config.py similarity index 84% rename from apps/conditions/app_config.py rename to rdmo/conditions/app_config.py index 26084152c..b03842b3a 100644 --- a/apps/conditions/app_config.py +++ b/rdmo/conditions/app_config.py @@ -3,5 +3,5 @@ class ConditionsConfig(AppConfig): - name = 'apps.conditions' + name = 'rdmo.conditions' verbose_name = _('Conditions') diff --git a/apps/conditions/migrations/0001_initial.py b/rdmo/conditions/migrations/0001_initial.py similarity index 100% rename from apps/conditions/migrations/0001_initial.py rename to rdmo/conditions/migrations/0001_initial.py diff --git a/apps/conditions/migrations/0002_many_to_many_for_conditions.py b/rdmo/conditions/migrations/0002_many_to_many_for_conditions.py similarity index 100% rename from apps/conditions/migrations/0002_many_to_many_for_conditions.py rename to rdmo/conditions/migrations/0002_many_to_many_for_conditions.py diff --git a/apps/conditions/migrations/0003_meta.py b/rdmo/conditions/migrations/0003_meta.py similarity index 100% rename from apps/conditions/migrations/0003_meta.py rename to rdmo/conditions/migrations/0003_meta.py diff --git a/apps/conditions/migrations/0004_condition_title.py b/rdmo/conditions/migrations/0004_condition_title.py similarity index 100% rename from apps/conditions/migrations/0004_condition_title.py rename to rdmo/conditions/migrations/0004_condition_title.py diff --git a/apps/conditions/migrations/0005_empty_relation.py b/rdmo/conditions/migrations/0005_empty_relation.py similarity index 100% rename from apps/conditions/migrations/0005_empty_relation.py rename to rdmo/conditions/migrations/0005_empty_relation.py diff --git a/apps/conditions/migrations/0006_db_constraint_false.py b/rdmo/conditions/migrations/0006_db_constraint_false.py similarity index 100% rename from apps/conditions/migrations/0006_db_constraint_false.py rename to rdmo/conditions/migrations/0006_db_constraint_false.py diff --git a/apps/conditions/migrations/0007_ordering.py b/rdmo/conditions/migrations/0007_ordering.py similarity index 100% rename from apps/conditions/migrations/0007_ordering.py rename to rdmo/conditions/migrations/0007_ordering.py diff --git a/apps/conditions/migrations/0008_validator.py b/rdmo/conditions/migrations/0008_validator.py similarity index 100% rename from apps/conditions/migrations/0008_validator.py rename to rdmo/conditions/migrations/0008_validator.py diff --git a/apps/conditions/migrations/0009_options.py b/rdmo/conditions/migrations/0009_options.py similarity index 100% rename from apps/conditions/migrations/0009_options.py rename to rdmo/conditions/migrations/0009_options.py diff --git a/apps/conditions/migrations/0010_refactoring.py b/rdmo/conditions/migrations/0010_refactoring.py similarity index 100% rename from apps/conditions/migrations/0010_refactoring.py rename to rdmo/conditions/migrations/0010_refactoring.py diff --git a/apps/conditions/migrations/0011_refactoring.py b/rdmo/conditions/migrations/0011_refactoring.py similarity index 100% rename from apps/conditions/migrations/0011_refactoring.py rename to rdmo/conditions/migrations/0011_refactoring.py diff --git a/apps/conditions/migrations/0012_permissions.py b/rdmo/conditions/migrations/0012_permissions.py similarity index 100% rename from apps/conditions/migrations/0012_permissions.py rename to rdmo/conditions/migrations/0012_permissions.py diff --git a/apps/conditions/migrations/0013_meta.py b/rdmo/conditions/migrations/0013_meta.py similarity index 100% rename from apps/conditions/migrations/0013_meta.py rename to rdmo/conditions/migrations/0013_meta.py diff --git a/apps/conditions/migrations/__init__.py b/rdmo/conditions/migrations/__init__.py similarity index 100% rename from apps/conditions/migrations/__init__.py rename to rdmo/conditions/migrations/__init__.py diff --git a/apps/conditions/models.py b/rdmo/conditions/models.py similarity index 99% rename from apps/conditions/models.py rename to rdmo/conditions/models.py index 84134307f..43490a14f 100644 --- a/apps/conditions/models.py +++ b/rdmo/conditions/models.py @@ -4,7 +4,7 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_uri_prefix +from rdmo.core.utils import get_uri_prefix from .validators import ConditionUniqueKeyValidator diff --git a/apps/conditions/renderers.py b/rdmo/conditions/renderers.py similarity index 95% rename from apps/conditions/renderers.py rename to rdmo/conditions/renderers.py index 3374af8fe..f22a3ff55 100644 --- a/apps/conditions/renderers.py +++ b/rdmo/conditions/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/conditions/serializers/__init__.py b/rdmo/conditions/serializers/__init__.py similarity index 95% rename from apps/conditions/serializers/__init__.py rename to rdmo/conditions/serializers/__init__.py index 2995f2052..c94cd2966 100644 --- a/apps/conditions/serializers/__init__.py +++ b/rdmo/conditions/serializers/__init__.py @@ -1,7 +1,7 @@ from rest_framework import serializers -from apps.domain.models import Attribute -from apps.options.models import OptionSet, Option +from rdmo.domain.models import Attribute +from rdmo.options.models import OptionSet, Option from ..models import Condition from ..validators import ConditionUniqueKeyValidator diff --git a/apps/conditions/serializers/api.py b/rdmo/conditions/serializers/api.py similarity index 100% rename from apps/conditions/serializers/api.py rename to rdmo/conditions/serializers/api.py diff --git a/apps/conditions/serializers/export.py b/rdmo/conditions/serializers/export.py similarity index 100% rename from apps/conditions/serializers/export.py rename to rdmo/conditions/serializers/export.py diff --git a/apps/conditions/static/conditions/css/conditions.scss b/rdmo/conditions/static/conditions/css/conditions.scss similarity index 100% rename from apps/conditions/static/conditions/css/conditions.scss rename to rdmo/conditions/static/conditions/css/conditions.scss diff --git a/apps/conditions/static/conditions/js/conditions.js b/rdmo/conditions/static/conditions/js/conditions.js similarity index 100% rename from apps/conditions/static/conditions/js/conditions.js rename to rdmo/conditions/static/conditions/js/conditions.js diff --git a/apps/conditions/templates/conditions/conditions.html b/rdmo/conditions/templates/conditions/conditions.html similarity index 100% rename from apps/conditions/templates/conditions/conditions.html rename to rdmo/conditions/templates/conditions/conditions.html diff --git a/apps/conditions/templates/conditions/conditions_export.html b/rdmo/conditions/templates/conditions/conditions_export.html similarity index 100% rename from apps/conditions/templates/conditions/conditions_export.html rename to rdmo/conditions/templates/conditions/conditions_export.html diff --git a/apps/conditions/templates/conditions/conditions_modal_delete_conditions.html b/rdmo/conditions/templates/conditions/conditions_modal_delete_conditions.html similarity index 100% rename from apps/conditions/templates/conditions/conditions_modal_delete_conditions.html rename to rdmo/conditions/templates/conditions/conditions_modal_delete_conditions.html diff --git a/apps/conditions/templates/conditions/conditions_modal_form_conditions.html b/rdmo/conditions/templates/conditions/conditions_modal_form_conditions.html similarity index 100% rename from apps/conditions/templates/conditions/conditions_modal_form_conditions.html rename to rdmo/conditions/templates/conditions/conditions_modal_form_conditions.html diff --git a/apps/conditions/tests.py b/rdmo/conditions/tests.py similarity index 94% rename from apps/conditions/tests.py rename to rdmo/conditions/tests.py index 1fe160466..1ff107148 100644 --- a/apps/conditions/tests.py +++ b/rdmo/conditions/tests.py @@ -3,9 +3,9 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions -from apps.domain.models import Attribute +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions +from rdmo.domain.models import Attribute from .models import Condition diff --git a/apps/conditions/urls.py b/rdmo/conditions/urls.py similarity index 100% rename from apps/conditions/urls.py rename to rdmo/conditions/urls.py diff --git a/apps/conditions/utils.py b/rdmo/conditions/utils.py similarity index 91% rename from apps/conditions/utils.py rename to rdmo/conditions/utils.py index 13c3527bb..50b807695 100644 --- a/apps/conditions/utils.py +++ b/rdmo/conditions/utils.py @@ -1,6 +1,6 @@ -from apps.core.utils import get_ns_tag -from apps.domain.models import Attribute -from apps.options.models import Option +from rdmo.core.utils import get_ns_tag +from rdmo.domain.models import Attribute +from rdmo.options.models import Option from .models import Condition diff --git a/apps/conditions/validators.py b/rdmo/conditions/validators.py similarity index 69% rename from apps/conditions/validators.py rename to rdmo/conditions/validators.py index cd0483e60..7ff3aaa18 100644 --- a/apps/conditions/validators.py +++ b/rdmo/conditions/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator +from rdmo.core.validators import UniqueKeyValidator class ConditionUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/conditions/views.py b/rdmo/conditions/views.py similarity index 93% rename from apps/conditions/views.py rename to rdmo/conditions/views.py index ced83c38a..d28c32d39 100644 --- a/apps/conditions/views.py +++ b/rdmo/conditions/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import Condition from .serializers.export import ConditionSerializer as ExportSerializer diff --git a/apps/conditions/viewsets.py b/rdmo/conditions/viewsets.py similarity index 92% rename from apps/conditions/viewsets.py rename to rdmo/conditions/viewsets.py index a55b61fed..2b210e766 100644 --- a/apps/conditions/viewsets.py +++ b/rdmo/conditions/viewsets.py @@ -6,12 +6,12 @@ from rest_framework.status import HTTP_400_BAD_REQUEST, HTTP_404_NOT_FOUND from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.views import ChoicesViewSet -from apps.core.permissions import HasModelPermission +from rdmo.core.views import ChoicesViewSet +from rdmo.core.permissions import HasModelPermission -from apps.domain.models import Attribute -from apps.options.models import OptionSet -from apps.projects.models import Snapshot +from rdmo.domain.models import Attribute +from rdmo.options.models import OptionSet +from rdmo.projects.models import Snapshot from .models import Condition from .serializers import ( diff --git a/apps/core/__init__.py b/rdmo/core/__init__.py similarity index 100% rename from apps/core/__init__.py rename to rdmo/core/__init__.py diff --git a/apps/core/exceptions.py b/rdmo/core/exceptions.py similarity index 100% rename from apps/core/exceptions.py rename to rdmo/core/exceptions.py diff --git a/apps/core/management/__init__.py b/rdmo/core/management/__init__.py similarity index 100% rename from apps/core/management/__init__.py rename to rdmo/core/management/__init__.py diff --git a/apps/core/management/commands/__init__.py b/rdmo/core/management/commands/__init__.py similarity index 100% rename from apps/core/management/commands/__init__.py rename to rdmo/core/management/commands/__init__.py diff --git a/apps/core/management/commands/coverage.py b/rdmo/core/management/commands/coverage.py similarity index 100% rename from apps/core/management/commands/coverage.py rename to rdmo/core/management/commands/coverage.py diff --git a/apps/core/management/commands/create-admin-user.py b/rdmo/core/management/commands/create-admin-user.py similarity index 100% rename from apps/core/management/commands/create-admin-user.py rename to rdmo/core/management/commands/create-admin-user.py diff --git a/apps/core/management/commands/create-groups.py b/rdmo/core/management/commands/create-groups.py similarity index 92% rename from apps/core/management/commands/create-groups.py rename to rdmo/core/management/commands/create-groups.py index f41ec6e06..5b2aa7b28 100644 --- a/apps/core/management/commands/create-groups.py +++ b/rdmo/core/management/commands/create-groups.py @@ -1,7 +1,7 @@ from django.core.management.base import BaseCommand from django.contrib.auth.models import Group, Permission -from apps.accounts.settings import GROUPS +from rdmo.accounts.settings import GROUPS class Command(BaseCommand): diff --git a/apps/core/management/commands/deploy.py b/rdmo/core/management/commands/deploy.py similarity index 100% rename from apps/core/management/commands/deploy.py rename to rdmo/core/management/commands/deploy.py diff --git a/apps/core/management/commands/import.py b/rdmo/core/management/commands/import.py similarity index 81% rename from apps/core/management/commands/import.py rename to rdmo/core/management/commands/import.py index 53e327611..0a1c8a7ae 100644 --- a/apps/core/management/commands/import.py +++ b/rdmo/core/management/commands/import.py @@ -3,13 +3,13 @@ from django.contrib.auth.models import User from django.core.management.base import BaseCommand, CommandError -from apps.conditions.utils import import_conditions -from apps.options.utils import import_options -from apps.domain.utils import import_domain -from apps.questions.utils import import_catalog -from apps.tasks.utils import import_tasks -from apps.views.utils import import_views -from apps.projects.utils import import_projects +from rdmo.conditions.utils import import_conditions +from rdmo.options.utils import import_options +from rdmo.domain.utils import import_domain +from rdmo.questions.utils import import_catalog +from rdmo.tasks.utils import import_tasks +from rdmo.views.utils import import_views +from rdmo.projects.utils import import_projects class Command(BaseCommand): diff --git a/apps/core/management/commands/poedit.py b/rdmo/core/management/commands/poedit.py similarity index 100% rename from apps/core/management/commands/poedit.py rename to rdmo/core/management/commands/poedit.py diff --git a/apps/core/management/commands/promote-user-to-superuser.py b/rdmo/core/management/commands/promote-user-to-superuser.py similarity index 100% rename from apps/core/management/commands/promote-user-to-superuser.py rename to rdmo/core/management/commands/promote-user-to-superuser.py diff --git a/apps/core/management/commands/set-uri-prefix.py b/rdmo/core/management/commands/set-uri-prefix.py similarity index 84% rename from apps/core/management/commands/set-uri-prefix.py rename to rdmo/core/management/commands/set-uri-prefix.py index 3a4e1690e..d95231381 100644 --- a/apps/core/management/commands/set-uri-prefix.py +++ b/rdmo/core/management/commands/set-uri-prefix.py @@ -3,12 +3,12 @@ from django.contrib.auth.models import User from django.core.management.base import BaseCommand -from apps.conditions.models import Condition -from apps.options.models import OptionSet, Option -from apps.domain.models import AttributeEntity -from apps.questions.models import Catalog, Section, Subsection, QuestionEntity -from apps.tasks.models import Task -from apps.views.models import View +from rdmo.conditions.models import Condition +from rdmo.options.models import OptionSet, Option +from rdmo.domain.models import AttributeEntity +from rdmo.questions.models import Catalog, Section, Subsection, QuestionEntity +from rdmo.tasks.models import Task +from rdmo.views.models import View class Command(BaseCommand): diff --git a/apps/core/models.py b/rdmo/core/models.py similarity index 95% rename from apps/core/models.py rename to rdmo/core/models.py index 844d8e723..9b6bd612c 100644 --- a/apps/core/models.py +++ b/rdmo/core/models.py @@ -5,7 +5,7 @@ from django.utils.translation import ugettext_lazy as _ from django.utils.translation import get_language -from apps.core.exceptions import RDMOException +from rdmo.core.exceptions import RDMOException class Model(models.Model): diff --git a/apps/core/permissions.py b/rdmo/core/permissions.py similarity index 100% rename from apps/core/permissions.py rename to rdmo/core/permissions.py diff --git a/apps/core/renderers.py b/rdmo/core/renderers.py similarity index 100% rename from apps/core/renderers.py rename to rdmo/core/renderers.py diff --git a/apps/core/serializers.py b/rdmo/core/serializers.py similarity index 100% rename from apps/core/serializers.py rename to rdmo/core/serializers.py diff --git a/apps/core/static/core/css/base.scss b/rdmo/core/static/core/css/base.scss similarity index 100% rename from apps/core/static/core/css/base.scss rename to rdmo/core/static/core/css/base.scss diff --git a/apps/core/static/core/css/codemirror.scss b/rdmo/core/static/core/css/codemirror.scss similarity index 100% rename from apps/core/static/core/css/codemirror.scss rename to rdmo/core/static/core/css/codemirror.scss diff --git a/apps/core/static/core/css/fonts.scss b/rdmo/core/static/core/css/fonts.scss similarity index 100% rename from apps/core/static/core/css/fonts.scss rename to rdmo/core/static/core/css/fonts.scss diff --git a/apps/core/static/core/css/footer.scss b/rdmo/core/static/core/css/footer.scss similarity index 100% rename from apps/core/static/core/css/footer.scss rename to rdmo/core/static/core/css/footer.scss diff --git a/apps/core/static/core/css/header.scss b/rdmo/core/static/core/css/header.scss similarity index 100% rename from apps/core/static/core/css/header.scss rename to rdmo/core/static/core/css/header.scss diff --git a/apps/core/static/core/css/style.scss b/rdmo/core/static/core/css/style.scss similarity index 100% rename from apps/core/static/core/css/style.scss rename to rdmo/core/static/core/css/style.scss diff --git a/apps/core/static/core/css/variables.scss b/rdmo/core/static/core/css/variables.scss similarity index 100% rename from apps/core/static/core/css/variables.scss rename to rdmo/core/static/core/css/variables.scss diff --git a/apps/core/static/core/fonts/DroidSans-Bold.ttf b/rdmo/core/static/core/fonts/DroidSans-Bold.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSans-Bold.ttf rename to rdmo/core/static/core/fonts/DroidSans-Bold.ttf diff --git a/apps/core/static/core/fonts/DroidSans.ttf b/rdmo/core/static/core/fonts/DroidSans.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSans.ttf rename to rdmo/core/static/core/fonts/DroidSans.ttf diff --git a/apps/core/static/core/fonts/DroidSansMono.ttf b/rdmo/core/static/core/fonts/DroidSansMono.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSansMono.ttf rename to rdmo/core/static/core/fonts/DroidSansMono.ttf diff --git a/apps/core/static/core/fonts/DroidSerif-Bold.ttf b/rdmo/core/static/core/fonts/DroidSerif-Bold.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSerif-Bold.ttf rename to rdmo/core/static/core/fonts/DroidSerif-Bold.ttf diff --git a/apps/core/static/core/fonts/DroidSerif-BoldItalic.ttf b/rdmo/core/static/core/fonts/DroidSerif-BoldItalic.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSerif-BoldItalic.ttf rename to rdmo/core/static/core/fonts/DroidSerif-BoldItalic.ttf diff --git a/apps/core/static/core/fonts/DroidSerif-Italic.ttf b/rdmo/core/static/core/fonts/DroidSerif-Italic.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSerif-Italic.ttf rename to rdmo/core/static/core/fonts/DroidSerif-Italic.ttf diff --git a/apps/core/static/core/fonts/DroidSerif.ttf b/rdmo/core/static/core/fonts/DroidSerif.ttf similarity index 100% rename from apps/core/static/core/fonts/DroidSerif.ttf rename to rdmo/core/static/core/fonts/DroidSerif.ttf diff --git a/apps/core/static/core/html/formgroup_checkbox.html b/rdmo/core/static/core/html/formgroup_checkbox.html similarity index 100% rename from apps/core/static/core/html/formgroup_checkbox.html rename to rdmo/core/static/core/html/formgroup_checkbox.html diff --git a/apps/core/static/core/html/formgroup_codemirror.html b/rdmo/core/static/core/html/formgroup_codemirror.html similarity index 100% rename from apps/core/static/core/html/formgroup_codemirror.html rename to rdmo/core/static/core/html/formgroup_codemirror.html diff --git a/apps/core/static/core/html/formgroup_number.html b/rdmo/core/static/core/html/formgroup_number.html similarity index 100% rename from apps/core/static/core/html/formgroup_number.html rename to rdmo/core/static/core/html/formgroup_number.html diff --git a/apps/core/static/core/html/formgroup_select.html b/rdmo/core/static/core/html/formgroup_select.html similarity index 100% rename from apps/core/static/core/html/formgroup_select.html rename to rdmo/core/static/core/html/formgroup_select.html diff --git a/apps/core/static/core/html/formgroup_selectmultiple.html b/rdmo/core/static/core/html/formgroup_selectmultiple.html similarity index 100% rename from apps/core/static/core/html/formgroup_selectmultiple.html rename to rdmo/core/static/core/html/formgroup_selectmultiple.html diff --git a/apps/core/static/core/html/formgroup_selectnumber.html b/rdmo/core/static/core/html/formgroup_selectnumber.html similarity index 100% rename from apps/core/static/core/html/formgroup_selectnumber.html rename to rdmo/core/static/core/html/formgroup_selectnumber.html diff --git a/apps/core/static/core/html/formgroup_text.html b/rdmo/core/static/core/html/formgroup_text.html similarity index 100% rename from apps/core/static/core/html/formgroup_text.html rename to rdmo/core/static/core/html/formgroup_text.html diff --git a/apps/core/static/core/html/formgroup_textarea.html b/rdmo/core/static/core/html/formgroup_textarea.html similarity index 100% rename from apps/core/static/core/html/formgroup_textarea.html rename to rdmo/core/static/core/html/formgroup_textarea.html diff --git a/apps/core/static/core/img/favicon.png b/rdmo/core/static/core/img/favicon.png similarity index 100% rename from apps/core/static/core/img/favicon.png rename to rdmo/core/static/core/img/favicon.png diff --git a/apps/core/static/core/img/header/collection.jpg b/rdmo/core/static/core/img/header/collection.jpg similarity index 100% rename from apps/core/static/core/img/header/collection.jpg rename to rdmo/core/static/core/img/header/collection.jpg diff --git a/apps/core/static/core/img/header/library.jpg b/rdmo/core/static/core/img/header/library.jpg similarity index 100% rename from apps/core/static/core/img/header/library.jpg rename to rdmo/core/static/core/img/header/library.jpg diff --git a/apps/core/static/core/img/header/supercomputer.jpg b/rdmo/core/static/core/img/header/supercomputer.jpg similarity index 100% rename from apps/core/static/core/img/header/supercomputer.jpg rename to rdmo/core/static/core/img/header/supercomputer.jpg diff --git a/apps/core/static/core/js/core.js b/rdmo/core/static/core/js/core.js similarity index 100% rename from apps/core/static/core/js/core.js rename to rdmo/core/static/core/js/core.js diff --git a/apps/core/static/core/js/header.js b/rdmo/core/static/core/js/header.js similarity index 100% rename from apps/core/static/core/js/header.js rename to rdmo/core/static/core/js/header.js diff --git a/apps/core/templates/core/404.html b/rdmo/core/templates/core/404.html similarity index 100% rename from apps/core/templates/core/404.html rename to rdmo/core/templates/core/404.html diff --git a/apps/core/templates/core/base.html b/rdmo/core/templates/core/base.html similarity index 100% rename from apps/core/templates/core/base.html rename to rdmo/core/templates/core/base.html diff --git a/apps/core/templates/core/base_analytics.html b/rdmo/core/templates/core/base_analytics.html similarity index 100% rename from apps/core/templates/core/base_analytics.html rename to rdmo/core/templates/core/base_analytics.html diff --git a/apps/core/templates/core/base_footer.html b/rdmo/core/templates/core/base_footer.html similarity index 100% rename from apps/core/templates/core/base_footer.html rename to rdmo/core/templates/core/base_footer.html diff --git a/apps/core/templates/core/base_head.html b/rdmo/core/templates/core/base_head.html similarity index 100% rename from apps/core/templates/core/base_head.html rename to rdmo/core/templates/core/base_head.html diff --git a/apps/core/templates/core/base_navigation.html b/rdmo/core/templates/core/base_navigation.html similarity index 100% rename from apps/core/templates/core/base_navigation.html rename to rdmo/core/templates/core/base_navigation.html diff --git a/apps/core/templates/core/base_navigation_account.html b/rdmo/core/templates/core/base_navigation_account.html similarity index 100% rename from apps/core/templates/core/base_navigation_account.html rename to rdmo/core/templates/core/base_navigation_account.html diff --git a/apps/core/templates/core/base_navigation_socialaccount.html b/rdmo/core/templates/core/base_navigation_socialaccount.html similarity index 100% rename from apps/core/templates/core/base_navigation_socialaccount.html rename to rdmo/core/templates/core/base_navigation_socialaccount.html diff --git a/apps/core/templates/core/bootstrap_delete_form.html b/rdmo/core/templates/core/bootstrap_delete_form.html similarity index 100% rename from apps/core/templates/core/bootstrap_delete_form.html rename to rdmo/core/templates/core/bootstrap_delete_form.html diff --git a/apps/core/templates/core/bootstrap_form.html b/rdmo/core/templates/core/bootstrap_form.html similarity index 100% rename from apps/core/templates/core/bootstrap_form.html rename to rdmo/core/templates/core/bootstrap_form.html diff --git a/apps/core/templates/core/bootstrap_form_fields.html b/rdmo/core/templates/core/bootstrap_form_fields.html similarity index 100% rename from apps/core/templates/core/bootstrap_form_fields.html rename to rdmo/core/templates/core/bootstrap_form_fields.html diff --git a/apps/core/templates/core/export.html b/rdmo/core/templates/core/export.html similarity index 100% rename from apps/core/templates/core/export.html rename to rdmo/core/templates/core/export.html diff --git a/apps/core/templates/core/home.html b/rdmo/core/templates/core/home.html similarity index 100% rename from apps/core/templates/core/home.html rename to rdmo/core/templates/core/home.html diff --git a/apps/core/templates/core/home_text_de.html b/rdmo/core/templates/core/home_text_de.html similarity index 100% rename from apps/core/templates/core/home_text_de.html rename to rdmo/core/templates/core/home_text_de.html diff --git a/apps/core/templates/core/home_text_en.html b/rdmo/core/templates/core/home_text_en.html similarity index 100% rename from apps/core/templates/core/home_text_en.html rename to rdmo/core/templates/core/home_text_en.html diff --git a/apps/core/templates/core/page.html b/rdmo/core/templates/core/page.html similarity index 100% rename from apps/core/templates/core/page.html rename to rdmo/core/templates/core/page.html diff --git a/apps/core/templatetags/__init__.py b/rdmo/core/templatetags/__init__.py similarity index 100% rename from apps/core/templatetags/__init__.py rename to rdmo/core/templatetags/__init__.py diff --git a/apps/core/templatetags/core_tags.py b/rdmo/core/templatetags/core_tags.py similarity index 100% rename from apps/core/templatetags/core_tags.py rename to rdmo/core/templatetags/core_tags.py diff --git a/apps/core/testing/__init__.py b/rdmo/core/testing/__init__.py similarity index 100% rename from apps/core/testing/__init__.py rename to rdmo/core/testing/__init__.py diff --git a/apps/core/testing/mixins.py b/rdmo/core/testing/mixins.py similarity index 100% rename from apps/core/testing/mixins.py rename to rdmo/core/testing/mixins.py diff --git a/apps/core/tests.py b/rdmo/core/tests.py similarity index 98% rename from apps/core/tests.py rename to rdmo/core/tests.py index 2fde6eccc..c62cb53d4 100644 --- a/apps/core/tests.py +++ b/rdmo/core/tests.py @@ -5,7 +5,7 @@ from django.test.client import RequestFactory from django.utils import translation -from apps.accounts.utils import set_group_permissions +from rdmo.accounts.utils import set_group_permissions class CoreTestCase(TestCase): diff --git a/apps/core/utils.py b/rdmo/core/utils.py similarity index 100% rename from apps/core/utils.py rename to rdmo/core/utils.py diff --git a/apps/core/validators.py b/rdmo/core/validators.py similarity index 100% rename from apps/core/validators.py rename to rdmo/core/validators.py diff --git a/apps/core/views.py b/rdmo/core/views.py similarity index 100% rename from apps/core/views.py rename to rdmo/core/views.py diff --git a/rdmo/domain/__init__.py b/rdmo/domain/__init__.py new file mode 100644 index 000000000..7f512f20f --- /dev/null +++ b/rdmo/domain/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.domain.app_config.DomainConfig' diff --git a/apps/domain/admin.py b/rdmo/domain/admin.py similarity index 100% rename from apps/domain/admin.py rename to rdmo/domain/admin.py diff --git a/apps/domain/app_config.py b/rdmo/domain/app_config.py similarity index 86% rename from apps/domain/app_config.py rename to rdmo/domain/app_config.py index 717a40b9b..5143c2f8d 100644 --- a/apps/domain/app_config.py +++ b/rdmo/domain/app_config.py @@ -3,5 +3,5 @@ class DomainConfig(AppConfig): - name = 'apps.domain' + name = 'rdmo.domain' verbose_name = _('Domain') diff --git a/apps/domain/migrations/0001_initial_after_reset.py b/rdmo/domain/migrations/0001_initial_after_reset.py similarity index 97% rename from apps/domain/migrations/0001_initial_after_reset.py rename to rdmo/domain/migrations/0001_initial_after_reset.py index 4c1139a42..029b059b2 100644 --- a/apps/domain/migrations/0001_initial_after_reset.py +++ b/rdmo/domain/migrations/0001_initial_after_reset.py @@ -3,8 +3,8 @@ from django.db import models, migrations import django.db.models.deletion -import apps.core.models +import rdmo.core.models class Migration(migrations.Migration): @@ -53,7 +53,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Option', 'verbose_name_plural': 'Options', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Range', @@ -68,7 +68,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Range', 'verbose_name_plural': 'Ranges', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Attribute', diff --git a/apps/domain/migrations/0002_additional_input.py b/rdmo/domain/migrations/0002_additional_input.py similarity index 100% rename from apps/domain/migrations/0002_additional_input.py rename to rdmo/domain/migrations/0002_additional_input.py diff --git a/apps/domain/migrations/0003_condition.py b/rdmo/domain/migrations/0003_condition.py similarity index 100% rename from apps/domain/migrations/0003_condition.py rename to rdmo/domain/migrations/0003_condition.py diff --git a/apps/domain/migrations/0004_verbosename.py b/rdmo/domain/migrations/0004_verbosename.py similarity index 91% rename from apps/domain/migrations/0004_verbosename.py rename to rdmo/domain/migrations/0004_verbosename.py index e8dbf6bc3..52677ba66 100644 --- a/apps/domain/migrations/0004_verbosename.py +++ b/rdmo/domain/migrations/0004_verbosename.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.db import models, migrations -import apps.core.models +import rdmo.core.models class Migration(migrations.Migration): @@ -26,6 +26,6 @@ class Migration(migrations.Migration): 'verbose_name': 'VerboseName', 'verbose_name_plural': 'VerboseNames', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), ] diff --git a/apps/domain/migrations/0005_meta.py b/rdmo/domain/migrations/0005_meta.py similarity index 100% rename from apps/domain/migrations/0005_meta.py rename to rdmo/domain/migrations/0005_meta.py diff --git a/apps/domain/migrations/0006_attributeentity_parent_collection.py b/rdmo/domain/migrations/0006_attributeentity_parent_collection.py similarity index 100% rename from apps/domain/migrations/0006_attributeentity_parent_collection.py rename to rdmo/domain/migrations/0006_attributeentity_parent_collection.py diff --git a/apps/domain/migrations/0007_db_index.py b/rdmo/domain/migrations/0007_db_index.py similarity index 100% rename from apps/domain/migrations/0007_db_index.py rename to rdmo/domain/migrations/0007_db_index.py diff --git a/apps/domain/migrations/0008_meta.py b/rdmo/domain/migrations/0008_meta.py similarity index 100% rename from apps/domain/migrations/0008_meta.py rename to rdmo/domain/migrations/0008_meta.py diff --git a/apps/domain/migrations/0009_remove_condition.py b/rdmo/domain/migrations/0009_remove_condition.py similarity index 100% rename from apps/domain/migrations/0009_remove_condition.py rename to rdmo/domain/migrations/0009_remove_condition.py diff --git a/apps/domain/migrations/0010_many_to_many_for_conditions.py b/rdmo/domain/migrations/0010_many_to_many_for_conditions.py similarity index 100% rename from apps/domain/migrations/0010_many_to_many_for_conditions.py rename to rdmo/domain/migrations/0010_many_to_many_for_conditions.py diff --git a/apps/domain/migrations/0011_meta.py b/rdmo/domain/migrations/0011_meta.py similarity index 100% rename from apps/domain/migrations/0011_meta.py rename to rdmo/domain/migrations/0011_meta.py diff --git a/apps/domain/migrations/0012_renaming.py b/rdmo/domain/migrations/0012_renaming.py similarity index 100% rename from apps/domain/migrations/0012_renaming.py rename to rdmo/domain/migrations/0012_renaming.py diff --git a/apps/domain/migrations/0013_mptt.py b/rdmo/domain/migrations/0013_mptt.py similarity index 100% rename from apps/domain/migrations/0013_mptt.py rename to rdmo/domain/migrations/0013_mptt.py diff --git a/apps/domain/migrations/0014_is_attribute.py b/rdmo/domain/migrations/0014_is_attribute.py similarity index 100% rename from apps/domain/migrations/0014_is_attribute.py rename to rdmo/domain/migrations/0014_is_attribute.py diff --git a/apps/domain/migrations/0015_label.py b/rdmo/domain/migrations/0015_label.py similarity index 100% rename from apps/domain/migrations/0015_label.py rename to rdmo/domain/migrations/0015_label.py diff --git a/apps/domain/migrations/0016_label.py b/rdmo/domain/migrations/0016_label.py similarity index 100% rename from apps/domain/migrations/0016_label.py rename to rdmo/domain/migrations/0016_label.py diff --git a/apps/domain/migrations/0017_url_value_type.py b/rdmo/domain/migrations/0017_url_value_type.py similarity index 100% rename from apps/domain/migrations/0017_url_value_type.py rename to rdmo/domain/migrations/0017_url_value_type.py diff --git a/apps/domain/migrations/0018_validator.py b/rdmo/domain/migrations/0018_validator.py similarity index 100% rename from apps/domain/migrations/0018_validator.py rename to rdmo/domain/migrations/0018_validator.py diff --git a/apps/domain/migrations/0019_meta.py b/rdmo/domain/migrations/0019_meta.py similarity index 100% rename from apps/domain/migrations/0019_meta.py rename to rdmo/domain/migrations/0019_meta.py diff --git a/apps/domain/migrations/0020_meta.py b/rdmo/domain/migrations/0020_meta.py similarity index 100% rename from apps/domain/migrations/0020_meta.py rename to rdmo/domain/migrations/0020_meta.py diff --git a/apps/domain/migrations/0021_options.py b/rdmo/domain/migrations/0021_options.py similarity index 100% rename from apps/domain/migrations/0021_options.py rename to rdmo/domain/migrations/0021_options.py diff --git a/apps/domain/migrations/0022_options.py b/rdmo/domain/migrations/0022_options.py similarity index 100% rename from apps/domain/migrations/0022_options.py rename to rdmo/domain/migrations/0022_options.py diff --git a/apps/domain/migrations/0023_fix_label.py b/rdmo/domain/migrations/0023_fix_label.py similarity index 100% rename from apps/domain/migrations/0023_fix_label.py rename to rdmo/domain/migrations/0023_fix_label.py diff --git a/apps/domain/migrations/0024_meta.py b/rdmo/domain/migrations/0024_meta.py similarity index 100% rename from apps/domain/migrations/0024_meta.py rename to rdmo/domain/migrations/0024_meta.py diff --git a/apps/domain/migrations/0025_refactoring.py b/rdmo/domain/migrations/0025_refactoring.py similarity index 100% rename from apps/domain/migrations/0025_refactoring.py rename to rdmo/domain/migrations/0025_refactoring.py diff --git a/apps/domain/migrations/0026_refactoring.py b/rdmo/domain/migrations/0026_refactoring.py similarity index 100% rename from apps/domain/migrations/0026_refactoring.py rename to rdmo/domain/migrations/0026_refactoring.py diff --git a/apps/domain/migrations/0027_meta.py b/rdmo/domain/migrations/0027_meta.py similarity index 100% rename from apps/domain/migrations/0027_meta.py rename to rdmo/domain/migrations/0027_meta.py diff --git a/apps/domain/migrations/0028_path.py b/rdmo/domain/migrations/0028_path.py similarity index 100% rename from apps/domain/migrations/0028_path.py rename to rdmo/domain/migrations/0028_path.py diff --git a/apps/domain/migrations/0029_meta.py b/rdmo/domain/migrations/0029_meta.py similarity index 100% rename from apps/domain/migrations/0029_meta.py rename to rdmo/domain/migrations/0029_meta.py diff --git a/apps/domain/migrations/0030_permissions.py b/rdmo/domain/migrations/0030_permissions.py similarity index 100% rename from apps/domain/migrations/0030_permissions.py rename to rdmo/domain/migrations/0030_permissions.py diff --git a/apps/domain/migrations/0031_meta.py b/rdmo/domain/migrations/0031_meta.py similarity index 100% rename from apps/domain/migrations/0031_meta.py rename to rdmo/domain/migrations/0031_meta.py diff --git a/apps/domain/migrations/__init__.py b/rdmo/domain/migrations/__init__.py similarity index 100% rename from apps/domain/migrations/__init__.py rename to rdmo/domain/migrations/__init__.py diff --git a/apps/domain/models.py b/rdmo/domain/models.py similarity index 98% rename from apps/domain/models.py rename to rdmo/domain/models.py index f560497b5..15f2bfa06 100644 --- a/apps/domain/models.py +++ b/rdmo/domain/models.py @@ -6,9 +6,9 @@ from mptt.models import MPTTModel, TreeForeignKey -from apps.core.utils import get_uri_prefix -from apps.core.models import TranslationMixin -from apps.conditions.models import Condition +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import TranslationMixin +from rdmo.conditions.models import Condition from .validators import AttributeEntityUniquePathValidator diff --git a/apps/domain/renderers.py b/rdmo/domain/renderers.py similarity index 98% rename from apps/domain/renderers.py rename to rdmo/domain/renderers.py index a7d27c432..733575b8e 100644 --- a/apps/domain/renderers.py +++ b/rdmo/domain/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/domain/serializers/__init__.py b/rdmo/domain/serializers/__init__.py similarity index 97% rename from apps/domain/serializers/__init__.py rename to rdmo/domain/serializers/__init__.py index 024dcab4b..8d885e15b 100644 --- a/apps/domain/serializers/__init__.py +++ b/rdmo/domain/serializers/__init__.py @@ -1,7 +1,7 @@ from rest_framework import serializers -from apps.options.models import OptionSet -from apps.conditions.models import Condition +from rdmo.options.models import OptionSet +from rdmo.conditions.models import Condition from ..models import AttributeEntity, Attribute, Range, VerboseName from ..validators import AttributeEntityUniquePathValidator diff --git a/apps/domain/serializers/api.py b/rdmo/domain/serializers/api.py similarity index 100% rename from apps/domain/serializers/api.py rename to rdmo/domain/serializers/api.py diff --git a/apps/domain/serializers/export.py b/rdmo/domain/serializers/export.py similarity index 100% rename from apps/domain/serializers/export.py rename to rdmo/domain/serializers/export.py diff --git a/apps/domain/static/domain/css/domain.scss b/rdmo/domain/static/domain/css/domain.scss similarity index 100% rename from apps/domain/static/domain/css/domain.scss rename to rdmo/domain/static/domain/css/domain.scss diff --git a/apps/domain/static/domain/js/domain.js b/rdmo/domain/static/domain/js/domain.js similarity index 100% rename from apps/domain/static/domain/js/domain.js rename to rdmo/domain/static/domain/js/domain.js diff --git a/apps/domain/templates/domain/domain.html b/rdmo/domain/templates/domain/domain.html similarity index 100% rename from apps/domain/templates/domain/domain.html rename to rdmo/domain/templates/domain/domain.html diff --git a/apps/domain/templates/domain/domain_export.html b/rdmo/domain/templates/domain/domain_export.html similarity index 100% rename from apps/domain/templates/domain/domain_export.html rename to rdmo/domain/templates/domain/domain_export.html diff --git a/apps/domain/templates/domain/domain_modal_delete_attributes.html b/rdmo/domain/templates/domain/domain_modal_delete_attributes.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_delete_attributes.html rename to rdmo/domain/templates/domain/domain_modal_delete_attributes.html diff --git a/apps/domain/templates/domain/domain_modal_delete_entities.html b/rdmo/domain/templates/domain/domain_modal_delete_entities.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_delete_entities.html rename to rdmo/domain/templates/domain/domain_modal_delete_entities.html diff --git a/apps/domain/templates/domain/domain_modal_form_attributes.html b/rdmo/domain/templates/domain/domain_modal_form_attributes.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_attributes.html rename to rdmo/domain/templates/domain/domain_modal_form_attributes.html diff --git a/apps/domain/templates/domain/domain_modal_form_conditions.html b/rdmo/domain/templates/domain/domain_modal_form_conditions.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_conditions.html rename to rdmo/domain/templates/domain/domain_modal_form_conditions.html diff --git a/apps/domain/templates/domain/domain_modal_form_entities.html b/rdmo/domain/templates/domain/domain_modal_form_entities.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_entities.html rename to rdmo/domain/templates/domain/domain_modal_form_entities.html diff --git a/apps/domain/templates/domain/domain_modal_form_optionsets.html b/rdmo/domain/templates/domain/domain_modal_form_optionsets.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_optionsets.html rename to rdmo/domain/templates/domain/domain_modal_form_optionsets.html diff --git a/apps/domain/templates/domain/domain_modal_form_ranges.html b/rdmo/domain/templates/domain/domain_modal_form_ranges.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_ranges.html rename to rdmo/domain/templates/domain/domain_modal_form_ranges.html diff --git a/apps/domain/templates/domain/domain_modal_form_verbosenames.html b/rdmo/domain/templates/domain/domain_modal_form_verbosenames.html similarity index 100% rename from apps/domain/templates/domain/domain_modal_form_verbosenames.html rename to rdmo/domain/templates/domain/domain_modal_form_verbosenames.html diff --git a/apps/domain/templates/domain/domain_options.html b/rdmo/domain/templates/domain/domain_options.html similarity index 100% rename from apps/domain/templates/domain/domain_options.html rename to rdmo/domain/templates/domain/domain_options.html diff --git a/apps/domain/tests.py b/rdmo/domain/tests.py similarity index 95% rename from apps/domain/tests.py rename to rdmo/domain/tests.py index db2d59485..18abc13a0 100644 --- a/apps/domain/tests.py +++ b/rdmo/domain/tests.py @@ -9,11 +9,11 @@ TestDeleteViewsetMixin ) -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions -from apps.conditions.models import Condition -from apps.options.models import OptionSet +from rdmo.conditions.models import Condition +from rdmo.options.models import OptionSet from .models import AttributeEntity, Attribute, Range, VerboseName diff --git a/apps/domain/urls.py b/rdmo/domain/urls.py similarity index 100% rename from apps/domain/urls.py rename to rdmo/domain/urls.py diff --git a/apps/domain/utils.py b/rdmo/domain/utils.py similarity index 97% rename from apps/domain/utils.py rename to rdmo/domain/utils.py index 504a680ce..162417bfa 100644 --- a/apps/domain/utils.py +++ b/rdmo/domain/utils.py @@ -1,6 +1,6 @@ -from apps.core.utils import get_ns_tag -from apps.conditions.models import Condition -from apps.options.models import OptionSet +from rdmo.core.utils import get_ns_tag +from rdmo.conditions.models import Condition +from rdmo.options.models import OptionSet from .models import AttributeEntity, Attribute, Range, VerboseName diff --git a/apps/domain/validators.py b/rdmo/domain/validators.py similarity index 85% rename from apps/domain/validators.py rename to rdmo/domain/validators.py index c742ddbff..b4e4afcfc 100644 --- a/apps/domain/validators.py +++ b/rdmo/domain/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniquePathValidator +from rdmo.core.validators import UniquePathValidator class AttributeEntityUniquePathValidator(UniquePathValidator): diff --git a/apps/domain/views.py b/rdmo/domain/views.py similarity index 95% rename from apps/domain/views.py rename to rdmo/domain/views.py index 56b969add..e70d0b0d2 100644 --- a/apps/domain/views.py +++ b/rdmo/domain/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format, render_to_csv +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format, render_to_csv from .models import AttributeEntity, Attribute, VerboseName, Range from .serializers.export import AttributeEntitySerializer as ExportSerializer diff --git a/apps/domain/viewsets.py b/rdmo/domain/viewsets.py similarity index 95% rename from apps/domain/viewsets.py rename to rdmo/domain/viewsets.py index b9dc95fab..d61ff1ce9 100644 --- a/apps/domain/viewsets.py +++ b/rdmo/domain/viewsets.py @@ -5,11 +5,11 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.views import ChoicesViewSet -from apps.core.permissions import HasModelPermission +from rdmo.core.views import ChoicesViewSet +from rdmo.core.permissions import HasModelPermission -from apps.options.models import OptionSet -from apps.conditions.models import Condition +from rdmo.options.models import OptionSet +from rdmo.conditions.models import Condition from .models import AttributeEntity, Attribute, VerboseName, Range from .serializers import ( diff --git a/rdmo/options/__init__.py b/rdmo/options/__init__.py new file mode 100644 index 000000000..fdcfa798f --- /dev/null +++ b/rdmo/options/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.options.app_config.OptionsConfig' diff --git a/apps/options/admin.py b/rdmo/options/admin.py similarity index 100% rename from apps/options/admin.py rename to rdmo/options/admin.py diff --git a/apps/options/app_config.py b/rdmo/options/app_config.py similarity index 85% rename from apps/options/app_config.py rename to rdmo/options/app_config.py index 0a7ab28ff..54ca6e875 100644 --- a/apps/options/app_config.py +++ b/rdmo/options/app_config.py @@ -3,5 +3,5 @@ class OptionsConfig(AppConfig): - name = 'apps.options' + name = 'rdmo.options' verbose_name = _('Options') diff --git a/apps/options/migrations/0001_initial.py b/rdmo/options/migrations/0001_initial.py similarity index 95% rename from apps/options/migrations/0001_initial.py rename to rdmo/options/migrations/0001_initial.py index fbdcdac50..9bca07b5c 100644 --- a/apps/options/migrations/0001_initial.py +++ b/rdmo/options/migrations/0001_initial.py @@ -2,7 +2,7 @@ # Generated by Django 1.9 on 2016-10-21 10:28 from __future__ import unicode_literals -import apps.core.models +import rdmo.core.models import django.core.validators from django.db import migrations, models import django.db.models.deletion @@ -32,7 +32,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Option', 'verbose_name_plural': 'Options', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='OptionSet', diff --git a/apps/options/migrations/0002_meta.py b/rdmo/options/migrations/0002_meta.py similarity index 100% rename from apps/options/migrations/0002_meta.py rename to rdmo/options/migrations/0002_meta.py diff --git a/apps/options/migrations/0003_data_migration.py b/rdmo/options/migrations/0003_data_migration.py similarity index 100% rename from apps/options/migrations/0003_data_migration.py rename to rdmo/options/migrations/0003_data_migration.py diff --git a/apps/options/migrations/0004_conditions.py b/rdmo/options/migrations/0004_conditions.py similarity index 100% rename from apps/options/migrations/0004_conditions.py rename to rdmo/options/migrations/0004_conditions.py diff --git a/apps/options/migrations/0005_refactoring.py b/rdmo/options/migrations/0005_refactoring.py similarity index 100% rename from apps/options/migrations/0005_refactoring.py rename to rdmo/options/migrations/0005_refactoring.py diff --git a/apps/options/migrations/0006_refactoring.py b/rdmo/options/migrations/0006_refactoring.py similarity index 100% rename from apps/options/migrations/0006_refactoring.py rename to rdmo/options/migrations/0006_refactoring.py diff --git a/apps/options/migrations/0007_meta.py b/rdmo/options/migrations/0007_meta.py similarity index 100% rename from apps/options/migrations/0007_meta.py rename to rdmo/options/migrations/0007_meta.py diff --git a/apps/options/migrations/0008_option_path.py b/rdmo/options/migrations/0008_option_path.py similarity index 100% rename from apps/options/migrations/0008_option_path.py rename to rdmo/options/migrations/0008_option_path.py diff --git a/apps/options/migrations/0009_data_migration.py b/rdmo/options/migrations/0009_data_migration.py similarity index 100% rename from apps/options/migrations/0009_data_migration.py rename to rdmo/options/migrations/0009_data_migration.py diff --git a/apps/options/migrations/0010_meta.py b/rdmo/options/migrations/0010_meta.py similarity index 100% rename from apps/options/migrations/0010_meta.py rename to rdmo/options/migrations/0010_meta.py diff --git a/apps/options/migrations/0011_permissions.py b/rdmo/options/migrations/0011_permissions.py similarity index 100% rename from apps/options/migrations/0011_permissions.py rename to rdmo/options/migrations/0011_permissions.py diff --git a/apps/options/migrations/0012_meta.py b/rdmo/options/migrations/0012_meta.py similarity index 100% rename from apps/options/migrations/0012_meta.py rename to rdmo/options/migrations/0012_meta.py diff --git a/apps/options/migrations/__init__.py b/rdmo/options/migrations/__init__.py similarity index 100% rename from apps/options/migrations/__init__.py rename to rdmo/options/migrations/__init__.py diff --git a/apps/options/models.py b/rdmo/options/models.py similarity index 97% rename from apps/options/models.py rename to rdmo/options/models.py index 8ca39228f..672076e01 100644 --- a/apps/options/models.py +++ b/rdmo/options/models.py @@ -4,9 +4,9 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_uri_prefix -from apps.core.models import TranslationMixin -from apps.conditions.models import Condition +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import TranslationMixin +from rdmo.conditions.models import Condition from .validators import OptionSetUniqueKeyValidator, OptionUniquePathValidator diff --git a/apps/options/renderers.py b/rdmo/options/renderers.py similarity index 97% rename from apps/options/renderers.py rename to rdmo/options/renderers.py index 06ec62160..b64f0fbea 100644 --- a/apps/options/renderers.py +++ b/rdmo/options/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/options/serializers/__init__.py b/rdmo/options/serializers/__init__.py similarity index 97% rename from apps/options/serializers/__init__.py rename to rdmo/options/serializers/__init__.py index 8e8629768..e37a3a60d 100644 --- a/apps/options/serializers/__init__.py +++ b/rdmo/options/serializers/__init__.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.conditions.models import Condition +from rdmo.conditions.models import Condition from ..models import OptionSet, Option from ..validators import OptionSetUniqueKeyValidator, OptionUniquePathValidator diff --git a/apps/options/serializers/api.py b/rdmo/options/serializers/api.py similarity index 100% rename from apps/options/serializers/api.py rename to rdmo/options/serializers/api.py diff --git a/apps/options/serializers/export.py b/rdmo/options/serializers/export.py similarity index 94% rename from apps/options/serializers/export.py rename to rdmo/options/serializers/export.py index c9ee6677f..e4c71f521 100644 --- a/apps/options/serializers/export.py +++ b/rdmo/options/serializers/export.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.conditions.models import Condition +from rdmo.conditions.models import Condition from ..models import OptionSet, Option diff --git a/apps/options/static/options/css/options.scss b/rdmo/options/static/options/css/options.scss similarity index 100% rename from apps/options/static/options/css/options.scss rename to rdmo/options/static/options/css/options.scss diff --git a/apps/options/static/options/js/options.js b/rdmo/options/static/options/js/options.js similarity index 100% rename from apps/options/static/options/js/options.js rename to rdmo/options/static/options/js/options.js diff --git a/apps/options/templates/options/options.html b/rdmo/options/templates/options/options.html similarity index 100% rename from apps/options/templates/options/options.html rename to rdmo/options/templates/options/options.html diff --git a/apps/options/templates/options/options_export.html b/rdmo/options/templates/options/options_export.html similarity index 100% rename from apps/options/templates/options/options_export.html rename to rdmo/options/templates/options/options_export.html diff --git a/apps/options/templates/options/options_modal_delete_options.html b/rdmo/options/templates/options/options_modal_delete_options.html similarity index 100% rename from apps/options/templates/options/options_modal_delete_options.html rename to rdmo/options/templates/options/options_modal_delete_options.html diff --git a/apps/options/templates/options/options_modal_delete_optionsets.html b/rdmo/options/templates/options/options_modal_delete_optionsets.html similarity index 100% rename from apps/options/templates/options/options_modal_delete_optionsets.html rename to rdmo/options/templates/options/options_modal_delete_optionsets.html diff --git a/apps/options/templates/options/options_modal_form_conditions.html b/rdmo/options/templates/options/options_modal_form_conditions.html similarity index 100% rename from apps/options/templates/options/options_modal_form_conditions.html rename to rdmo/options/templates/options/options_modal_form_conditions.html diff --git a/apps/options/templates/options/options_modal_form_options.html b/rdmo/options/templates/options/options_modal_form_options.html similarity index 100% rename from apps/options/templates/options/options_modal_form_options.html rename to rdmo/options/templates/options/options_modal_form_options.html diff --git a/apps/options/templates/options/options_modal_form_optionsets.html b/rdmo/options/templates/options/options_modal_form_optionsets.html similarity index 100% rename from apps/options/templates/options/options_modal_form_optionsets.html rename to rdmo/options/templates/options/options_modal_form_optionsets.html diff --git a/apps/options/tests.py b/rdmo/options/tests.py similarity index 95% rename from apps/options/tests.py rename to rdmo/options/tests.py index a9f6122f4..8ddb9892a 100644 --- a/apps/options/tests.py +++ b/rdmo/options/tests.py @@ -3,10 +3,10 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions -from apps.conditions.models import Condition +from rdmo.conditions.models import Condition from .models import OptionSet, Option diff --git a/apps/options/urls.py b/rdmo/options/urls.py similarity index 100% rename from apps/options/urls.py rename to rdmo/options/urls.py diff --git a/apps/options/utils.py b/rdmo/options/utils.py similarity index 97% rename from apps/options/utils.py rename to rdmo/options/utils.py index 02da7908f..dad5e209c 100644 --- a/apps/options/utils.py +++ b/rdmo/options/utils.py @@ -1,4 +1,4 @@ -from apps.core.utils import get_ns_tag +from rdmo.core.utils import get_ns_tag from .models import OptionSet, Option diff --git a/apps/options/validators.py b/rdmo/options/validators.py similarity index 83% rename from apps/options/validators.py rename to rdmo/options/validators.py index 0b8093581..f0e54ea12 100644 --- a/apps/options/validators.py +++ b/rdmo/options/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator, UniquePathValidator +from rdmo.core.validators import UniqueKeyValidator, UniquePathValidator class OptionSetUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/options/views.py b/rdmo/options/views.py similarity index 93% rename from apps/options/views.py rename to rdmo/options/views.py index 983494ca7..55821ef93 100644 --- a/apps/options/views.py +++ b/rdmo/options/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import OptionSet, Option from .serializers.export import OptionSetSerializer as ExportSerializer diff --git a/apps/options/viewsets.py b/rdmo/options/viewsets.py similarity index 95% rename from apps/options/viewsets.py rename to rdmo/options/viewsets.py index 0dc193e27..d7431630d 100644 --- a/apps/options/viewsets.py +++ b/rdmo/options/viewsets.py @@ -4,9 +4,9 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.permissions import HasModelPermission +from rdmo.core.permissions import HasModelPermission -from apps.conditions.models import Condition +from rdmo.conditions.models import Condition from .models import OptionSet, Option from .serializers import ( diff --git a/rdmo/projects/__init__.py b/rdmo/projects/__init__.py new file mode 100644 index 000000000..c9bddd34a --- /dev/null +++ b/rdmo/projects/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.projects.app_config.ProjectsConfig' diff --git a/apps/projects/admin.py b/rdmo/projects/admin.py similarity index 100% rename from apps/projects/admin.py rename to rdmo/projects/admin.py diff --git a/apps/projects/app_config.py b/rdmo/projects/app_config.py similarity index 88% rename from apps/projects/app_config.py rename to rdmo/projects/app_config.py index a8c25493b..2a21bb272 100644 --- a/apps/projects/app_config.py +++ b/rdmo/projects/app_config.py @@ -3,7 +3,7 @@ class ProjectsConfig(AppConfig): - name = 'apps.projects' + name = 'rdmo.projects' verbose_name = _('Projects') def ready(self): diff --git a/apps/projects/forms.py b/rdmo/projects/forms.py similarity index 100% rename from apps/projects/forms.py rename to rdmo/projects/forms.py diff --git a/apps/projects/migrations/0001_initial_after_reset.py b/rdmo/projects/migrations/0001_initial_after_reset.py similarity index 100% rename from apps/projects/migrations/0001_initial_after_reset.py rename to rdmo/projects/migrations/0001_initial_after_reset.py diff --git a/apps/projects/migrations/0002_meta.py b/rdmo/projects/migrations/0002_meta.py similarity index 100% rename from apps/projects/migrations/0002_meta.py rename to rdmo/projects/migrations/0002_meta.py diff --git a/apps/projects/migrations/0003_meta.py b/rdmo/projects/migrations/0003_meta.py similarity index 100% rename from apps/projects/migrations/0003_meta.py rename to rdmo/projects/migrations/0003_meta.py diff --git a/apps/projects/migrations/0004_remove_current_snapshot.py b/rdmo/projects/migrations/0004_remove_current_snapshot.py similarity index 100% rename from apps/projects/migrations/0004_remove_current_snapshot.py rename to rdmo/projects/migrations/0004_remove_current_snapshot.py diff --git a/apps/projects/migrations/0005_snapshot.py b/rdmo/projects/migrations/0005_snapshot.py similarity index 100% rename from apps/projects/migrations/0005_snapshot.py rename to rdmo/projects/migrations/0005_snapshot.py diff --git a/apps/projects/migrations/0006_project_values.py b/rdmo/projects/migrations/0006_project_values.py similarity index 100% rename from apps/projects/migrations/0006_project_values.py rename to rdmo/projects/migrations/0006_project_values.py diff --git a/apps/projects/migrations/0007_data_migration.py b/rdmo/projects/migrations/0007_data_migration.py similarity index 100% rename from apps/projects/migrations/0007_data_migration.py rename to rdmo/projects/migrations/0007_data_migration.py diff --git a/apps/projects/migrations/0008_not_null.py b/rdmo/projects/migrations/0008_not_null.py similarity index 100% rename from apps/projects/migrations/0008_not_null.py rename to rdmo/projects/migrations/0008_not_null.py diff --git a/apps/projects/migrations/0009_options.py b/rdmo/projects/migrations/0009_options.py similarity index 100% rename from apps/projects/migrations/0009_options.py rename to rdmo/projects/migrations/0009_options.py diff --git a/apps/projects/migrations/0010_add_db_contraint.py b/rdmo/projects/migrations/0010_add_db_contraint.py similarity index 100% rename from apps/projects/migrations/0010_add_db_contraint.py rename to rdmo/projects/migrations/0010_add_db_contraint.py diff --git a/apps/projects/migrations/0011_refactoring.py b/rdmo/projects/migrations/0011_refactoring.py similarity index 100% rename from apps/projects/migrations/0011_refactoring.py rename to rdmo/projects/migrations/0011_refactoring.py diff --git a/apps/projects/migrations/0012_membership.py b/rdmo/projects/migrations/0012_membership.py similarity index 100% rename from apps/projects/migrations/0012_membership.py rename to rdmo/projects/migrations/0012_membership.py diff --git a/apps/projects/migrations/0013_data_migration.py b/rdmo/projects/migrations/0013_data_migration.py similarity index 100% rename from apps/projects/migrations/0013_data_migration.py rename to rdmo/projects/migrations/0013_data_migration.py diff --git a/apps/projects/migrations/0014_remove_owner.py b/rdmo/projects/migrations/0014_remove_owner.py similarity index 100% rename from apps/projects/migrations/0014_remove_owner.py rename to rdmo/projects/migrations/0014_remove_owner.py diff --git a/apps/projects/migrations/0015_permissions.py b/rdmo/projects/migrations/0015_permissions.py similarity index 100% rename from apps/projects/migrations/0015_permissions.py rename to rdmo/projects/migrations/0015_permissions.py diff --git a/apps/projects/migrations/__init__.py b/rdmo/projects/migrations/__init__.py similarity index 100% rename from apps/projects/migrations/__init__.py rename to rdmo/projects/migrations/__init__.py diff --git a/apps/projects/models.py b/rdmo/projects/models.py similarity index 98% rename from apps/projects/models.py rename to rdmo/projects/models.py index 393cb51de..3184c62f2 100644 --- a/apps/projects/models.py +++ b/rdmo/projects/models.py @@ -10,10 +10,10 @@ from django.utils.functional import cached_property from django.utils.translation import ugettext_lazy as _ -from apps.core.models import Model -from apps.domain.models import Attribute -from apps.options.models import Option -from apps.questions.models import Catalog +from rdmo.core.models import Model +from rdmo.domain.models import Attribute +from rdmo.options.models import Option +from rdmo.questions.models import Catalog @python_2_unicode_compatible diff --git a/apps/projects/renderers.py b/rdmo/projects/renderers.py similarity index 98% rename from apps/projects/renderers.py rename to rdmo/projects/renderers.py index 5785ef094..275c79274 100644 --- a/apps/projects/renderers.py +++ b/rdmo/projects/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/projects/rules.py b/rdmo/projects/rules.py similarity index 100% rename from apps/projects/rules.py rename to rdmo/projects/rules.py diff --git a/apps/projects/serializers/__init__.py b/rdmo/projects/serializers/__init__.py similarity index 100% rename from apps/projects/serializers/__init__.py rename to rdmo/projects/serializers/__init__.py diff --git a/apps/projects/serializers/api.py b/rdmo/projects/serializers/api.py similarity index 100% rename from apps/projects/serializers/api.py rename to rdmo/projects/serializers/api.py diff --git a/apps/projects/serializers/catalog.py b/rdmo/projects/serializers/catalog.py similarity index 95% rename from apps/projects/serializers/catalog.py rename to rdmo/projects/serializers/catalog.py index ca8710a8a..0ed231d7e 100644 --- a/apps/projects/serializers/catalog.py +++ b/rdmo/projects/serializers/catalog.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.questions.models import Catalog, Section, Subsection, QuestionEntity, Question +from rdmo.questions.models import Catalog, Section, Subsection, QuestionEntity, Question class QuestionSerializer(serializers.ModelSerializer): diff --git a/apps/projects/serializers/export.py b/rdmo/projects/serializers/export.py similarity index 100% rename from apps/projects/serializers/export.py rename to rdmo/projects/serializers/export.py diff --git a/apps/projects/serializers/question_entity.py b/rdmo/projects/serializers/question_entity.py similarity index 95% rename from apps/projects/serializers/question_entity.py rename to rdmo/projects/serializers/question_entity.py index cbbaaccd8..dd179642c 100644 --- a/apps/projects/serializers/question_entity.py +++ b/rdmo/projects/serializers/question_entity.py @@ -2,12 +2,12 @@ from rest_framework import serializers -from apps.core.serializers import MarkdownSerializerMixin -from apps.conditions.models import Condition -from apps.domain.models import AttributeEntity, Attribute, Range -from apps.options.models import OptionSet, Option +from rdmo.core.serializers import MarkdownSerializerMixin +from rdmo.conditions.models import Condition +from rdmo.domain.models import AttributeEntity, Attribute, Range +from rdmo.options.models import OptionSet, Option -from apps.questions.models import QuestionEntity, Question +from rdmo.questions.models import QuestionEntity, Question class OptionSerializer(serializers.ModelSerializer): diff --git a/apps/projects/static/projects/css/project_questions.scss b/rdmo/projects/static/projects/css/project_questions.scss similarity index 100% rename from apps/projects/static/projects/css/project_questions.scss rename to rdmo/projects/static/projects/css/project_questions.scss diff --git a/apps/projects/static/projects/js/project_questions/app.js b/rdmo/projects/static/projects/js/project_questions/app.js similarity index 100% rename from apps/projects/static/projects/js/project_questions/app.js rename to rdmo/projects/static/projects/js/project_questions/app.js diff --git a/apps/projects/static/projects/js/project_questions/controllers.js b/rdmo/projects/static/projects/js/project_questions/controllers.js similarity index 100% rename from apps/projects/static/projects/js/project_questions/controllers.js rename to rdmo/projects/static/projects/js/project_questions/controllers.js diff --git a/apps/projects/static/projects/js/project_questions/directives.js b/rdmo/projects/static/projects/js/project_questions/directives.js similarity index 100% rename from apps/projects/static/projects/js/project_questions/directives.js rename to rdmo/projects/static/projects/js/project_questions/directives.js diff --git a/apps/projects/static/projects/js/project_questions/services.js b/rdmo/projects/static/projects/js/project_questions/services.js similarity index 100% rename from apps/projects/static/projects/js/project_questions/services.js rename to rdmo/projects/static/projects/js/project_questions/services.js diff --git a/apps/projects/templates/projects/membership_confirm_delete.html b/rdmo/projects/templates/projects/membership_confirm_delete.html similarity index 100% rename from apps/projects/templates/projects/membership_confirm_delete.html rename to rdmo/projects/templates/projects/membership_confirm_delete.html diff --git a/apps/projects/templates/projects/membership_form.html b/rdmo/projects/templates/projects/membership_form.html similarity index 100% rename from apps/projects/templates/projects/membership_form.html rename to rdmo/projects/templates/projects/membership_form.html diff --git a/apps/projects/templates/projects/project_answers.html b/rdmo/projects/templates/projects/project_answers.html similarity index 100% rename from apps/projects/templates/projects/project_answers.html rename to rdmo/projects/templates/projects/project_answers.html diff --git a/apps/projects/templates/projects/project_answers_export.html b/rdmo/projects/templates/projects/project_answers_export.html similarity index 100% rename from apps/projects/templates/projects/project_answers_export.html rename to rdmo/projects/templates/projects/project_answers_export.html diff --git a/apps/projects/templates/projects/project_answers_tree.html b/rdmo/projects/templates/projects/project_answers_tree.html similarity index 100% rename from apps/projects/templates/projects/project_answers_tree.html rename to rdmo/projects/templates/projects/project_answers_tree.html diff --git a/apps/projects/templates/projects/project_confirm_delete.html b/rdmo/projects/templates/projects/project_confirm_delete.html similarity index 100% rename from apps/projects/templates/projects/project_confirm_delete.html rename to rdmo/projects/templates/projects/project_confirm_delete.html diff --git a/apps/projects/templates/projects/project_detail.html b/rdmo/projects/templates/projects/project_detail.html similarity index 100% rename from apps/projects/templates/projects/project_detail.html rename to rdmo/projects/templates/projects/project_detail.html diff --git a/apps/projects/templates/projects/project_detail_memberships.html b/rdmo/projects/templates/projects/project_detail_memberships.html similarity index 100% rename from apps/projects/templates/projects/project_detail_memberships.html rename to rdmo/projects/templates/projects/project_detail_memberships.html diff --git a/apps/projects/templates/projects/project_detail_snapshots.html b/rdmo/projects/templates/projects/project_detail_snapshots.html similarity index 100% rename from apps/projects/templates/projects/project_detail_snapshots.html rename to rdmo/projects/templates/projects/project_detail_snapshots.html diff --git a/apps/projects/templates/projects/project_detail_tasks.html b/rdmo/projects/templates/projects/project_detail_tasks.html similarity index 100% rename from apps/projects/templates/projects/project_detail_tasks.html rename to rdmo/projects/templates/projects/project_detail_tasks.html diff --git a/apps/projects/templates/projects/project_detail_views.html b/rdmo/projects/templates/projects/project_detail_views.html similarity index 100% rename from apps/projects/templates/projects/project_detail_views.html rename to rdmo/projects/templates/projects/project_detail_views.html diff --git a/apps/projects/templates/projects/project_form.html b/rdmo/projects/templates/projects/project_form.html similarity index 100% rename from apps/projects/templates/projects/project_form.html rename to rdmo/projects/templates/projects/project_form.html diff --git a/apps/projects/templates/projects/project_questions.html b/rdmo/projects/templates/projects/project_questions.html similarity index 100% rename from apps/projects/templates/projects/project_questions.html rename to rdmo/projects/templates/projects/project_questions.html diff --git a/apps/projects/templates/projects/project_questions_add_field_button.html b/rdmo/projects/templates/projects/project_questions_add_field_button.html similarity index 100% rename from apps/projects/templates/projects/project_questions_add_field_button.html rename to rdmo/projects/templates/projects/project_questions_add_field_button.html diff --git a/apps/projects/templates/projects/project_questions_add_field_help.html b/rdmo/projects/templates/projects/project_questions_add_field_help.html similarity index 100% rename from apps/projects/templates/projects/project_questions_add_field_help.html rename to rdmo/projects/templates/projects/project_questions_add_field_help.html diff --git a/apps/projects/templates/projects/project_questions_done.html b/rdmo/projects/templates/projects/project_questions_done.html similarity index 100% rename from apps/projects/templates/projects/project_questions_done.html rename to rdmo/projects/templates/projects/project_questions_done.html diff --git a/apps/projects/templates/projects/project_questions_form_group_checkbox.html b/rdmo/projects/templates/projects/project_questions_form_group_checkbox.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_checkbox.html rename to rdmo/projects/templates/projects/project_questions_form_group_checkbox.html diff --git a/apps/projects/templates/projects/project_questions_form_group_date.html b/rdmo/projects/templates/projects/project_questions_form_group_date.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_date.html rename to rdmo/projects/templates/projects/project_questions_form_group_date.html diff --git a/apps/projects/templates/projects/project_questions_form_group_radio.html b/rdmo/projects/templates/projects/project_questions_form_group_radio.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_radio.html rename to rdmo/projects/templates/projects/project_questions_form_group_radio.html diff --git a/apps/projects/templates/projects/project_questions_form_group_range.html b/rdmo/projects/templates/projects/project_questions_form_group_range.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_range.html rename to rdmo/projects/templates/projects/project_questions_form_group_range.html diff --git a/apps/projects/templates/projects/project_questions_form_group_select.html b/rdmo/projects/templates/projects/project_questions_form_group_select.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_select.html rename to rdmo/projects/templates/projects/project_questions_form_group_select.html diff --git a/apps/projects/templates/projects/project_questions_form_group_text.html b/rdmo/projects/templates/projects/project_questions_form_group_text.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_text.html rename to rdmo/projects/templates/projects/project_questions_form_group_text.html diff --git a/apps/projects/templates/projects/project_questions_form_group_textarea.html b/rdmo/projects/templates/projects/project_questions_form_group_textarea.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_textarea.html rename to rdmo/projects/templates/projects/project_questions_form_group_textarea.html diff --git a/apps/projects/templates/projects/project_questions_form_group_yesno.html b/rdmo/projects/templates/projects/project_questions_form_group_yesno.html similarity index 100% rename from apps/projects/templates/projects/project_questions_form_group_yesno.html rename to rdmo/projects/templates/projects/project_questions_form_group_yesno.html diff --git a/apps/projects/templates/projects/project_questions_modal_delete_valuesets.html b/rdmo/projects/templates/projects/project_questions_modal_delete_valuesets.html similarity index 100% rename from apps/projects/templates/projects/project_questions_modal_delete_valuesets.html rename to rdmo/projects/templates/projects/project_questions_modal_delete_valuesets.html diff --git a/apps/projects/templates/projects/project_questions_modal_form_valuesets.html b/rdmo/projects/templates/projects/project_questions_modal_form_valuesets.html similarity index 100% rename from apps/projects/templates/projects/project_questions_modal_form_valuesets.html rename to rdmo/projects/templates/projects/project_questions_modal_form_valuesets.html diff --git a/apps/projects/templates/projects/project_questions_questionset_head.html b/rdmo/projects/templates/projects/project_questions_questionset_head.html similarity index 100% rename from apps/projects/templates/projects/project_questions_questionset_head.html rename to rdmo/projects/templates/projects/project_questions_questionset_head.html diff --git a/apps/projects/templates/projects/project_questions_remove_field.html b/rdmo/projects/templates/projects/project_questions_remove_field.html similarity index 100% rename from apps/projects/templates/projects/project_questions_remove_field.html rename to rdmo/projects/templates/projects/project_questions_remove_field.html diff --git a/apps/projects/templates/projects/project_questions_sidebar.html b/rdmo/projects/templates/projects/project_questions_sidebar.html similarity index 100% rename from apps/projects/templates/projects/project_questions_sidebar.html rename to rdmo/projects/templates/projects/project_questions_sidebar.html diff --git a/apps/projects/templates/projects/project_view.html b/rdmo/projects/templates/projects/project_view.html similarity index 100% rename from apps/projects/templates/projects/project_view.html rename to rdmo/projects/templates/projects/project_view.html diff --git a/apps/projects/templates/projects/project_view_export.html b/rdmo/projects/templates/projects/project_view_export.html similarity index 100% rename from apps/projects/templates/projects/project_view_export.html rename to rdmo/projects/templates/projects/project_view_export.html diff --git a/apps/projects/templates/projects/projects.html b/rdmo/projects/templates/projects/projects.html similarity index 100% rename from apps/projects/templates/projects/projects.html rename to rdmo/projects/templates/projects/projects.html diff --git a/apps/projects/templates/projects/snapshot_form.html b/rdmo/projects/templates/projects/snapshot_form.html similarity index 100% rename from apps/projects/templates/projects/snapshot_form.html rename to rdmo/projects/templates/projects/snapshot_form.html diff --git a/apps/projects/templates/projects/snapshot_rollback.html b/rdmo/projects/templates/projects/snapshot_rollback.html similarity index 100% rename from apps/projects/templates/projects/snapshot_rollback.html rename to rdmo/projects/templates/projects/snapshot_rollback.html diff --git a/apps/projects/tests.py b/rdmo/projects/tests.py similarity index 98% rename from apps/projects/tests.py rename to rdmo/projects/tests.py index fb1565af7..59efb2cdb 100644 --- a/apps/projects/tests.py +++ b/rdmo/projects/tests.py @@ -6,8 +6,8 @@ from test_generator.views import TestUpdateViewMixin, TestDeleteViewMixin, TestModelViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestReadOnlyModelViewsetMixin -from apps.accounts.utils import set_group_permissions -from apps.questions.models import Catalog, QuestionEntity +from rdmo.accounts.utils import set_group_permissions +from rdmo.questions.models import Catalog, QuestionEntity from .models import Project, Membership, Value diff --git a/apps/projects/urls.py b/rdmo/projects/urls.py similarity index 100% rename from apps/projects/urls.py rename to rdmo/projects/urls.py diff --git a/apps/projects/utils.py b/rdmo/projects/utils.py similarity index 98% rename from apps/projects/utils.py rename to rdmo/projects/utils.py index b26119315..090b537df 100644 --- a/apps/projects/utils.py +++ b/rdmo/projects/utils.py @@ -2,10 +2,10 @@ from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_ns_tag -from apps.domain.models import Attribute -from apps.options.models import Option -from apps.questions.utils import Catalog +from rdmo.core.utils import get_ns_tag +from rdmo.domain.models import Attribute +from rdmo.options.models import Option +from rdmo.questions.utils import Catalog from .models import Project, Membership, Snapshot, Value diff --git a/apps/projects/views.py b/rdmo/projects/views.py similarity index 98% rename from apps/projects/views.py rename to rdmo/projects/views.py index 203a4f9b0..0290f9fdb 100644 --- a/apps/projects/views.py +++ b/rdmo/projects/views.py @@ -10,10 +10,10 @@ from django.views.generic.detail import DetailView from django.views.generic.edit import CreateView, UpdateView, DeleteView -from apps.core.views import ObjectPermissionMixin, RedirectViewMixin -from apps.core.utils import render_to_format -from apps.tasks.models import Task -from apps.views.models import View +from rdmo.core.views import ObjectPermissionMixin, RedirectViewMixin +from rdmo.core.utils import render_to_format +from rdmo.tasks.models import Task +from rdmo.views.models import View from .models import Project, Membership, Snapshot from .forms import ProjectForm, SnapshotCreateForm, MembershipCreateForm diff --git a/apps/projects/viewsets.py b/rdmo/projects/viewsets.py similarity index 97% rename from apps/projects/viewsets.py rename to rdmo/projects/viewsets.py index 49abec6d1..b80d1efae 100644 --- a/apps/projects/viewsets.py +++ b/rdmo/projects/viewsets.py @@ -11,9 +11,9 @@ from rest_framework_extensions.cache.mixins import RetrieveCacheResponseMixin -from apps.core.permissions import HasModelPermission, HasObjectPermission -from apps.conditions.models import Condition -from apps.questions.models import Catalog, QuestionEntity +from rdmo.core.permissions import HasModelPermission, HasObjectPermission +from rdmo.conditions.models import Condition +from rdmo.questions.models import Catalog, QuestionEntity from .models import Project, Snapshot, Value diff --git a/rdmo/questions/__init__.py b/rdmo/questions/__init__.py new file mode 100644 index 000000000..446ebe1b0 --- /dev/null +++ b/rdmo/questions/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.questions.app_config.QuestionsConfig' diff --git a/apps/questions/admin.py b/rdmo/questions/admin.py similarity index 100% rename from apps/questions/admin.py rename to rdmo/questions/admin.py diff --git a/apps/questions/app_config.py b/rdmo/questions/app_config.py similarity index 85% rename from apps/questions/app_config.py rename to rdmo/questions/app_config.py index a1b2dcd5c..bac13839e 100644 --- a/apps/questions/app_config.py +++ b/rdmo/questions/app_config.py @@ -3,5 +3,5 @@ class QuestionsConfig(AppConfig): - name = 'apps.questions' + name = 'rdmo.questions' verbose_name = _('Questions') diff --git a/apps/questions/managers.py b/rdmo/questions/managers.py similarity index 100% rename from apps/questions/managers.py rename to rdmo/questions/managers.py diff --git a/apps/questions/migrations/0001_initial_after_reset.py b/rdmo/questions/migrations/0001_initial_after_reset.py similarity index 95% rename from apps/questions/migrations/0001_initial_after_reset.py rename to rdmo/questions/migrations/0001_initial_after_reset.py index 08786118b..e36679d6e 100644 --- a/apps/questions/migrations/0001_initial_after_reset.py +++ b/rdmo/questions/migrations/0001_initial_after_reset.py @@ -3,7 +3,7 @@ from django.db import models, migrations import django.db.models.deletion -import apps.core.models +import rdmo.core.models class Migration(migrations.Migration): @@ -28,7 +28,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Catalog', 'verbose_name_plural': 'Catalogs', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='QuestionEntity', @@ -45,7 +45,7 @@ class Migration(migrations.Migration): 'verbose_name': 'QuestionEntity', 'verbose_name_plural': 'QuestionEntities', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Section', @@ -63,7 +63,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Section', 'verbose_name_plural': 'Sections', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Subsection', @@ -81,7 +81,7 @@ class Migration(migrations.Migration): 'verbose_name': 'Subsection', 'verbose_name_plural': 'Subsections', }, - bases=(models.Model, apps.core.models.TranslationMixin), + bases=(models.Model, rdmo.core.models.TranslationMixin), ), migrations.CreateModel( name='Question', diff --git a/apps/questions/migrations/0002_meta.py b/rdmo/questions/migrations/0002_meta.py similarity index 100% rename from apps/questions/migrations/0002_meta.py rename to rdmo/questions/migrations/0002_meta.py diff --git a/apps/questions/migrations/0003_renaming.py b/rdmo/questions/migrations/0003_renaming.py similarity index 100% rename from apps/questions/migrations/0003_renaming.py rename to rdmo/questions/migrations/0003_renaming.py diff --git a/apps/questions/migrations/0004_full_title.py b/rdmo/questions/migrations/0004_full_title.py similarity index 100% rename from apps/questions/migrations/0004_full_title.py rename to rdmo/questions/migrations/0004_full_title.py diff --git a/apps/questions/migrations/0005_label.py b/rdmo/questions/migrations/0005_label.py similarity index 100% rename from apps/questions/migrations/0005_label.py rename to rdmo/questions/migrations/0005_label.py diff --git a/apps/questions/migrations/0006_auto_20160803_1619.py b/rdmo/questions/migrations/0006_auto_20160803_1619.py similarity index 100% rename from apps/questions/migrations/0006_auto_20160803_1619.py rename to rdmo/questions/migrations/0006_auto_20160803_1619.py diff --git a/apps/questions/migrations/0007_refactoring.py b/rdmo/questions/migrations/0007_refactoring.py similarity index 100% rename from apps/questions/migrations/0007_refactoring.py rename to rdmo/questions/migrations/0007_refactoring.py diff --git a/apps/questions/migrations/0008_data_migration.py b/rdmo/questions/migrations/0008_data_migration.py similarity index 100% rename from apps/questions/migrations/0008_data_migration.py rename to rdmo/questions/migrations/0008_data_migration.py diff --git a/apps/questions/migrations/0009_meta.py b/rdmo/questions/migrations/0009_meta.py similarity index 100% rename from apps/questions/migrations/0009_meta.py rename to rdmo/questions/migrations/0009_meta.py diff --git a/apps/questions/migrations/0010_label.py b/rdmo/questions/migrations/0010_label.py similarity index 100% rename from apps/questions/migrations/0010_label.py rename to rdmo/questions/migrations/0010_label.py diff --git a/apps/questions/migrations/0011_path.py b/rdmo/questions/migrations/0011_path.py similarity index 100% rename from apps/questions/migrations/0011_path.py rename to rdmo/questions/migrations/0011_path.py diff --git a/apps/questions/migrations/0012_meta.py b/rdmo/questions/migrations/0012_meta.py similarity index 100% rename from apps/questions/migrations/0012_meta.py rename to rdmo/questions/migrations/0012_meta.py diff --git a/apps/questions/migrations/0013_permissions.py b/rdmo/questions/migrations/0013_permissions.py similarity index 100% rename from apps/questions/migrations/0013_permissions.py rename to rdmo/questions/migrations/0013_permissions.py diff --git a/apps/questions/migrations/0014_meta.py b/rdmo/questions/migrations/0014_meta.py similarity index 100% rename from apps/questions/migrations/0014_meta.py rename to rdmo/questions/migrations/0014_meta.py diff --git a/apps/questions/migrations/__init__.py b/rdmo/questions/migrations/__init__.py similarity index 100% rename from apps/questions/migrations/__init__.py rename to rdmo/questions/migrations/__init__.py diff --git a/apps/questions/models.py b/rdmo/questions/models.py similarity index 98% rename from apps/questions/models.py rename to rdmo/questions/models.py index c02571981..4da3c0736 100644 --- a/apps/questions/models.py +++ b/rdmo/questions/models.py @@ -5,9 +5,9 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_uri_prefix -from apps.core.models import Model, TranslationMixin -from apps.domain.models import AttributeEntity +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import Model, TranslationMixin +from rdmo.domain.models import AttributeEntity from .managers import QuestionEntityManager from .validators import ( diff --git a/apps/questions/renderers.py b/rdmo/questions/renderers.py similarity index 98% rename from apps/questions/renderers.py rename to rdmo/questions/renderers.py index 58c35d50f..8673c64bd 100644 --- a/apps/questions/renderers.py +++ b/rdmo/questions/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/questions/serializers/__init__.py b/rdmo/questions/serializers/__init__.py similarity index 98% rename from apps/questions/serializers/__init__.py rename to rdmo/questions/serializers/__init__.py index 64ae2ec97..5bde0429d 100644 --- a/apps/questions/serializers/__init__.py +++ b/rdmo/questions/serializers/__init__.py @@ -1,6 +1,6 @@ from rest_framework import serializers -from apps.domain.models import AttributeEntity, Attribute +from rdmo.domain.models import AttributeEntity, Attribute from ..models import Catalog, Section, Subsection, QuestionEntity, Question from ..validators import ( diff --git a/apps/questions/serializers/api.py b/rdmo/questions/serializers/api.py similarity index 100% rename from apps/questions/serializers/api.py rename to rdmo/questions/serializers/api.py diff --git a/apps/questions/serializers/export.py b/rdmo/questions/serializers/export.py similarity index 100% rename from apps/questions/serializers/export.py rename to rdmo/questions/serializers/export.py diff --git a/apps/questions/serializers/nested.py b/rdmo/questions/serializers/nested.py similarity index 98% rename from apps/questions/serializers/nested.py rename to rdmo/questions/serializers/nested.py index fc86bb0f8..24acf5d06 100644 --- a/apps/questions/serializers/nested.py +++ b/rdmo/questions/serializers/nested.py @@ -4,7 +4,7 @@ from rest_framework import serializers from rest_framework.reverse import reverse -from apps.domain.models import AttributeEntity +from rdmo.domain.models import AttributeEntity from ..models import Catalog, Section, Subsection, QuestionEntity, Question diff --git a/apps/questions/static/questions/css/catalogs.scss b/rdmo/questions/static/questions/css/catalogs.scss similarity index 100% rename from apps/questions/static/questions/css/catalogs.scss rename to rdmo/questions/static/questions/css/catalogs.scss diff --git a/apps/questions/static/questions/js/catalogs.js b/rdmo/questions/static/questions/js/catalogs.js similarity index 100% rename from apps/questions/static/questions/js/catalogs.js rename to rdmo/questions/static/questions/js/catalogs.js diff --git a/apps/questions/templates/questions/catalog_export.html b/rdmo/questions/templates/questions/catalog_export.html similarity index 100% rename from apps/questions/templates/questions/catalog_export.html rename to rdmo/questions/templates/questions/catalog_export.html diff --git a/apps/questions/templates/questions/catalog_tree.html b/rdmo/questions/templates/questions/catalog_tree.html similarity index 100% rename from apps/questions/templates/questions/catalog_tree.html rename to rdmo/questions/templates/questions/catalog_tree.html diff --git a/apps/questions/templates/questions/catalogs.html b/rdmo/questions/templates/questions/catalogs.html similarity index 100% rename from apps/questions/templates/questions/catalogs.html rename to rdmo/questions/templates/questions/catalogs.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_catalogs.html b/rdmo/questions/templates/questions/catalogs_modal_delete_catalogs.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_catalogs.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_catalogs.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_questions.html b/rdmo/questions/templates/questions/catalogs_modal_delete_questions.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_questions.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_questions.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_questionsets.html b/rdmo/questions/templates/questions/catalogs_modal_delete_questionsets.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_questionsets.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_questionsets.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_sections.html b/rdmo/questions/templates/questions/catalogs_modal_delete_sections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_sections.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_sections.html diff --git a/apps/questions/templates/questions/catalogs_modal_delete_subsections.html b/rdmo/questions/templates/questions/catalogs_modal_delete_subsections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_delete_subsections.html rename to rdmo/questions/templates/questions/catalogs_modal_delete_subsections.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_catalogs.html b/rdmo/questions/templates/questions/catalogs_modal_form_catalogs.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_catalogs.html rename to rdmo/questions/templates/questions/catalogs_modal_form_catalogs.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_questions.html b/rdmo/questions/templates/questions/catalogs_modal_form_questions.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_questions.html rename to rdmo/questions/templates/questions/catalogs_modal_form_questions.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_questionsets.html b/rdmo/questions/templates/questions/catalogs_modal_form_questionsets.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_questionsets.html rename to rdmo/questions/templates/questions/catalogs_modal_form_questionsets.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_sections.html b/rdmo/questions/templates/questions/catalogs_modal_form_sections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_sections.html rename to rdmo/questions/templates/questions/catalogs_modal_form_sections.html diff --git a/apps/questions/templates/questions/catalogs_modal_form_subsections.html b/rdmo/questions/templates/questions/catalogs_modal_form_subsections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_modal_form_subsections.html rename to rdmo/questions/templates/questions/catalogs_modal_form_subsections.html diff --git a/apps/questions/templates/questions/catalogs_options_questions.html b/rdmo/questions/templates/questions/catalogs_options_questions.html similarity index 100% rename from apps/questions/templates/questions/catalogs_options_questions.html rename to rdmo/questions/templates/questions/catalogs_options_questions.html diff --git a/apps/questions/templates/questions/catalogs_options_questionsets.html b/rdmo/questions/templates/questions/catalogs_options_questionsets.html similarity index 100% rename from apps/questions/templates/questions/catalogs_options_questionsets.html rename to rdmo/questions/templates/questions/catalogs_options_questionsets.html diff --git a/apps/questions/templates/questions/catalogs_options_sections.html b/rdmo/questions/templates/questions/catalogs_options_sections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_options_sections.html rename to rdmo/questions/templates/questions/catalogs_options_sections.html diff --git a/apps/questions/templates/questions/catalogs_options_subsections.html b/rdmo/questions/templates/questions/catalogs_options_subsections.html similarity index 100% rename from apps/questions/templates/questions/catalogs_options_subsections.html rename to rdmo/questions/templates/questions/catalogs_options_subsections.html diff --git a/apps/questions/templates/questions/catalogs_sidebar.html b/rdmo/questions/templates/questions/catalogs_sidebar.html similarity index 100% rename from apps/questions/templates/questions/catalogs_sidebar.html rename to rdmo/questions/templates/questions/catalogs_sidebar.html diff --git a/apps/questions/tests.py b/rdmo/questions/tests.py similarity index 98% rename from apps/questions/tests.py rename to rdmo/questions/tests.py index b49f536cb..4c38b6c07 100644 --- a/apps/questions/tests.py +++ b/rdmo/questions/tests.py @@ -4,8 +4,8 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestImportViewMixin -from apps.accounts.utils import set_group_permissions +from rdmo.core.testing.mixins import TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions from .models import Catalog, Section, Subsection, QuestionEntity, Question diff --git a/apps/questions/urls.py b/rdmo/questions/urls.py similarity index 100% rename from apps/questions/urls.py rename to rdmo/questions/urls.py diff --git a/apps/questions/utils.py b/rdmo/questions/utils.py similarity index 98% rename from apps/questions/utils.py rename to rdmo/questions/utils.py index 8655896fa..7fda9b5ed 100644 --- a/apps/questions/utils.py +++ b/rdmo/questions/utils.py @@ -1,5 +1,5 @@ -from apps.core.utils import get_ns_tag -from apps.domain.models import AttributeEntity +from rdmo.core.utils import get_ns_tag +from rdmo.domain.models import AttributeEntity from .models import Catalog, Section, Subsection, QuestionEntity, Question diff --git a/apps/questions/validators.py b/rdmo/questions/validators.py similarity index 94% rename from apps/questions/validators.py rename to rdmo/questions/validators.py index fec36a71f..c7fd97871 100644 --- a/apps/questions/validators.py +++ b/rdmo/questions/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator, UniquePathValidator +from rdmo.core.validators import UniqueKeyValidator, UniquePathValidator class CatalogUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/questions/views.py b/rdmo/questions/views.py similarity index 93% rename from apps/questions/views.py rename to rdmo/questions/views.py index 573a6c105..4cddf35de 100644 --- a/apps/questions/views.py +++ b/rdmo/questions/views.py @@ -2,8 +2,8 @@ from django.http import HttpResponse from django.views.generic import TemplateView, DetailView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import Catalog, Section, Subsection, Question from .serializers.export import CatalogSerializer as ExportSerializer diff --git a/apps/questions/viewsets.py b/rdmo/questions/viewsets.py similarity index 97% rename from apps/questions/viewsets.py rename to rdmo/questions/viewsets.py index 818cfa520..4e1580eea 100644 --- a/apps/questions/viewsets.py +++ b/rdmo/questions/viewsets.py @@ -7,10 +7,10 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.views import ChoicesViewSet -from apps.core.permissions import HasModelPermission +from rdmo.core.views import ChoicesViewSet +from rdmo.core.permissions import HasModelPermission -from apps.domain.models import AttributeEntity, Attribute +from rdmo.domain.models import AttributeEntity, Attribute from .models import Catalog, Section, Subsection, QuestionEntity, Question from .serializers import ( diff --git a/rdmo/tasks/__init__.py b/rdmo/tasks/__init__.py new file mode 100644 index 000000000..616538ff7 --- /dev/null +++ b/rdmo/tasks/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.tasks.app_config.TasksConfig' diff --git a/apps/tasks/admin.py b/rdmo/tasks/admin.py similarity index 100% rename from apps/tasks/admin.py rename to rdmo/tasks/admin.py diff --git a/apps/tasks/app_config.py b/rdmo/tasks/app_config.py similarity index 86% rename from apps/tasks/app_config.py rename to rdmo/tasks/app_config.py index 12ab832f5..a46ee4b70 100644 --- a/apps/tasks/app_config.py +++ b/rdmo/tasks/app_config.py @@ -3,5 +3,5 @@ class TasksConfig(AppConfig): - name = 'apps.tasks' + name = 'rdmo.tasks' verbose_name = _('Tasks') diff --git a/apps/tasks/managers.py b/rdmo/tasks/managers.py similarity index 100% rename from apps/tasks/managers.py rename to rdmo/tasks/managers.py diff --git a/apps/tasks/migrations/0001_initial.py b/rdmo/tasks/migrations/0001_initial.py similarity index 93% rename from apps/tasks/migrations/0001_initial.py rename to rdmo/tasks/migrations/0001_initial.py index 2cea2a982..471ec38a6 100644 --- a/apps/tasks/migrations/0001_initial.py +++ b/rdmo/tasks/migrations/0001_initial.py @@ -2,7 +2,7 @@ # Generated by Django 1.9 on 2016-07-18 11:25 from __future__ import unicode_literals -import apps.core.models +import rdmo.core.models from django.db import migrations, models import django.db.models.deletion @@ -32,6 +32,6 @@ class Migration(migrations.Migration): 'verbose_name': 'Task', 'verbose_name_plural': 'Tasks', }, - bases=(apps.core.models.TranslationMixin, models.Model), + bases=(rdmo.core.models.TranslationMixin, models.Model), ), ] diff --git a/apps/tasks/migrations/0002_many_to_many_for_conditions.py b/rdmo/tasks/migrations/0002_many_to_many_for_conditions.py similarity index 100% rename from apps/tasks/migrations/0002_many_to_many_for_conditions.py rename to rdmo/tasks/migrations/0002_many_to_many_for_conditions.py diff --git a/apps/tasks/migrations/0003_meta.py b/rdmo/tasks/migrations/0003_meta.py similarity index 100% rename from apps/tasks/migrations/0003_meta.py rename to rdmo/tasks/migrations/0003_meta.py diff --git a/apps/tasks/migrations/0004_refactoring.py b/rdmo/tasks/migrations/0004_refactoring.py similarity index 100% rename from apps/tasks/migrations/0004_refactoring.py rename to rdmo/tasks/migrations/0004_refactoring.py diff --git a/apps/tasks/migrations/0005_data_migration.py b/rdmo/tasks/migrations/0005_data_migration.py similarity index 100% rename from apps/tasks/migrations/0005_data_migration.py rename to rdmo/tasks/migrations/0005_data_migration.py diff --git a/apps/tasks/migrations/0006_meta.py b/rdmo/tasks/migrations/0006_meta.py similarity index 100% rename from apps/tasks/migrations/0006_meta.py rename to rdmo/tasks/migrations/0006_meta.py diff --git a/apps/tasks/migrations/0007_permissions.py b/rdmo/tasks/migrations/0007_permissions.py similarity index 100% rename from apps/tasks/migrations/0007_permissions.py rename to rdmo/tasks/migrations/0007_permissions.py diff --git a/apps/tasks/migrations/0008_remove_time_period.py b/rdmo/tasks/migrations/0008_remove_time_period.py similarity index 100% rename from apps/tasks/migrations/0008_remove_time_period.py rename to rdmo/tasks/migrations/0008_remove_time_period.py diff --git a/apps/tasks/migrations/0009_timeframe.py b/rdmo/tasks/migrations/0009_timeframe.py similarity index 100% rename from apps/tasks/migrations/0009_timeframe.py rename to rdmo/tasks/migrations/0009_timeframe.py diff --git a/apps/tasks/migrations/0010_meta.py b/rdmo/tasks/migrations/0010_meta.py similarity index 100% rename from apps/tasks/migrations/0010_meta.py rename to rdmo/tasks/migrations/0010_meta.py diff --git a/apps/tasks/migrations/0011_task_text.py b/rdmo/tasks/migrations/0011_task_text.py similarity index 100% rename from apps/tasks/migrations/0011_task_text.py rename to rdmo/tasks/migrations/0011_task_text.py diff --git a/apps/tasks/migrations/__init__.py b/rdmo/tasks/migrations/__init__.py similarity index 100% rename from apps/tasks/migrations/__init__.py rename to rdmo/tasks/migrations/__init__.py diff --git a/apps/tasks/models.py b/rdmo/tasks/models.py similarity index 96% rename from apps/tasks/models.py rename to rdmo/tasks/models.py index 7bb79bde1..a55ea6294 100644 --- a/apps/tasks/models.py +++ b/rdmo/tasks/models.py @@ -11,11 +11,11 @@ from django.utils.encoding import python_2_unicode_compatible from django.utils.translation import ugettext_lazy as _ -from apps.core.utils import get_uri_prefix -from apps.core.models import TranslationMixin -from apps.domain.models import Attribute -from apps.conditions.models import Condition -from apps.projects.models import Value +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import TranslationMixin +from rdmo.domain.models import Attribute +from rdmo.conditions.models import Condition +from rdmo.projects.models import Value from .managers import TaskManager from .validators import TaskUniqueKeyValidator diff --git a/apps/tasks/renderers.py b/rdmo/tasks/renderers.py similarity index 97% rename from apps/tasks/renderers.py rename to rdmo/tasks/renderers.py index e518ceb1e..ba291c25e 100644 --- a/apps/tasks/renderers.py +++ b/rdmo/tasks/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/tasks/serializers/__init__.py b/rdmo/tasks/serializers/__init__.py similarity index 93% rename from apps/tasks/serializers/__init__.py rename to rdmo/tasks/serializers/__init__.py index 58b6fb2fa..9683d8bf6 100644 --- a/apps/tasks/serializers/__init__.py +++ b/rdmo/tasks/serializers/__init__.py @@ -1,7 +1,7 @@ from rest_framework import serializers -from apps.domain.models import Attribute -from apps.conditions.models import Condition +from rdmo.domain.models import Attribute +from rdmo.conditions.models import Condition from ..models import Task, TimeFrame from ..validators import TaskUniqueKeyValidator diff --git a/apps/tasks/serializers/api.py b/rdmo/tasks/serializers/api.py similarity index 91% rename from apps/tasks/serializers/api.py rename to rdmo/tasks/serializers/api.py index d34b0ca21..2eb322cda 100644 --- a/apps/tasks/serializers/api.py +++ b/rdmo/tasks/serializers/api.py @@ -1,8 +1,8 @@ from rest_framework import serializers -from apps.domain.models import Attribute -from apps.conditions.models import Condition +from rdmo.domain.models import Attribute +from rdmo.conditions.models import Condition from ..models import Task, TimeFrame from ..validators import TaskUniqueKeyValidator diff --git a/apps/tasks/serializers/export.py b/rdmo/tasks/serializers/export.py similarity index 100% rename from apps/tasks/serializers/export.py rename to rdmo/tasks/serializers/export.py diff --git a/apps/tasks/static/tasks/css/tasks.scss b/rdmo/tasks/static/tasks/css/tasks.scss similarity index 100% rename from apps/tasks/static/tasks/css/tasks.scss rename to rdmo/tasks/static/tasks/css/tasks.scss diff --git a/apps/tasks/static/tasks/js/tasks.js b/rdmo/tasks/static/tasks/js/tasks.js similarity index 100% rename from apps/tasks/static/tasks/js/tasks.js rename to rdmo/tasks/static/tasks/js/tasks.js diff --git a/apps/tasks/templates/tasks/tasks.html b/rdmo/tasks/templates/tasks/tasks.html similarity index 100% rename from apps/tasks/templates/tasks/tasks.html rename to rdmo/tasks/templates/tasks/tasks.html diff --git a/apps/tasks/templates/tasks/tasks_export.html b/rdmo/tasks/templates/tasks/tasks_export.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_export.html rename to rdmo/tasks/templates/tasks/tasks_export.html diff --git a/apps/tasks/templates/tasks/tasks_modal_delete_tasks.html b/rdmo/tasks/templates/tasks/tasks_modal_delete_tasks.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_modal_delete_tasks.html rename to rdmo/tasks/templates/tasks/tasks_modal_delete_tasks.html diff --git a/apps/tasks/templates/tasks/tasks_modal_form_conditions.html b/rdmo/tasks/templates/tasks/tasks_modal_form_conditions.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_modal_form_conditions.html rename to rdmo/tasks/templates/tasks/tasks_modal_form_conditions.html diff --git a/apps/tasks/templates/tasks/tasks_modal_form_tasks.html b/rdmo/tasks/templates/tasks/tasks_modal_form_tasks.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_modal_form_tasks.html rename to rdmo/tasks/templates/tasks/tasks_modal_form_tasks.html diff --git a/apps/tasks/templates/tasks/tasks_modal_form_timeframes.html b/rdmo/tasks/templates/tasks/tasks_modal_form_timeframes.html similarity index 100% rename from apps/tasks/templates/tasks/tasks_modal_form_timeframes.html rename to rdmo/tasks/templates/tasks/tasks_modal_form_timeframes.html diff --git a/apps/tasks/tests.py b/rdmo/tasks/tests.py similarity index 94% rename from apps/tasks/tests.py rename to rdmo/tasks/tests.py index 7fc64fc2a..5c5109dde 100644 --- a/apps/tasks/tests.py +++ b/rdmo/tasks/tests.py @@ -3,9 +3,9 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions -from apps.conditions.models import Condition +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions +from rdmo.conditions.models import Condition from .models import Task diff --git a/apps/tasks/urls.py b/rdmo/tasks/urls.py similarity index 100% rename from apps/tasks/urls.py rename to rdmo/tasks/urls.py diff --git a/apps/tasks/utils.py b/rdmo/tasks/utils.py similarity index 91% rename from apps/tasks/utils.py rename to rdmo/tasks/utils.py index 3e4e7fe00..a49a8636a 100644 --- a/apps/tasks/utils.py +++ b/rdmo/tasks/utils.py @@ -1,8 +1,8 @@ from datetime import datetime, timedelta -from apps.core.utils import get_ns_tag -from apps.conditions.models import Condition -from apps.domain.models import Attribute +from rdmo.core.utils import get_ns_tag +from rdmo.conditions.models import Condition +from rdmo.domain.models import Attribute from .models import Task diff --git a/apps/tasks/validators.py b/rdmo/tasks/validators.py similarity index 66% rename from apps/tasks/validators.py rename to rdmo/tasks/validators.py index d3a699e5f..4b5094320 100644 --- a/apps/tasks/validators.py +++ b/rdmo/tasks/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator +from rdmo.core.validators import UniqueKeyValidator class TaskUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/tasks/views.py b/rdmo/tasks/views.py similarity index 92% rename from apps/tasks/views.py rename to rdmo/tasks/views.py index 7ccd0bc06..bab654e74 100644 --- a/apps/tasks/views.py +++ b/rdmo/tasks/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import Task, TimeFrame from .serializers.export import TaskSerializer as ExportSerializer diff --git a/apps/tasks/viewsets.py b/rdmo/tasks/viewsets.py similarity index 93% rename from apps/tasks/viewsets.py rename to rdmo/tasks/viewsets.py index c398380e6..93692914c 100644 --- a/apps/tasks/viewsets.py +++ b/rdmo/tasks/viewsets.py @@ -4,9 +4,9 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.permissions import HasModelPermission -from apps.conditions.models import Condition -from apps.domain.models import Attribute +from rdmo.core.permissions import HasModelPermission +from rdmo.conditions.models import Condition +from rdmo.domain.models import Attribute from .models import Task, TimeFrame from .serializers import ( diff --git a/rdmo/views/__init__.py b/rdmo/views/__init__.py new file mode 100644 index 000000000..6f707bcb2 --- /dev/null +++ b/rdmo/views/__init__.py @@ -0,0 +1 @@ +default_app_config = 'rdmo.views.app_config.ViewsConfig' diff --git a/apps/views/admin.py b/rdmo/views/admin.py similarity index 100% rename from apps/views/admin.py rename to rdmo/views/admin.py diff --git a/apps/views/app_config.py b/rdmo/views/app_config.py similarity index 86% rename from apps/views/app_config.py rename to rdmo/views/app_config.py index 6e28e7b7c..46590768f 100644 --- a/apps/views/app_config.py +++ b/rdmo/views/app_config.py @@ -3,5 +3,5 @@ class ViewsConfig(AppConfig): - name = 'apps.views' + name = 'rdmo.views' verbose_name = _('Views') diff --git a/apps/views/migrations/0001_initial.py b/rdmo/views/migrations/0001_initial.py similarity index 100% rename from apps/views/migrations/0001_initial.py rename to rdmo/views/migrations/0001_initial.py diff --git a/apps/views/migrations/0002_view_template.py b/rdmo/views/migrations/0002_view_template.py similarity index 100% rename from apps/views/migrations/0002_view_template.py rename to rdmo/views/migrations/0002_view_template.py diff --git a/apps/views/migrations/0003_refactoring.py b/rdmo/views/migrations/0003_refactoring.py similarity index 100% rename from apps/views/migrations/0003_refactoring.py rename to rdmo/views/migrations/0003_refactoring.py diff --git a/apps/views/migrations/0004_refactoring.py b/rdmo/views/migrations/0004_refactoring.py similarity index 100% rename from apps/views/migrations/0004_refactoring.py rename to rdmo/views/migrations/0004_refactoring.py diff --git a/apps/views/migrations/0005_meta.py b/rdmo/views/migrations/0005_meta.py similarity index 100% rename from apps/views/migrations/0005_meta.py rename to rdmo/views/migrations/0005_meta.py diff --git a/apps/views/migrations/0006_title_and_help.py b/rdmo/views/migrations/0006_title_and_help.py similarity index 100% rename from apps/views/migrations/0006_title_and_help.py rename to rdmo/views/migrations/0006_title_and_help.py diff --git a/apps/views/migrations/0007_data_migration.py b/rdmo/views/migrations/0007_data_migration.py similarity index 100% rename from apps/views/migrations/0007_data_migration.py rename to rdmo/views/migrations/0007_data_migration.py diff --git a/apps/views/migrations/0008_permissions.py b/rdmo/views/migrations/0008_permissions.py similarity index 100% rename from apps/views/migrations/0008_permissions.py rename to rdmo/views/migrations/0008_permissions.py diff --git a/apps/views/migrations/0009_meta.py b/rdmo/views/migrations/0009_meta.py similarity index 100% rename from apps/views/migrations/0009_meta.py rename to rdmo/views/migrations/0009_meta.py diff --git a/apps/views/migrations/__init__.py b/rdmo/views/migrations/__init__.py similarity index 100% rename from apps/views/migrations/__init__.py rename to rdmo/views/migrations/__init__.py diff --git a/apps/views/models.py b/rdmo/views/models.py similarity index 97% rename from apps/views/models.py rename to rdmo/views/models.py index f53c8107a..d3f763706 100644 --- a/apps/views/models.py +++ b/rdmo/views/models.py @@ -6,10 +6,10 @@ from django.utils.translation import ugettext_lazy as _ from django.template import Context, Template -from apps.core.utils import get_uri_prefix -from apps.core.models import TranslationMixin -from apps.domain.models import AttributeEntity -from apps.conditions.models import Condition +from rdmo.core.utils import get_uri_prefix +from rdmo.core.models import TranslationMixin +from rdmo.domain.models import AttributeEntity +from rdmo.conditions.models import Condition from .validators import ViewUniqueKeyValidator diff --git a/apps/views/renderers.py b/rdmo/views/renderers.py similarity index 95% rename from apps/views/renderers.py rename to rdmo/views/renderers.py index a36d4b64d..f3bc8015a 100644 --- a/apps/views/renderers.py +++ b/rdmo/views/renderers.py @@ -1,4 +1,4 @@ -from apps.core.renderers import BaseXMLRenderer +from rdmo.core.renderers import BaseXMLRenderer class XMLRenderer(BaseXMLRenderer): diff --git a/apps/views/serializers/__init__.py b/rdmo/views/serializers/__init__.py similarity index 100% rename from apps/views/serializers/__init__.py rename to rdmo/views/serializers/__init__.py diff --git a/apps/views/serializers/api.py b/rdmo/views/serializers/api.py similarity index 100% rename from apps/views/serializers/api.py rename to rdmo/views/serializers/api.py diff --git a/apps/views/serializers/export.py b/rdmo/views/serializers/export.py similarity index 100% rename from apps/views/serializers/export.py rename to rdmo/views/serializers/export.py diff --git a/apps/views/static/views/css/views.scss b/rdmo/views/static/views/css/views.scss similarity index 100% rename from apps/views/static/views/css/views.scss rename to rdmo/views/static/views/css/views.scss diff --git a/apps/views/static/views/js/views.js b/rdmo/views/static/views/js/views.js similarity index 100% rename from apps/views/static/views/js/views.js rename to rdmo/views/static/views/js/views.js diff --git a/apps/views/templates/views/views.html b/rdmo/views/templates/views/views.html similarity index 100% rename from apps/views/templates/views/views.html rename to rdmo/views/templates/views/views.html diff --git a/apps/views/templates/views/views_export.html b/rdmo/views/templates/views/views_export.html similarity index 100% rename from apps/views/templates/views/views_export.html rename to rdmo/views/templates/views/views_export.html diff --git a/apps/views/templates/views/views_modal_delete_views.html b/rdmo/views/templates/views/views_modal_delete_views.html similarity index 100% rename from apps/views/templates/views/views_modal_delete_views.html rename to rdmo/views/templates/views/views_modal_delete_views.html diff --git a/apps/views/templates/views/views_modal_form_templates.html b/rdmo/views/templates/views/views_modal_form_templates.html similarity index 100% rename from apps/views/templates/views/views_modal_form_templates.html rename to rdmo/views/templates/views/views_modal_form_templates.html diff --git a/apps/views/templates/views/views_modal_form_views.html b/rdmo/views/templates/views/views_modal_form_views.html similarity index 100% rename from apps/views/templates/views/views_modal_form_views.html rename to rdmo/views/templates/views/views_modal_form_views.html diff --git a/apps/views/tests.py b/rdmo/views/tests.py similarity index 95% rename from apps/views/tests.py rename to rdmo/views/tests.py index 16f68b6e5..3bb9e6d92 100644 --- a/apps/views/tests.py +++ b/rdmo/views/tests.py @@ -3,8 +3,8 @@ from test_generator.views import TestListViewMixin from test_generator.viewsets import TestModelViewsetMixin, TestListViewsetMixin, TestRetrieveViewsetMixin -from apps.core.testing.mixins import TestExportViewMixin, TestImportViewMixin -from apps.accounts.utils import set_group_permissions +from rdmo.core.testing.mixins import TestExportViewMixin, TestImportViewMixin +from rdmo.accounts.utils import set_group_permissions from .models import View diff --git a/apps/views/urls.py b/rdmo/views/urls.py similarity index 100% rename from apps/views/urls.py rename to rdmo/views/urls.py diff --git a/apps/views/utils.py b/rdmo/views/utils.py similarity index 89% rename from apps/views/utils.py rename to rdmo/views/utils.py index 26aa7dad1..f0a599fe4 100644 --- a/apps/views/utils.py +++ b/rdmo/views/utils.py @@ -1,7 +1,7 @@ from lxml import etree -from apps.core.utils import get_ns_tag -from apps.domain.models import AttributeEntity +from rdmo.core.utils import get_ns_tag +from rdmo.domain.models import AttributeEntity from .models import View diff --git a/apps/views/validators.py b/rdmo/views/validators.py similarity index 66% rename from apps/views/validators.py rename to rdmo/views/validators.py index d1cc82908..c96ca2ddd 100644 --- a/apps/views/validators.py +++ b/rdmo/views/validators.py @@ -1,4 +1,4 @@ -from apps.core.validators import UniqueKeyValidator +from rdmo.core.validators import UniqueKeyValidator class ViewUniqueKeyValidator(UniqueKeyValidator): diff --git a/apps/views/views.py b/rdmo/views/views.py similarity index 92% rename from apps/views/views.py rename to rdmo/views/views.py index f060c0172..dcd7a5618 100644 --- a/apps/views/views.py +++ b/rdmo/views/views.py @@ -3,8 +3,8 @@ from django.utils.translation import ugettext_lazy as _ from django.views.generic import TemplateView, ListView -from apps.core.views import ModelPermissionMixin -from apps.core.utils import get_model_field_meta, render_to_format +from rdmo.core.views import ModelPermissionMixin +from rdmo.core.utils import get_model_field_meta, render_to_format from .models import View from .serializers.export import ViewSerializer as ExportSerializer diff --git a/apps/views/viewsets.py b/rdmo/views/viewsets.py similarity index 95% rename from apps/views/viewsets.py rename to rdmo/views/viewsets.py index ae8ed731d..f010ffaee 100644 --- a/apps/views/viewsets.py +++ b/rdmo/views/viewsets.py @@ -4,7 +4,7 @@ from rest_framework.response import Response from rest_framework.authentication import SessionAuthentication, TokenAuthentication -from apps.core.permissions import HasModelPermission +from rdmo.core.permissions import HasModelPermission from .models import View from .serializers import ViewSerializer, ViewIndexSerializer From 7f2895ebd0414507db9b50aef421dcba6ec82732 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 15:41:04 +0200 Subject: [PATCH 15/34] add setup.py, move files to rdmo-app --- .coveragerc | 8 +--- MANIFEST.in | 5 ++ manage.py | 10 ---- rdmo/__init__.py | 8 ++++ requirements/all.txt | 4 -- requirements/base.txt | 21 -------- requirements/docs.txt | 4 -- requirements/ldap.txt | 1 - requirements/memcached.txt | 1 - requirements/mysql.txt | 1 - requirements/postgres.txt | 1 - requirements/shibboleth.txt | 1 - requirements/testing.txt | 4 -- setup.py | 48 +++++++++++++++++++ {config => testing/config}/__init__.py | 0 .../config}/settings/__init__.py | 0 {config => testing/config}/settings/base.py | 0 {config => testing/config}/settings/local.py | 0 .../config}/settings/sample.local.py | 0 {config => testing/config}/urls.py | 0 {config => testing/config}/wsgi.py | 0 21 files changed, 63 insertions(+), 54 deletions(-) create mode 100644 MANIFEST.in delete mode 100755 manage.py delete mode 100644 requirements/all.txt delete mode 100644 requirements/base.txt delete mode 100644 requirements/docs.txt delete mode 100644 requirements/ldap.txt delete mode 100644 requirements/memcached.txt delete mode 100644 requirements/mysql.txt delete mode 100644 requirements/postgres.txt delete mode 100644 requirements/shibboleth.txt delete mode 100644 requirements/testing.txt create mode 100644 setup.py rename {config => testing/config}/__init__.py (100%) rename {config => testing/config}/settings/__init__.py (100%) rename {config => testing/config}/settings/base.py (100%) rename {config => testing/config}/settings/local.py (100%) rename {config => testing/config}/settings/sample.local.py (100%) rename {config => testing/config}/urls.py (100%) rename {config => testing/config}/wsgi.py (100%) diff --git a/.coveragerc b/.coveragerc index 7433c3ad1..c01027666 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,13 +1,9 @@ [run] -source = . +source = rdmo [report] omit = - rdmo/wsgi.py - rdmo/settings/* - apps/core/management/commands/* - env/* - */migrations/* + rdmo/core/management/commands/* exclude_lines = raise Exception except ImportError: diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 000000000..2f825479c --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,5 @@ +graft rdmo +prune config + +global-exclude __pycache__ +global-exclude *.py[co] diff --git a/manage.py b/manage.py deleted file mode 100755 index 5ec273e19..000000000 --- a/manage.py +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env python -import os -import sys - -if __name__ == "__main__": - os.environ.setdefault("DJANGO_SETTINGS_MODULE", "config.settings") - - from django.core.management import execute_from_command_line - - execute_from_command_line(sys.argv) diff --git a/rdmo/__init__.py b/rdmo/__init__.py index e69de29bb..5804007e8 100644 --- a/rdmo/__init__.py +++ b/rdmo/__init__.py @@ -0,0 +1,8 @@ +__title__ = 'rdmo' +__version__ = '0.9.0' +__author__ = 'Jochen Klar' +__email__ = 'jklar@aip.de' +__license__ = 'Apache-2.0' +__copyright__ = 'Copyright 2017 Leibniz Institute for Astrophysics Potsdam (AIP)' + +VERSION = __version__ diff --git a/requirements/all.txt b/requirements/all.txt deleted file mode 100644 index 55efe56d4..000000000 --- a/requirements/all.txt +++ /dev/null @@ -1,4 +0,0 @@ --r base.txt --r postgres.txt --r mysql.txt --r testing.txt diff --git a/requirements/base.txt b/requirements/base.txt deleted file mode 100644 index 92939f37c..000000000 --- a/requirements/base.txt +++ /dev/null @@ -1,21 +0,0 @@ -Django==1.11.1 - -djangorestframework==3.6.2 -drf-extensions==0.3.1 - -django-extensions==1.7.7 -django-allauth==0.31.0 -django-filter==1.0.2 -django-widget-tweaks==1.4.1 -django-mptt==0.8.7 -django-compressor==2.1.1 -django-libsass==0.7 -django-bower==5.2.0 -django-settings-export==1.2.1 - -rules==1.2 -jsonfield==1.0.0 -Markdown==2.6.8 -iso8601==0.1.11 -pypandoc==1.3.3 -lxml==3.7.3 diff --git a/requirements/docs.txt b/requirements/docs.txt deleted file mode 100644 index a4db2028d..000000000 --- a/requirements/docs.txt +++ /dev/null @@ -1,4 +0,0 @@ -sphinx -sphinx-autobuild -sphinx_rtd_theme -recommonmark diff --git a/requirements/ldap.txt b/requirements/ldap.txt deleted file mode 100644 index 592d42919..000000000 --- a/requirements/ldap.txt +++ /dev/null @@ -1 +0,0 @@ -django-auth-ldap==1.2.8 diff --git a/requirements/memcached.txt b/requirements/memcached.txt deleted file mode 100644 index d869019ac..000000000 --- a/requirements/memcached.txt +++ /dev/null @@ -1 +0,0 @@ -python-memcached==1.58 diff --git a/requirements/mysql.txt b/requirements/mysql.txt deleted file mode 100644 index d1d0bec33..000000000 --- a/requirements/mysql.txt +++ /dev/null @@ -1 +0,0 @@ -mysqlclient==1.3.10 diff --git a/requirements/postgres.txt b/requirements/postgres.txt deleted file mode 100644 index 3b4eaddf2..000000000 --- a/requirements/postgres.txt +++ /dev/null @@ -1 +0,0 @@ -psycopg2==2.7.1 diff --git a/requirements/shibboleth.txt b/requirements/shibboleth.txt deleted file mode 100644 index 57ee30d6a..000000000 --- a/requirements/shibboleth.txt +++ /dev/null @@ -1 +0,0 @@ -git+https://github.com/Brown-University-Library/django-shibboleth-remoteuser.git diff --git a/requirements/testing.txt b/requirements/testing.txt deleted file mode 100644 index 3f581bc78..000000000 --- a/requirements/testing.txt +++ /dev/null @@ -1,4 +0,0 @@ -django-test-generator==0.1.0 - -coverage==4.3.4 -coveralls==1.1 diff --git a/setup.py b/setup.py new file mode 100644 index 000000000..aa814cb87 --- /dev/null +++ b/setup.py @@ -0,0 +1,48 @@ +from setuptools import setup, find_packages + +from rdmo import __title__, __email__, __version__, __author__, __license__ + +setup( + name=__title__, + version=__version__, + author=__author__, + author_email=__email__, + maintainer=__author__, + maintainer_email=__email__, + license=__license__, + url='https://github.com/rdmorganiser/rdmo', + description=u'RDMO is a tool to support the systematic planning, organisation and implementation of the data management throughout the course of a research project.', + # long_description=open('README.rst').read(), + install_requires=[ + 'Django==1.11.1', + 'djangorestframework==3.6.2', + 'drf-extensions==0.3.1', + 'django-extensions==1.7.7', + 'django-allauth==0.31.0', + 'django-filter==1.0.2', + 'django-widget-tweaks==1.4.1', + 'django-mptt==0.8.7', + 'django-compressor==2.1.1', + 'django-libsass==0.7', + 'django-bower==5.2.0', + 'django-settings-export==1.2.1', + 'rules==1.2', + 'jsonfield==1.0.0', + 'Markdown==2.6.8', + 'iso8601==0.1.11', + 'pypandoc==1.3.3', + 'lxml==3.7.3' + ], + classifiers=[ + 'Development Status :: 1 - Planning', + 'Environment :: Web Environment', + 'Framework :: Django :: 1.11', + 'Intended Audience :: Science/Research', + 'License :: OSI Approved :: Apache Software License', + 'Operating System :: OS Independent', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3.4' + ], + packages=find_packages(), + include_package_data=True +) diff --git a/config/__init__.py b/testing/config/__init__.py similarity index 100% rename from config/__init__.py rename to testing/config/__init__.py diff --git a/config/settings/__init__.py b/testing/config/settings/__init__.py similarity index 100% rename from config/settings/__init__.py rename to testing/config/settings/__init__.py diff --git a/config/settings/base.py b/testing/config/settings/base.py similarity index 100% rename from config/settings/base.py rename to testing/config/settings/base.py diff --git a/config/settings/local.py b/testing/config/settings/local.py similarity index 100% rename from config/settings/local.py rename to testing/config/settings/local.py diff --git a/config/settings/sample.local.py b/testing/config/settings/sample.local.py similarity index 100% rename from config/settings/sample.local.py rename to testing/config/settings/sample.local.py diff --git a/config/urls.py b/testing/config/urls.py similarity index 100% rename from config/urls.py rename to testing/config/urls.py diff --git a/config/wsgi.py b/testing/config/wsgi.py similarity index 100% rename from config/wsgi.py rename to testing/config/wsgi.py From 50cd8740144b0d3b74bc1850e9790cc5406e2219 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 15:57:51 +0200 Subject: [PATCH 16/34] add testing --- .gitignore | 15 ++++++------- .travis.yml | 26 +++++++++++++++-------- setup.py | 4 +++- testing/config/settings/base.py | 6 +++--- testing/{ => config}/settings/mysql.py | 0 testing/{ => config}/settings/postgres.py | 0 testing/{ => config}/settings/sqlite3.py | 0 testing/runtests.py | 26 +++++++++++++++++++++++ 8 files changed, 55 insertions(+), 22 deletions(-) rename testing/{ => config}/settings/mysql.py (100%) rename testing/{ => config}/settings/postgres.py (100%) rename testing/{ => config}/settings/sqlite3.py (100%) create mode 100644 testing/runtests.py diff --git a/.gitignore b/.gitignore index 49ec037d2..c09dcc89b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,9 @@ -rdmo/settings/local.py - -components_root -static_root -media_root +testing/config/settings/local.py +testing/static_root/ docs/_build* +__pycache__ *.pyc *~ *.swp @@ -15,10 +13,9 @@ env env2 env3 -*.sqlite3 - .coverage htmlcov -themes -theme +build +dist +*.egg-info diff --git a/.travis.yml b/.travis.yml index f4e2f0fba..cc37619f7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,27 +1,35 @@ language: python -cache: - directories: - - $HOME/virtualenv +cache: pip + services: - postgresql - mysql + python: - 2.7 - 3.4 +- 3.5 +- 3.6 + env: - DB=postgres - DB=mysql - DB=sqlite3 + before_install: - sudo apt-get install pandoc + install: -- pip install -r requirements/base.txt -- pip install -r requirements/postgres.txt -- pip install -r requirements/mysql.txt -- pip install -r requirements/testing.txt +- pip install -e . +- pip install mysqlclient +- pip install psycopg2 +- pip install coveralls + before_script: -- sh -c "cp testing/settings/$DB.py rdmo/settings/local.py; fi" +- sh -c "cp testing/config/settings/$DB.py testing/config/settings/local.py; fi" + script: -- coverage run manage.py test +- coverage run testing/runtests.py + after_success: - coveralls diff --git a/setup.py b/setup.py index aa814cb87..03b0559a1 100644 --- a/setup.py +++ b/setup.py @@ -31,7 +31,9 @@ 'Markdown==2.6.8', 'iso8601==0.1.11', 'pypandoc==1.3.3', - 'lxml==3.7.3' + 'lxml==3.7.3', + 'coverage', + 'django-test-generator>=0.1.2' ], classifiers=[ 'Development Status :: 1 - Planning', diff --git a/testing/config/settings/base.py b/testing/config/settings/base.py index fcc4e0ae0..d0ad2f348 100644 --- a/testing/config/settings/base.py +++ b/testing/config/settings/base.py @@ -103,8 +103,8 @@ SOCIALACCOUNT = False SHIBBOLETH = False -ACCOUNT_SIGNUP_FORM_CLASS = 'apps.accounts.forms.SignupForm' -ACCOUNT_USER_DISPLAY = 'apps.accounts.utils.get_full_name' +ACCOUNT_SIGNUP_FORM_CLASS = 'rdmo.accounts.forms.SignupForm' +ACCOUNT_USER_DISPLAY = 'rdmo.accounts.utils.get_full_name' ACCOUNT_EMAIL_REQUIRED = True ACCOUNT_ACTIVATION_DAYS = 7 ACCOUNT_EMAIL_CONFIRMATION_EXPIRE_DAYS = 7 @@ -162,7 +162,7 @@ ) FIXTURE_DIRS = ( - os.path.join(BASE_DIR, 'testing/fixtures/'), + os.path.join(BASE_DIR, 'fixtures/'), ) CACHE_TIMEOUT = 60 diff --git a/testing/settings/mysql.py b/testing/config/settings/mysql.py similarity index 100% rename from testing/settings/mysql.py rename to testing/config/settings/mysql.py diff --git a/testing/settings/postgres.py b/testing/config/settings/postgres.py similarity index 100% rename from testing/settings/postgres.py rename to testing/config/settings/postgres.py diff --git a/testing/settings/sqlite3.py b/testing/config/settings/sqlite3.py similarity index 100% rename from testing/settings/sqlite3.py rename to testing/config/settings/sqlite3.py diff --git a/testing/runtests.py b/testing/runtests.py new file mode 100644 index 000000000..d7b94c37b --- /dev/null +++ b/testing/runtests.py @@ -0,0 +1,26 @@ +#!/usr/bin/env python +import argparse +import os +import sys + +import django +from django.conf import settings +from django.test.utils import get_runner + + +def main(): + parser = argparse.ArgumentParser(description='Run the tests for RDMO.') + parser.add_argument('-k', '--keepdb', action='store_true', help='Preserves the test database between runs.') + + args = parser.parse_args() + + os.environ['DJANGO_SETTINGS_MODULE'] = 'config.settings' + + django.setup() + TestRunner = get_runner(settings) + failures = TestRunner(verbosity=1, keepdb=args.keepdb).run_tests([]) + sys.exit(bool(failures)) + + +if __name__ == "__main__": + main() From 6be036244c114a0b271b52756c4f8bedffa86fe2 Mon Sep 17 00:00:00 2001 From: Jochen Klar Date: Wed, 23 Aug 2017 17:05:52 +0200 Subject: [PATCH 17/34] add core.settings and move locale --- locale/de/LC_MESSAGES/django.po | 2938 --------------- .../templates/conditions/conditions.html | 2 +- rdmo/core/settings.py | 178 + rdmo/domain/templates/domain/domain.html | 2 +- .../locale}/de/LC_MESSAGES/django.mo | Bin rdmo/locale/de/LC_MESSAGES/django.po | 3174 +++++++++++++++++ rdmo/options/templates/options/options.html | 2 +- .../templates/projects/project_answers.html | 2 +- .../templates/projects/project_view.html | 2 +- .../templates/questions/catalogs_sidebar.html | 2 +- rdmo/tasks/templates/tasks/tasks.html | 2 +- rdmo/views/templates/views/views.html | 2 +- testing/config/settings/__init__.py | 27 + testing/config/settings/base.py | 77 +- 14 files changed, 3388 insertions(+), 3022 deletions(-) delete mode 100644 locale/de/LC_MESSAGES/django.po create mode 100644 rdmo/core/settings.py rename {locale => rdmo/locale}/de/LC_MESSAGES/django.mo (100%) create mode 100644 rdmo/locale/de/LC_MESSAGES/django.po diff --git a/locale/de/LC_MESSAGES/django.po b/locale/de/LC_MESSAGES/django.po deleted file mode 100644 index c9137f6e7..000000000 --- a/locale/de/LC_MESSAGES/django.po +++ /dev/null @@ -1,2938 +0,0 @@ -# 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 , YEAR. -# -msgid "" -msgstr "" -"Project-Id-Version: DMPwerkzeug\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-05 16:44+0200\n" -"PO-Revision-Date: 2017-04-05 16:44+0100\n" -"Last-Translator: Jochen Klar \n" -"Language-Team: DMPwerkzeug \n" -"Language: 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" -"X-Generator: Poedit 1.6.10\n" - -#: apps/accounts/app_config.py:7 -msgid "Accounts" -msgstr "Benutzerkonten" - -#: apps/accounts/forms.py:23 -msgid "First name" -msgstr "Vorname" - -#: apps/accounts/forms.py:24 -msgid "Last name" -msgstr "Nachname" - -#: apps/accounts/models.py:25 apps/accounts/models.py:26 -msgid "Enter a help text to be displayed next to the input element" -msgstr "" -"Geben Sie einen Hilfetext, der neben dem Eingabefeld angezeigt wird, ein" - -#: apps/accounts/models.py:33 -msgid "Additional field" -msgstr "Zusätzliches Feld" - -#: apps/accounts/models.py:34 -msgid "Additional fields" -msgstr "Zusätzliche Felder" - -#: apps/accounts/models.py:58 -msgid "Additional field value" -msgstr "Wert für zusätzliches Feld" - -#: apps/accounts/models.py:59 -msgid "Additional field values" -msgstr "Werte für zusätzliches Felder" - -#: apps/accounts/templates/account/email.html:6 -msgid "E-mail Addresses" -msgstr "E-mail Adressen" - -#: apps/accounts/templates/account/email.html:10 -msgid "The following e-mail addresses are associated with your account:" -msgstr "Die folgenden E-Mail Adressen sind mit Ihrem Benutzerkonto verknüpft:" - -#: apps/accounts/templates/account/email.html:26 -msgid "Primary" -msgstr "Primär" - -#: apps/accounts/templates/account/email.html:30 -msgid "Verified" -msgstr "Bestätigt" - -#: apps/accounts/templates/account/email.html:32 -msgid "Unverified" -msgstr "Unbestätigt" - -#: apps/accounts/templates/account/email.html:40 -msgid "Make Primary" -msgstr "Zur primären Adresse machen" - -#: apps/accounts/templates/account/email.html:41 -msgid "Re-send Verification" -msgstr "Bestätigungsmail nochmal senden" - -#: apps/accounts/templates/account/email.html:42 -#: apps/domain/templates/domain/domain_modal_form_ranges.html:45 -#: apps/domain/templates/domain/domain_modal_form_verbosenames.html:53 -#: apps/tasks/templates/tasks/tasks_modal_form_timeframes.html:63 -msgid "Remove" -msgstr "Entfernen" - -#: apps/accounts/templates/account/email.html:51 -msgid "Warning:" -msgstr "Warnung:" - -#: apps/accounts/templates/account/email.html:51 -msgid "" -"You currently do not have any e-mail address set up. You should really add " -"an e-mail address so you can receive notifications, reset your password, etc." -msgstr "" -"Sie haben zur Zeit keine E-Mail Adresse angegeben. Sie sollten dies " -"unbedingt tun, um Benachrichtigungen zu erhalten oder Ihr Password " -"zurücksetzen zu lassen." - -#: apps/accounts/templates/account/email.html:56 -msgid "Add E-mail Address" -msgstr "E-Mail Adresse hinzufügen" - -#: apps/accounts/templates/account/email.html:63 -msgid "Add E-mail" -msgstr "E-Mail hinzufügen" - -#: apps/accounts/templates/account/email.html:71 -msgid "Do you really want to remove the selected e-mail address?" -msgstr "Wollen sie wirklich die ausgewählte E-Mail Adresse entfernen?" - -#: apps/accounts/templates/account/email/password_reset_key_message.txt:1 -msgid "Dear" -msgstr "Liebe(r)" - -#: apps/accounts/templates/account/email/password_reset_key_message.txt:3 -#, python-format -msgid "" -"You are receiving this e-mail because you requested that your password on " -"%(site_domain)s will be reset. It can be safely ignored if you did not " -"request a password reset. Click the link below to reset your password." -msgstr "" -"Wir haben Ihnen dies E-Mail geschickt, weil sie Ihr Password auf " -"%(site_domain)s zurücksetzen möchten. Falls Sie das nicht getan haben, " -"können Sie diese E-Mail einfach ignorieren. Bitte klicken sie auf den unten " -"stehenden Link um Ihr Password zurückzusetzen." - -#: apps/accounts/templates/account/email/password_reset_key_message.txt:11 -#, python-format -msgid "In case you forgot, your username is '%(username)s'." -msgstr "" -"Falls Sie Ihren Benutzernamen vergessen haben, er lautet \"%(username)s\"." - -#: apps/accounts/templates/account/email/password_reset_key_message.txt:15 -msgid "Sincerely" -msgstr "Mit freundlichen Grüßen" - -#: apps/accounts/templates/account/email/password_reset_key_subject.txt:1 -#: apps/accounts/templates/account/password_reset.html:6 -msgid "Password reset" -msgstr "Passwort zurücksetzen" - -#: apps/accounts/templates/account/email_confirm.html:7 -msgid "Confirm E-mail Address" -msgstr "E-Mail bestätigen" - -#: apps/accounts/templates/account/email_confirm.html:14 -#, python-format -msgid "" -"Please confirm that %(email)s is an e-mail " -"address for user %(user_display)s." -msgstr "" -"Bitte bestätigen sie, dass %(email)s eine " -"gültige E-Mail Adresse für den Benutzer %(user_display)s " -"ist." - -#: apps/accounts/templates/account/email_confirm.html:21 -msgid "Confirm" -msgstr "Bestätigen" - -#: apps/accounts/templates/account/email_confirm.html:29 -#, python-format -msgid "" -"This e-mail confirmation link expired or is invalid. Please issue a new e-mail confirmation request." -msgstr "" -"Dieser Bestätigungs-Link ist abgelaufen oder ungültig. Bitte fordern sie eine neue Betätigungs-E-Mail an." - -#: apps/accounts/templates/account/login.html:6 -#: apps/accounts/templates/account/login_form.html:20 -#: apps/accounts/templates/account/password_reset_from_key_done.html:14 -#: apps/core/templates/core/base_navigation.html:131 -#: apps/core/templates/core/home.html:60 -#: themes/bwFDM-info/templates/core/home.html:27 -msgid "Login" -msgstr "Anmelden" - -#: apps/accounts/templates/account/login_form.html:6 -msgid "Login with Shibboleth" -msgstr "Mit Shibboleth einloggen" - -#: apps/accounts/templates/account/login_form_account.html:8 -#, python-format -msgid "" -"If you have not created an account yet, then please sign up first." -msgstr "" -"Falls Sie noch kein Benutzerkonto haben, registrieren Sie sich bitte zunächst." - -#: apps/accounts/templates/account/login_form_account.html:15 -#, python-format -msgid "" -"If you forgot your password and want to reset it, click here." -msgstr "" -"Falls Sie Ihr Passwort vergessen haben und es zurücksetzen wollen, klicken " -"Sie bitte hier." - -#: apps/accounts/templates/account/login_form_socialaccount.html:9 -msgid "" -"Alternatively, you can login using one of the following third party accounts:" -msgstr "Sie können sich auch mit einem der folgenden Accounts anmelden:" - -#: apps/accounts/templates/account/logout.html:6 -#: apps/accounts/templates/account/logout.html:19 -#: apps/accounts/templates/account/logout_form.html:6 -#: apps/core/templates/core/base_navigation.html:120 -msgid "Logout" -msgstr "Abmelden" - -#: apps/accounts/templates/account/logout.html:9 -msgid "Are you sure you want to sign out?" -msgstr "Sind sie sicher, dass Sie sich abmelden wollen?" - -#: apps/accounts/templates/account/password_change.html:6 -#: apps/accounts/templates/account/password_change.html:17 -#: apps/core/templates/core/base_navigation_account.html:7 -msgid "Change password" -msgstr "Passwort ändern" - -#: apps/accounts/templates/account/password_change.html:9 -msgid "" -"Please enter your old password, and then enter your new password twice so we " -"can verify you typed it in correctly." -msgstr "" -"Bitte geben Sie das alte Passwort und das gewünschte neue Passwort an. Das " -"neue Passwort muss aus Sicherheitsgründen wiederholt werden." - -#: apps/accounts/templates/account/password_reset.html:13 -msgid "" -"Forgotten your password? Enter your e-mail address below, and we'll send you " -"an e-mail allowing you to reset it." -msgstr "" -"Haben Sie Ihr Passwort vergessen? Bitte geben Sie die E-Mail-Adresse an, mit " -"der Sie bei uns registriert sind, und wir senden Ihnen eine E-Mail mit " -"Instruktionen, wie sie Ihr Password neu setzen können." - -#: apps/accounts/templates/account/password_reset.html:21 -msgid "Reset my password" -msgstr "Passwort neu setzen" - -#: apps/accounts/templates/account/password_reset_done.html:6 -msgid "Password reset sent" -msgstr "Email gesendet" - -#: apps/accounts/templates/account/password_reset_done.html:13 -msgid "" -"We have sent you an e-mail. Please contact us if you do not receive it " -"within a few minutes." -msgstr "" -"Wir haben Ihnen eine E-Mail geschickt. Bitte kontaktieren Sie uns, falls Sie " -"die E-Mail nicht in den nächsten Minuten erhalten sollten." - -#: apps/accounts/templates/account/password_reset_done.html:19 -msgid "" -"If you don't receive an e-mail, please make sure you've entered the address " -"you registered with, and check your spam folder." -msgstr "" -"Sollten Sie keine E-Mail erhalten haben, vergewissern Sie sich, dass Sie die " -"E-Mail angegeben haben, mit der Sie bei uns registriert sind und sehen Sie " -"ggf. in Ihrem Spam-Ordner nach." - -#: apps/accounts/templates/account/password_reset_from_key.html:8 -msgid "Bad token" -msgstr "Ungültiges Token" - -#: apps/accounts/templates/account/password_reset_from_key.html:12 -#, python-format -msgid "" -"The password reset link was invalid, possibly because it has already been " -"used. Please request a new password reset." -msgstr "" -"Der Password-Link was ungültig. Wahrscheinlich wurde er bereits verwendet. " -"Bitte fordern Sie einen neuen Link an." - -#: apps/accounts/templates/account/password_reset_from_key.html:18 -msgid "Enter new password" -msgstr "Passwort eingeben" - -#: apps/accounts/templates/account/password_reset_from_key.html:27 -msgid "Change my password" -msgstr "Passwort ändern" - -#: apps/accounts/templates/account/password_reset_from_key.html:33 -msgid "Your password is now changed." -msgstr "Ihr Password wurde geändert." - -#: apps/accounts/templates/account/password_reset_from_key_done.html:7 -msgid "Password reset complete" -msgstr "Passwort neu gesetzt" - -#: apps/accounts/templates/account/password_reset_from_key_done.html:10 -msgid "Your password has been set. You may go ahead and log in now." -msgstr "Ihr Passwort wurde geändert. Sie können sich jetzt einloggen." - -#: apps/accounts/templates/account/password_set.html:6 -msgid "Set new password" -msgstr "Neues Password setzen" - -#: apps/accounts/templates/account/password_set.html:9 -msgid "" -"Please enter your new password twice so we can verify you typed it in " -"correctly." -msgstr "" -"Bitte geben sie Ihr neues Passwort doppelt ein damit wir sichergehen können, " -"dass Sie sich nicht vertippt haben." - -#: apps/accounts/templates/account/password_set.html:17 -msgid "Set password" -msgstr "Passwort neu setzen" - -#: apps/accounts/templates/account/signup.html:6 -#: apps/accounts/templates/socialaccount/signup.html:6 -msgid "Create a new account" -msgstr "Neues Benutzerkonto erstellen" - -#: apps/accounts/templates/account/signup.html:9 -#, python-format -msgid "" -"Already have an account? Then please sign in." -msgstr "" -"Falls Sie schon eine Benutzerkonto haben können Sie sich hier anmelden." - -#: apps/accounts/templates/account/signup.html:23 -#: apps/accounts/templates/socialaccount/signup.html:22 -msgid "Create account" -msgstr "Benutzerkonto erstellen" - -#: apps/accounts/templates/account/signup_closed.html:6 -msgid "Sign up closed" -msgstr "Anmeldung geschlossen" - -#: apps/accounts/templates/account/signup_closed.html:9 -msgid "We are sorry, but the sign up is currently closed." -msgstr "Es tut uns Leid, aber die Anmeldung ist zur Zeit leider geschlossen." - -#: apps/accounts/templates/account/verification_sent.html:7 -#: apps/accounts/templates/account/verified_email_required.html:6 -msgid "Verify your e-mail address" -msgstr "Betätigen Sie Ihre E-Mail Adresse" - -#: apps/accounts/templates/account/verification_sent.html:11 -msgid "" -"We have sent an e-mail to you for verification. Follow the link provided to " -"finalize the signup process. Please contact us if you do not receive it " -"within a few minutes." -msgstr "" -"Wir haben Ihnen eine E-Mail zur Bestätigung geschickt. Folgen sie dem Link " -"in der E-Mail um die Registrierung abzuschließen. Bitte kontaktieren Sie " -"uns, falls Sie die E-Mail nicht in den nächsten Minuten erhalten sollten." - -#: apps/accounts/templates/account/verified_email_required.html:11 -msgid "" -"This part of the site requires us to verify that you are who you claim to " -"be. For this purpose, we require that you verify ownership of your e-mail " -"address. " -msgstr "" -"Für diesen Bereich muss Ihre E-Mail Adresse bestätigt sein. Bitte bestätigen " -"Sie die Ihre E-Mail Adresse." - -#: apps/accounts/templates/account/verified_email_required.html:15 -msgid "" -"We have sent an e-mail to you for verification. Please click on the link " -"inside this e-mail. Please contact us if you do not receive it within a few " -"minutes." -msgstr "" -"Zur Bestätigung Ihrer E-Mail Adresse haben wir Ihnen eine E-Mail geschickt. " -"Bitte folgen sie den Anweisungen in dieser E-Mail. Bitte kontaktieren Sie " -"uns, falls Sie die E-Mail nicht in den nächsten Minuten erhalten sollten." - -#: apps/accounts/templates/account/verified_email_required.html:19 -#, python-format -msgid "" -"Note: you can still change your e-" -"mail address." -msgstr "" -"Hinweis: Sie können immer noch Ihre E-Mail Adresse ändern." - -#: apps/accounts/templates/profile/profile_update_closed.html:6 -msgid "Profile update" -msgstr "Profil bearbeiten" - -#: apps/accounts/templates/profile/profile_update_closed.html:9 -msgid "We are sorry, but you cannot update your profile here." -msgstr "Es tut uns Leid, aber sie können Ihr Profil hier nicht bearbeiten." - -#: apps/accounts/templates/profile/profile_update_form.html:6 -#: apps/accounts/templates/profile/profile_update_form.html:24 -#: apps/core/templates/core/base_navigation.html:98 -msgid "Update profile" -msgstr "Profil bearbeiten" - -#: apps/accounts/templates/profile/profile_update_form.html:12 -#, python-format -msgid "" -"Please enter your updated account information. You can change your password " -"using the password form and update your e-" -"mail using the e-mail form." -msgstr "" -"Bitte aktualisieren Sie die in Ihrem Benutzerkonto gespeicherten " -"Informationen. Sie könne Ihr Password hier " -"ändern und ihre E-Mail Adressen hier verwalten." - -#: apps/accounts/templates/profile/profile_update_form.html:25 -#: apps/core/templates/core/bootstrap_delete_form.html:8 -#: apps/core/templates/core/bootstrap_form.html:10 -msgid "Cancel" -msgstr "Abbrechen" - -#: apps/accounts/templates/socialaccount/authentication_error.html:9 -msgid "Social Network Login Failure" -msgstr "Fehler bei der Anmeldung zum externen Konto" - -#: apps/accounts/templates/socialaccount/authentication_error.html:12 -msgid "" -"An error occurred while attempting to login via your social network account." -msgstr "" -"Während des Anmeldeprozesses zu dem externen Konto ist ein Fehler " -"aufgetreten." - -#: apps/accounts/templates/socialaccount/connections.html:6 -#: apps/core/templates/core/base_navigation_socialaccount.html:4 -msgid "Account connections" -msgstr "Verknüpfungen mit externen Konten" - -#: apps/accounts/templates/socialaccount/connections.html:8 -msgid "Current connections" -msgstr "Derzeitige Verbindungen zu externen Konten" - -#: apps/accounts/templates/socialaccount/connections.html:13 -msgid "" -"You can sign in to your account using any of the following third party " -"accounts:" -msgstr "Sie können sich mit den folgenden externen Konten anmelden:" - -#: apps/accounts/templates/socialaccount/connections.html:39 -msgid "Remove selected account" -msgstr "Ausgewähltes Konto entfernen" - -#: apps/accounts/templates/socialaccount/connections.html:53 -msgid "" -"You currently have no social network accounts connected to this account." -msgstr "" -"Zur Zeit haben Sie keine externen Konten mit Ihrem Benutzerkonto verbunden." - -#: apps/accounts/templates/socialaccount/connections.html:58 -msgid "Add an additional account" -msgstr "Externes Konto hinzufügen" - -#: apps/accounts/templates/socialaccount/login_cancelled.html:9 -msgid "Login Cancelled" -msgstr "Anmeldung abgebrochen" - -#: apps/accounts/templates/socialaccount/login_cancelled.html:14 -#, python-format -msgid "" -"You decided to cancel logging in to our site using one of your existing " -"accounts. If this was a mistake, please proceed to sign in." -msgstr "" -"Sie haben sich entschieden, die Anmeldung mit einem externen Konto " -"abzubrechen. Falls dies versehentlich geschehen ist, könne Sie hier fortsetzen." - -#: apps/accounts/templates/socialaccount/signup.html:9 -#, python-format -msgid "" -"You are about to use your %(provider_name)s account to " -"login to %(site_name)s. As a final step, please complete the following form:" -msgstr "" -"Sie sind dabei sich mit ihrem %(provider_name)s Konto auf " -"%(site_name)s anzumelden. Es sind noch zusätzliche Angaben von Ihnen nötig:" - -#: apps/accounts/templatetags/accounts_tags.py:19 -#: apps/projects/templates/projects/projects.html:31 -msgid "Name" -msgstr "Name" - -#: apps/conditions/app_config.py:7 apps/conditions/models.py:80 -#: apps/conditions/templates/conditions/conditions.html:68 -#: apps/conditions/templates/conditions/conditions_export.html:6 -#: apps/conditions/views.py:57 -#: apps/core/templates/core/base_navigation.html:44 apps/domain/models.py:61 -#: apps/domain/templates/domain/domain_export.html:95 -#: apps/domain/templates/domain/domain_modal_form_conditions.html:11 -#: apps/domain/templates/domain/domain_modal_form_conditions.html:19 -#: apps/options/models.py:44 -#: apps/options/templates/options/options_export.html:39 -#: apps/options/templates/options/options_modal_form_conditions.html:11 -#: apps/options/templates/options/options_modal_form_conditions.html:19 -#: apps/tasks/models.py:69 apps/tasks/templates/tasks/tasks_export.html:35 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:11 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:19 -msgid "Conditions" -msgstr "Bedingungen" - -#: apps/conditions/models.py:38 apps/domain/models.py:21 -#: apps/options/models.py:19 apps/options/models.py:77 -#: apps/questions/models.py:27 apps/questions/models.py:90 -#: apps/questions/models.py:170 apps/questions/models.py:251 -#: apps/tasks/models.py:31 apps/views/models.py:22 -msgid "URI" -msgstr "URI" - -#: apps/conditions/models.py:39 apps/options/models.py:20 -msgid "The Uniform Resource Identifier of this option set (auto-generated)." -msgstr "" -"Der Uniform Resource Identifier dieses Optionssets (automatisch erstellt)." - -#: apps/conditions/models.py:43 apps/domain/models.py:26 -#: apps/options/models.py:24 apps/options/models.py:82 -#: apps/questions/models.py:32 apps/questions/models.py:95 -#: apps/questions/models.py:175 apps/questions/models.py:256 -#: apps/tasks/models.py:36 apps/views/models.py:27 -msgid "URI Prefix" -msgstr "URI Prefix" - -#: apps/conditions/models.py:44 -msgid "The prefix for the URI of this condition." -msgstr "Das Präfix für die URI dieser Bedingung." - -#: apps/conditions/models.py:48 -#: apps/conditions/templates/conditions/conditions_export.html:13 -#: apps/domain/models.py:31 apps/options/models.py:29 -#: apps/options/models.py:87 -#: apps/options/templates/options/options_export.html:13 -#: apps/questions/models.py:37 apps/questions/models.py:100 -#: apps/questions/models.py:180 apps/questions/models.py:261 -#: apps/tasks/models.py:41 apps/tasks/templates/tasks/tasks_export.html:13 -#: apps/views/models.py:32 apps/views/templates/views/views_export.html:13 -msgid "Key" -msgstr "Schlüssel" - -#: apps/conditions/models.py:49 -msgid "The internal identifier of this condition." -msgstr "Der interne Bezeichner dieser Bedingung." - -#: apps/conditions/models.py:53 -#: apps/conditions/templates/conditions/conditions_export.html:19 -#: apps/domain/models.py:36 apps/domain/templates/domain/domain_export.html:21 -#: apps/options/models.py:34 apps/options/models.py:97 -#: apps/options/templates/options/options_export.html:19 -#: apps/questions/models.py:42 apps/questions/models.py:110 -#: apps/questions/models.py:190 apps/questions/models.py:271 -#: apps/questions/templates/questions/catalog_tree.html:8 -#: apps/questions/templates/questions/catalog_tree.html:20 -#: apps/questions/templates/questions/catalog_tree.html:32 -#: apps/questions/templates/questions/catalog_tree.html:54 -#: apps/questions/templates/questions/catalog_tree.html:113 -#: apps/questions/templates/questions/catalog_tree.html:171 -#: apps/tasks/models.py:46 apps/tasks/templates/tasks/tasks_export.html:19 -#: apps/views/models.py:37 apps/views/templates/views/views_export.html:19 -msgid "Comment" -msgstr "Kommentar" - -#: apps/conditions/models.py:54 -msgid "Additional internal information about this condition." -msgstr "Zusätzliche interne Informationen über diese Bedingung." - -#: apps/conditions/models.py:58 -#: apps/conditions/templates/conditions/conditions_export.html:25 -msgid "Source" -msgstr "Quelle" - -#: apps/conditions/models.py:59 -msgid "The Attribute this condition is evaluating." -msgstr "Das Attribut das diese Bedingung auswertet." - -#: apps/conditions/models.py:63 -#: apps/conditions/templates/conditions/conditions_export.html:29 -msgid "Relation" -msgstr "Verknüpfung" - -#: apps/conditions/models.py:64 -msgid "The Relation this condition is using." -msgstr "Die von dieser Bedingung verwendete Verknüpfung." - -#: apps/conditions/models.py:68 -msgid "Target (Text)" -msgstr "Ziel (Text)" - -#: apps/conditions/models.py:69 -msgid "" -"If using a regular attibute, the text value this condition is checking " -"against." -msgstr "" -"Falls ein normales Attribut verwendet wird: Der Text gegen den diese " -"Bedingung ausgewertet wird." - -#: apps/conditions/models.py:73 -msgid "Target (Option)" -msgstr "Ziel (Option)" - -#: apps/conditions/models.py:74 -msgid "" -"If using an options attribute, the option this condition is checking against." -msgstr "" -"Falls ein Optionen-Attribut verwendet wird, die Option gegen die diese " -"Bedingung ausgewertet wird." - -#: apps/conditions/models.py:79 -#: apps/conditions/templates/conditions/conditions.html:84 -#: apps/conditions/templates/conditions/conditions_export.html:10 -#: apps/conditions/templates/conditions/conditions_modal_form_conditions.html:11 -msgid "Condition" -msgstr "Bedingung" - -#: apps/conditions/templates/conditions/conditions.html:23 -#: apps/domain/templates/domain/domain.html:23 -#: apps/options/templates/options/options.html:23 -#: apps/questions/templates/questions/catalogs_sidebar.html:9 -#: apps/tasks/templates/tasks/tasks.html:23 -#: apps/views/templates/views/views.html:29 -msgid "Filter" -msgstr "Filter" - -#: apps/conditions/templates/conditions/conditions.html:34 -#: apps/core/templates/core/base_navigation.html:39 apps/domain/models.py:149 -#: apps/domain/templates/domain/domain.html:34 -#: apps/domain/templates/domain/domain_export.html:48 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:11 -#: apps/options/app_config.py:7 apps/options/models.py:129 -#: apps/options/templates/options/options.html:34 -#: apps/options/templates/options/options.html:73 -#: apps/options/templates/options/options_export.html:25 -#: apps/options/views.py:54 -#: apps/projects/templates/projects/project_answers.html:28 -#: apps/projects/templates/projects/project_detail.html:8 -#: apps/projects/templates/projects/project_view.html:28 -#: apps/projects/templates/projects/projects.html:14 -#: apps/questions/templates/questions/catalog_tree.html:81 -#: apps/questions/templates/questions/catalog_tree.html:141 -#: apps/questions/templates/questions/catalogs_sidebar.html:20 -#: apps/tasks/templates/tasks/tasks.html:34 -#: apps/views/templates/views/views.html:40 -msgid "Options" -msgstr "Optionen" - -#: apps/conditions/templates/conditions/conditions.html:39 -msgid "Create new condition" -msgstr "Neue Bedingung erstellen" - -#: apps/conditions/templates/conditions/conditions.html:44 -#: apps/domain/templates/domain/domain.html:49 -#: apps/options/templates/options/options.html:49 -#: apps/projects/templates/projects/project_answers.html:36 -#: apps/projects/templates/projects/project_view.html:36 -#: apps/questions/templates/questions/catalogs_sidebar.html:63 -#: apps/tasks/templates/tasks/tasks.html:44 -#: apps/views/templates/views/views.html:50 -msgid "Export" -msgstr "Export" - -#: apps/conditions/templates/conditions/conditions.html:59 -#: apps/domain/templates/domain/domain.html:72 -#: apps/options/templates/options/options.html:64 -#: apps/questions/templates/questions/catalogs_sidebar.html:78 -#: apps/tasks/templates/tasks/tasks.html:59 -#: apps/views/templates/views/views.html:65 -msgid "XML" -msgstr "XML" - -#: apps/conditions/templates/conditions/conditions.html:76 -msgid "Update condition" -msgstr "Bedingung bearbeiten" - -#: apps/conditions/templates/conditions/conditions.html:80 -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:11 -msgid "Delete condition" -msgstr "Bedingung entfernen" - -#: apps/conditions/templates/conditions/conditions_export.html:34 -msgid "Target" -msgstr "Ziel" - -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:17 -#, python-format -msgid "" -"You are about to permanently delete the condition %(object)s." -msgstr "" -"Sie sind dabei die Bedingung %(object)s permanent zu entfernen." - -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:23 -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:23 -#: apps/domain/templates/domain/domain_modal_delete_entities.html:44 -#: apps/options/templates/options/options_modal_delete_options.html:23 -#: apps/options/templates/options/options_modal_delete_optionsets.html:36 -#: apps/projects/templates/projects/project_confirm_delete.html:14 -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:35 -#: apps/projects/templates/projects/snapshot_rollback.html:14 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:60 -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:22 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:36 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:53 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:47 -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:23 -#: apps/views/templates/views/views_modal_delete_views.html:23 -msgid "This action cannot be undone!" -msgstr "Diese Aktion kann nicht rückgängig gemacht werden!" - -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:29 -#: apps/conditions/templates/conditions/conditions_modal_form_conditions.html:92 -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:29 -#: apps/domain/templates/domain/domain_modal_delete_entities.html:50 -#: apps/domain/templates/domain/domain_modal_form_attributes.html:89 -#: apps/domain/templates/domain/domain_modal_form_conditions.html:30 -#: apps/domain/templates/domain/domain_modal_form_entities.html:67 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:30 -#: apps/domain/templates/domain/domain_modal_form_ranges.html:48 -#: apps/domain/templates/domain/domain_modal_form_verbosenames.html:56 -#: apps/options/templates/options/options_modal_delete_options.html:29 -#: apps/options/templates/options/options_modal_delete_optionsets.html:42 -#: apps/options/templates/options/options_modal_form_conditions.html:30 -#: apps/options/templates/options/options_modal_form_options.html:99 -#: apps/options/templates/options/options_modal_form_optionsets.html:56 -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:41 -#: apps/projects/templates/projects/project_questions_modal_form_valuesets.html:28 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:66 -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:28 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:42 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:59 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:53 -#: apps/questions/templates/questions/catalogs_modal_form_catalogs.html:76 -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:147 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:102 -#: apps/questions/templates/questions/catalogs_modal_form_sections.html:90 -#: apps/questions/templates/questions/catalogs_modal_form_subsections.html:90 -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:29 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:30 -#: apps/tasks/templates/tasks/tasks_modal_form_tasks.html:88 -#: apps/tasks/templates/tasks/tasks_modal_form_timeframes.html:66 -#: apps/views/templates/views/views_modal_delete_views.html:29 -#: apps/views/templates/views/views_modal_form_templates.html:29 -#: apps/views/templates/views/views_modal_form_views.html:88 -msgid "Close" -msgstr "Schließen" - -#: apps/conditions/templates/conditions/conditions_modal_delete_conditions.html:33 -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:33 -#: apps/domain/templates/domain/domain_modal_delete_entities.html:54 -#: apps/options/templates/options/options_modal_delete_options.html:33 -#: apps/options/templates/options/options_modal_delete_optionsets.html:46 -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:45 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:70 -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:32 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:46 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:63 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:57 -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:33 -#: apps/views/templates/views/views_modal_delete_views.html:33 -msgid "Delete" -msgstr "Entfernen" - -#: apps/conditions/templates/conditions/conditions_modal_form_conditions.html:96 -#: apps/domain/templates/domain/domain_modal_form_attributes.html:93 -#: apps/domain/templates/domain/domain_modal_form_conditions.html:34 -#: apps/domain/templates/domain/domain_modal_form_entities.html:71 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:34 -#: apps/domain/templates/domain/domain_modal_form_ranges.html:52 -#: apps/domain/templates/domain/domain_modal_form_verbosenames.html:60 -#: apps/options/templates/options/options_modal_form_conditions.html:34 -#: apps/options/templates/options/options_modal_form_options.html:103 -#: apps/options/templates/options/options_modal_form_optionsets.html:60 -#: apps/projects/templates/projects/project_questions.html:73 -#: apps/projects/templates/projects/project_questions_modal_form_valuesets.html:32 -#: apps/questions/templates/questions/catalogs_modal_form_catalogs.html:80 -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:152 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:107 -#: apps/questions/templates/questions/catalogs_modal_form_sections.html:94 -#: apps/questions/templates/questions/catalogs_modal_form_subsections.html:94 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:34 -#: apps/tasks/templates/tasks/tasks_modal_form_tasks.html:92 -#: apps/tasks/templates/tasks/tasks_modal_form_timeframes.html:70 -#: apps/views/templates/views/views_modal_form_templates.html:33 -#: apps/views/templates/views/views_modal_form_views.html:92 -msgid "Save" -msgstr "Speichern" - -#: apps/core/models.py:13 -msgid "created" -msgstr "erstellt" - -#: apps/core/models.py:14 -msgid "updated" -msgstr "zuletzt geändert" - -#: apps/core/templates/core/404.html:6 -msgid "Not found" -msgstr "Seite nicht gefunden" - -#: apps/core/templates/core/404.html:8 -msgid "The requested URL was not found on this server." -msgstr "Die gewünschte URL konnte nicht gefunden werden." - -#: apps/core/templates/core/base_footer.html:6 -msgid "Project RDMO" -msgstr "Projekt RDMO" - -#: apps/core/templates/core/base_footer.html:8 -msgid "" -"The project aims to develop a tool to support the planning of the research " -"data management. In addition, the tool will create a textual data management " -"plan." -msgstr "" -"Ziel des Projekts ist es, ein Werkzeug zur Verfügung zu stellen, das die " -"strukturierte Planung des Forschungsdatenmanagements unterstützt und " -"zusätzlich die textuelle Ausgabe eines Datenmanagementplans ermöglicht." - -#: apps/core/templates/core/base_footer.html:11 -msgid "The project is funded by the German Research Foundation." -msgstr "Das Projekt wird von der Deutschen Forschungsgemeinschaft gefördert." - -#: apps/core/templates/core/base_footer.html:15 -msgid "Contact" -msgstr "Kontakt" - -#: apps/core/templates/core/base_footer.html:22 -msgid "Open Source" -msgstr "Open Source" - -#: apps/core/templates/core/base_footer.html:24 -msgid "RDMO is published on:" -msgstr "RDMO ist veröffentlicht auf:" - -#: apps/core/templates/core/base_navigation.html:29 -msgid "Management" -msgstr "Management" - -#: apps/core/templates/core/base_navigation.html:34 -#: apps/domain/app_config.py:7 apps/domain/templates/domain/domain.html:81 -#: apps/domain/templates/domain/domain_export.html:6 apps/domain/views.py:81 -#: apps/domain/views.py:83 -msgid "Domain" -msgstr "Domäne" - -#: apps/core/templates/core/base_navigation.html:49 -#: apps/questions/app_config.py:7 apps/questions/models.py:401 -#: apps/questions/templates/questions/catalog_tree.html:60 -#: apps/questions/templates/questions/catalogs.html:31 -msgid "Questions" -msgstr "Fragen" - -#: apps/core/templates/core/base_navigation.html:54 -#: apps/projects/templates/projects/project_detail_tasks.html:3 -#: apps/tasks/app_config.py:7 apps/tasks/models.py:76 -#: apps/tasks/templates/tasks/tasks.html:68 -#: apps/tasks/templates/tasks/tasks_export.html:6 apps/tasks/views.py:56 -msgid "Tasks" -msgstr "Aufgaben" - -#: apps/core/templates/core/base_navigation.html:59 -#: apps/projects/templates/projects/project_detail_views.html:3 -#: apps/views/app_config.py:7 apps/views/models.py:69 -#: apps/views/templates/views/views.html:74 -#: apps/views/templates/views/views_export.html:6 apps/views/views.py:45 -msgid "Views" -msgstr "Ansichten" - -#: apps/core/templates/core/base_navigation.html:67 -msgid "Admin" -msgstr "Admin" - -#: apps/core/templates/core/base_navigation.html:84 -msgid "Language" -msgstr "Sprache" - -#: apps/core/templates/core/base_navigation_account.html:4 -msgid "Update email" -msgstr "E-Mail bearbeiten" - -#: apps/core/templates/core/home.html:42 -msgid "" -"A tool to support the planning, implementation, and organisation of research " -"data management." -msgstr "" -"Ein Werkzeug zur Planung, Umsetzung und der Verwaltung des " -"Forschungsdatenmanagements." - -#: apps/core/utils.py:111 -msgid "This format is not supported." -msgstr "Dieses Format wird nicht unterstützt." - -#: apps/core/validators.py:24 -msgid "This field may not be blank." -msgstr "Dieses Feld darf nicht leer sein." - -#: apps/core/validators.py:40 -#, python-format -msgid "%(model)s with this key already exists." -msgstr "%(model)s mit diesem Schlüssel existiert bereits." - -#: apps/core/validators.py:81 -#, python-format -msgid "" -"%(model)s with the path \"%(path)s\" already exists. Please adjust the the " -"Key." -msgstr "" -"%(model)s mit dem Pfad \"%(path)s\" existiert bereits. Bitte passen Sie den " -"Schlüssel an." - -#: apps/domain/models.py:22 -msgid "" -"The Uniform Resource Identifier of this attribute/entity set (auto-" -"generated)." -msgstr "" -"Der Uniform Resource Identifier dieses Attributs/dieser Entität (automatisch " -"erstellt)." - -#: apps/domain/models.py:27 -msgid "The prefix for the URI of this attribute/entity." -msgstr "Das Präfix für die URI dieses Attributs/dieser Entität." - -#: apps/domain/models.py:32 -msgid "The internal identifier of this attribute/entity." -msgstr "Das interne Bezeichner für dieses Attributs/diese Entität." - -#: apps/domain/models.py:37 -msgid "Additional information about this attribute/entity." -msgstr "Zusätzliche Informationen über dieses Attribut/diese Entität." - -#: apps/domain/models.py:41 -msgid "Parent entity" -msgstr "Übergeordnete Entität" - -#: apps/domain/models.py:42 -msgid "Parent entity in the domain model." -msgstr "Übergeordnete Entität im Domänenmodell." - -#: apps/domain/models.py:46 -msgid "Parent collection" -msgstr "Übergeordnete Sammlung" - -#: apps/domain/models.py:47 -msgid "Next collection entity upwards in the domain model (auto-generated)." -msgstr "" -"Nächste Sammlungs-Entität aufwärts im Domänenmodell (automatisch generiert)" - -#: apps/domain/models.py:51 -msgid "is collection" -msgstr "Ist eine Sammlung" - -#: apps/domain/models.py:52 -msgid "Designates whether this attribute/entity is a collection." -msgstr "Legt fest, ob dieses Objekt eine Sammlung ist." - -#: apps/domain/models.py:56 -msgid "is attribute" -msgstr "ist ein Attribut" - -#: apps/domain/models.py:57 -msgid "" -"Designates whether this attribute/entity is an attribute (auto-generated)." -msgstr "Legt fest, ob dieses Objekt ein Attribut ist." - -#: apps/domain/models.py:62 -msgid "List of conditions evaluated for this attribute/entity." -msgstr "" -"Liste der Bedingungen die für dieses Attribut/ diese Entität ausgewertet " -"werden." - -#: apps/domain/models.py:66 apps/domain/templates/domain/domain_export.html:15 -#: apps/options/models.py:92 apps/questions/models.py:266 -msgid "Path" -msgstr "Pfad" - -#: apps/domain/models.py:67 -msgid "The path part of the URI of this attribute/entity (auto-generated)." -msgstr "" -"Der Pfad-Teil der URI für dieses Attribut/diese Entität (automatisch " -"erstellt)." - -#: apps/domain/models.py:72 apps/domain/models.py:194 -#: apps/questions/models.py:276 -msgid "Attribute entity" -msgstr "Attribut-Entitäten" - -#: apps/domain/models.py:73 -msgid "Attribute entities" -msgstr "Attribut-Entität" - -#: apps/domain/models.py:143 apps/projects/models.py:202 -#: apps/questions/templates/questions/catalog_tree.html:67 -#: apps/questions/templates/questions/catalog_tree.html:127 -#: apps/tasks/templates/tasks/tasks_export.html:29 -msgid "Text" -msgstr "Text" - -#: apps/domain/models.py:144 -msgid "URL" -msgstr "URL" - -#: apps/domain/models.py:145 -msgid "Integer" -msgstr "Ganzzahl" - -#: apps/domain/models.py:146 -msgid "Float" -msgstr "Kommazahl" - -#: apps/domain/models.py:147 -msgid "Boolean" -msgstr "Boolsche Variable" - -#: apps/domain/models.py:148 -msgid "Datetime" -msgstr "Datum und Zeit" - -#: apps/domain/models.py:154 -#: apps/domain/templates/domain/domain_export.html:34 -msgid "Value type" -msgstr "Wert-Typ" - -#: apps/domain/models.py:155 -msgid "Type of value for this attribute." -msgstr "Art von Wert für dieses Attribut." - -#: apps/domain/models.py:159 -#: apps/domain/templates/domain/domain_export.html:40 -msgid "Unit" -msgstr "Einheit" - -#: apps/domain/models.py:160 -msgid "Unit for this attribute." -msgstr "Maßeinheit dieses Attributes." - -#: apps/domain/models.py:164 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:19 -#: apps/options/models.py:51 -#: apps/options/templates/options/options_export.html:6 -msgid "Option sets" -msgstr "Optionensets" - -#: apps/domain/models.py:165 -msgid "Option sets for this attribute." -msgstr "Optionenset für dieses Attribut." - -#: apps/domain/models.py:169 apps/domain/models.py:240 -#: apps/domain/templates/domain/domain.html:97 -#: apps/domain/templates/domain/domain_export.html:11 -#: apps/domain/templates/domain/domain_modal_form_attributes.html:11 -#: apps/domain/views.py:73 apps/projects/models.py:187 -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:83 -msgid "Attribute" -msgstr "Attribut" - -#: apps/domain/models.py:170 -msgid "Attributes" -msgstr "Attribute" - -#: apps/domain/models.py:195 -msgid "Attribute/entity this verbose name belongs to." -msgstr "Attribut/Entität zu dem dieser Anzeigenname gehört." - -#: apps/domain/models.py:199 -msgid "Name (en)" -msgstr "Name (en)" - -#: apps/domain/models.py:200 -msgid "English name displayed for this attribute/entity (e.g. project)." -msgstr "Englischer Name der für dieses Attribut/diese Entität angezeigt wird." - -#: apps/domain/models.py:204 -msgid "Name (de)" -msgstr "Name (de)" - -#: apps/domain/models.py:205 -msgid "German name displayed for this attribute/entity (e.g. Projekt)." -msgstr "Deutscher Name der für dieses Attribut/diese Entität angezeigt wird." - -#: apps/domain/models.py:209 -msgid "Plural name (en)" -msgstr "Name (Plural, en)" - -#: apps/domain/models.py:210 -msgid "" -"English plural name displayed for this attribute/entity (e.g. projects)." -msgstr "" -"Englischer Name (Plural) der für dieses Attribut/diese Entität angezeigt " -"wird." - -#: apps/domain/models.py:214 -msgid "Plural name (de)" -msgstr "Name (Plural, de)" - -#: apps/domain/models.py:215 -msgid "German plural name displayed for this attribute/entity (e.g. Projekte)." -msgstr "" -"Deutscher Name (Plural) der für dieses Attribut/diese Entität angezeigt wird." - -#: apps/domain/models.py:219 -#: apps/domain/templates/domain/domain_export.html:82 -#: apps/domain/templates/domain/domain_export.html:86 -#: apps/domain/templates/domain/domain_modal_form_verbosenames.html:11 -msgid "Verbose name" -msgstr "Anzeigename" - -#: apps/domain/models.py:220 -msgid "Verbose names" -msgstr "Anzeigename" - -#: apps/domain/models.py:241 -msgid "Attribute this verbose name belongs to." -msgstr "Attribute zu dem dieser Anzeigenname gehört." - -#: apps/domain/models.py:244 -#: apps/domain/templates/domain/domain_export.html:70 -#: apps/questions/templates/questions/catalog_tree.html:103 -#: apps/questions/templates/questions/catalog_tree.html:161 -msgid "Minimum" -msgstr "Minimum" - -#: apps/domain/models.py:245 -msgid "Minimal value for this attribute." -msgstr "Minimaler Wert für dieses Attribut." - -#: apps/domain/models.py:248 -#: apps/domain/templates/domain/domain_export.html:71 -#: apps/questions/templates/questions/catalog_tree.html:104 -#: apps/questions/templates/questions/catalog_tree.html:162 -msgid "Maximum" -msgstr "Maximum" - -#: apps/domain/models.py:249 -msgid "Maximum value for this attribute." -msgstr "Maximaler Wert für dieses Attribut." - -#: apps/domain/models.py:252 -#: apps/domain/templates/domain/domain_export.html:72 -#: apps/questions/templates/questions/catalog_tree.html:105 -#: apps/questions/templates/questions/catalog_tree.html:163 -msgid "Step" -msgstr "Schrittgröße" - -#: apps/domain/models.py:253 -msgid "Step in which this attribute can be incremented/decremented." -msgstr "Schritte in denen dieses Attribut erhöht oder verringert werden kann." - -#: apps/domain/models.py:258 -#: apps/domain/templates/domain/domain_export.html:66 -#: apps/domain/templates/domain/domain_modal_form_ranges.html:11 -#: apps/questions/templates/questions/catalog_tree.html:99 -#: apps/questions/templates/questions/catalog_tree.html:157 -msgid "Range" -msgstr "Bereich" - -#: apps/domain/models.py:259 -msgid "Ranges" -msgstr "Bereiche" - -#: apps/domain/templates/domain/domain.html:39 -msgid "Create new entity" -msgstr "Neue Entität erstellen" - -#: apps/domain/templates/domain/domain.html:44 -msgid "Create new attribute" -msgstr "Neues Attribut erstellen" - -#: apps/domain/templates/domain/domain.html:64 -msgid "CSV" -msgstr "CSV" - -#: apps/domain/templates/domain/domain.html:96 -#: apps/domain/templates/domain/domain_export.html:11 -#: apps/domain/templates/domain/domain_modal_form_entities.html:11 -#: apps/domain/views.py:73 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:70 -msgid "Entity" -msgstr "Entität" - -#: apps/domain/templates/domain/domain_export.html:27 -msgid "Collection" -msgstr "Sammlung" - -#: apps/domain/templates/domain/domain_export.html:28 -#: apps/projects/models.py:247 -msgid "yes" -msgstr "Ja" - -#: apps/domain/templates/domain/domain_export.html:28 -#: apps/projects/models.py:249 -msgid "no" -msgstr "Nein" - -#: apps/domain/templates/domain/domain_export.html:87 -msgid "Verbose name plural" -msgstr "Anzeigename, plural" - -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:11 -#: apps/domain/templates/domain/domain_modal_delete_entities.html:15 -#: apps/domain/templates/domain/domain_options.html:75 -msgid "Delete attribute" -msgstr "Attribut entfernen" - -#: apps/domain/templates/domain/domain_modal_delete_attributes.html:17 -#, python-format -msgid "" -"You are about to permanently delete the attribute %(object)s." -msgstr "" -"Sie sind dabei das Attribut %(object)s permanent zu entfernen." - -#: apps/domain/templates/domain/domain_modal_delete_entities.html:12 -#: apps/domain/templates/domain/domain_options.html:41 -msgid "Delete entity" -msgstr "Entität entfernen" - -#: apps/domain/templates/domain/domain_modal_delete_entities.html:22 -#, python-format -msgid "You are about to permanently delete the entity %(object)s." -msgstr "" -"Sie sind dabei die Entität %(object)s permanent zu entfernen." - -#: apps/domain/templates/domain/domain_modal_delete_entities.html:28 -msgid "This will also delete the following attributes:" -msgstr "Es werden auch die folgenden Attribute entfernt:" - -#: apps/domain/templates/domain/domain_modal_form_attributes.html:22 -msgid "The prefix for the URI of this attribute." -msgstr "Das Präfix für die URI dieses Attributs." - -#: apps/domain/templates/domain/domain_modal_form_attributes.html:31 -msgid "The internal identifier of this attribute." -msgstr "Der interne Bezeichner diese Attributs." - -#: apps/domain/templates/domain/domain_modal_form_attributes.html:40 -msgid "Additional internal information about this attribute." -msgstr "Zusätzliche interne Informationen über dieses Attribut." - -#: apps/domain/templates/domain/domain_modal_form_attributes.html:81 -msgid "" -"Designates whether this attribute can have several values (for checkboxes or " -"multiple answers)." -msgstr "" -"Legt fest, ob dieses Objekt mehrere Werte haben kann (für Ankreuzkästchen " -"oder mehrere Antworten)." - -#: apps/domain/templates/domain/domain_modal_form_conditions.html:24 -#: apps/domain/templates/domain/domain_modal_form_optionsets.html:24 -#: apps/options/templates/options/options_modal_form_conditions.html:24 -#: apps/tasks/templates/tasks/tasks_modal_form_conditions.html:24 -msgid "Hold down Control, or Command on a Mac, to select more than one." -msgstr "" -"Halten Sie die Strg-Taste (⌘ für Mac) während des Klickens gedrückt, um " -"mehrere Einträge auszuwählen." - -#: apps/domain/templates/domain/domain_modal_form_entities.html:22 -msgid "The prefix for the URI of this entity." -msgstr "Das Präfix für die URI die dieser Entität." - -#: apps/domain/templates/domain/domain_modal_form_entities.html:31 -msgid "The internal identifier of this entity." -msgstr "Der interne Bezeichner für diese Entität." - -#: apps/domain/templates/domain/domain_modal_form_entities.html:40 -msgid "Additional internal information about this entity." -msgstr "Zusätzliche interne Informationen über diese Entität." - -#: apps/domain/templates/domain/domain_modal_form_entities.html:59 -msgid "Designates whether this entity can have several sets of values." -msgstr "Legt fest, ob dieses Objekt mehrere Sets von Werten haben kann." - -#: apps/domain/templates/domain/domain_options.html:8 -msgid "Add attribute or entity" -msgstr "Attribut oder Entität hinzufügen" - -#: apps/domain/templates/domain/domain_options.html:14 -msgid "Add attribute" -msgstr "Attribut hinzufügen" - -#: apps/domain/templates/domain/domain_options.html:19 -msgid "Add entity" -msgstr "Entität hinzufügen" - -#: apps/domain/templates/domain/domain_options.html:26 -msgid "Update entity" -msgstr "Entität bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:31 -#: apps/domain/templates/domain/domain_options.html:65 -msgid "Update verbose name" -msgstr "Anzeigename bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:36 -#: apps/domain/templates/domain/domain_options.html:70 -#: apps/options/templates/options/options.html:89 -#: apps/tasks/templates/tasks/tasks.html:81 -msgid "Update conditions" -msgstr "Bedingung bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:50 -msgid "Update attribute" -msgstr "Attribut bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:55 -msgid "Update range" -msgstr "Bereich bearbeiten" - -#: apps/domain/templates/domain/domain_options.html:60 -msgid "Update options" -msgstr "Optionen bearbeiten" - -#: apps/domain/views.py:74 -msgid "collection" -msgstr "Sammlung" - -#: apps/options/models.py:25 -msgid "The prefix for the URI of this option set." -msgstr "Das Präfix für die URI dieses Optionenset." - -#: apps/options/models.py:30 -msgid "The internal identifier of this option set." -msgstr "Der interne Bezeichner für dieses Optionenset." - -#: apps/options/models.py:35 -msgid "Additional internal information about this option set." -msgstr "Zusätzliche interne Informationen über dieses Optionenset." - -#: apps/options/models.py:39 apps/options/models.py:107 -#: apps/questions/models.py:47 apps/questions/models.py:120 -#: apps/questions/models.py:200 apps/questions/models.py:286 -msgid "Order" -msgstr "Reihenfolge" - -#: apps/options/models.py:40 -msgid "The position of this option set in lists." -msgstr "Die Position von diesem Optionenset in Listen." - -#: apps/options/models.py:45 -msgid "The list of conditions evaluated for this option set." -msgstr "" -"Die Liste der Bedingungen die für dieses Optionenset ausgewertet werden." - -#: apps/options/models.py:50 apps/options/models.py:102 -#: apps/options/templates/options/options.html:97 -#: apps/options/templates/options/options_export.html:10 -#: apps/options/templates/options/options_modal_form_optionsets.html:11 -msgid "Option set" -msgstr "Optionenset" - -#: apps/options/models.py:78 -msgid "The Uniform Resource Identifier of this option (auto-generated)." -msgstr "Der Uniform Resource Identifier dieser Option (automatisch erstellt)." - -#: apps/options/models.py:83 -msgid "The prefix for the URI of this option." -msgstr "Das Präfix für die URI dieser Option." - -#: apps/options/models.py:88 -msgid "The internal identifier of this option." -msgstr "Der interne Bezeichner für diese Option." - -#: apps/options/models.py:93 -msgid "The path part of the URI for this option (auto-generated)." -msgstr "Der Pfad-Teil der URI für diese Option (automatisch erstellt)." - -#: apps/options/models.py:98 -msgid "Additional internal information about this option." -msgstr "Zusätzliche interne Informationen über diese Option." - -#: apps/options/models.py:103 -msgid "The option set this option belongs to." -msgstr "Das Optionenset zu dem diese Option gehört." - -#: apps/options/models.py:108 apps/questions/models.py:121 -#: apps/questions/models.py:201 -msgid "Position in lists." -msgstr "Position in Listen." - -#: apps/options/models.py:112 apps/questions/models.py:386 -#: apps/tasks/models.py:60 -msgid "Text (en)" -msgstr "Text (en)" - -#: apps/options/models.py:113 -msgid "The English text displayed for this option." -msgstr "Der englische Text für diese Option." - -#: apps/options/models.py:117 apps/questions/models.py:390 -#: apps/tasks/models.py:64 -msgid "Text (de)" -msgstr "Text (de)" - -#: apps/options/models.py:118 -msgid "The German text displayed for this option." -msgstr "Der deutsche Text für diese Option." - -#: apps/options/models.py:122 -msgid "Additional input" -msgstr "Zusätzliche Eingabe" - -#: apps/options/models.py:123 -msgid "Designates whether an additional input is possible for this option." -msgstr "Legt fest, ob eine zusätzliche Eingabe für diese Option möglich ist." - -#: apps/options/models.py:128 apps/options/templates/options/options.html:113 -#: apps/options/templates/options/options_modal_delete_optionsets.html:30 -#: apps/options/templates/options/options_modal_form_options.html:11 -#: apps/projects/models.py:207 -msgid "Option" -msgstr "Option" - -#: apps/options/templates/options/options.html:39 -msgid "Create new option set" -msgstr "Neues Optionenset erstellen" - -#: apps/options/templates/options/options.html:44 -msgid "Create new option" -msgstr "Neue Option erstellen" - -#: apps/options/templates/options/options.html:81 -msgid "Add option" -msgstr "Option hinzufügen" - -#: apps/options/templates/options/options.html:85 -msgid "Update option set" -msgstr "Optionenset bearbeiten" - -#: apps/options/templates/options/options.html:93 -#: apps/options/templates/options/options_modal_delete_optionsets.html:11 -msgid "Delete option set" -msgstr "Optionenset entfernen" - -#: apps/options/templates/options/options.html:105 -msgid "Update option" -msgstr "Option bearbeiten" - -#: apps/options/templates/options/options.html:109 -#: apps/options/templates/options/options_modal_delete_options.html:11 -msgid "Delete option" -msgstr "Option entfernen" - -#: apps/options/templates/options/options_modal_delete_options.html:17 -#, python-format -msgid "You are about to permanently delete the option %(object)s." -msgstr "" -"Sie sind dabei die Option %(object)s permanent zu entfernen." - -#: apps/options/templates/options/options_modal_delete_optionsets.html:17 -#, python-format -msgid "" -"You are about to permanently delete the option set %(object)s." -msgstr "" -"Sie sind dabei das Optionenset %(object)s permanent zu " -"entfernen." - -#: apps/options/templates/options/options_modal_delete_optionsets.html:23 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:24 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:23 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:23 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:23 -msgid "Important! This will also delete the following items:" -msgstr "" -"Important! Es werden auch die folgenden Objekte entfernt:" - -#: apps/projects/app_config.py:7 apps/projects/models.py:46 -msgid "Projects" -msgstr "Projekte" - -#: apps/projects/forms.py:58 -msgid "Username or email" -msgstr "Benutzername oder E-Mail" - -#: apps/projects/forms.py:59 apps/projects/models.py:24 -#: apps/projects/models.py:92 -#: apps/projects/templates/projects/project_detail_memberships.html:12 -msgid "User" -msgstr "Benutzer" - -#: apps/projects/forms.py:60 -msgid "The username or email for the user of this membership." -msgstr "Der Benutzername oder die Email für diese Mitgliedschaft." - -#: apps/projects/forms.py:69 -msgid "Please enter a valid username or email." -msgstr "Bitte geben Sie einen gültigen Benutzernamen oder Email ein." - -#: apps/projects/forms.py:72 -msgid "The user is already a member of the project." -msgstr "Der Benutzer ist bereits ein Mitglied dieses Projektes." - -#: apps/projects/models.py:25 -msgid "The list of users for this project." -msgstr "Die Liste der Benutzer für dieses Projekt." - -#: apps/projects/models.py:29 apps/projects/models.py:123 -#: apps/projects/templates/projects/project_questions_modal_form_valuesets.html:19 -#: apps/tasks/templates/tasks/tasks_export.html:25 -#: apps/views/templates/views/views_export.html:25 -msgid "Title" -msgstr "Titel" - -#: apps/projects/models.py:30 -msgid "The title for this project." -msgstr "Der Titel für dieses Projekt." - -#: apps/projects/models.py:34 apps/projects/models.py:128 -#: apps/projects/templates/projects/project_detail.html:78 -#: apps/projects/templates/projects/project_detail_snapshots.html:14 -#: apps/projects/templates/projects/project_detail_tasks.html:10 -#: apps/projects/templates/projects/project_detail_views.html:10 -msgid "Description" -msgstr "Beschreibung" - -#: apps/projects/models.py:35 -msgid "A description for this project (optional)." -msgstr "Ein Beschreibung für dieses Projekt (optional)." - -#: apps/projects/models.py:39 apps/questions/models.py:63 -#: apps/questions/models.py:115 -#: apps/questions/templates/questions/catalog_tree.html:3 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:11 -#: apps/questions/templates/questions/catalogs_modal_form_catalogs.html:11 -#: apps/questions/templates/questions/catalogs_sidebar.html:3 -msgid "Catalog" -msgstr "Katalog" - -#: apps/projects/models.py:40 -msgid "The catalog which will be used for this project." -msgstr "Der Fragenkatalog der für dieses Projekt verwendet wird." - -#: apps/projects/models.py:45 apps/projects/models.py:87 -#: apps/projects/models.py:118 apps/projects/models.py:177 -msgid "Project" -msgstr "Projekt" - -#: apps/projects/models.py:79 -msgid "Owner" -msgstr "Besitzer" - -#: apps/projects/models.py:80 -msgid "Manager" -msgstr "Manager" - -#: apps/projects/models.py:81 -msgid "Author" -msgstr "Autor" - -#: apps/projects/models.py:82 -msgid "Guest" -msgstr "Gast" - -#: apps/projects/models.py:88 -msgid "The project for this membership." -msgstr "Das Projekt zu dem diese Mitgliedschaft gehört." - -#: apps/projects/models.py:93 -msgid "The user for this membership." -msgstr "Der Benutzer für diese Mitgliedschaft." - -#: apps/projects/models.py:97 -#: apps/projects/templates/projects/project_detail_memberships.html:14 -#: apps/projects/templates/projects/projects.html:32 -msgid "Role" -msgstr "Rolle" - -#: apps/projects/models.py:98 -msgid "The role for this membership." -msgstr "Die Rolle für diese Mitgliedschaft." - -#: apps/projects/models.py:103 -msgid "Membership" -msgstr "Mitgliedschaft" - -#: apps/projects/models.py:104 -msgid "Memberships" -msgstr "Mitgliedschaften" - -#: apps/projects/models.py:119 -msgid "The project this snapshot belongs to." -msgstr "Das Projekt zu dem dieser Snapshot gehört." - -#: apps/projects/models.py:124 -msgid "The title for this snapshot." -msgstr "Der Titel für diesen Snapshot." - -#: apps/projects/models.py:129 -msgid "A description for this snapshot (optional)." -msgstr "Ein Beschreibung für diesen Snapshot (optional)." - -#: apps/projects/models.py:134 apps/projects/models.py:182 -#: apps/projects/templates/projects/project_detail_snapshots.html:13 -msgid "Snapshot" -msgstr "Snapshot" - -#: apps/projects/models.py:135 -#: apps/projects/templates/projects/project_answers.html:9 -#: apps/projects/templates/projects/project_detail_snapshots.html:7 -#: apps/projects/templates/projects/project_view.html:9 -msgid "Snapshots" -msgstr "Snapshots" - -#: apps/projects/models.py:178 -msgid "The project this value belongs to." -msgstr "Das Projekt zu dem dieser Wert gehört." - -#: apps/projects/models.py:183 -msgid "The snapshot this value belongs to." -msgstr "Der Snapshot zu dem dieser Wert gehört." - -#: apps/projects/models.py:188 -msgid "The attribute this value belongs to." -msgstr "Das Attribut zu dem dieser Wert gehört." - -#: apps/projects/models.py:192 -msgid "Set index" -msgstr "Set-Index" - -#: apps/projects/models.py:193 -msgid "" -"The position of this value in an entity collection (i.e. in the question set)" -msgstr "" -"Die Position von diesem Wert in einer Entität (einem Fragenset) in Listen." - -#: apps/projects/models.py:197 -msgid "Collection index" -msgstr "Sammlungs-Index" - -#: apps/projects/models.py:198 -msgid "The position of this value in an attribute collection." -msgstr "Die Position von diesem Wert in einem Sammlungs-Attribut." - -#: apps/projects/models.py:203 -msgid "The string stored for this value." -msgstr "Die Zeichenkette die für diesen Wert gespeichert wird." - -#: apps/projects/models.py:208 -msgid "The option stored for this value." -msgstr "Die Option die für diesen Wert gespeichert wird." - -#: apps/projects/models.py:212 -msgid "Value" -msgstr "Wert" - -#: apps/projects/models.py:213 -msgid "Values" -msgstr "Werte" - -#: apps/projects/models.py:224 -msgid "current" -msgstr "aktuell" - -#: apps/projects/serializers.py:118 -msgid "item" -msgstr "Eintrag" - -#: apps/projects/serializers.py:119 -msgid "items" -msgstr "Einträge" - -#: apps/projects/serializers.py:151 -msgid "set" -msgstr "Set" - -#: apps/projects/serializers.py:152 -msgid "sets" -msgstr "Sets" - -#: apps/projects/templates/projects/membership_confirm_delete.html:8 -#: apps/projects/templates/projects/membership_confirm_delete.html:17 -#: apps/projects/templates/projects/project_detail_memberships.html:36 -msgid "Delete membership" -msgstr "Mitgliedschaft entfernen" - -#: apps/projects/templates/projects/membership_confirm_delete.html:12 -#, python-format -msgid "" -"You are about to remove the user %(user)s from the project " -"%(title)s." -msgstr "" -"Sie sind dabei den User %(user)s aud dem Projekt " -"%(title)s zu entfernen." - -#: apps/projects/templates/projects/membership_form.html:9 -#: apps/projects/templates/projects/membership_form.html:11 -#: apps/projects/templates/projects/project_detail_memberships.html:31 -msgid "Update membership" -msgstr "Mitgliedschaft bearbeiten" - -#: apps/projects/templates/projects/membership_form.html:15 -msgid "Add member to project" -msgstr "Mitglied zu Projekt hinzufügen" - -#: apps/projects/templates/projects/membership_form.html:17 -#: apps/projects/templates/projects/project_detail.html:52 -msgid "Add member" -msgstr "Mitglied hinzufügen" - -#: apps/projects/templates/projects/project_answers.html:14 -#: apps/projects/templates/projects/project_view.html:14 -msgid "Current" -msgstr "Aktuell" - -#: apps/projects/templates/projects/project_answers.html:32 -#: apps/projects/templates/projects/project_questions_done.html:13 -#: apps/projects/templates/projects/project_questions_sidebar.html:34 -#: apps/projects/templates/projects/project_view.html:32 -msgid "Back to project overview" -msgstr "Zurück zum Projekt" - -#: apps/projects/templates/projects/project_answers.html:58 -#: apps/projects/templates/projects/project_answers_export.html:6 -#, python-format -msgid "Answers for %(title)s" -msgstr "Antworten für %(title)s" - -#: apps/projects/templates/projects/project_answers.html:61 -msgid "" -"In the following, we have summarized the information about the project as " -"given by you and your collaborators." -msgstr "" -"Im Folgenden haben wir die von Ihnen eingegebenen Informationen über das " -"Projekt noch einmal zusammengefasst." - -#: apps/projects/templates/projects/project_confirm_delete.html:7 -#: apps/projects/templates/projects/project_confirm_delete.html:17 -#: apps/projects/templates/projects/project_detail.html:21 -msgid "Delete project" -msgstr "Projekt entfernen" - -#: apps/projects/templates/projects/project_confirm_delete.html:10 -#, python-format -msgid "" -"You are about to permanently delete the project %(object)s." -msgstr "" -"Sie sind dabei das Projekt %(object)s permanent zu entfernen." - -#: apps/projects/templates/projects/project_detail.html:16 -msgid "Update project information" -msgstr "Projektinformationen bearbeiten" - -#: apps/projects/templates/projects/project_detail.html:29 -msgid "Answer questions" -msgstr "Fragen beantworten" - -#: apps/projects/templates/projects/project_detail.html:35 -#: apps/projects/templates/projects/project_detail_snapshots.html:32 -#: apps/projects/templates/projects/project_questions_done.html:9 -msgid "View answers" -msgstr "Antworten anzeigen" - -#: apps/projects/templates/projects/project_detail.html:43 -#: apps/projects/templates/projects/snapshot_form.html:17 -msgid "Create snapshot" -msgstr "Snapshot erstellen" - -#: apps/projects/templates/projects/project_detail.html:61 -msgid "Export project as XML" -msgstr "Projekt als XML exportieren" - -#: apps/projects/templates/projects/project_detail.html:68 -msgid "Back to projects overview" -msgstr "Zurück zu den Projekten" - -#: apps/projects/templates/projects/project_detail.html:86 -msgid "No description available." -msgstr "Keine Beschreibung vorhanden." - -#: apps/projects/templates/projects/project_detail_memberships.html:8 -msgid "Members" -msgstr "Mitglieder" - -#: apps/projects/templates/projects/project_detail_memberships.html:13 -msgid "E-Mail" -msgstr "E-Mail" - -#: apps/projects/templates/projects/project_detail_snapshots.html:15 -#: apps/projects/templates/projects/projects.html:33 -msgid "Created" -msgstr "Erstellt" - -#: apps/projects/templates/projects/project_detail_snapshots.html:36 -#: apps/projects/templates/projects/snapshot_form.html:9 -#: apps/projects/templates/projects/snapshot_form.html:11 -msgid "Update snapshot" -msgstr "Snapshot bearbeiten" - -#: apps/projects/templates/projects/project_detail_snapshots.html:41 -#: apps/projects/templates/projects/snapshot_rollback.html:7 -msgid "Rollback to snapshot" -msgstr "Auf Snapshot zurücksetzen" - -#: apps/projects/templates/projects/project_detail_snapshots.html:52 -msgid "No snapshots found." -msgstr "Keine Snapshots gefunden." - -#: apps/projects/templates/projects/project_detail_tasks.html:9 -#: apps/tasks/models.py:75 apps/tasks/models.py:110 -#: apps/tasks/templates/tasks/tasks.html:93 -#: apps/tasks/templates/tasks/tasks_export.html:10 -#: apps/tasks/templates/tasks/tasks_modal_form_tasks.html:11 -#: apps/tasks/templates/tasks/tasks_modal_form_timeframes.html:11 -msgid "Task" -msgstr "Aufgabe" - -#: apps/projects/templates/projects/project_detail_tasks.html:11 -#: apps/tasks/models.py:136 -msgid "Time frame" -msgstr "Zeitraum" - -#: apps/projects/templates/projects/project_detail_tasks.html:34 -msgid "No active tasks found." -msgstr "Keine aktiven Aufgaben gefunden." - -#: apps/projects/templates/projects/project_detail_views.html:9 -#: apps/views/models.py:68 apps/views/templates/views/views.html:96 -#: apps/views/templates/views/views_export.html:10 -#: apps/views/templates/views/views_modal_form_views.html:11 -msgid "View" -msgstr "Ansicht" - -#: apps/projects/templates/projects/project_detail_views.html:22 -msgid "Display view" -msgstr "Ansicht anzeigen" - -#: apps/projects/templates/projects/project_detail_views.html:32 -msgid "No views found." -msgstr "Keine Ansichten gefunden." - -#: apps/projects/templates/projects/project_form.html:9 -#: apps/projects/templates/projects/project_form.html:11 -msgid "Update project" -msgstr "Projekt bearbeiten" - -#: apps/projects/templates/projects/project_form.html:15 -#: apps/projects/templates/projects/projects.html:18 -msgid "Create new project" -msgstr "Neues Projekt erstellen" - -#: apps/projects/templates/projects/project_form.html:17 -msgid "Create project" -msgstr "Neues Projekt erstellen" - -#: apps/projects/templates/projects/project_questions.html:44 -msgid "Questionnaire for project {$ service.project.title $}" -msgstr "Fragebogen für Projekt {$ service.project.title $}" - -#: apps/projects/templates/projects/project_questions.html:76 -msgid "Save and proceed" -msgstr "Sichern und fortfahren" - -#: apps/projects/templates/projects/project_questions.html:82 -msgid "Back" -msgstr "Zurück" - -#: apps/projects/templates/projects/project_questions.html:85 -msgid "Skip" -msgstr "Überspringen" - -#: apps/projects/templates/projects/project_questions_add_field_button.html:6 -#: apps/projects/templates/projects/project_questions_questionset_head.html:15 -#: apps/projects/templates/projects/project_questions_questionset_head.html:36 -#, python-format -msgid "Add %(name)s" -msgstr "%(name)s hinzufügen" - -#: apps/projects/templates/projects/project_questions_add_field_help.html:4 -#, python-format -msgid "" -"Please enter the %(name_plural)s line by line. You can add %(name_plural)s " -"using the green button and remove them using the red cross (×)." -msgstr "" -"Bitte nutzen Sie für die %(name_plural)s jeweils eine eigene Zeile. Sie " -"können weitere %(name_plural)s mit dem grünen Knopf hinzufügen und mit dem " -"roten Kreuz (×) entfernen." - -#: apps/projects/templates/projects/project_questions_done.html:5 -msgid "Thank you for filling out the questionnaire." -msgstr "Vielen Dank für das Beantworten der Fragen." - -#: apps/projects/templates/projects/project_questions_form_group_select.html:16 -#: apps/projects/templates/projects/project_questions_form_group_select.html:41 -msgid "Please select" -msgstr "Bitte auswählen" - -#: apps/projects/templates/projects/project_questions_form_group_yesno.html:18 -#: apps/projects/templates/projects/project_questions_form_group_yesno.html:50 -msgid "Yes" -msgstr "Ja" - -#: apps/projects/templates/projects/project_questions_form_group_yesno.html:24 -#: apps/projects/templates/projects/project_questions_form_group_yesno.html:56 -msgid "No" -msgstr "Nein" - -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:17 -#, python-format -msgid "" -"You are about to permanently delete the %(name)s %(object)s." -msgstr "" -"Sie sind dabei den %(name)s %(object)s permanent zu " -"entfernen." - -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:23 -#, python-format -msgid "You are about to permanently delete this %(name)s." -msgstr "Sie sind dabei diesen %(name)s permanent zu entfernen." - -#: apps/projects/templates/projects/project_questions_modal_delete_valuesets.html:29 -#, python-format -msgid "" -"This includes all given answers for this %(name)s on all pages, not just " -"this one." -msgstr "" -"Dies umfasst alle gegebenen Antworten für dieses %(name)s auf allen Seiten, " -"nicht nur dieser." - -#: apps/projects/templates/projects/project_questions_modal_form_valuesets.html:20 -#, python-format -msgid "Please give the %(name)s a meaningful name." -msgstr "Bitte geben Sie dem %(name)s einen aus­sa­ge­kräf­tigen Namen." - -#: apps/projects/templates/projects/project_questions_questionset_head.html:7 -#, python-format -msgid "" -"Please fill in the form for each %(name)s. The different %(name_plural)s " -"will be referred to in following questions. You can add a new %(name)s using " -"the green button. Once created, you can edit or delete %(name_plural)s using " -"the buttons in the top right corner." -msgstr "" -"Bitte füllen Sie das Formular für jeden %(name)s aus. Die verschiedenen " -"%(name_plural)s werden eventuell in späteren Fragen wieder verwendet. Sie " -"können einen neuen %(name)s mit dem grünen Knopf hinzufügen. Bereits " -"angelegte %(name_plural)s können mit den Knöpfen oben rechts bearbeitet oder " -"wieder entfernt werden." - -#: apps/projects/templates/projects/project_questions_questionset_head.html:43 -#, python-format -msgid "Update %(name)s" -msgstr "%(name)s bearbeiten" - -#: apps/projects/templates/projects/project_questions_questionset_head.html:48 -#: apps/projects/templates/projects/project_questions_remove_field.html:4 -#, python-format -msgid "Remove %(name)s" -msgstr "%(name)s entfernen" - -#: apps/projects/templates/projects/project_questions_sidebar.html:4 -msgid "Progress" -msgstr "Fortschritt" - -#: apps/projects/templates/projects/project_questions_sidebar.html:13 -msgid "Navigation" -msgstr "Navigation" - -#: apps/projects/templates/projects/project_questions_sidebar.html:16 -msgid "Please note that using the navigation will discard any usaved input." -msgstr "" -"Bitte beachten sie das durch die Benutzung der Navigation ungesicherte " -"Eingaben verworfen werden." - -#: apps/projects/templates/projects/project_questions_sidebar.html:22 -msgid "skip to previous page" -msgstr "Zur vorherigen Frage springen" - -#: apps/projects/templates/projects/project_questions_sidebar.html:27 -msgid "skip to next page" -msgstr "Zur nächsten Frage springen" - -#: apps/projects/templates/projects/project_questions_sidebar.html:38 -msgid "Overview" -msgstr "Übersicht" - -#: apps/projects/templates/projects/project_view.html:61 -msgid "Error" -msgstr "Fehler" - -#: apps/projects/templates/projects/project_view.html:64 -msgid "There has been a problem creating the view. Please contact support." -msgstr "" -"Beim Erstellen der Ansicht ist ein Fehler aufgetreten. Bitte kontaktieren " -"Sie den Support." - -#: apps/projects/templates/projects/projects.html:8 -msgid "My Data" -msgstr "Meine Daten" - -#: apps/projects/templates/projects/projects.html:12 -msgid "My Groups" -msgstr "Meine Gruppen" - -#: apps/projects/templates/projects/projects.html:26 -msgid "My Projects" -msgstr "Meine Projekte" - -#: apps/projects/templates/projects/snapshot_form.html:15 -msgid "Create new snapshot" -msgstr "Neuen Snapshot erstellen" - -#: apps/projects/templates/projects/snapshot_rollback.html:10 -#, python-format -msgid "" -"You are about to reset all values to the snapshot %(title)s. All newer values will be deleted." -msgstr "" -"Sie sind dabei alle Werte auf den Snapshot %(title)s " -"zurückzusetzen. Alle neueren Werte werden entfernt." - -#: apps/projects/templates/projects/snapshot_rollback.html:17 -msgid "Rollback" -msgstr "Zurücksetzen" - -#: apps/projects/views.py:351 apps/projects/views.py:373 -msgid "This field is required." -msgstr "Dieses Feld wird benötigt." - -#: apps/questions/models.py:28 -msgid "The Uniform Resource Identifier of this catalog (auto-generated)." -msgstr "" -"Der Uniform Resource Identifier dieses Katalogs (automatisch erstellt)." - -#: apps/questions/models.py:33 -msgid "The prefix for the URI of this catalog." -msgstr "Das Präfix für die URI dieses Katalogs." - -#: apps/questions/models.py:38 -msgid "The internal identifier of this catalog." -msgstr "Der interne Bezeichner für diesen Katalog." - -#: apps/questions/models.py:43 -msgid "Additional internal information about this catalog." -msgstr "Zusätzliche interne Informationen über diesen Katalog." - -#: apps/questions/models.py:48 -msgid "The position of this catalog in lists." -msgstr "Die Position von diesem Katalog in Listen." - -#: apps/questions/models.py:52 apps/questions/models.py:125 -#: apps/questions/models.py:205 apps/tasks/models.py:51 -#: apps/views/models.py:47 -msgid "Title (en)" -msgstr "Titel (en)" - -#: apps/questions/models.py:53 -msgid "The English title for this catalog." -msgstr "Der englische Titel für diesen Katalog." - -#: apps/questions/models.py:57 apps/questions/models.py:130 -#: apps/questions/models.py:210 apps/tasks/models.py:56 -#: apps/views/models.py:52 -msgid "Title (de)" -msgstr "Titel (de)" - -#: apps/questions/models.py:58 -msgid "The German title for this catalog." -msgstr "Der deutsche Titel für diesen Katalog." - -#: apps/questions/models.py:64 -msgid "Catalogs" -msgstr "Kataloge" - -#: apps/questions/models.py:91 -msgid "The Uniform Resource Identifier of this section (auto-generated)." -msgstr "" -"Der Uniform Resource Identifier diese Abschnitts (automatisch erstellt)." - -#: apps/questions/models.py:96 -msgid "The prefix for the URI of this section." -msgstr "Das Präfix für die URI die dieses Abschnitts." - -#: apps/questions/models.py:101 -msgid "The internal identifier of this section." -msgstr "Der interne Bezeichner für diesen Abschnitt." - -#: apps/questions/models.py:105 apps/questions/models.py:185 -msgid "Label" -msgstr "Label" - -#: apps/questions/models.py:106 -msgid "The path part of the URI of this section (auto-generated)." -msgstr "Der Pfad-Teil der URI für diesen Abschnitt (automatisch erstellt)." - -#: apps/questions/models.py:111 -msgid "Additional internal information about this section." -msgstr "Zusätzliche interne Informationen über diesen Abschnitt." - -#: apps/questions/models.py:116 -msgid "The catalog this section belongs to." -msgstr "Der Katalog zu dem dieser Abschnitt gehört." - -#: apps/questions/models.py:126 -msgid "The English title for this section." -msgstr "Der englische Titel für diesen Abschnitt." - -#: apps/questions/models.py:131 -msgid "The German title for this section." -msgstr "Der deutsche Titel für diesen Unterabschnitt." - -#: apps/questions/models.py:136 apps/questions/models.py:195 -#: apps/questions/templates/questions/catalog_tree.html:15 -#: apps/questions/templates/questions/catalogs.html:42 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:31 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:11 -#: apps/questions/templates/questions/catalogs_modal_form_sections.html:11 -msgid "Section" -msgstr "Abschnitt" - -#: apps/questions/models.py:137 -msgid "Sections" -msgstr "Unterabschnitt" - -#: apps/questions/models.py:171 -msgid "The Uniform Resource Identifier of this subsection (auto-generated)." -msgstr "" -"Der Uniform Resource Identifier dieses Unterabschnitts (automatisch " -"erstellt)." - -#: apps/questions/models.py:176 -msgid "The prefix for the URI of this subsection." -msgstr "Das Präfix für die URI dieses Unterabschnitts." - -#: apps/questions/models.py:181 -msgid "The internal identifier of this subsection." -msgstr "Der interne Bezeichner für diesen Unterabschnitt." - -#: apps/questions/models.py:186 -msgid "The path part of the URI of this subsection (auto-generated)." -msgstr "" -"Der Pfad-Teil der URI für diesen Unterabschnitt (automatisch erstellt)." - -#: apps/questions/models.py:191 -msgid "Additional internal information about this subsection." -msgstr "Zusätzliche interne Informationen über diesen Unterabschnitt." - -#: apps/questions/models.py:196 -msgid "The section this subsection belongs to." -msgstr "Der Abschnitt zu dem dieser Unterabschnitt gehört." - -#: apps/questions/models.py:206 -msgid "The English title for this subsection." -msgstr "Der englische Titel für diesen Unterabschnitt." - -#: apps/questions/models.py:211 -msgid "The German title for this subsection." -msgstr "Der deutsche Titel für diesen Unterabschnitt." - -#: apps/questions/models.py:216 apps/questions/models.py:281 -#: apps/questions/templates/questions/catalog_tree.html:27 -#: apps/questions/templates/questions/catalogs.html:55 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:35 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:30 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:11 -#: apps/questions/templates/questions/catalogs_modal_form_subsections.html:11 -msgid "Subsection" -msgstr "Unterabschnitt" - -#: apps/questions/models.py:217 -msgid "Subsections" -msgstr "Unterabschnitte" - -#: apps/questions/models.py:252 -msgid "" -"The Uniform Resource Identifier of this question/questionset (auto-" -"generated)." -msgstr "" -"Der Uniform Resource Identifier dieser Frage/dieses Fragensets (automatisch " -"erstellt)." - -#: apps/questions/models.py:257 -msgid "The prefix for the URI of this question/questionset." -msgstr "Das Präfix für die URI dieser Frage/dieses Fragensets." - -#: apps/questions/models.py:262 -msgid "The internal identifier of this question/questionset." -msgstr "Der interne Bezeichner für diese Frage/dieses Fragenset." - -#: apps/questions/models.py:267 -msgid "The path part of the URI of this question/questionset (auto-generated)." -msgstr "" -"Der Pfad-Teil der URI für diese Frage/Fragenset (automatisch erstellt)." - -#: apps/questions/models.py:272 -msgid "Additional internal information about this question/questionset." -msgstr "Zusätzliche interne Informationen über diese Frage/dieses Fragenset." - -#: apps/questions/models.py:277 -msgid "The attribute/entity this question/questionset belongs to." -msgstr "Das Attribut/die Entität zu dem diese Frage/dieses Fragenset gehört." - -#: apps/questions/models.py:282 -msgid "The subsection this question/questionset belongs to." -msgstr "Der Unterabschnitt zu dem diese Frage/dieses Fragenset gehört." - -#: apps/questions/models.py:287 -msgid "The position of this question/questionset in lists." -msgstr "Die Position von dieser Frage/diesem Fragenset in Listen." - -#: apps/questions/models.py:291 apps/views/models.py:57 -msgid "Help (en)" -msgstr "Hilfe (en)" - -#: apps/questions/models.py:292 -msgid "The English help text for this question/questionset." -msgstr "Der englische Hilfetext für diese Frage/dieses Fragenset." - -#: apps/questions/models.py:296 apps/views/models.py:62 -msgid "Help (de)" -msgstr "Hilfe (de)" - -#: apps/questions/models.py:297 -msgid "The German help text for this question/questionset." -msgstr "Der deutsche Hilfetext für diese Frage/dieses Fragenset." - -#: apps/questions/models.py:302 -msgid "Question entity" -msgstr "Fragenobjekt" - -#: apps/questions/models.py:303 -msgid "Question entities" -msgstr "Fragenobjekte" - -#: apps/questions/models.py:382 -msgid "Parent" -msgstr "Übergeordnete Entität" - -#: apps/questions/models.py:383 -msgid "The question set this question belongs to." -msgstr "Das Fragenset zu dem diese Frage gehört." - -#: apps/questions/models.py:387 -msgid "The English text for this question." -msgstr "Der englische Text für diese Frage." - -#: apps/questions/models.py:391 -msgid "The German text for this question." -msgstr "Der deutsche Text für diese Frage." - -#: apps/questions/models.py:395 -msgid "Widget type" -msgstr "Widget-Typ" - -#: apps/questions/models.py:396 -msgid "Type of widget for this question." -msgstr "Art von Widget für diese Frage." - -#: apps/questions/models.py:400 -#: apps/questions/templates/questions/catalog_tree.html:124 -#: apps/questions/templates/questions/catalogs.html:86 -#: apps/questions/templates/questions/catalogs.html:105 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:43 -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:11 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:30 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:38 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:34 -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:11 -msgid "Question" -msgstr "Frage" - -#: apps/questions/serializers.py:202 apps/questions/serializers.py:244 -msgid "No attribute selected." -msgstr "Kein Attribut ausgewählt." - -#: apps/questions/serializers.py:232 -msgid "No entity selected." -msgstr "Keine Entität ausgewählt." - -#: apps/questions/serializers.py:238 -msgid "Entity and questions attributes mismatch." -msgstr "Entität und Attribute der Fragen passen nicht." - -#: apps/questions/templates/questions/catalog_tree.html:41 -#: apps/questions/templates/questions/catalogs.html:72 -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:40 -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:11 -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:35 -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:31 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:11 -msgid "Question set" -msgstr "Fragenset" - -#: apps/questions/templates/questions/catalog_tree.html:46 -#: apps/questions/templates/questions/catalog_tree.html:73 -#: apps/questions/templates/questions/catalog_tree.html:133 -msgid "Help" -msgstr "Hilfe" - -#: apps/questions/templates/questions/catalogs_modal_delete_catalogs.html:17 -#, python-format -msgid "" -"You are about to permanently delete the catalog " -"%(object)s." -msgstr "" -"Sie sind dabei den Katalog %(object)s " -"permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_delete_questions.html:17 -#, python-format -msgid "" -"You are about to permanently delete the question %(object)s." -msgstr "" -"Sie sind dabei die Frage %(object)s " -"permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_delete_questionsets.html:17 -#, python-format -msgid "" -"You are about to permanently delete the question set %(object)s." -msgstr "" -"Sie sind dabei das Fragenset %(object)s " -"permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_delete_sections.html:17 -#, python-format -msgid "" -"You are about to permanently delete the section " -"%(object)s." -msgstr "" -"Sie sind dabei den Abschnitt %(object)s " -"permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_delete_subsections.html:17 -#, python-format -msgid "" -"You are about to permanently delete the subsection %(object)s." -msgstr "" -"Sie sind dabei den Unterabschnitt %(object)s permanent zu entfernen." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:22 -msgid "The prefix for the URI of this question." -msgstr "Das Präfix für die URI dieser Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:31 -msgid "The internal identifier of this question." -msgstr "Der interne Bezeichner für diese Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:40 -msgid "Additional internal information about this question." -msgstr "Zusätzliche interne Informationen über diesen Abschnitt." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:50 -msgid "The subsection this question belongs to." -msgstr "Der Unterabschnitt für diese Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:73 -msgid "The position of this question in lists." -msgstr "Die Position dieser Frage in Listen." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:84 -msgid "The attribute this question belongs to." -msgstr "Das Attribut zu dem diese Frage gehört." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:129 -msgid "The English help text for this question." -msgstr "Der englische Hilfetext für diese Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:138 -msgid "The German help text for this question." -msgstr "Der deutsche Hilfetext für diese Frage." - -#: apps/questions/templates/questions/catalogs_modal_form_questions.html:151 -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:106 -msgid "Copy" -msgstr "Kopieren" - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:22 -msgid "The prefix for the URI of this questionset." -msgstr "Das Präfix für die URI dieses Fragensets." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:31 -msgid "The internal identifier of this questionset." -msgstr "Der interne Bezeichner für dieses Fragenset." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:40 -msgid "Additional internal information about this questionset." -msgstr "Zusätzliche interne Informationen über diese Fragenset." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:50 -msgid "The subsection this questionset belongs to." -msgstr "Der Unterabschnitt für dieses Fragenset." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:62 -msgid "The position of this questionset in lists." -msgstr "Die Position von diesem Fragenset in Listen." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:71 -msgid "The entity this questionset belongs to." -msgstr "Das Entität zu dem dieses Fragenset gehört." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:84 -msgid "The English help text for this questionset." -msgstr "Der englische Hilfetext für dieses Fragenset." - -#: apps/questions/templates/questions/catalogs_modal_form_questionsets.html:93 -msgid "The German help text for this questionset." -msgstr "Der deutsche Hilfetext für dieses Fragenset." - -#: apps/questions/templates/questions/catalogs_options_questions.html:4 -msgid "Update question" -msgstr "Frage bearbeiten" - -#: apps/questions/templates/questions/catalogs_options_questions.html:9 -msgid "Copy question" -msgstr "Frage kopieren" - -#: apps/questions/templates/questions/catalogs_options_questions.html:14 -msgid "Delete question" -msgstr "Frage entfernen" - -#: apps/questions/templates/questions/catalogs_options_questionsets.html:4 -#: apps/questions/templates/questions/catalogs_options_subsections.html:12 -msgid "Add question" -msgstr "Frage hinzufügen" - -#: apps/questions/templates/questions/catalogs_options_questionsets.html:9 -msgid "Update question set" -msgstr "Fragenset bearbeiten" - -#: apps/questions/templates/questions/catalogs_options_questionsets.html:14 -msgid "Copy question set" -msgstr "Fragenset kopieren" - -#: apps/questions/templates/questions/catalogs_options_questionsets.html:19 -msgid "Delete question set" -msgstr "Fragenset entfernen" - -#: apps/questions/templates/questions/catalogs_options_sections.html:4 -msgid "Add subsection" -msgstr "Unterabschnitt hinzufügen" - -#: apps/questions/templates/questions/catalogs_options_sections.html:9 -msgid "Update section" -msgstr "Abschnitt bearbeiten" - -#: apps/questions/templates/questions/catalogs_options_sections.html:14 -msgid "Delete section" -msgstr "Abschnitt entfernen" - -#: apps/questions/templates/questions/catalogs_options_subsections.html:6 -msgid "Show options" -msgstr "Optionen anzeigen" - -#: apps/questions/templates/questions/catalogs_options_subsections.html:17 -msgid "Add question set" -msgstr "Fragenset hinzufügen" - -#: apps/questions/templates/questions/catalogs_options_subsections.html:24 -msgid "Update subsection" -msgstr "Unterabschnitt bearbeiten" - -#: apps/questions/templates/questions/catalogs_options_subsections.html:29 -msgid "Delete subsection" -msgstr "Unterabschnitt entfernen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:25 -msgid "Update catalog details" -msgstr "Katalogeigenschaften bearbeiten" - -#: apps/questions/templates/questions/catalogs_sidebar.html:30 -msgid "Delete catalog" -msgstr "Katalog entfernen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:38 -msgid "Create new catalog" -msgstr "Neuen Katalog erstellen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:43 -msgid "Create new section" -msgstr "Neuen Abschnitt erstellen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:48 -msgid "Create new subsection" -msgstr "Neuen Unterabschnitt erstellen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:53 -msgid "Create new questionset" -msgstr "Neues Fragenset erstellen" - -#: apps/questions/templates/questions/catalogs_sidebar.html:58 -msgid "Create new question" -msgstr "Neue Frage erstellen" - -#: apps/tasks/models.py:32 -msgid "The Uniform Resource Identifier of this task (auto-generated)." -msgstr "Der Uniform Resource Identifier dieser Aufgabe (automatisch erstellt)." - -#: apps/tasks/models.py:37 -msgid "The prefix for the URI of this task." -msgstr "Das Präfix für die URI dieser Aufgabe." - -#: apps/tasks/models.py:42 -msgid "The internal identifier of this task." -msgstr "Der interne Bezeichner für diese Aufgabe." - -#: apps/tasks/models.py:47 -msgid "Additional internal information about this task." -msgstr "Zusätzliche interne Informationen über diese Aufgabe." - -#: apps/tasks/models.py:52 -msgid "The English title for this task." -msgstr "Der englische Titel für diese Aufgabe." - -#: apps/tasks/models.py:57 -msgid "The German title for this task." -msgstr "Der deutsche Titel für diese Aufgabe." - -#: apps/tasks/models.py:61 -msgid "The English text for this task." -msgstr "Der englische Text für diese Aufgabe." - -#: apps/tasks/models.py:65 -msgid "The German text for this task." -msgstr "Der deutsche Text für diese Aufgabe." - -#: apps/tasks/models.py:70 -msgid "The list of conditions evaluated for this task." -msgstr "Die Liste der Bedingungen die für diese Aufgabe ausgewertet werden." - -#: apps/tasks/models.py:111 -msgid "The task this time frame belongs to." -msgstr "Die Aufgabe zu der dieser Zeitraum gehört." - -#: apps/tasks/models.py:115 apps/tasks/templates/tasks/tasks_export.html:55 -msgid "Start date attribute" -msgstr "Anfangsdatums-Attribut" - -#: apps/tasks/models.py:116 -msgid "The Attribute that is setting the start date for this task." -msgstr "Das Attribut das des Anfangsdatum für die Aufgabe festlegt." - -#: apps/tasks/models.py:120 apps/tasks/templates/tasks/tasks_export.html:56 -msgid "End date attribute" -msgstr "Enddatums-Attribute" - -#: apps/tasks/models.py:121 -msgid "" -"The Attribute that is setting the end date for this task (optional, if no " -"end date attribute is given, the start date attribute sets also the end " -"date)." -msgstr "" -"Das Attribut das des Enddatum für die Aufgabe festlegt (Optional, wenn kein " -"Enddatums-Attribut angegeben wird, bestimmt das Anfangsdatums-Attribut auch " -"das Enddatum)." - -#: apps/tasks/models.py:125 apps/tasks/templates/tasks/tasks_export.html:57 -msgid "Days before" -msgstr "Tage davor" - -#: apps/tasks/models.py:126 -msgid "Additional days before the start date." -msgstr "Zusätzliche Tage vor dem Anfangsdatum." - -#: apps/tasks/models.py:130 apps/tasks/templates/tasks/tasks_export.html:58 -msgid "Days after" -msgstr "Tage danach" - -#: apps/tasks/models.py:131 -msgid "Additional days after the end date." -msgstr "Zusätzliche Tage nach dem Enddatum." - -#: apps/tasks/models.py:137 -msgid "Time frames" -msgstr "Zeiträume" - -#: apps/tasks/templates/tasks/tasks.html:39 -msgid "Create new task" -msgstr "Neue Aufgabe erstellen" - -#: apps/tasks/templates/tasks/tasks.html:77 -msgid "Update task" -msgstr "Aufgabe bearbeiten" - -#: apps/tasks/templates/tasks/tasks.html:85 -msgid "Update time frame" -msgstr "Zeitrahmen bearbeiten." - -#: apps/tasks/templates/tasks/tasks.html:89 -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:11 -msgid "Delete task" -msgstr "Aufgabe entfernen" - -#: apps/tasks/templates/tasks/tasks_export.html:51 -msgid "Timeframe" -msgstr "Zeitraum" - -#: apps/tasks/templates/tasks/tasks_modal_delete_tasks.html:17 -msgid "" -"You are about to permanently delete the task {$ service.values.title " -"$}." -msgstr "" -"Sie sind dabei die Aufgabe %(object)s permanent zu entfernen." - -#: apps/views/models.py:23 -msgid "The Uniform Resource Identifier of this view (auto-generated)." -msgstr "Der Uniform Resource Identifier dieser Ansicht (automatisch erstellt)." - -#: apps/views/models.py:28 -msgid "The prefix for the URI of this view." -msgstr "Das Präfix für die URI dieser Ansicht." - -#: apps/views/models.py:33 -msgid "The internal identifier of this view." -msgstr "Der interne Bezeichner für diese Ansicht." - -#: apps/views/models.py:38 -msgid "Additional internal information about this view." -msgstr "Zusätzliche interne Informationen über diese Ansicht." - -#: apps/views/models.py:42 apps/views/templates/views/views_export.html:33 -#: apps/views/templates/views/views_modal_form_templates.html:11 -msgid "Template" -msgstr "Vorlage" - -#: apps/views/models.py:43 -msgid "The template for this view, written in Django template language." -msgstr "" -"Das Template für diese Ansicht, in der Django-Template-Language verfasst." - -#: apps/views/models.py:48 -msgid "The English title for this view." -msgstr "Der englische Titel für diese Ansicht." - -#: apps/views/models.py:53 -msgid "The German title for this view." -msgstr "Der deutsche Titel für diesen Ansicht." - -#: apps/views/models.py:58 -msgid "The English help text for this view." -msgstr "Der englische Hilfetext für diese Ansicht." - -#: apps/views/models.py:63 -msgid "The German help text for this view." -msgstr "Der deutsche Hilfetext für diese Ansicht." - -#: apps/views/templates/views/views.html:45 -msgid "Create new view" -msgstr "Neue Ansicht erstellen" - -#: apps/views/templates/views/views.html:83 -msgid "Update view" -msgstr "Ansicht bearbeiten" - -#: apps/views/templates/views/views.html:87 -msgid "Edit template" -msgstr "Template bearbeiten" - -#: apps/views/templates/views/views.html:91 -#: apps/views/templates/views/views_modal_delete_views.html:11 -msgid "Delete view" -msgstr "Ansicht entfernen" - -#: apps/views/templates/views/views_export.html:29 -msgid "Help text" -msgstr "Hilfetext" - -#: apps/views/templates/views/views_modal_delete_views.html:17 -msgid "" -"You are about to permanently delete the view {$ service.values.title " -"$}." -msgstr "" -"Sie sind dabei die Ansicht %(object)s permanent zu entfernen." - -#: apps/views/templates/views/views_modal_form_templates.html:37 -msgid "Save and close" -msgstr "Sichern und schließen" - -#: rdmo/settings/base.py:123 -msgid "German" -msgstr "Deutsch" - -#: rdmo/settings/base.py:124 -msgid "English" -msgstr "Englisch" - -#: rdmo/settings/base.py:201 -msgid "PDF" -msgstr "PDF" - -#: rdmo/settings/base.py:202 -msgid "Rich Text Format" -msgstr "Rich Text Format" - -#: rdmo/settings/base.py:203 -msgid "Open Office" -msgstr "Open Office" - -#: rdmo/settings/base.py:204 -msgid "Microsoft Office" -msgstr "Microsoft Office" - -#: rdmo/settings/base.py:205 -msgid "HTML" -msgstr "HTML" - -#: rdmo/settings/base.py:206 -msgid "Markdown" -msgstr "Markdown" - -#: rdmo/settings/base.py:207 -msgid "mediawiki" -msgstr "mediawiki" - -#: rdmo/settings/base.py:208 -msgid "LaTeX" -msgstr "LaTeX" - -#, fuzzy -#~| msgid "Optionsets " -#~ msgid "Optionsets" -#~ msgstr "Optionensets" - -#~ msgid "Optionset" -#~ msgstr "Optionenset" - -#~ msgid "Tasks " -#~ msgstr "Aufgaben" - -#~ msgid "Task " -#~ msgstr "Aufgabe" - -#~ msgid "Views " -#~ msgstr "Ansichten" - -#~ msgid "Domain " -#~ msgstr "Domäne" - -#~ msgid "Condition " -#~ msgstr "Bedingung" - -#~ msgid "Conditions " -#~ msgstr "Bedingungen" - -#~ msgid "" -#~ "You are about to permanently delete the attribute set %(object)s." -#~ msgstr "" -#~ "Sie sind dabei die Entität %(object)s permanent zu entfernen." - -#~ msgid "" -#~ "The internal identifier of this condition. The URI will be generated from " -#~ "this key." -#~ msgstr "" -#~ "Der interne Identifikator für diese Bedingung. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "Prefix" -#~ msgstr "Präfix" - -#~ msgid "Source Attribute" -#~ msgstr "Quell-Attribut" - -#~ msgid "Target text" -#~ msgstr "Ziel Text" - -#~ msgid "Target option" -#~ msgstr "Ziel Option" - -#~ msgid "" -#~ "The internal identifier of this attribute/entity. The URI will be " -#~ "generated from this key." -#~ msgstr "" -#~ "Der interne Identifikator für dieses Attribute/diese Entität. Die URI " -#~ "wird hieraus generiert." - -#~ msgid "Type" -#~ msgstr "Typ" - -#~ msgid "" -#~ "You are about to permanently delete the attribute {$ service.values." -#~ "title $}." -#~ msgstr "" -#~ "Sie sind dabei das Attribut {$ service.values.title $} " -#~ "permanent zu entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the attribute set {$ service." -#~ "values.title $}." -#~ msgstr "" -#~ "Sie sind dabei die Entität {$ service.values.title $} " -#~ "permanent zu entfernen." - -#~ msgid "Parent Entity" -#~ msgstr "Übergeordnete Entität" - -#~ msgid "is a Collection" -#~ msgstr "ist eine Sammlung" - -#~ msgid "English name" -#~ msgstr "Englischer Name" - -#~ msgid "English name (plural)" -#~ msgstr "Englischer Name (Plural)" - -#~ msgid "German name" -#~ msgstr "Deutscher Name" - -#~ msgid "German name (plural)" -#~ msgstr "Deutscher Name (Plural)" - -#~ msgid "" -#~ "The internal identifier of this option set. The URI will be generated " -#~ "from this key." -#~ msgstr "" -#~ "Der interne Identifikator für dieses Optionenset. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "Options " -#~ msgstr "Optionen" - -#~ msgid "Title (English)" -#~ msgstr "Titel (Englisch)" - -#~ msgid "Title (German)" -#~ msgstr "Titel (Deutsch)" - -#~ msgid "" -#~ "The internal identifier of this catalog. The URI will be generated from " -#~ "this key." -#~ msgstr "" -#~ "Der interne Identifikator für diesen Katalog. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "" -#~ "The internal identifier of this section. The URI will be generated from " -#~ "this key." -#~ msgstr "" -#~ "Der interne Identifikator für diesen Abschnitt. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "" -#~ "The internal identifier of this subsection. The URI will be generated " -#~ "from this key." -#~ msgstr "" -#~ "Der interne Identifikator für diesen Unterabschnitt. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "The position of this subsection in lists." -#~ msgstr "Die Position von diesem Unterabschnitt in Listen." - -#~ msgid "" -#~ "The internal identifier of this question/questionset. The URI will be " -#~ "generated from this key." -#~ msgstr "" -#~ "Der interne Identifikator für diese Frage/dieses Fragenset. Die URI wird " -#~ "hieraus generiert." - -#~ msgid "" -#~ "You are about to permanently delete the catalog {$ service." -#~ "catalog.title $}." -#~ msgstr "" -#~ "Sie sind dabei den Katalog %(object)s permanent zu entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the question {$ service." -#~ "values.text $}." -#~ msgstr "" -#~ "Sie sind dabei die Frage %(object)s permanent zu entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the question set {$ service." -#~ "values.title $}." -#~ msgstr "" -#~ "Sie sind dabei das Fragenset %(object)s permanent zu " -#~ "entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the section {$ service.values." -#~ "title $}." -#~ msgstr "" -#~ "Sie sind dabei den Abschnitt %(object)s permanent zu " -#~ "entfernen." - -#~ msgid "" -#~ "You are about to permanently delete the subsection {$ service." -#~ "values.title $}." -#~ msgstr "" -#~ "Sie sind dabei den Unterabschnitt %(object)s permanent zu " -#~ "entfernen." - -#~ msgid "Question text (English)" -#~ msgstr "Fragentext (Englisch)" - -#~ msgid "Question text (German)" -#~ msgstr "Fragentext (Deutsch)" - -#~ msgid "Help text (English)" -#~ msgstr "Hilfetext (Englisch)" - -#~ msgid "Description text (English)" -#~ msgstr "Beschreibungstext (Englisch)" - -#~ msgid "Description text (German)" -#~ msgstr "Beschreibungstext (Deutsch)" - -#~ msgid "Additional days before" -#~ msgstr "Zusätzliche Tage vorher" - -#~ msgid "Additional days after" -#~ msgstr "Zusätzliche Tage danach" - -#~ msgid "" -#~ "The internal identifier of this view. The URI will be generated from this " -#~ "key." -#~ msgstr "" -#~ "Der interne Identifikator für diese Ansicht. Die URI wird hieraus " -#~ "generiert." - -#~ msgid "Days before start date." -#~ msgstr "Tage vor dem Start-Datum" - -#~ msgid "Profile update not possible" -#~ msgstr "Profil bearbeiten nicht möglich" - -#~ msgid "Deadline" -#~ msgstr "Termin" - -#~ msgid "The attribute this task is refering to." -#~ msgstr "Das Attribut auf das diese Aufgabe verweist." - -#~ msgid "Time period" -#~ msgstr "Zeitraum" - -#~ msgid "The the time period after this task becomes active." -#~ msgstr "Die Zweitspanne nach der diese Aufgabe aktiv wird." - -#~ msgid "" -#~ "RDMO is published on github.com." -#~ msgstr "" -#~ "RDMO ist auf github.com " -#~ "veröffentlicht." - -#~ msgid "Email" -#~ msgstr "E-Mail" - -#~ msgid "Save input" -#~ msgstr "Eingabe speichern" - -#~ msgid "Delete attribute set" -#~ msgstr "Attribut-Set entfernen" diff --git a/rdmo/conditions/templates/conditions/conditions.html b/rdmo/conditions/templates/conditions/conditions.html index 0075ddb04..832921491 100644 --- a/rdmo/conditions/templates/conditions/conditions.html +++ b/rdmo/conditions/templates/conditions/conditions.html @@ -44,7 +44,7 @@

                  {% trans 'Options' %}

                  {% trans 'Export' %}