wbcore 1.46.0__py2.py3-none-any.whl → 1.58.2__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- wbcore/cache/decorators.py +5 -3
- wbcore/cache/registry.py +14 -7
- wbcore/configs/__init__.py +1 -0
- wbcore/configs/configs.py +5 -0
- wbcore/configs/decorators.py +1 -1
- wbcore/configurations/configurations/apps.py +3 -2
- wbcore/configurations/configurations/authentication.py +1 -1
- wbcore/configurations/configurations/base.py +1 -1
- wbcore/configurations/configurations/cache.py +1 -1
- wbcore/configurations/configurations/i18nl10n.py +2 -1
- wbcore/configurations/configurations/maintenance.py +1 -1
- wbcore/configurations/configurations/media.py +1 -1
- wbcore/configurations/configurations/middleware.py +1 -1
- wbcore/configurations/configurations/rest_framework.py +1 -1
- wbcore/configurations/configurations/static.py +3 -3
- wbcore/configurations/configurations/wbcore.py +1 -1
- wbcore/content_type/serializers.py +13 -5
- wbcore/content_type/utils.py +3 -3
- wbcore/content_type/viewsets.py +2 -2
- wbcore/contrib/agenda/filters/calendar_item.py +5 -4
- wbcore/contrib/agenda/locale/de/LC_MESSAGES/django.po +145 -52
- wbcore/contrib/agenda/locale/de/LC_MESSAGES/django.po.translated +236 -0
- wbcore/contrib/agenda/locale/en/LC_MESSAGES/django.po +200 -0
- wbcore/contrib/agenda/locale/fr/LC_MESSAGES/django.po +201 -0
- wbcore/contrib/agenda/viewsets/calendar_items.py +7 -7
- wbcore/contrib/agenda/viewsets/menu/calendar_items.py +0 -6
- wbcore/contrib/ai/exceptions.py +5 -5
- wbcore/contrib/ai/llm/config.py +76 -27
- wbcore/contrib/ai/llm/mixins.py +5 -8
- wbcore/contrib/ai/llm/utils.py +50 -26
- wbcore/contrib/authentication/admin.py +2 -2
- wbcore/contrib/authentication/factories/__init__.py +8 -1
- wbcore/contrib/authentication/factories/users.py +19 -0
- wbcore/contrib/authentication/filters.py +1 -2
- wbcore/contrib/authentication/locale/de/LC_MESSAGES/django.po +209 -187
- wbcore/contrib/authentication/locale/de/LC_MESSAGES/django.po.translated +634 -0
- wbcore/contrib/authentication/locale/en/LC_MESSAGES/django.po +590 -0
- wbcore/contrib/authentication/locale/fr/LC_MESSAGES/django.po +592 -0
- wbcore/contrib/authentication/models/users.py +3 -3
- wbcore/contrib/authentication/models/users_activities.py +1 -1
- wbcore/contrib/authentication/serializers/users.py +2 -2
- wbcore/contrib/authentication/tests/test_tokens.py +3 -3
- wbcore/contrib/authentication/tests/test_users.py +0 -1
- wbcore/contrib/authentication/urls.py +0 -4
- wbcore/contrib/authentication/viewsets/endpoints/user_activities.py +2 -11
- wbcore/contrib/authentication/viewsets/endpoints/users.py +0 -3
- wbcore/contrib/authentication/viewsets/user_activities.py +2 -1
- wbcore/contrib/authentication/viewsets/users.py +6 -4
- wbcore/contrib/color/models.py +2 -1
- wbcore/contrib/currency/factories.py +1 -1
- wbcore/contrib/currency/import_export/backends/fixerio/currency_fx_rates.py +3 -1
- wbcore/contrib/currency/models.py +30 -8
- wbcore/contrib/currency/serializers.py +5 -1
- wbcore/contrib/currency/tests/test_serializers.py +7 -3
- wbcore/contrib/currency/tests/test_viewsets.py +1 -1
- wbcore/contrib/currency/viewsets/currency.py +2 -2
- wbcore/contrib/currency/viewsets/endpoints/currency_fx_rates.py +0 -9
- wbcore/contrib/dataloader/tests/test/dataloaders/protocols.py +1 -2
- wbcore/contrib/dataloader/utils.py +2 -2
- wbcore/contrib/directory/factories/__init__.py +1 -1
- wbcore/contrib/directory/factories/entries.py +2 -1
- wbcore/contrib/directory/filters/entries.py +9 -0
- wbcore/contrib/directory/locale/de/LC_MESSAGES/django.po +728 -714
- wbcore/contrib/directory/locale/de/LC_MESSAGES/django.po.translated +1779 -0
- wbcore/contrib/directory/locale/en/LC_MESSAGES/django.po +1652 -0
- wbcore/contrib/directory/locale/fr/LC_MESSAGES/django.po +1654 -0
- wbcore/contrib/directory/migrations/0011_person_description_person_i18n.py +24 -0
- wbcore/contrib/directory/migrations/0012_alter_person_managers.py +20 -0
- wbcore/contrib/directory/migrations/0013_alter_clientmanagerrelationship_options.py +17 -0
- wbcore/contrib/directory/models/contacts.py +2 -2
- wbcore/contrib/directory/models/entries.py +31 -5
- wbcore/contrib/directory/models/relationships.py +31 -35
- wbcore/contrib/directory/permissions.py +6 -0
- wbcore/contrib/directory/serializers/companies.py +16 -8
- wbcore/contrib/directory/serializers/contacts.py +8 -8
- wbcore/contrib/directory/serializers/entries.py +26 -15
- wbcore/contrib/directory/serializers/entry_representations.py +4 -2
- wbcore/contrib/directory/serializers/persons.py +12 -10
- wbcore/contrib/directory/serializers/relationships.py +2 -2
- wbcore/contrib/directory/tests/conftest.py +2 -0
- wbcore/contrib/directory/tests/disable_signals.py +11 -1
- wbcore/contrib/directory/tests/signals.py +2 -2
- wbcore/contrib/directory/tests/test_models.py +88 -66
- wbcore/contrib/directory/tests/test_serializers.py +1 -1
- wbcore/contrib/directory/tests/test_viewsets.py +8 -8
- wbcore/contrib/directory/viewsets/buttons/__init__.py +1 -1
- wbcore/contrib/directory/viewsets/buttons/relationships.py +32 -0
- wbcore/contrib/directory/viewsets/contacts.py +6 -6
- wbcore/contrib/directory/viewsets/display/__init__.py +1 -1
- wbcore/contrib/directory/viewsets/display/contacts.py +1 -14
- wbcore/contrib/directory/viewsets/display/entries.py +68 -38
- wbcore/contrib/directory/viewsets/display/relationships.py +26 -50
- wbcore/contrib/directory/viewsets/endpoints/relationships.py +1 -26
- wbcore/contrib/directory/viewsets/entries.py +8 -6
- wbcore/contrib/directory/viewsets/previews/entries.py +3 -3
- wbcore/contrib/directory/viewsets/relationships.py +16 -2
- wbcore/contrib/directory/viewsets/titles/relationships.py +2 -3
- wbcore/contrib/documents/filters.py +0 -2
- wbcore/contrib/documents/locale/de/LC_MESSAGES/django.po +103 -94
- wbcore/contrib/documents/locale/de/LC_MESSAGES/django.po.translated +285 -0
- wbcore/contrib/documents/locale/en/LC_MESSAGES/django.po +271 -0
- wbcore/contrib/documents/locale/fr/LC_MESSAGES/django.po +270 -0
- wbcore/contrib/documents/tests/test_models.py +32 -28
- wbcore/contrib/documents/viewsets/endpoints/shareable_links.py +2 -21
- wbcore/contrib/dynamic_preferences/types.py +108 -0
- wbcore/contrib/dynamic_preferences/viewsets.py +27 -0
- wbcore/contrib/example_app/filters/event.py +3 -1
- wbcore/contrib/example_app/filters/match.py +1 -1
- wbcore/contrib/example_app/models.py +91 -22
- wbcore/contrib/example_app/serializers/person_team.py +4 -4
- wbcore/contrib/example_app/templates/example_app/embedded_view.html +19 -0
- wbcore/contrib/example_app/tests/e2e/test_teams.py +1 -1
- wbcore/contrib/example_app/tests/test_models/test_match.py +17 -7
- wbcore/contrib/example_app/urls.py +2 -0
- wbcore/contrib/example_app/views.py +7 -0
- wbcore/contrib/example_app/viewsets/displays/team.py +23 -4
- wbcore/contrib/example_app/viewsets/menu/menus.py +1 -1
- wbcore/contrib/example_app/viewsets/menus.py +1 -1
- wbcore/contrib/geography/tests/conftest.py +14 -0
- wbcore/contrib/geography/tests/test_models.py +23 -8
- wbcore/contrib/geography/tests/test_viewsets.py +96 -2
- wbcore/contrib/guardian/tests/test_model_mixins.py +3 -4
- wbcore/contrib/guardian/tests/test_tasks.py +9 -9
- wbcore/contrib/guardian/tests/test_viewsets.py +2 -2
- wbcore/contrib/guardian/viewsets/configs/__init__.py +1 -1
- wbcore/contrib/guardian/viewsets/configs/buttons.py +9 -0
- wbcore/contrib/guardian/viewsets/configs/endpoints.py +7 -0
- wbcore/contrib/guardian/viewsets/viewsets.py +2 -0
- wbcore/contrib/i18n/__init__.py +2 -0
- wbcore/contrib/i18n/buttons.py +33 -0
- wbcore/contrib/i18n/serializers/__init__.py +0 -0
- wbcore/contrib/i18n/serializers/fields.py +20 -0
- wbcore/contrib/i18n/serializers/mixins.py +13 -0
- wbcore/contrib/i18n/tests/conftest.py +11 -0
- wbcore/contrib/i18n/tests/test_viewsets.py +67 -0
- wbcore/contrib/i18n/translation.py +140 -0
- wbcore/contrib/i18n/viewsets.py +36 -0
- wbcore/contrib/icons/backends/default.py +1 -0
- wbcore/contrib/icons/backends/material.py +1 -0
- wbcore/contrib/icons/icons.py +5 -8
- wbcore/contrib/io/admin.py +1 -0
- wbcore/contrib/io/backends/mail.py +3 -2
- wbcore/contrib/io/backends/utils.py +14 -17
- wbcore/contrib/io/exceptions.py +8 -0
- wbcore/contrib/io/factories.py +1 -1
- wbcore/contrib/io/import_export/backends/mail.py +1 -0
- wbcore/contrib/io/import_export/backends/sftp.py +29 -20
- wbcore/contrib/io/import_export/backends/stream.py +2 -2
- wbcore/contrib/io/import_export/parsers/__init__.py +0 -0
- wbcore/contrib/io/import_export/parsers/base_csv.py +36 -0
- wbcore/contrib/io/import_export/parsers/resources.py +50 -0
- wbcore/contrib/io/imports.py +33 -25
- wbcore/contrib/io/locale/de/LC_MESSAGES/django.po +114 -22
- wbcore/contrib/io/locale/de/LC_MESSAGES/django.po.translated +103 -0
- wbcore/contrib/io/locale/en/LC_MESSAGES/django.po +138 -0
- wbcore/contrib/io/locale/fr/LC_MESSAGES/django.po +138 -0
- wbcore/contrib/io/migrations/0008_importsource_resource_kwargs.py +18 -0
- wbcore/contrib/io/models.py +65 -45
- wbcore/contrib/io/resources.py +0 -6
- wbcore/contrib/io/serializers.py +2 -2
- wbcore/contrib/io/signals.py +4 -0
- wbcore/contrib/io/tests/test_backends.py +19 -13
- wbcore/contrib/io/tests/test_exports.py +1 -1
- wbcore/contrib/io/tests/test_imports.py +1 -1
- wbcore/contrib/io/tests/test_models.py +47 -14
- wbcore/contrib/io/tests/test_viewsets.py +271 -0
- wbcore/contrib/io/viewset_mixins.py +41 -54
- wbcore/contrib/notifications/admin.py +1 -0
- wbcore/contrib/notifications/apps.py +2 -1
- wbcore/contrib/notifications/backends/abstract_backend.py +2 -4
- wbcore/contrib/notifications/backends/firebase/backends.py +5 -2
- wbcore/contrib/notifications/dispatch.py +18 -7
- wbcore/contrib/notifications/factories/notification_types.py +1 -0
- wbcore/contrib/notifications/locale/de/LC_MESSAGES/django.po +25 -19
- wbcore/contrib/notifications/locale/de/LC_MESSAGES/django.po.translated +63 -0
- wbcore/contrib/notifications/locale/en/LC_MESSAGES/django.po +61 -0
- wbcore/contrib/notifications/locale/fr/LC_MESSAGES/django.po +62 -0
- wbcore/contrib/notifications/migrations/0008_notificationtype_is_lock.py +18 -0
- wbcore/contrib/notifications/migrations/0009_alter_notificationtypesetting_options_and_more.py +32 -0
- wbcore/contrib/notifications/models/notification_types.py +67 -24
- wbcore/contrib/notifications/serializers/notification_types.py +16 -1
- wbcore/contrib/notifications/tests/test_models/test_tokens.py +8 -0
- wbcore/contrib/notifications/tests/test_serializers/test_notification_types.py +5 -0
- wbcore/contrib/notifications/tests/test_viewsets/test_notification_types.py +3 -5
- wbcore/contrib/notifications/utils.py +3 -2
- wbcore/contrib/notifications/viewsets/configs/notification_types.py +28 -6
- wbcore/contrib/notifications/viewsets/menus.py +1 -1
- wbcore/contrib/notifications/viewsets/notification_types.py +12 -2
- wbcore/contrib/pandas/fields.py +38 -10
- wbcore/contrib/pandas/filters.py +4 -1
- wbcore/contrib/pandas/filterset.py +8 -7
- wbcore/contrib/pandas/tests/test_fields/test_number_fields.py +2 -7
- wbcore/contrib/pandas/utils.py +1 -1
- wbcore/contrib/pandas/views.py +14 -13
- wbcore/contrib/tags/models/tags.py +4 -1
- wbcore/contrib/workflow/factories/display.py +2 -2
- wbcore/contrib/workflow/factories/transition.py +16 -15
- wbcore/contrib/workflow/locale/de/LC_MESSAGES/django.po +457 -566
- wbcore/contrib/workflow/locale/de/LC_MESSAGES/django.po.translated +1326 -0
- wbcore/contrib/workflow/locale/en/LC_MESSAGES/django.po +1102 -0
- wbcore/contrib/workflow/locale/fr/LC_MESSAGES/django.po +1114 -0
- wbcore/contrib/workflow/models/data.py +7 -4
- wbcore/contrib/workflow/models/process.py +2 -2
- wbcore/contrib/workflow/models/step.py +57 -15
- wbcore/contrib/workflow/serializers/data.py +8 -8
- wbcore/contrib/workflow/serializers/process.py +3 -2
- wbcore/contrib/workflow/tests/conftest.py +224 -0
- wbcore/contrib/workflow/tests/test_dispatch.py +82 -77
- wbcore/contrib/workflow/tests/test_displays.py +10 -88
- wbcore/contrib/workflow/tests/test_filters.py +57 -40
- wbcore/contrib/workflow/tests/test_models/step/test_decision_step.py +71 -68
- wbcore/contrib/workflow/tests/test_models/step/test_email_step.py +78 -38
- wbcore/contrib/workflow/tests/test_models/step/test_finish_step.py +152 -90
- wbcore/contrib/workflow/tests/test_models/step/test_join_step.py +100 -110
- wbcore/contrib/workflow/tests/test_models/step/test_step.py +168 -33
- wbcore/contrib/workflow/tests/test_models/test_condition.py +1 -1
- wbcore/contrib/workflow/tests/test_models/test_workflow.py +3 -3
- wbcore/contrib/workflow/tests/test_serializers.py +172 -150
- wbcore/contrib/workflow/tests/test_viewsets.py +264 -323
- wbcore/contrib/workflow/tests/test_workflow_assignees.py +215 -205
- wbcore/contrib/workflow/viewsets/process.py +4 -1
- wbcore/contrib/workflow/workflows/assignees.py +12 -7
- wbcore/dynamic_preferences_registry.py +102 -0
- wbcore/enums.py +2 -51
- wbcore/filters/fields/choices.py +4 -6
- wbcore/filters/fields/content_type.py +15 -4
- wbcore/filters/fields/datetime.py +50 -25
- wbcore/filters/fields/models.py +18 -9
- wbcore/filters/fields/numbers.py +9 -8
- wbcore/filters/filterset.py +27 -6
- wbcore/filters/mixins.py +41 -42
- wbcore/forms.py +6 -6
- wbcore/fsm/markdown_extensions.py +1 -1
- wbcore/fsm/mixins.py +20 -6
- wbcore/locale/de/LC_MESSAGES/django.po +982 -397
- wbcore/locale/de/LC_MESSAGES/django.po.translated +1580 -0
- wbcore/locale/en/LC_MESSAGES/django.po +1234 -0
- wbcore/locale/fr/LC_MESSAGES/django.po +1235 -0
- wbcore/markdown/models.py +8 -5
- wbcore/markdown/views.py +1 -1
- wbcore/menus/menus.py +2 -2
- wbcore/metadata/configs/buttons/bases.py +10 -7
- wbcore/metadata/configs/buttons/buttons.py +2 -1
- wbcore/metadata/configs/buttons/enums.py +50 -0
- wbcore/metadata/configs/buttons/view_config.py +13 -46
- wbcore/metadata/configs/display/display.py +2 -2
- wbcore/metadata/configs/display/formatting.py +6 -9
- wbcore/metadata/configs/display/instance_display/display.py +5 -2
- wbcore/metadata/configs/display/instance_display/pages.py +1 -1
- wbcore/metadata/configs/display/instance_display/shortcuts.py +1 -1
- wbcore/metadata/configs/display/list_display.py +54 -40
- wbcore/metadata/configs/display/models.py +6 -0
- wbcore/metadata/configs/display/view_config.py +11 -9
- wbcore/metadata/configs/endpoints.py +11 -4
- wbcore/metadata/configs/fields.py +6 -1
- wbcore/metadata/configs/filter_fields.py +12 -13
- wbcore/metadata/configs/identifiers.py +3 -1
- wbcore/metadata/tests/test_buttons.py +13 -16
- wbcore/models/fields.py +2 -2
- wbcore/pagination.py +1 -2
- wbcore/permissions/permissions.py +2 -2
- wbcore/permissions/utils.py +2 -2
- wbcore/release_notes/display.py +2 -8
- wbcore/release_notes/serializers.py +2 -9
- wbcore/release_notes/viewsets.py +8 -2
- wbcore/reversion/viewsets/titles.py +4 -3
- wbcore/serializers/__init__.py +2 -0
- wbcore/serializers/fields/__init__.py +2 -1
- wbcore/serializers/fields/boolean.py +1 -1
- wbcore/serializers/fields/choice.py +28 -4
- wbcore/serializers/fields/datetime.py +45 -36
- wbcore/serializers/fields/fields.py +1 -1
- wbcore/serializers/fields/fsm.py +1 -1
- wbcore/serializers/fields/list.py +2 -5
- wbcore/serializers/fields/mixins.py +24 -11
- wbcore/serializers/fields/number.py +6 -23
- wbcore/serializers/fields/other.py +2 -10
- wbcore/serializers/fields/related.py +4 -6
- wbcore/serializers/fields/text.py +1 -1
- wbcore/serializers/fields/types.py +2 -0
- wbcore/serializers/serializers.py +12 -3
- wbcore/signals/__init__.py +1 -0
- wbcore/signals/clone.py +4 -0
- wbcore/signals/models.py +2 -6
- wbcore/tasks.py +2 -2
- wbcore/templates/wbcore/email_base_template.html +3 -3
- wbcore/test/e2e_helpers_methods/e2e_checks.py +10 -4
- wbcore/test/e2e_helpers_methods/e2e_helper_methods.py +4 -2
- wbcore/test/mixins.py +52 -102
- wbcore/test/tests.py +6 -9
- wbcore/test/utils.py +3 -4
- wbcore/tests/e2e/test_e2e.py +2 -2
- wbcore/tests/test_cache/test_decorators.py +4 -7
- wbcore/tests/test_configs.py +2 -5
- wbcore/tests/test_enums.py +2 -1
- wbcore/tests/test_fields/test_choice_fields.py +9 -1
- wbcore/tests/test_fields/test_number_fields.py +7 -15
- wbcore/tests/test_fields/test_other_fields.py +1 -2
- wbcore/tests/test_filters/test_mixins.py +35 -35
- wbcore/tests/test_list_display.py +0 -2
- wbcore/tests/test_models/test_mixins.py +1 -1
- wbcore/tests/test_utils/test_date.py +1 -1
- wbcore/tests/test_utils/test_date_builder.py +25 -1
- wbcore/tests/test_utils/test_primary.py +1 -1
- wbcore/urls.py +4 -0
- wbcore/utils/date.py +18 -2
- wbcore/utils/figures.py +2 -2
- wbcore/utils/models.py +21 -4
- wbcore/utils/reportlab.py +7 -0
- wbcore/utils/rrules.py +3 -1
- wbcore/utils/string_loader.py +1 -1
- wbcore/utils/strings.py +3 -3
- wbcore/utils/views.py +8 -3
- wbcore/viewsets/mixins.py +9 -4
- {wbcore-1.46.0.dist-info → wbcore-1.58.2.dist-info}/METADATA +9 -5
- {wbcore-1.46.0.dist-info → wbcore-1.58.2.dist-info}/RECORD +317 -271
- wbcore/contrib/geography/tests/test_serializers.py +0 -7
- wbcore/contrib/geography/tests/tests.py +0 -13
- wbcore/contrib/io/tests/tests.py +0 -19
- wbcore/contrib/workflow/tests/tests.py +0 -25
- {wbcore-1.46.0.dist-info → wbcore-1.58.2.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
# GERMAN TRANSLATIONS FOR AGENDA
|
|
2
|
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
|
3
|
+
# This file is distributed under the same license as the PACKAGE package.
|
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
5
|
+
#
|
|
6
|
+
#
|
|
7
|
+
msgid ""
|
|
8
|
+
msgstr ""
|
|
9
|
+
"Project-Id-Version: \n"
|
|
10
|
+
"Report-Msgid-Bugs-To: \n"
|
|
11
|
+
"POT-Creation-Date: 2025-05-29 13:33+0200\n"
|
|
12
|
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
13
|
+
"Last-Translator: \n"
|
|
14
|
+
"Language-Team: \n"
|
|
15
|
+
"Language: de\n"
|
|
16
|
+
"MIME-Version: 1.0\n"
|
|
17
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
|
18
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
19
|
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
|
20
|
+
"X-Generator: Poedit 3.2.2\n"
|
|
21
|
+
|
|
22
|
+
#: wbcore/contrib/agenda/filters/calendar_item.py:16
|
|
23
|
+
#: wbcore/contrib/agenda/viewsets/menu/conference_room.py:24
|
|
24
|
+
#: wbcore/contrib/agenda/viewsets/titles/conference_room.py:22
|
|
25
|
+
#, fuzzy
|
|
26
|
+
#| msgid "Conference Room"
|
|
27
|
+
msgid "Conference Rooms"
|
|
28
|
+
msgstr "Konferenzraum"
|
|
29
|
+
|
|
30
|
+
#: wbcore/contrib/agenda/filters/calendar_item.py:23
|
|
31
|
+
#, fuzzy
|
|
32
|
+
#| msgid "Conference Room"
|
|
33
|
+
msgid "Inside Conference Room"
|
|
34
|
+
msgstr "Konferenzraum"
|
|
35
|
+
|
|
36
|
+
#: wbcore/contrib/agenda/filters/calendar_item.py:52
|
|
37
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:48
|
|
38
|
+
msgid "Type"
|
|
39
|
+
msgstr "Typ"
|
|
40
|
+
|
|
41
|
+
#: wbcore/contrib/agenda/filters/calendar_item.py:55
|
|
42
|
+
msgid "Calendar Regarding"
|
|
43
|
+
msgstr "Kalendar Für"
|
|
44
|
+
|
|
45
|
+
#: wbcore/contrib/agenda/filters/conference_room.py:10
|
|
46
|
+
#: wbcore/contrib/agenda/viewsets/menu/conference_room.py:7
|
|
47
|
+
#: wbcore/contrib/agenda/viewsets/titles/conference_room.py:11
|
|
48
|
+
msgid "Buildings"
|
|
49
|
+
msgstr ""
|
|
50
|
+
|
|
51
|
+
#: wbcore/contrib/agenda/filters/conference_room.py:30
|
|
52
|
+
msgid "Addresses"
|
|
53
|
+
msgstr ""
|
|
54
|
+
|
|
55
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:24
|
|
56
|
+
msgid "Public"
|
|
57
|
+
msgstr "Öffentlich"
|
|
58
|
+
|
|
59
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:25
|
|
60
|
+
msgid "Private"
|
|
61
|
+
msgstr "Privat"
|
|
62
|
+
|
|
63
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:26
|
|
64
|
+
msgid "Confidential"
|
|
65
|
+
msgstr "Vertraulich"
|
|
66
|
+
|
|
67
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:33
|
|
68
|
+
msgid "Entities"
|
|
69
|
+
msgstr "Entitäten"
|
|
70
|
+
|
|
71
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:38
|
|
72
|
+
msgid "Icon"
|
|
73
|
+
msgstr ""
|
|
74
|
+
|
|
75
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:45
|
|
76
|
+
msgid "Visibility"
|
|
77
|
+
msgstr "Zugriffsbeschränkung"
|
|
78
|
+
|
|
79
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:54
|
|
80
|
+
msgid "Period"
|
|
81
|
+
msgstr "Zeitrahmen"
|
|
82
|
+
|
|
83
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:56
|
|
84
|
+
msgid "Title"
|
|
85
|
+
msgstr "Titel"
|
|
86
|
+
|
|
87
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:59
|
|
88
|
+
#: wbcore/contrib/agenda/models/conference_room.py:90
|
|
89
|
+
msgid "Conference Room"
|
|
90
|
+
msgstr "Konferenzraum"
|
|
91
|
+
|
|
92
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:66
|
|
93
|
+
msgid "All Day"
|
|
94
|
+
msgstr "Ganztägig"
|
|
95
|
+
|
|
96
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:66
|
|
97
|
+
msgid "Check this if the activity spans throughout the day"
|
|
98
|
+
msgstr ""
|
|
99
|
+
"Wählen Sie diese Option aus, wenn diese Aktivität ganztägig stattfindet"
|
|
100
|
+
|
|
101
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:68
|
|
102
|
+
msgid "Is Cancelled"
|
|
103
|
+
msgstr "Ist Abgesagt"
|
|
104
|
+
|
|
105
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:69
|
|
106
|
+
msgid "Is Deletable"
|
|
107
|
+
msgstr ""
|
|
108
|
+
|
|
109
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:208
|
|
110
|
+
msgid "Calendar Item"
|
|
111
|
+
msgstr "Kalendareintrag"
|
|
112
|
+
|
|
113
|
+
#: wbcore/contrib/agenda/models/calendar_item.py:209
|
|
114
|
+
msgid "Calendar Items"
|
|
115
|
+
msgstr "Kalendareinträge"
|
|
116
|
+
|
|
117
|
+
#: wbcore/contrib/agenda/models/conference_room.py:9
|
|
118
|
+
#: wbcore/contrib/agenda/models/conference_room.py:49
|
|
119
|
+
#: wbcore/contrib/agenda/viewsets/display/conference_room.py:18
|
|
120
|
+
#: wbcore/contrib/agenda/viewsets/display/conference_room.py:31
|
|
121
|
+
msgid "Name"
|
|
122
|
+
msgstr ""
|
|
123
|
+
|
|
124
|
+
#: wbcore/contrib/agenda/models/conference_room.py:13
|
|
125
|
+
#: wbcore/contrib/agenda/viewsets/display/conference_room.py:19
|
|
126
|
+
msgid "Address"
|
|
127
|
+
msgstr ""
|
|
128
|
+
|
|
129
|
+
#: wbcore/contrib/agenda/models/conference_room.py:39
|
|
130
|
+
#: wbcore/contrib/agenda/models/conference_room.py:54
|
|
131
|
+
#: wbcore/contrib/agenda/viewsets/display/conference_room.py:33
|
|
132
|
+
msgid "Building"
|
|
133
|
+
msgstr ""
|
|
134
|
+
|
|
135
|
+
#: wbcore/contrib/agenda/models/conference_room.py:50
|
|
136
|
+
msgid "Email Address"
|
|
137
|
+
msgstr ""
|
|
138
|
+
|
|
139
|
+
#: wbcore/contrib/agenda/models/conference_room.py:57
|
|
140
|
+
#: wbcore/contrib/agenda/viewsets/display/conference_room.py:34
|
|
141
|
+
msgid "Capacity"
|
|
142
|
+
msgstr ""
|
|
143
|
+
|
|
144
|
+
#: wbcore/contrib/agenda/models/conference_room.py:58
|
|
145
|
+
#: wbcore/contrib/agenda/viewsets/display/conference_room.py:35
|
|
146
|
+
msgid "Capable of Videoconferencing"
|
|
147
|
+
msgstr ""
|
|
148
|
+
|
|
149
|
+
#: wbcore/contrib/agenda/serializers/calendar_item.py:46
|
|
150
|
+
msgid "Item"
|
|
151
|
+
msgstr ""
|
|
152
|
+
|
|
153
|
+
#: wbcore/contrib/agenda/serializers/calendar_item.py:48
|
|
154
|
+
#, fuzzy
|
|
155
|
+
#| msgid "Private {type}"
|
|
156
|
+
msgid "Private {}"
|
|
157
|
+
msgstr "Private/r {type}"
|
|
158
|
+
|
|
159
|
+
#: wbcore/contrib/agenda/serializers/calendar_item.py:48
|
|
160
|
+
#, fuzzy
|
|
161
|
+
#| msgid "Confidential"
|
|
162
|
+
msgid "Confidential {}"
|
|
163
|
+
msgstr "Vertraulich"
|
|
164
|
+
|
|
165
|
+
#: wbcore/contrib/agenda/serializers/conference_room.py:66
|
|
166
|
+
msgid "A building with this name and address already exists."
|
|
167
|
+
msgstr ""
|
|
168
|
+
|
|
169
|
+
#: wbcore/contrib/agenda/serializers/conference_room.py:96
|
|
170
|
+
msgid "A conference room with this email address already exists."
|
|
171
|
+
msgstr ""
|
|
172
|
+
|
|
173
|
+
#: wbcore/contrib/agenda/serializers/conference_room.py:98
|
|
174
|
+
msgid "A conference room with this name already exists in this building."
|
|
175
|
+
msgstr ""
|
|
176
|
+
|
|
177
|
+
#: wbcore/contrib/agenda/viewsets/buttons/conference_room.py:16
|
|
178
|
+
msgid "New Address"
|
|
179
|
+
msgstr ""
|
|
180
|
+
|
|
181
|
+
#: wbcore/contrib/agenda/viewsets/display/conference_room.py:32
|
|
182
|
+
msgid "E-Mail-Address"
|
|
183
|
+
msgstr ""
|
|
184
|
+
|
|
185
|
+
#: wbcore/contrib/agenda/viewsets/menu/calendar_items.py:7
|
|
186
|
+
#: wbcore/contrib/agenda/viewsets/titles/calendar_items.py:8
|
|
187
|
+
msgid "Calendar"
|
|
188
|
+
msgstr "Kalendar"
|
|
189
|
+
|
|
190
|
+
#: wbcore/contrib/agenda/viewsets/menu/conference_room.py:14
|
|
191
|
+
msgid "Create Building"
|
|
192
|
+
msgstr ""
|
|
193
|
+
|
|
194
|
+
#: wbcore/contrib/agenda/viewsets/menu/conference_room.py:31
|
|
195
|
+
#, fuzzy
|
|
196
|
+
#| msgid "Conference Room"
|
|
197
|
+
msgid "Create Conference Room"
|
|
198
|
+
msgstr "Konferenzraum"
|
|
199
|
+
|
|
200
|
+
#: wbcore/contrib/agenda/viewsets/titles/conference_room.py:8
|
|
201
|
+
msgid "Building: {{name}}"
|
|
202
|
+
msgstr ""
|
|
203
|
+
|
|
204
|
+
#: wbcore/contrib/agenda/viewsets/titles/conference_room.py:14
|
|
205
|
+
msgid "New Building"
|
|
206
|
+
msgstr ""
|
|
207
|
+
|
|
208
|
+
#: wbcore/contrib/agenda/viewsets/titles/conference_room.py:19
|
|
209
|
+
#, fuzzy
|
|
210
|
+
#| msgid "Conference Room"
|
|
211
|
+
msgid "Conference Room: {{name}}"
|
|
212
|
+
msgstr "Konferenzraum"
|
|
213
|
+
|
|
214
|
+
#: wbcore/contrib/agenda/viewsets/titles/conference_room.py:25
|
|
215
|
+
#, fuzzy
|
|
216
|
+
#| msgid "Conference Room"
|
|
217
|
+
msgid "New Conference Room"
|
|
218
|
+
msgstr "Konferenzraum"
|
|
219
|
+
|
|
220
|
+
#~ msgid "Absence Request"
|
|
221
|
+
#~ msgstr "Abwesenheitsantrag"
|
|
222
|
+
|
|
223
|
+
#~ msgid "Activity"
|
|
224
|
+
#~ msgstr "Aktivität"
|
|
225
|
+
|
|
226
|
+
#~ msgid "Task"
|
|
227
|
+
#~ msgstr "Aufgabe"
|
|
228
|
+
|
|
229
|
+
#~ msgid "Check this if it takes place in the conference room"
|
|
230
|
+
#~ msgstr ""
|
|
231
|
+
#~ "Wählen Sie diese Option aus, wenn die Aktivität im Konferenzraum "
|
|
232
|
+
#~ "stattfindet"
|
|
233
|
+
|
|
234
|
+
#, python-brace-format
|
|
235
|
+
#~ msgid "Confidential {type}"
|
|
236
|
+
#~ msgstr "Vertrauliche/r {type}"
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
# SOME DESCRIPTIVE TITLE.
|
|
2
|
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
|
3
|
+
# This file is distributed under the same license as the PACKAGE package.
|
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
5
|
+
#
|
|
6
|
+
msgid ""
|
|
7
|
+
msgstr ""
|
|
8
|
+
"Project-Id-Version: PACKAGE VERSION\n"
|
|
9
|
+
"Report-Msgid-Bugs-To: \n"
|
|
10
|
+
"POT-Creation-Date: 2025-05-30 11:37+0200\n"
|
|
11
|
+
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
|
12
|
+
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
|
13
|
+
"Language-Team: LANGUAGE <LL@li.org>\n"
|
|
14
|
+
"Language: \n"
|
|
15
|
+
"MIME-Version: 1.0\n"
|
|
16
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
|
17
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
18
|
+
|
|
19
|
+
#: contrib/agenda/filters/calendar_item.py:16
|
|
20
|
+
#: contrib/agenda/viewsets/menu/conference_room.py:24
|
|
21
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:22
|
|
22
|
+
msgid "Conference Rooms"
|
|
23
|
+
msgstr ""
|
|
24
|
+
|
|
25
|
+
#: contrib/agenda/filters/calendar_item.py:23
|
|
26
|
+
msgid "Inside Conference Room"
|
|
27
|
+
msgstr ""
|
|
28
|
+
|
|
29
|
+
#: contrib/agenda/filters/calendar_item.py:52
|
|
30
|
+
#: contrib/agenda/models/calendar_item.py:48
|
|
31
|
+
msgid "Type"
|
|
32
|
+
msgstr ""
|
|
33
|
+
|
|
34
|
+
#: contrib/agenda/filters/calendar_item.py:55
|
|
35
|
+
msgid "Calendar Regarding"
|
|
36
|
+
msgstr ""
|
|
37
|
+
|
|
38
|
+
#: contrib/agenda/filters/conference_room.py:10
|
|
39
|
+
#: contrib/agenda/viewsets/menu/conference_room.py:7
|
|
40
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:11
|
|
41
|
+
msgid "Buildings"
|
|
42
|
+
msgstr ""
|
|
43
|
+
|
|
44
|
+
#: contrib/agenda/filters/conference_room.py:30
|
|
45
|
+
msgid "Addresses"
|
|
46
|
+
msgstr ""
|
|
47
|
+
|
|
48
|
+
#: contrib/agenda/models/calendar_item.py:24
|
|
49
|
+
msgid "Public"
|
|
50
|
+
msgstr ""
|
|
51
|
+
|
|
52
|
+
#: contrib/agenda/models/calendar_item.py:25
|
|
53
|
+
msgid "Private"
|
|
54
|
+
msgstr ""
|
|
55
|
+
|
|
56
|
+
#: contrib/agenda/models/calendar_item.py:26
|
|
57
|
+
msgid "Confidential"
|
|
58
|
+
msgstr ""
|
|
59
|
+
|
|
60
|
+
#: contrib/agenda/models/calendar_item.py:33
|
|
61
|
+
msgid "Entities"
|
|
62
|
+
msgstr ""
|
|
63
|
+
|
|
64
|
+
#: contrib/agenda/models/calendar_item.py:38
|
|
65
|
+
msgid "Icon"
|
|
66
|
+
msgstr ""
|
|
67
|
+
|
|
68
|
+
#: contrib/agenda/models/calendar_item.py:45
|
|
69
|
+
msgid "Visibility"
|
|
70
|
+
msgstr ""
|
|
71
|
+
|
|
72
|
+
#: contrib/agenda/models/calendar_item.py:54
|
|
73
|
+
msgid "Period"
|
|
74
|
+
msgstr ""
|
|
75
|
+
|
|
76
|
+
#: contrib/agenda/models/calendar_item.py:56
|
|
77
|
+
msgid "Title"
|
|
78
|
+
msgstr ""
|
|
79
|
+
|
|
80
|
+
#: contrib/agenda/models/calendar_item.py:59
|
|
81
|
+
#: contrib/agenda/models/conference_room.py:90
|
|
82
|
+
msgid "Conference Room"
|
|
83
|
+
msgstr ""
|
|
84
|
+
|
|
85
|
+
#: contrib/agenda/models/calendar_item.py:66
|
|
86
|
+
msgid "All Day"
|
|
87
|
+
msgstr ""
|
|
88
|
+
|
|
89
|
+
#: contrib/agenda/models/calendar_item.py:66
|
|
90
|
+
msgid "Check this if the activity spans throughout the day"
|
|
91
|
+
msgstr ""
|
|
92
|
+
|
|
93
|
+
#: contrib/agenda/models/calendar_item.py:68
|
|
94
|
+
msgid "Is Cancelled"
|
|
95
|
+
msgstr ""
|
|
96
|
+
|
|
97
|
+
#: contrib/agenda/models/calendar_item.py:69
|
|
98
|
+
msgid "Is Deletable"
|
|
99
|
+
msgstr ""
|
|
100
|
+
|
|
101
|
+
#: contrib/agenda/models/calendar_item.py:208
|
|
102
|
+
msgid "Calendar Item"
|
|
103
|
+
msgstr ""
|
|
104
|
+
|
|
105
|
+
#: contrib/agenda/models/calendar_item.py:209
|
|
106
|
+
msgid "Calendar Items"
|
|
107
|
+
msgstr ""
|
|
108
|
+
|
|
109
|
+
#: contrib/agenda/models/conference_room.py:9
|
|
110
|
+
#: contrib/agenda/models/conference_room.py:49
|
|
111
|
+
#: contrib/agenda/viewsets/display/conference_room.py:18
|
|
112
|
+
#: contrib/agenda/viewsets/display/conference_room.py:31
|
|
113
|
+
msgid "Name"
|
|
114
|
+
msgstr ""
|
|
115
|
+
|
|
116
|
+
#: contrib/agenda/models/conference_room.py:13
|
|
117
|
+
#: contrib/agenda/viewsets/display/conference_room.py:19
|
|
118
|
+
msgid "Address"
|
|
119
|
+
msgstr ""
|
|
120
|
+
|
|
121
|
+
#: contrib/agenda/models/conference_room.py:39
|
|
122
|
+
#: contrib/agenda/models/conference_room.py:54
|
|
123
|
+
#: contrib/agenda/viewsets/display/conference_room.py:33
|
|
124
|
+
msgid "Building"
|
|
125
|
+
msgstr ""
|
|
126
|
+
|
|
127
|
+
#: contrib/agenda/models/conference_room.py:50
|
|
128
|
+
msgid "Email Address"
|
|
129
|
+
msgstr ""
|
|
130
|
+
|
|
131
|
+
#: contrib/agenda/models/conference_room.py:57
|
|
132
|
+
#: contrib/agenda/viewsets/display/conference_room.py:34
|
|
133
|
+
msgid "Capacity"
|
|
134
|
+
msgstr ""
|
|
135
|
+
|
|
136
|
+
#: contrib/agenda/models/conference_room.py:58
|
|
137
|
+
#: contrib/agenda/viewsets/display/conference_room.py:35
|
|
138
|
+
msgid "Capable of Videoconferencing"
|
|
139
|
+
msgstr ""
|
|
140
|
+
|
|
141
|
+
#: contrib/agenda/serializers/calendar_item.py:46
|
|
142
|
+
msgid "Item"
|
|
143
|
+
msgstr ""
|
|
144
|
+
|
|
145
|
+
#: contrib/agenda/serializers/calendar_item.py:48
|
|
146
|
+
msgid "Private {}"
|
|
147
|
+
msgstr ""
|
|
148
|
+
|
|
149
|
+
#: contrib/agenda/serializers/calendar_item.py:48
|
|
150
|
+
msgid "Confidential {}"
|
|
151
|
+
msgstr ""
|
|
152
|
+
|
|
153
|
+
#: contrib/agenda/serializers/conference_room.py:66
|
|
154
|
+
msgid "A building with this name and address already exists."
|
|
155
|
+
msgstr ""
|
|
156
|
+
|
|
157
|
+
#: contrib/agenda/serializers/conference_room.py:96
|
|
158
|
+
msgid "A conference room with this email address already exists."
|
|
159
|
+
msgstr ""
|
|
160
|
+
|
|
161
|
+
#: contrib/agenda/serializers/conference_room.py:98
|
|
162
|
+
msgid "A conference room with this name already exists in this building."
|
|
163
|
+
msgstr ""
|
|
164
|
+
|
|
165
|
+
#: contrib/agenda/viewsets/buttons/conference_room.py:16
|
|
166
|
+
msgid "New Address"
|
|
167
|
+
msgstr ""
|
|
168
|
+
|
|
169
|
+
#: contrib/agenda/viewsets/display/conference_room.py:32
|
|
170
|
+
msgid "E-Mail-Address"
|
|
171
|
+
msgstr ""
|
|
172
|
+
|
|
173
|
+
#: contrib/agenda/viewsets/menu/calendar_items.py:7
|
|
174
|
+
#: contrib/agenda/viewsets/titles/calendar_items.py:8
|
|
175
|
+
msgid "Calendar"
|
|
176
|
+
msgstr ""
|
|
177
|
+
|
|
178
|
+
#: contrib/agenda/viewsets/menu/conference_room.py:14
|
|
179
|
+
msgid "Create Building"
|
|
180
|
+
msgstr ""
|
|
181
|
+
|
|
182
|
+
#: contrib/agenda/viewsets/menu/conference_room.py:31
|
|
183
|
+
msgid "Create Conference Room"
|
|
184
|
+
msgstr ""
|
|
185
|
+
|
|
186
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:8
|
|
187
|
+
msgid "Building: {{name}}"
|
|
188
|
+
msgstr ""
|
|
189
|
+
|
|
190
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:14
|
|
191
|
+
msgid "New Building"
|
|
192
|
+
msgstr ""
|
|
193
|
+
|
|
194
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:19
|
|
195
|
+
msgid "Conference Room: {{name}}"
|
|
196
|
+
msgstr ""
|
|
197
|
+
|
|
198
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:25
|
|
199
|
+
msgid "New Conference Room"
|
|
200
|
+
msgstr ""
|
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
# SOME DESCRIPTIVE TITLE.
|
|
2
|
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
|
3
|
+
# This file is distributed under the same license as the PACKAGE package.
|
|
4
|
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
|
5
|
+
#
|
|
6
|
+
#, fuzzy
|
|
7
|
+
msgid ""
|
|
8
|
+
msgstr ""
|
|
9
|
+
"Project-Id-Version: PACKAGE VERSION\n"
|
|
10
|
+
"Report-Msgid-Bugs-To: \n"
|
|
11
|
+
"POT-Creation-Date: 2025-05-30 11:37+0200\n"
|
|
12
|
+
"PO-Revision-Date: 2025-05-30 09:40+0000\n"
|
|
13
|
+
"Language-Team: French (https://app.transifex.com/stainly/teams/171242/fr/)\n"
|
|
14
|
+
"MIME-Version: 1.0\n"
|
|
15
|
+
"Content-Type: text/plain; charset=UTF-8\n"
|
|
16
|
+
"Content-Transfer-Encoding: 8bit\n"
|
|
17
|
+
"Language: fr\n"
|
|
18
|
+
"Plural-Forms: nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;\n"
|
|
19
|
+
|
|
20
|
+
#: contrib/agenda/filters/calendar_item.py:16
|
|
21
|
+
#: contrib/agenda/viewsets/menu/conference_room.py:24
|
|
22
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:22
|
|
23
|
+
msgid "Conference Rooms"
|
|
24
|
+
msgstr ""
|
|
25
|
+
|
|
26
|
+
#: contrib/agenda/filters/calendar_item.py:23
|
|
27
|
+
msgid "Inside Conference Room"
|
|
28
|
+
msgstr ""
|
|
29
|
+
|
|
30
|
+
#: contrib/agenda/filters/calendar_item.py:52
|
|
31
|
+
#: contrib/agenda/models/calendar_item.py:48
|
|
32
|
+
msgid "Type"
|
|
33
|
+
msgstr ""
|
|
34
|
+
|
|
35
|
+
#: contrib/agenda/filters/calendar_item.py:55
|
|
36
|
+
msgid "Calendar Regarding"
|
|
37
|
+
msgstr ""
|
|
38
|
+
|
|
39
|
+
#: contrib/agenda/filters/conference_room.py:10
|
|
40
|
+
#: contrib/agenda/viewsets/menu/conference_room.py:7
|
|
41
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:11
|
|
42
|
+
msgid "Buildings"
|
|
43
|
+
msgstr ""
|
|
44
|
+
|
|
45
|
+
#: contrib/agenda/filters/conference_room.py:30
|
|
46
|
+
msgid "Addresses"
|
|
47
|
+
msgstr ""
|
|
48
|
+
|
|
49
|
+
#: contrib/agenda/models/calendar_item.py:24
|
|
50
|
+
msgid "Public"
|
|
51
|
+
msgstr ""
|
|
52
|
+
|
|
53
|
+
#: contrib/agenda/models/calendar_item.py:25
|
|
54
|
+
msgid "Private"
|
|
55
|
+
msgstr ""
|
|
56
|
+
|
|
57
|
+
#: contrib/agenda/models/calendar_item.py:26
|
|
58
|
+
msgid "Confidential"
|
|
59
|
+
msgstr ""
|
|
60
|
+
|
|
61
|
+
#: contrib/agenda/models/calendar_item.py:33
|
|
62
|
+
msgid "Entities"
|
|
63
|
+
msgstr ""
|
|
64
|
+
|
|
65
|
+
#: contrib/agenda/models/calendar_item.py:38
|
|
66
|
+
msgid "Icon"
|
|
67
|
+
msgstr ""
|
|
68
|
+
|
|
69
|
+
#: contrib/agenda/models/calendar_item.py:45
|
|
70
|
+
msgid "Visibility"
|
|
71
|
+
msgstr ""
|
|
72
|
+
|
|
73
|
+
#: contrib/agenda/models/calendar_item.py:54
|
|
74
|
+
msgid "Period"
|
|
75
|
+
msgstr ""
|
|
76
|
+
|
|
77
|
+
#: contrib/agenda/models/calendar_item.py:56
|
|
78
|
+
msgid "Title"
|
|
79
|
+
msgstr ""
|
|
80
|
+
|
|
81
|
+
#: contrib/agenda/models/calendar_item.py:59
|
|
82
|
+
#: contrib/agenda/models/conference_room.py:90
|
|
83
|
+
msgid "Conference Room"
|
|
84
|
+
msgstr ""
|
|
85
|
+
|
|
86
|
+
#: contrib/agenda/models/calendar_item.py:66
|
|
87
|
+
msgid "All Day"
|
|
88
|
+
msgstr ""
|
|
89
|
+
|
|
90
|
+
#: contrib/agenda/models/calendar_item.py:66
|
|
91
|
+
msgid "Check this if the activity spans throughout the day"
|
|
92
|
+
msgstr ""
|
|
93
|
+
|
|
94
|
+
#: contrib/agenda/models/calendar_item.py:68
|
|
95
|
+
msgid "Is Cancelled"
|
|
96
|
+
msgstr ""
|
|
97
|
+
|
|
98
|
+
#: contrib/agenda/models/calendar_item.py:69
|
|
99
|
+
msgid "Is Deletable"
|
|
100
|
+
msgstr ""
|
|
101
|
+
|
|
102
|
+
#: contrib/agenda/models/calendar_item.py:208
|
|
103
|
+
msgid "Calendar Item"
|
|
104
|
+
msgstr ""
|
|
105
|
+
|
|
106
|
+
#: contrib/agenda/models/calendar_item.py:209
|
|
107
|
+
msgid "Calendar Items"
|
|
108
|
+
msgstr ""
|
|
109
|
+
|
|
110
|
+
#: contrib/agenda/models/conference_room.py:9
|
|
111
|
+
#: contrib/agenda/models/conference_room.py:49
|
|
112
|
+
#: contrib/agenda/viewsets/display/conference_room.py:18
|
|
113
|
+
#: contrib/agenda/viewsets/display/conference_room.py:31
|
|
114
|
+
msgid "Name"
|
|
115
|
+
msgstr ""
|
|
116
|
+
|
|
117
|
+
#: contrib/agenda/models/conference_room.py:13
|
|
118
|
+
#: contrib/agenda/viewsets/display/conference_room.py:19
|
|
119
|
+
msgid "Address"
|
|
120
|
+
msgstr ""
|
|
121
|
+
|
|
122
|
+
#: contrib/agenda/models/conference_room.py:39
|
|
123
|
+
#: contrib/agenda/models/conference_room.py:54
|
|
124
|
+
#: contrib/agenda/viewsets/display/conference_room.py:33
|
|
125
|
+
msgid "Building"
|
|
126
|
+
msgstr ""
|
|
127
|
+
|
|
128
|
+
#: contrib/agenda/models/conference_room.py:50
|
|
129
|
+
msgid "Email Address"
|
|
130
|
+
msgstr ""
|
|
131
|
+
|
|
132
|
+
#: contrib/agenda/models/conference_room.py:57
|
|
133
|
+
#: contrib/agenda/viewsets/display/conference_room.py:34
|
|
134
|
+
msgid "Capacity"
|
|
135
|
+
msgstr ""
|
|
136
|
+
|
|
137
|
+
#: contrib/agenda/models/conference_room.py:58
|
|
138
|
+
#: contrib/agenda/viewsets/display/conference_room.py:35
|
|
139
|
+
msgid "Capable of Videoconferencing"
|
|
140
|
+
msgstr ""
|
|
141
|
+
|
|
142
|
+
#: contrib/agenda/serializers/calendar_item.py:46
|
|
143
|
+
msgid "Item"
|
|
144
|
+
msgstr ""
|
|
145
|
+
|
|
146
|
+
#: contrib/agenda/serializers/calendar_item.py:48
|
|
147
|
+
msgid "Private {}"
|
|
148
|
+
msgstr ""
|
|
149
|
+
|
|
150
|
+
#: contrib/agenda/serializers/calendar_item.py:48
|
|
151
|
+
msgid "Confidential {}"
|
|
152
|
+
msgstr ""
|
|
153
|
+
|
|
154
|
+
#: contrib/agenda/serializers/conference_room.py:66
|
|
155
|
+
msgid "A building with this name and address already exists."
|
|
156
|
+
msgstr ""
|
|
157
|
+
|
|
158
|
+
#: contrib/agenda/serializers/conference_room.py:96
|
|
159
|
+
msgid "A conference room with this email address already exists."
|
|
160
|
+
msgstr ""
|
|
161
|
+
|
|
162
|
+
#: contrib/agenda/serializers/conference_room.py:98
|
|
163
|
+
msgid "A conference room with this name already exists in this building."
|
|
164
|
+
msgstr ""
|
|
165
|
+
|
|
166
|
+
#: contrib/agenda/viewsets/buttons/conference_room.py:16
|
|
167
|
+
msgid "New Address"
|
|
168
|
+
msgstr ""
|
|
169
|
+
|
|
170
|
+
#: contrib/agenda/viewsets/display/conference_room.py:32
|
|
171
|
+
msgid "E-Mail-Address"
|
|
172
|
+
msgstr ""
|
|
173
|
+
|
|
174
|
+
#: contrib/agenda/viewsets/menu/calendar_items.py:7
|
|
175
|
+
#: contrib/agenda/viewsets/titles/calendar_items.py:8
|
|
176
|
+
msgid "Calendar"
|
|
177
|
+
msgstr ""
|
|
178
|
+
|
|
179
|
+
#: contrib/agenda/viewsets/menu/conference_room.py:14
|
|
180
|
+
msgid "Create Building"
|
|
181
|
+
msgstr ""
|
|
182
|
+
|
|
183
|
+
#: contrib/agenda/viewsets/menu/conference_room.py:31
|
|
184
|
+
msgid "Create Conference Room"
|
|
185
|
+
msgstr ""
|
|
186
|
+
|
|
187
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:8
|
|
188
|
+
msgid "Building: {{name}}"
|
|
189
|
+
msgstr ""
|
|
190
|
+
|
|
191
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:14
|
|
192
|
+
msgid "New Building"
|
|
193
|
+
msgstr ""
|
|
194
|
+
|
|
195
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:19
|
|
196
|
+
msgid "Conference Room: {{name}}"
|
|
197
|
+
msgstr ""
|
|
198
|
+
|
|
199
|
+
#: contrib/agenda/viewsets/titles/conference_room.py:25
|
|
200
|
+
msgid "New Conference Room"
|
|
201
|
+
msgstr ""
|
|
@@ -38,13 +38,13 @@ class CalendarItemRepresentationViewSet(viewsets.RepresentationViewSet):
|
|
|
38
38
|
|
|
39
39
|
|
|
40
40
|
class CalendarItemMetaClass(type(viewsets.ModelViewSet)):
|
|
41
|
-
def __new__(
|
|
42
|
-
_class = super().__new__(
|
|
41
|
+
def __new__(cls, *args, **kwargs):
|
|
42
|
+
_class = super().__new__(cls, *args, **kwargs)
|
|
43
43
|
dependant_identifiers = []
|
|
44
44
|
for subclass in get_inheriting_subclasses(_class):
|
|
45
45
|
if identifier := getattr(subclass, "IDENTIFIER", None):
|
|
46
46
|
dependant_identifiers.append(identifier)
|
|
47
|
-
|
|
47
|
+
_class.DEPENDANT_IDENTIFIERS = dependant_identifiers
|
|
48
48
|
return _class
|
|
49
49
|
|
|
50
50
|
|
|
@@ -68,7 +68,7 @@ class CalendarItemViewSet(viewsets.ModelViewSet, metaclass=CalendarItemMetaClass
|
|
|
68
68
|
Property to store the unioned queryset of draggable calendar items. Each module inheriting from CalendarItem are expected to define the signal receiver
|
|
69
69
|
"""
|
|
70
70
|
qs = CalendarItem.objects.none()
|
|
71
|
-
for
|
|
71
|
+
for _, union_qs in draggable_calendar_item_ids.send(CalendarItem, request=self.request):
|
|
72
72
|
qs = qs.union(union_qs)
|
|
73
73
|
return qs
|
|
74
74
|
|
|
@@ -154,15 +154,15 @@ def get_ics(request):
|
|
|
154
154
|
min_max_range = TimestamptzRange(minimum_date, maximum_date)
|
|
155
155
|
gen = qs.filter(period__contained_by=min_max_range)
|
|
156
156
|
|
|
157
|
-
|
|
157
|
+
ical = Calendar()
|
|
158
158
|
for occurence in gen:
|
|
159
159
|
start = occurence.period.lower
|
|
160
160
|
end = occurence.period.upper
|
|
161
161
|
activity = occurence
|
|
162
162
|
event = activity.to_ics(start, end)
|
|
163
163
|
if event:
|
|
164
|
-
|
|
165
|
-
data = StringIO(str(
|
|
164
|
+
ical.events.add(event)
|
|
165
|
+
data = StringIO(str(ical))
|
|
166
166
|
response = HttpResponse(data, content_type="text/calendar")
|
|
167
167
|
response["Content-Disposition"] = f'attachment; filename="{profile.computed_str}.ics"'
|
|
168
168
|
return response
|
|
@@ -3,16 +3,10 @@ from django.utils.translation import gettext as _
|
|
|
3
3
|
from wbcore.menus import ItemPermission, MenuItem
|
|
4
4
|
from wbcore.permissions.shortcuts import is_internal_user
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
def default_calendar_get_params(request) -> dict:
|
|
8
|
-
return {"entities": request.user.profile.id}
|
|
9
|
-
|
|
10
|
-
|
|
11
6
|
CALENDAR_MENUITEM = MenuItem(
|
|
12
7
|
label=_("Calendar"),
|
|
13
8
|
endpoint="wbcore:agenda:calendaritem-list",
|
|
14
9
|
permission=ItemPermission(
|
|
15
10
|
method=lambda request: is_internal_user(request.user), permissions=["agenda.view_calendaritem"]
|
|
16
11
|
),
|
|
17
|
-
endpoint_get_parameters=default_calendar_get_params,
|
|
18
12
|
)
|