diff --git a/src/locale/de/LC_MESSAGES/django.po b/src/locale/de/LC_MESSAGES/django.po index 03ac8c4..6ed30cc 100644 --- a/src/locale/de/LC_MESSAGES/django.po +++ b/src/locale/de/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-25 15:12+0000\n" +"POT-Creation-Date: 2026-03-15 21:51+0000\n" "PO-Revision-Date: 2023-04-17 23:37+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -18,1689 +18,100 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Poedit 3.1.1\n" -#: venv/lib/python3.11/site-packages/click/_termui_impl.py:518 -#, python-brace-format -msgid "{editor}: Editing failed" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/_termui_impl.py:522 -#, python-brace-format -msgid "{editor}: Editing failed: {e}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1120 -#, fuzzy -#| msgid "Abort" -msgid "Aborted!" -msgstr "Abbrechen" - -#: venv/lib/python3.11/site-packages/click/core.py:1309 -#: venv/lib/python3.11/site-packages/click/decorators.py:559 -msgid "Show this message and exit." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1340 -#: venv/lib/python3.11/site-packages/click/core.py:1370 -#, python-brace-format -msgid "(Deprecated) {text}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1387 -#, fuzzy -#| msgid "Actions" -msgid "Options" -msgstr "Aktionen" - -#: venv/lib/python3.11/site-packages/click/core.py:1413 -#, python-brace-format -msgid "Got unexpected extra argument ({args})" -msgid_plural "Got unexpected extra arguments ({args})" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/core.py:1429 -msgid "DeprecationWarning: The command {name!r} is deprecated." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1636 -msgid "Commands" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1668 -msgid "Missing command." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1746 -msgid "No such command {name!r}." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2310 -msgid "Value must be an iterable." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2331 -#, python-brace-format -msgid "Takes {nargs} values but 1 was given." -msgid_plural "Takes {nargs} values but {len} were given." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/core.py:2778 -#, python-brace-format -msgid "env var: {var}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2808 -msgid "(dynamic)" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2821 -#, python-brace-format -msgid "default: {default}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2834 -#, fuzzy -#| msgid "Required" -msgid "required" -msgstr "Benötigt" - -#: venv/lib/python3.11/site-packages/click/decorators.py:465 -#, python-format -msgid "%(prog)s, version %(version)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/decorators.py:528 -msgid "Show the version and exit." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:44 -#: venv/lib/python3.11/site-packages/click/exceptions.py:80 -#, python-brace-format -msgid "Error: {message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:72 -#, python-brace-format -msgid "Try '{command} {option}' for help." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:121 -#, python-brace-format -msgid "Invalid value: {message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:123 -#, python-brace-format -msgid "Invalid value for {param_hint}: {message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:179 -msgid "Missing argument" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:181 -msgid "Missing option" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:183 -msgid "Missing parameter" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:185 -#, python-brace-format -msgid "Missing {param_type}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:192 -#, python-brace-format -msgid "Missing parameter: {param_name}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:212 -#, python-brace-format -msgid "No such option: {name}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:224 -#, python-brace-format -msgid "Did you mean {possibility}?" -msgid_plural "(Possible options: {possibilities})" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:262 -#, fuzzy -#| msgid "Unknown User" -msgid "unknown error" -msgstr "Unbekannter Benutzer" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:269 -msgid "Could not open file {filename!r}: {message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/parser.py:231 -msgid "Argument {name!r} takes {nargs} values." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/parser.py:413 -msgid "Option {name!r} does not take a value." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/parser.py:474 -msgid "Option {name!r} requires an argument." -msgid_plural "Option {name!r} requires {nargs} arguments." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/shell_completion.py:319 -msgid "Shell completion is not supported for Bash versions older than 4.4." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/shell_completion.py:326 -msgid "Couldn't detect Bash version, shell completion is not supported." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:158 -msgid "Repeat for confirmation" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:174 -msgid "Error: The value you entered was invalid." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:176 -#, python-brace-format -msgid "Error: {e.message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:187 -msgid "Error: The two entered values do not match." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:243 -msgid "Error: invalid input" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:773 -msgid "Press any key to continue..." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:266 -#, python-brace-format -msgid "" -"Choose from:\n" -"\t{choices}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:298 -msgid "{value!r} is not {choice}." -msgid_plural "{value!r} is not one of {choices}." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/types.py:392 -msgid "{value!r} does not match the format {format}." -msgid_plural "{value!r} does not match the formats {formats}." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/types.py:414 -msgid "{value!r} is not a valid {number_type}." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:470 -#, python-brace-format -msgid "{value} is not in the range {range}." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:611 -msgid "{value!r} is not a valid boolean." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:635 -msgid "{value!r} is not a valid UUID." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:822 -#, fuzzy -#| msgid "Profile" -msgid "file" -msgstr "Profil" - -#: venv/lib/python3.11/site-packages/click/types.py:824 -msgid "directory" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:826 -msgid "path" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:877 -msgid "{name} {filename!r} does not exist." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:886 -msgid "{name} {filename!r} is a file." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:894 -#, python-brace-format -msgid "{name} '{filename}' is a directory." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:903 -msgid "{name} {filename!r} is not readable." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:912 -msgid "{name} {filename!r} is not writable." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:921 -msgid "{name} {filename!r} is not executable." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:988 -#, python-brace-format -msgid "{len_type} values are required, but {len_value} was given." -msgid_plural "{len_type} values are required, but {len_value} were given." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/colorfield/validators.py:9 -msgid "Enter a valid hex color, eg. #000000" -msgstr "" - -#: venv/lib/python3.11/site-packages/colorfield/validators.py:17 -msgid "Enter a valid hexa color, eg. #00000000" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/contrib/messages/apps.py:7 -msgid "Messages" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/contrib/sitemaps/apps.py:8 -msgid "Site Maps" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/contrib/staticfiles/apps.py:9 -msgid "Static Files" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/contrib/syndication/apps.py:7 -#, fuzzy -#| msgid "Organization" -msgid "Syndication" -msgstr "Organisation" - -#. Translators: String used to replace omitted page numbers in elided page -#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. -#: venv/lib/python3.11/site-packages/django/core/paginator.py:30 -msgid "…" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/paginator.py:50 -msgid "That page number is not an integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/paginator.py:52 -msgid "That page number is less than 1" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/paginator.py:57 -msgid "That page contains no results" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:23 -msgid "Enter a valid value." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:105 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:743 -msgid "Enter a valid URL." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:166 -msgid "Enter a valid integer." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:177 -msgid "Enter a valid email address." -msgstr "" - -#. Translators: "letters" means latin letters: a-z and A-Z. -#: venv/lib/python3.11/site-packages/django/core/validators.py:285 -msgid "" -"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:293 -msgid "" -"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " -"hyphens." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:305 -#: venv/lib/python3.11/site-packages/django/core/validators.py:313 -#: venv/lib/python3.11/site-packages/django/core/validators.py:342 -msgid "Enter a valid IPv4 address." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:322 -#: venv/lib/python3.11/site-packages/django/core/validators.py:343 -msgid "Enter a valid IPv6 address." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:334 -#: venv/lib/python3.11/site-packages/django/core/validators.py:341 -msgid "Enter a valid IPv4 or IPv6 address." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:377 -msgid "Enter only digits separated by commas." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:383 -#, python-format -msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:418 -#, python-format -msgid "Ensure this value is less than or equal to %(limit_value)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:427 -#, python-format -msgid "Ensure this value is greater than or equal to %(limit_value)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:437 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:455 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:478 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:343 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:378 -#, fuzzy -#| msgid "Enter Name" -msgid "Enter a number." -msgstr "Name einegeben" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:480 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:485 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:490 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:559 -#, python-format -msgid "" -"File extension “%(extension)s” is not allowed. Allowed extensions are: " -"%(allowed_extensions)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:620 -msgid "Null characters are not allowed." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/base.py:1364 -#: venv/lib/python3.11/site-packages/django/forms/models.py:894 -#, fuzzy -#| msgid "End" -msgid "and" -msgstr "Ende" - -#: venv/lib/python3.11/site-packages/django/db/models/base.py:1366 -#, python-format -msgid "%(model_name)s with this %(field_labels)s already exists." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:129 -#, python-format -msgid "Value %(value)r is not a valid choice." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:130 -msgid "This field cannot be null." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:131 -msgid "This field cannot be blank." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:132 -#, python-format -msgid "%(model_name)s with this %(field_label)s already exists." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:136 -#, python-format -msgid "" -"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:156 -#, python-format -msgid "Field of type: %(field_type)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1050 -#, python-format -msgid "“%(value)s” value must be either True or False." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1051 -#, python-format -msgid "“%(value)s” value must be either True, False, or None." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1053 -msgid "Boolean (Either True or False)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1094 -#, python-format -msgid "String (up to %(max_length)s)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1192 -msgid "Comma-separated integers" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1293 -#, python-format -msgid "" -"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " -"format." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1297 -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1432 -#, python-format -msgid "" -"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " -"date." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1301 -msgid "Date (without time)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1428 -#, python-format -msgid "" -"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." -"uuuuuu]][TZ] format." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1436 -#, 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 "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1441 -msgid "Date (with time)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1565 -#, python-format -msgid "“%(value)s” value must be a decimal number." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1567 -#, fuzzy -#| msgid "December" -msgid "Decimal number" -msgstr "Dezember" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1724 -#, python-format -msgid "" -"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." -"uuuuuu] format." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1728 -#: src/shiftings/shifts/forms/template.py:40 -#: src/shiftings/shifts/models/template.py:23 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:11 -msgid "Duration" -msgstr "Dauer" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1780 -msgid "Email address" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1805 -msgid "File path" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1883 -#, python-format -msgid "“%(value)s” value must be a float." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1885 -msgid "Floating point number" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1925 -#, python-format -msgid "“%(value)s” value must be an integer." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1927 -msgid "Integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2019 -msgid "Big (8 byte) integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2036 -msgid "Small integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2044 -msgid "IPv4 address" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2075 -msgid "IP address" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2168 -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2169 -#, python-format -msgid "“%(value)s” value must be either None, True or False." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2171 -msgid "Boolean (Either True, False or None)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2222 -msgid "Positive big integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2237 -msgid "Positive integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2252 -msgid "Positive small integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2268 -#, python-format -msgid "Slug (up to %(max_length)s)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2304 -#: src/shiftings/mail/forms/mail.py:11 -msgid "Text" -msgstr "Text" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2374 -#, python-format -msgid "" -"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " -"format." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2378 -#, python-format -msgid "" -"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " -"invalid time." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2382 -#: src/shiftings/cal/templates/cal/template/day_calendar_shift_types.html:23 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:197 -#: src/shiftings/shifts/templates/shifts/template/group.html:43 -#: src/shiftings/shifts/templates/shifts/template/group_template.html:23 -#: src/shiftings/shifts/templates/shifts/template/shift.html:10 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:33 -msgid "Time" -msgstr "Zeit" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2490 -msgid "URL" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2514 -msgid "Raw binary data" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2579 -#, python-format -msgid "“%(value)s” is not a valid UUID." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2581 -msgid "Universally unique identifier" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/files.py:232 -msgid "File" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/files.py:392 -msgid "Image" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/json.py:18 -#, fuzzy -#| msgid "Subject" -msgid "A JSON object" -msgstr "Betreff" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/json.py:20 -msgid "Value must be valid JSON." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:903 -#, python-format -msgid "%(model)s instance with %(field)s %(value)r does not exist." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:905 -msgid "Foreign Key (type determined by related field)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:1204 -msgid "One-to-one relationship" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:1261 -#, python-format -msgid "%(from)s-%(to)s relationship" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:1263 -#, python-format -msgid "%(from)s-%(to)s relationships" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:1311 -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 -#: venv/lib/python3.11/site-packages/django/forms/boundfield.py:176 -msgid ":?.!" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:91 -#, fuzzy -#| msgid "One of the user fields is required!" -msgid "This field is required." -msgstr "Eines der Benutzerfelder ist benötigt!" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:298 -msgid "Enter a whole number." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:459 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1232 -msgid "Enter a valid date." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:482 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1233 -#, fuzzy -#| msgid "Enter Name" -msgid "Enter a valid time." -msgstr "Name einegeben" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:509 -msgid "Enter a valid date/time." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:543 -#, fuzzy -#| msgid "Enter Name or Organization" -msgid "Enter a valid duration." -msgstr "Name oder Organisation angeben" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:544 -#, python-brace-format -msgid "The number of days must be between {min_days} and {max_days}." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:610 -msgid "No file was submitted. Check the encoding type on the form." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:611 -msgid "No file was submitted." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:612 -msgid "The submitted file is empty." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:614 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:619 -msgid "Please either submit a file or check the clear checkbox, not both." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:685 -msgid "" -"Upload a valid image. The file you uploaded was either not an image or a " -"corrupted image." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:848 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:940 -#: venv/lib/python3.11/site-packages/django/forms/models.py:1563 -#, python-format -msgid "Select a valid choice. %(value)s is not one of the available choices." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:942 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1061 -#: venv/lib/python3.11/site-packages/django/forms/models.py:1561 -msgid "Enter a list of values." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1062 -msgid "Enter a complete value." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1301 -msgid "Enter a valid UUID." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1331 -msgid "Enter a valid JSON." -msgstr "" - -#. Translators: This is the default suffix added to form field labels -#: venv/lib/python3.11/site-packages/django/forms/forms.py:98 -msgid ":" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/forms.py:248 -#: venv/lib/python3.11/site-packages/django/forms/forms.py:328 -#, python-format -msgid "(Hidden field %(name)s) %(error)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:67 -#, python-format -msgid "" -"ManagementForm data is missing or has been tampered with. Missing fields: " -"%(field_names)s. You may need to file a bug report if the issue persists." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:418 -#, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:434 -#, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:470 -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:477 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:38 -msgid "Order" -msgstr "Reihenfolge" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:483 -#, fuzzy -#| msgid "Delete Shift" -msgid "Delete" -msgstr "Schicht löschen" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:887 -#, python-format -msgid "Please correct the duplicate data for %(field)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:892 -#, python-format -msgid "Please correct the duplicate data for %(field)s, which must be unique." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:899 -#, 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 "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:908 -msgid "Please correct the duplicate values below." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:1335 -msgid "The inline value did not match the parent instance." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:1426 -msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:1565 -#, python-format -msgid "“%(pk)s” is not a valid value." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/utils.py:204 -#, 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 "" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:434 -msgid "Clear" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:435 -#, fuzzy -#| msgid "Current Events" -msgid "Currently" -msgstr "Aktuelle Events" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:436 -msgid "Change" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:765 -#: src/shiftings/accounts/templates/accounts/user_detail.html:55 -#: src/shiftings/accounts/templates/accounts/user_detail.html:65 -msgid "Unknown" -msgstr "Unbekannt" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:766 -#: src/shiftings/templates/generic/delete.html:9 -msgid "Yes" -msgstr "Ja" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:767 -#: src/shiftings/templates/generic/delete.html:11 -msgid "No" -msgstr "Nein" - -#. Translators: Please do not add spaces around commas. -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:858 -msgid "yes,no,maybe" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:888 -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:905 -#, python-format -msgid "%(size)d byte" -msgid_plural "%(size)d bytes" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:907 -#, python-format -msgid "%s KB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:909 -#, python-format -msgid "%s MB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:911 -#, python-format -msgid "%s GB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:913 -#, python-format -msgid "%s TB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:915 -#, python-format -msgid "%s PB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:77 -msgid "p.m." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:78 -msgid "a.m." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:83 -#, fuzzy -#| msgid "M" -msgid "PM" -msgstr "M" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:84 -#, fuzzy -#| msgid "M" -msgid "AM" -msgstr "M" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:155 -msgid "midnight" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:157 -msgid "noon" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:7 -#: src/shiftings/utils/time/week.py:13 -msgid "Monday" -msgstr "Montag" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:8 -#: src/shiftings/utils/time/week.py:14 -msgid "Tuesday" -msgstr "Dienstag" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:9 -#: src/shiftings/utils/time/week.py:15 -msgid "Wednesday" -msgstr "Mittwoch" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:10 -#: src/shiftings/utils/time/week.py:16 -msgid "Thursday" -msgstr "Donnerstag" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:11 -#: src/shiftings/utils/time/week.py:17 -msgid "Friday" -msgstr "Freitag" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:12 -#: src/shiftings/utils/time/week.py:18 -msgid "Saturday" -msgstr "Samstag" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:13 -#: src/shiftings/utils/time/week.py:19 -msgid "Sunday" -msgstr "Sonntag" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:16 -#, fuzzy -#| msgid "Month" -msgid "Mon" -msgstr "Monat" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:17 -#, fuzzy -#| msgid "Tuesday" -msgid "Tue" -msgstr "Dienstag" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:18 -msgid "Wed" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:19 -msgid "Thu" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:20 -#, fuzzy -#| msgid "Friday" -msgid "Fri" -msgstr "Freitag" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:21 -#, fuzzy -#| msgid "Start" -msgid "Sat" -msgstr "Start" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:22 -#, fuzzy -#| msgid "Sunday" -msgid "Sun" -msgstr "Sonntag" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:25 -#: src/shiftings/utils/time/month.py:10 -msgid "January" -msgstr "Januar" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:26 -#: src/shiftings/utils/time/month.py:11 -msgid "February" -msgstr "Februar" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:27 -#: src/shiftings/utils/time/month.py:12 -msgid "March" -msgstr "März" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:28 -#: src/shiftings/utils/time/month.py:13 -msgid "April" -msgstr "April" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:29 -#: src/shiftings/utils/time/month.py:14 -msgid "May" -msgstr "Mai" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:30 -#: src/shiftings/utils/time/month.py:15 -msgid "June" -msgstr "Juni" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:31 -#: src/shiftings/utils/time/month.py:16 -msgid "July" -msgstr "Juli" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:32 -#: src/shiftings/utils/time/month.py:17 -msgid "August" -msgstr "August" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:33 -#: src/shiftings/utils/time/month.py:18 -msgid "September" -msgstr "September" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:34 -#: src/shiftings/utils/time/month.py:19 -msgid "October" -msgstr "Oktober" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:35 -#: src/shiftings/utils/time/month.py:20 -msgid "November" -msgstr "November" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:36 -#: src/shiftings/utils/time/month.py:21 -msgid "December" -msgstr "Dezember" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:39 -msgid "jan" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:40 -msgid "feb" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:41 -msgid "mar" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:42 -msgid "apr" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:43 -#, fuzzy -#| msgid "May" -msgid "may" -msgstr "Mai" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:44 -msgid "jun" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:45 -msgid "jul" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:46 -msgid "aug" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:47 -msgid "sep" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:48 -msgid "oct" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:49 -msgid "nov" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:50 -msgid "dec" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:53 -msgctxt "abbrev. month" -msgid "Jan." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:54 -msgctxt "abbrev. month" -msgid "Feb." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:55 -#, fuzzy -#| msgid "March" -msgctxt "abbrev. month" -msgid "March" -msgstr "März" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:56 -#, fuzzy -#| msgid "April" -msgctxt "abbrev. month" -msgid "April" -msgstr "April" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:57 -#, fuzzy -#| msgid "May" -msgctxt "abbrev. month" -msgid "May" -msgstr "Mai" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:58 -#, fuzzy -#| msgid "June" -msgctxt "abbrev. month" -msgid "June" -msgstr "Juni" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:59 -#, fuzzy -#| msgid "July" -msgctxt "abbrev. month" -msgid "July" -msgstr "Juli" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:60 -msgctxt "abbrev. month" -msgid "Aug." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:61 -msgctxt "abbrev. month" -msgid "Sept." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:62 -msgctxt "abbrev. month" -msgid "Oct." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:63 -msgctxt "abbrev. month" -msgid "Nov." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:64 -msgctxt "abbrev. month" -msgid "Dec." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:67 -#, fuzzy -#| msgid "January" -msgctxt "alt. month" -msgid "January" -msgstr "Januar" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:68 -#, fuzzy -#| msgid "February" -msgctxt "alt. month" -msgid "February" -msgstr "Februar" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:69 -#, fuzzy -#| msgid "March" -msgctxt "alt. month" -msgid "March" -msgstr "März" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:70 -#, fuzzy -#| msgid "April" -msgctxt "alt. month" -msgid "April" -msgstr "April" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:71 -#, fuzzy -#| msgid "May" -msgctxt "alt. month" -msgid "May" -msgstr "Mai" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:72 -#, fuzzy -#| msgid "June" -msgctxt "alt. month" -msgid "June" -msgstr "Juni" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:73 -#, fuzzy -#| msgid "July" -msgctxt "alt. month" -msgid "July" -msgstr "Juli" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:74 -#, fuzzy -#| msgid "August" -msgctxt "alt. month" -msgid "August" -msgstr "August" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:75 -#, fuzzy -#| msgid "September" -msgctxt "alt. month" -msgid "September" -msgstr "September" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:76 -#, fuzzy -#| msgid "October" -msgctxt "alt. month" -msgid "October" -msgstr "Oktober" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:77 -#, fuzzy -#| msgid "November" -msgctxt "alt. month" -msgid "November" -msgstr "November" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:78 -#, fuzzy -#| msgid "December" -msgctxt "alt. month" -msgid "December" -msgstr "Dezember" - -#: venv/lib/python3.11/site-packages/django/utils/ipv6.py:8 -msgid "This is not a valid IPv6 address." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/text.py:77 -#, python-format -msgctxt "String to return when truncating text" -msgid "%(truncated_text)s…" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/text.py:253 -msgid "or" -msgstr "" - -#. Translators: This string is used as a separator between list elements -#: venv/lib/python3.11/site-packages/django/utils/text.py:272 -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:94 -msgid ", " -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:9 -#, python-format -msgid "%(num)d year" -msgid_plural "%(num)d years" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:10 -#, python-format -msgid "%(num)d month" -msgid_plural "%(num)d months" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:11 -#, python-format -msgid "%(num)d week" -msgid_plural "%(num)d weeks" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:12 -#, python-format -msgid "%(num)d day" -msgid_plural "%(num)d days" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:13 -#, python-format -msgid "%(num)d hour" -msgid_plural "%(num)d hours" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:14 -#, python-format -msgid "%(num)d minute" -msgid_plural "%(num)d minutes" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:111 -#, fuzzy -#| msgid "Forbidden Method GET" -msgid "Forbidden" -msgstr "Verbotene Methode GET" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:112 -msgid "CSRF verification failed. Request aborted." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:116 -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 "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:122 -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 "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:127 -msgid "" -"If you are using the tag or " -"including the “Referrer-Policy: no-referrer” header, please remove them. The " -"CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:136 -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 "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:142 -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 "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:148 -msgid "More information is available with DEBUG=True." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:44 -msgid "No year specified" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:64 -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:115 -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:214 -msgid "Date out of range" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:94 -msgid "No month specified" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:147 -msgid "No day specified" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:194 -msgid "No week specified" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:349 -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:380 -#, python-format -msgid "No %(verbose_name_plural)s available" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:652 -#, python-format -msgid "" -"Future %(verbose_name_plural)s not available because %(class_name)s." -"allow_future is False." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:692 -#, python-format -msgid "Invalid date string “%(datestr)s” given format “%(format)s”" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/detail.py:56 -#, python-format -msgid "No %(verbose_name)s found matching the query" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/list.py:70 -msgid "Page is not “last”, nor can it be converted to an int." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/list.py:77 -#, python-format -msgid "Invalid page (%(page_number)s): %(message)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/list.py:169 -#, python-format -msgid "Empty list and “%(class_name)s.allow_empty” is False." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/static.py:39 -msgid "Directory indexes are not allowed here." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/static.py:41 -#, python-format -msgid "“%(path)s” does not exist" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/static.py:80 -#, python-format -msgid "Index of %(directory)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:7 -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:221 -msgid "The install worked successfully! Congratulations!" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:207 -#, python-format -msgid "" -"View release notes for Django %(version)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:222 -#, python-format -msgid "" -"You are seeing this page because DEBUG=True is in your settings file and you have not " -"configured any URLs." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:230 -msgid "Django Documentation" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:231 -msgid "Topics, references, & how-to’s" -msgstr "" +#: shiftings/accounts/forms/user_form.py:13 +msgid "Confirm password" +msgstr "Passwort bestätigen" -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:239 -msgid "Tutorial: A Polling App" -msgstr "" +#: shiftings/accounts/forms/user_form.py:31 +#: shiftings/accounts/forms/user_form.py:32 +msgid "Please enter matching passwords" +msgstr "Bitte gebe identische Passwörter ein" -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:240 -msgid "Get started with Django" +#: shiftings/accounts/forms/user_form.py:65 +msgid "Cannot change first name, last name or email for LDAP users." msgstr "" -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:248 -msgid "Django Community" -msgstr "" +#: shiftings/accounts/models/oidc_token.py:28 +#: shiftings/accounts/templates/accounts/user_detail.html:29 +#: shiftings/organizations/models/membership.py:68 +#: shiftings/shifts/models/participant.py:13 +#: shiftings/templates/top_nav.html:47 +msgid "User" +msgstr "Benutzer" -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:249 -msgid "Connect, get help, or contribute" +#: shiftings/accounts/models/oidc_token.py:30 +msgid "Refresh Token" msgstr "" -#: venv/lib/python3.11/site-packages/django_bootstrap5/components.py:26 +#: shiftings/accounts/models/oidc_token.py:31 #, fuzzy -#| msgid "Close" -msgid "close" -msgstr "Schließen" - -#: venv/lib/python3.11/site-packages/isort/main.py:158 -msgid "show this help message and exit" -msgstr "" - -#: venv/lib/python3.11/site-packages/mypy/main.py:376 -#, python-format -msgid "%(prog)s: error: %(message)s\n" -msgstr "" - -#: src/shiftings/accounts/forms/user_form.py:11 -msgid "Confirm password" -msgstr "Passwort bestätigen" - -#: src/shiftings/accounts/forms/user_form.py:30 -msgid "Please enter matching passwords" -msgstr "Bitte gebe identische Passwörter ein" +#| msgid "Update" +msgid "Updated" +msgstr "Aktualisieren" -#: src/shiftings/accounts/models/user.py:32 -#: src/shiftings/accounts/templates/accounts/user_detail.html:52 -#: src/shiftings/shifts/models/participant.py:15 +#: shiftings/accounts/models/user.py:32 +#: shiftings/accounts/templates/accounts/user_detail.html:52 +#: shiftings/shifts/models/participant.py:15 msgid "Display Name" msgstr "Anzeigename" -#: src/shiftings/accounts/models/user.py:33 -#: src/shiftings/events/models/event.py:29 -#: src/shiftings/organizations/models/organization.py:28 +#: shiftings/accounts/models/user.py:33 shiftings/events/models/event.py:29 +#: shiftings/organizations/models/organization.py:28 msgid "Telephone Number" msgstr "Telefonnummer" -#: src/shiftings/accounts/templates/accounts/confirm_email.html:7 +#: shiftings/accounts/templates/accounts/confirm_email.html:7 msgid "Go to Login" msgstr "Zum Login" -#: src/shiftings/accounts/templates/accounts/login_form.html:6 -#: src/shiftings/accounts/templates/accounts/login_multiple.html:12 +#: shiftings/accounts/templates/accounts/login_form.html:6 +#: shiftings/accounts/templates/accounts/login_multiple.html:12 msgid "Login with local Account" msgstr "Login mit lokalem Account" -#: src/shiftings/accounts/templates/accounts/login_form.html:8 -#: src/shiftings/accounts/templates/accounts/login_multiple.html:20 +#: shiftings/accounts/templates/accounts/login_form.html:8 +#: shiftings/accounts/templates/accounts/login_multiple.html:20 msgid "Login with LDAP Account" msgstr "Login mit LDAP Account" -#: src/shiftings/accounts/templates/accounts/login_form.html:14 -#: src/shiftings/accounts/views/auth.py:27 -#: src/shiftings/templates/top_nav.html:57 +#: shiftings/accounts/templates/accounts/login_form.html:14 +#: shiftings/accounts/views/auth.py:23 shiftings/templates/top_nav.html:60 msgid "Login" msgstr "Einloggen" -#: src/shiftings/accounts/templates/accounts/login_form.html:16 -#: src/shiftings/accounts/templates/accounts/password_reset/prompt.html:10 +#: shiftings/accounts/templates/accounts/login_form.html:16 +#: shiftings/accounts/templates/accounts/password_reset/prompt.html:10 msgid "Reset Password" msgstr "Passwort zurücksetzen" -#: src/shiftings/accounts/templates/accounts/login_form.html:18 +#: shiftings/accounts/templates/accounts/login_form.html:18 msgid "Return to selection" msgstr "Zur Auswahl zurückkehren" -#: src/shiftings/accounts/templates/accounts/login_form.html:29 +#: shiftings/accounts/templates/accounts/login_form.html:29 msgid "You don't have an Account?" msgstr "Noch kein Account?" -#: src/shiftings/accounts/templates/accounts/login_form.html:30 +#: shiftings/accounts/templates/accounts/login_form.html:30 msgid "Register here" msgstr "Hier registrieren" -#: src/shiftings/accounts/templates/accounts/login_form.html:32 +#: shiftings/accounts/templates/accounts/login_form.html:32 msgid "Or login using another Method" msgstr "Oder nutze eine andere Loginmethode" -#: src/shiftings/accounts/templates/accounts/login_multiple.html:5 +#: shiftings/accounts/templates/accounts/login_multiple.html:5 msgid "Welcome to Shiftings" msgstr "Wilkommen bei Shiftings" -#: src/shiftings/accounts/templates/accounts/login_multiple.html:6 +#: shiftings/accounts/templates/accounts/login_multiple.html:6 msgid "" "To manage your shifts please authenticate with one of the given methods:" msgstr "" "Um deine Schichten zu verwalten melde dich bitte mit einer dieser Methoden " "an:" -#: src/shiftings/accounts/templates/accounts/login_multiple.html:31 +#: shiftings/accounts/templates/accounts/login_multiple.html:31 #, fuzzy, python-format #| msgid "" #| "\n" @@ -1715,28 +126,28 @@ msgstr "" " vor %(time)s\n" " " -#: src/shiftings/accounts/templates/accounts/logout.html:6 +#: shiftings/accounts/templates/accounts/logout.html:6 msgid "Successfully logged out" msgstr "Erfolgreich ausgeloggt" -#: src/shiftings/accounts/templates/accounts/logout.html:7 +#: shiftings/accounts/templates/accounts/logout.html:7 msgid "Login again" msgstr "Wieder einloggen" -#: src/shiftings/accounts/templates/accounts/password_reset/confirm.html:7 +#: shiftings/accounts/templates/accounts/password_reset/confirm.html:7 msgid "Change Password" msgstr "Passwort ändern" -#: src/shiftings/accounts/templates/accounts/password_reset/done.html:4 +#: shiftings/accounts/templates/accounts/password_reset/done.html:4 msgid "Your password has been reset, check your email!" msgstr "Dein Passwort wurde zurückgesetzt, überprüfe deine E-Mails!" -#: src/shiftings/accounts/templates/accounts/password_reset/done.html:5 -#: src/shiftings/accounts/templates/accounts/password_reset/success.html:5 +#: shiftings/accounts/templates/accounts/password_reset/done.html:5 +#: shiftings/accounts/templates/accounts/password_reset/success.html:5 msgid "Back to login" msgstr "Zurück zum Login" -#: src/shiftings/accounts/templates/accounts/password_reset/prompt.html:4 +#: shiftings/accounts/templates/accounts/password_reset/prompt.html:4 msgid "" "\n" " If you are an local user enter your email-adress below to reset your " @@ -1748,15 +159,15 @@ msgstr "" "Passwort zurückzusetzen!\n" " " -#: src/shiftings/accounts/templates/accounts/password_reset/success.html:4 +#: shiftings/accounts/templates/accounts/password_reset/success.html:4 msgid "Your password has been successfully reset!" msgstr "Deine Passwort wurde erfolgreich zurückgesetzt!" -#: src/shiftings/accounts/templates/accounts/user_detail.html:3 +#: shiftings/accounts/templates/accounts/user_detail.html:3 msgid "Confirm User Deletion" msgstr "Bestätige die Löschung des Benutzers" -#: src/shiftings/accounts/templates/accounts/user_detail.html:5 +#: shiftings/accounts/templates/accounts/user_detail.html:5 #, python-format msgid "" "\n" @@ -1772,128 +183,124 @@ msgstr "" "werden.\n" " " -#: src/shiftings/accounts/templates/accounts/user_detail.html:17 +#: shiftings/accounts/templates/accounts/user_detail.html:17 msgid "Yes, I want to permanently delete my Data" msgstr "Ja, ich möchte meine Daten entgültig löschen" -#: src/shiftings/accounts/templates/accounts/user_detail.html:19 +#: shiftings/accounts/templates/accounts/user_detail.html:19 msgid "Abort" msgstr "Abbrechen" -#: src/shiftings/accounts/templates/accounts/user_detail.html:29 -#: src/shiftings/organizations/models/membership.py:68 -#: src/shiftings/shifts/models/participant.py:13 -#: src/shiftings/templates/top_nav.html:47 -msgid "User" -msgstr "Benutzer" - -#: src/shiftings/accounts/templates/accounts/user_detail.html:37 -#: src/shiftings/accounts/templates/accounts/user_detail.html:57 +#: shiftings/accounts/templates/accounts/user_detail.html:37 +#: shiftings/accounts/templates/accounts/user_detail.html:57 msgid "Edit user data" msgstr "Benutzerdaten bearbeiten" -#: src/shiftings/accounts/templates/accounts/user_detail.html:48 -#: src/shiftings/organizations/forms/membership.py:16 +#: shiftings/accounts/templates/accounts/user_detail.html:48 +#: shiftings/organizations/forms/membership.py:16 msgid "Username" msgstr "Benutzername" -#: src/shiftings/accounts/templates/accounts/user_detail.html:50 -#: src/shiftings/events/models/event.py:25 -#: src/shiftings/events/templates/events/event.html:85 -#: src/shiftings/organizations/models/membership.py:10 -#: src/shiftings/organizations/models/organization.py:24 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:195 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:239 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:278 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:388 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:39 -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:13 -#: src/shiftings/shifts/models/base.py:8 -#: src/shiftings/shifts/models/recurring.py:32 -#: src/shiftings/shifts/models/template.py:17 -#: src/shiftings/shifts/models/template_group.py:20 -#: src/shiftings/shifts/models/type.py:40 -#: src/shiftings/shifts/models/type_group.py:16 -#: src/shiftings/shifts/templates/shifts/group/list.html:6 -#: src/shiftings/shifts/templates/shifts/list.html:6 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:6 -#: src/shiftings/shifts/templates/shifts/template/group_list.html:6 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:5 -#: src/shiftings/shifts/templates/shifts/type_group/list.html:7 +#: shiftings/accounts/templates/accounts/user_detail.html:50 +#: shiftings/events/models/event.py:25 +#: shiftings/events/templates/events/event.html:85 +#: shiftings/organizations/models/membership.py:10 +#: shiftings/organizations/models/organization.py:24 +#: shiftings/organizations/templates/organizations/organization_admin.html:195 +#: shiftings/organizations/templates/organizations/organization_admin.html:239 +#: shiftings/organizations/templates/organizations/organization_admin.html:278 +#: shiftings/organizations/templates/organizations/organization_admin.html:388 +#: shiftings/organizations/templates/organizations/organization_settings.html:39 +#: shiftings/organizations/templates/organizations/user/claim_users.html:13 +#: shiftings/shifts/models/base.py:8 shiftings/shifts/models/recurring.py:32 +#: shiftings/shifts/models/template.py:17 +#: shiftings/shifts/models/template_group.py:20 +#: shiftings/shifts/models/type.py:40 shiftings/shifts/models/type_group.py:16 +#: shiftings/shifts/templates/shifts/group/list.html:6 +#: shiftings/shifts/templates/shifts/list.html:6 +#: shiftings/shifts/templates/shifts/recurring/list.html:6 +#: shiftings/shifts/templates/shifts/template/group_list.html:6 +#: shiftings/shifts/templates/shifts/template/template_form.html:5 +#: shiftings/shifts/templates/shifts/type_group/list.html:7 msgid "Name" msgstr "Name" -#: src/shiftings/accounts/templates/accounts/user_detail.html:58 +#: shiftings/accounts/templates/accounts/user_detail.html:55 +#: shiftings/accounts/templates/accounts/user_detail.html:65 +msgid "Unknown" +msgstr "Unbekannt" + +#: shiftings/accounts/templates/accounts/user_detail.html:58 msgid "Set Display Name" msgstr "Setze Anzeigename" -#: src/shiftings/accounts/templates/accounts/user_detail.html:62 +#: shiftings/accounts/templates/accounts/user_detail.html:62 msgid "Email" msgstr "Email" -#: src/shiftings/accounts/templates/accounts/user_detail.html:64 +#: shiftings/accounts/templates/accounts/user_detail.html:64 msgid "Phone Number" msgstr "Telefonnummer" -#: src/shiftings/accounts/templates/accounts/user_detail.html:66 +#: shiftings/accounts/templates/accounts/user_detail.html:66 msgid "Member since" msgstr "Mitglied seit" -#: src/shiftings/accounts/templates/accounts/user_detail.html:68 +#: shiftings/accounts/templates/accounts/user_detail.html:68 msgid "Total Shifts" msgstr "Anzahl Schichten" -#: src/shiftings/accounts/templates/accounts/user_detail.html:70 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:124 +#: shiftings/accounts/templates/accounts/user_detail.html:70 +#: shiftings/organizations/templates/organizations/organization_admin.html:124 msgid "Groups" msgstr "Gruppen" -#: src/shiftings/accounts/templates/accounts/user_detail.html:71 -#: src/shiftings/events/templates/events/template/event.html:32 -#: src/shiftings/shifts/templates/shifts/template/template.html:19 +#: shiftings/accounts/templates/accounts/user_detail.html:71 +#: shiftings/events/templates/events/template/event.html:32 +#: shiftings/shifts/templates/shifts/template/template.html:19 msgid "None" msgstr "Keine" -#: src/shiftings/accounts/templates/accounts/user_detail.html:77 +#: shiftings/accounts/templates/accounts/user_detail.html:77 msgid "Organizations" msgstr "Organisationen" -#: src/shiftings/accounts/templates/accounts/user_detail.html:83 +#: shiftings/accounts/templates/accounts/user_detail.html:83 msgid "Hide organizations" msgstr "Organisationen einklappen" -#: src/shiftings/accounts/templates/accounts/user_detail.html:102 -#: src/shiftings/events/templates/events/template/event.html:12 +#: shiftings/accounts/templates/accounts/user_detail.html:102 +#: shiftings/events/templates/events/template/event.html:12 msgid "No Logo available" msgstr "Kein Logo verfügbar" -#: src/shiftings/accounts/templates/accounts/user_detail.html:125 +#: shiftings/accounts/templates/accounts/user_detail.html:125 msgid "Recent Shifts" msgstr "Letzte Schichten" -#: src/shiftings/accounts/templates/accounts/user_detail.html:127 -#: src/shiftings/accounts/templates/accounts/user_detail.html:132 +#: shiftings/accounts/templates/accounts/user_detail.html:127 +#: shiftings/accounts/templates/accounts/user_detail.html:132 msgid "Upcoming Shifts" msgstr "Anstehende Schichten" -#: src/shiftings/accounts/templates/accounts/user_detail.html:136 +#: shiftings/accounts/templates/accounts/user_detail.html:136 msgid "Past Shifts" msgstr "Vergangene Schichten" -#: src/shiftings/accounts/templates/accounts/user_detail.html:157 +#: shiftings/accounts/templates/accounts/user_detail.html:157 msgid "No recent Shifts" msgstr "Keine vergangenen Schichten" -#: src/shiftings/accounts/templates/accounts/user_detail.html:159 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:135 +#: shiftings/accounts/templates/accounts/user_detail.html:159 +#: shiftings/organizations/templates/organizations/organization_shifts.html:135 msgid "No upcoming shifts" msgstr "Keine anstehenden Schichten" -#: src/shiftings/accounts/templates/accounts/user_form.html:6 +#: shiftings/accounts/templates/accounts/user_form.html:6 msgid "Register" msgstr "Registrieren" -#: src/shiftings/accounts/templates/accounts/user_form.html:8 +#: shiftings/accounts/templates/accounts/user_form.html:8 #, python-format msgid "" "\n" @@ -1904,434 +311,440 @@ msgstr "" " Bearbeite Benutzer %(user)s\n" " " -#: src/shiftings/accounts/templates/accounts/user_form.html:19 -#: src/shiftings/templates/template/simple_form_modal.html:21 +#: shiftings/accounts/templates/accounts/user_form.html:19 +#: shiftings/templates/template/simple_form_modal.html:21 msgid "Submit" msgstr "Bestätigen" -#: src/shiftings/accounts/views/auth.py:83 +#: shiftings/accounts/views/auth.py:79 msgid "Error while creating the user instance!" msgstr "Fehler beim erstellen der Benutzerinstanz!" -#: src/shiftings/accounts/views/auth.py:87 +#: shiftings/accounts/views/auth.py:83 msgid "Successfully logged in!" msgstr "Erfolgreich eingeloggt!" -#: src/shiftings/accounts/views/auth.py:90 +#: shiftings/accounts/views/auth.py:86 #, python-format msgid "Error while trying to authenticate with sso! %(message)s" msgstr "Fehler beim Versuch gegen SSO zu authentifizieren! %(message)s" -#: src/shiftings/accounts/views/auth.py:131 -#: src/shiftings/templates/top_nav.html:52 +#: shiftings/accounts/views/auth.py:111 shiftings/templates/top_nav.html:54 msgid "Logout" msgstr "Ausloggen" -#: src/shiftings/accounts/views/password.py:13 +#: shiftings/accounts/views/password.py:13 msgid "Password Reset" msgstr "Passwort zurücksetzen" -#: src/shiftings/accounts/views/password.py:19 +#: shiftings/accounts/views/password.py:19 msgid "Confirm Password Reset" msgstr "Passwort Zurücksetzung bestätigen" -#: src/shiftings/accounts/views/user.py:35 -#: src/shiftings/templates/top_nav.html:15 +#: shiftings/accounts/views/user.py:35 shiftings/templates/top_nav.html:15 msgid "My Shifts" msgstr "Meine Schichten" -#: src/shiftings/accounts/views/user.py:100 +#: shiftings/accounts/views/user.py:102 msgid "Could not find your user." msgstr "Konnte deinen Benutzer nicht finden." -#: src/shiftings/accounts/views/user.py:106 +#: shiftings/accounts/views/user.py:108 msgid "Your EMail was confirmed. You can now login." msgstr "Deine EMail wurde bestätigt. Du kannst dich jetzt einloggen." -#: src/shiftings/accounts/views/user.py:109 +#: shiftings/accounts/views/user.py:111 msgid "Your activation link was invalid." msgstr "Dein Aktivierungslink war ungültig." -#: src/shiftings/accounts/views/user.py:126 +#: shiftings/accounts/views/user.py:128 msgid "Error while deleting your data: Please confirm deletion!" msgstr "Fehler beim Löschen deiner Daten: Bitte bestätige die Löschung!" -#: src/shiftings/cal/feed/event.py:44 +#: shiftings/cal/feed/event.py:44 msgid "Public Events" msgstr "Öffentliche Events" -#: src/shiftings/cal/forms/day_form.py:8 +#: shiftings/cal/forms/day_form.py:8 msgid "Select Day" msgstr "Tag auswählen" -#: src/shiftings/cal/templates/cal/calendar_base.html:14 -#: src/shiftings/cal/templates/cal/calendar_base.html:24 +#: shiftings/cal/templates/cal/calendar_base.html:14 +#: shiftings/cal/templates/cal/calendar_base.html:24 msgid "Day View" msgstr "Tagesansicht" -#: src/shiftings/cal/templates/cal/calendar_base.html:20 +#: shiftings/cal/templates/cal/calendar_base.html:20 msgid "Day (Detailed)" msgstr "Tag (Detailliert)" -#: src/shiftings/cal/templates/cal/calendar_base.html:30 +#: shiftings/cal/templates/cal/calendar_base.html:30 msgid "Day (By Types)" msgstr "Tag (Nach Typ)" -#: src/shiftings/cal/templates/cal/calendar_base.html:37 +#: shiftings/cal/templates/cal/calendar_base.html:37 msgid "Month View" msgstr "Monatsansicht" -#: src/shiftings/cal/templates/cal/calendar_base.html:38 -#: src/shiftings/utils/time/month.py:25 -#: src/shiftings/utils/time/timerange.py:12 +#: shiftings/cal/templates/cal/calendar_base.html:38 +#: shiftings/utils/time/month.py:25 shiftings/utils/time/timerange.py:12 msgid "Month" msgstr "Monat" -#: src/shiftings/cal/templates/cal/calendar_base.html:42 -#: src/shiftings/cal/templates/cal/calendar_base.html:48 +#: shiftings/cal/templates/cal/calendar_base.html:42 +#: shiftings/cal/templates/cal/calendar_base.html:48 msgid "List View" msgstr "Listenansicht" -#: src/shiftings/cal/templates/cal/calendar_base.html:44 +#: shiftings/cal/templates/cal/calendar_base.html:44 msgid "List (Detailed)" msgstr "Liste (Detailliert)" -#: src/shiftings/cal/templates/cal/calendar_base.html:50 +#: shiftings/cal/templates/cal/calendar_base.html:50 msgid "List (By Types)" msgstr "Liste (Nach Typ)" -#: src/shiftings/cal/templates/cal/calendar_templates/cal_shift_create_entry.html:4 -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:106 -#: src/shiftings/events/templates/events/event.html:74 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:376 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:120 +#: shiftings/cal/templates/cal/calendar_templates/cal_shift_create_entry.html:4 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:106 +#: shiftings/events/templates/events/event.html:74 +#: shiftings/organizations/templates/organizations/organization_admin.html:376 +#: shiftings/organizations/templates/organizations/organization_shifts.html:120 msgid "Create Shift" msgstr "Schicht erstellen" -#: src/shiftings/cal/templates/cal/calendar_templates/recurring_shift_entry.html:5 +#: shiftings/cal/templates/cal/calendar_templates/recurring_shift_entry.html:5 msgid "Recurring" msgstr "Wiederholend" -#: src/shiftings/cal/templates/cal/day_calendar.html:14 +#: shiftings/cal/templates/cal/day_calendar.html:14 msgid "Previous Day" msgstr "Letzter Tag" -#: src/shiftings/cal/templates/cal/day_calendar.html:22 +#: shiftings/cal/templates/cal/day_calendar.html:22 msgid "Jump to Date" msgstr "Zum Datum springen" -#: src/shiftings/cal/templates/cal/day_calendar.html:28 +#: shiftings/cal/templates/cal/day_calendar.html:28 msgid "Jump to Day" msgstr "Zum Tag springen" -#: src/shiftings/cal/templates/cal/day_calendar.html:30 +#: shiftings/cal/templates/cal/day_calendar.html:30 msgid "Select" msgstr "Auswählen" -#: src/shiftings/cal/templates/cal/day_calendar.html:38 +#: shiftings/cal/templates/cal/day_calendar.html:38 msgid "Next Day" msgstr "Nächster Tag" -#: src/shiftings/cal/templates/cal/list_calendar.html:12 +#: shiftings/cal/templates/cal/list_calendar.html:12 #, fuzzy #| msgid "Shifts" msgid "Shift list" msgstr "Schichten" -#: src/shiftings/cal/templates/cal/template/day_calendar_shift_types.html:7 -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:48 -#: src/shiftings/shifts/templates/shifts/shift_participants.html:4 +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:3 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:3 +#, python-format +msgid "" +"\n" +" Your query was capped to the server limit of %(max_entries)s. Please " +"filter more specifically.\n" +" " +msgstr "" +"\n" +" Deine Anfrage wurde auf %(max_entries)s Schichten begrenzt. Bitte gib " +"genauere Filter an.\n" +" " + +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:14 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:48 +#: shiftings/shifts/templates/shifts/shift_participants.html:4 msgid "Add with Name to Shift" msgstr "Mit Namen zur Schicht hinzufügen" -#: src/shiftings/cal/templates/cal/template/day_calendar_shift_types.html:33 -#: src/shiftings/organizations/models/membership.py:12 +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:30 +#: shiftings/organizations/templates/organizations/organization_admin.html:197 +#: shiftings/shifts/templates/shifts/template/group.html:43 +#: shiftings/shifts/templates/shifts/template/group_template.html:23 +#: shiftings/shifts/templates/shifts/template/shift.html:10 +#: shiftings/shifts/templates/shifts/template/template_form.html:33 +msgid "Time" +msgstr "Zeit" + +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:40 +#: shiftings/organizations/models/membership.py:12 msgid "Default" msgstr "Standard" -#: src/shiftings/cal/templates/cal/template/day_calendar_shift_types.html:38 -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:95 +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:45 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:95 msgid "No Shifts found with these parameters or planned on this day" msgstr "" "An diesem Tag sind keine Schichten mit diesen Parametern gefunden oder " "geplant" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:3 -msgid "" -"\n" -" Your query was capped to the server limit of %(max_entries)s. Please " -"filter more specifically.\n" -" " -msgstr "" -"\n" -" Deine Anfrage wurde auf %(max_entries)s Schichten begrenzt. Bitte " -"gib genauere Filter an.\n" -" " - -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:12 -#: src/shiftings/events/models/event.py:24 -#: src/shiftings/shifts/models/base.py:12 -#: src/shiftings/shifts/models/recurring.py:34 -#: src/shiftings/shifts/models/template_group.py:24 -#: src/shiftings/shifts/models/type.py:37 -#: src/shiftings/shifts/models/type_group.py:14 -#: src/shiftings/shifts/templates/shifts/create_shift.html:79 -#: src/shiftings/shifts/templates/shifts/list.html:9 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:9 -#: src/shiftings/shifts/templates/shifts/shift.html:47 -#: src/shiftings/shifts/templates/shifts/template/group.html:39 -#: src/shiftings/shifts/templates/shifts/template/group.html:45 -#: src/shiftings/shifts/templates/shifts/template/group_list.html:8 -#: src/shiftings/shifts/templates/shifts/template/group_template.html:25 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:12 +#: shiftings/events/models/event.py:24 shiftings/shifts/models/base.py:12 +#: shiftings/shifts/models/recurring.py:34 +#: shiftings/shifts/models/template_group.py:24 +#: shiftings/shifts/models/type.py:37 shiftings/shifts/models/type_group.py:14 +#: shiftings/shifts/templates/shifts/create_shift.html:79 +#: shiftings/shifts/templates/shifts/list.html:9 +#: shiftings/shifts/templates/shifts/recurring/list.html:9 +#: shiftings/shifts/templates/shifts/shift.html:47 +#: shiftings/shifts/templates/shifts/template/group.html:39 +#: shiftings/shifts/templates/shifts/template/group.html:45 +#: shiftings/shifts/templates/shifts/template/group_list.html:8 +#: shiftings/shifts/templates/shifts/template/group_template.html:25 msgid "Organization" msgstr "Organisation" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:13 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:13 msgid "Org" msgstr "Org" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:14 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:14 msgid "Shift" msgstr "Schicht" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:15 -#: src/shiftings/shifts/templates/shifts/create_shift.html:56 -#: src/shiftings/shifts/templates/shifts/template/shift.html:12 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:21 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:15 +#: shiftings/shifts/templates/shifts/create_shift.html:56 +#: shiftings/shifts/templates/shifts/template/shift.html:12 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:21 msgid "Participants" msgstr "Teilnehmer" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:16 -#: src/shiftings/shifts/templates/shifts/list.html:10 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:16 +#: shiftings/shifts/templates/shifts/list.html:10 msgid "Start" msgstr "Start" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:17 -#: src/shiftings/shifts/templates/shifts/list.html:11 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:17 +#: shiftings/shifts/templates/shifts/list.html:11 msgid "End" msgstr "Ende" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:36 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:7 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:36 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:7 msgid "Shift Details" msgstr "Schicht Details" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:61 -#: src/shiftings/shifts/templates/shifts/shift_participants.html:23 -#: src/shiftings/shifts/templates/shifts/template/slots_display.html:29 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:44 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:61 +#: shiftings/shifts/templates/shifts/shift_participants.html:23 +#: shiftings/shifts/templates/shifts/template/slots_display.html:29 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:44 msgid "Add me" msgstr "Mich hinzufügen" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:112 -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:31 -#: src/shiftings/shifts/templates/shifts/edit_templates.html:26 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:112 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:31 +#: shiftings/shifts/templates/shifts/edit_templates.html:26 msgid "Add Shift" msgstr "Schicht hinzufügen" -#: src/shiftings/cal/templates/cal/template/month_calendar.html:7 +#: shiftings/cal/templates/cal/template/month_calendar.html:7 msgid "Previous Month" msgstr "Letzter Monat" -#: src/shiftings/cal/templates/cal/template/month_calendar.html:15 +#: shiftings/cal/templates/cal/template/month_calendar.html:15 msgid "Next Month" msgstr "Nächster Monat" -#: src/shiftings/cal/templates/cal/week_calendar.html:9 +#: shiftings/cal/templates/cal/week_calendar.html:9 msgid "Previous Week" msgstr "Letzte Woche" -#: src/shiftings/cal/templates/cal/week_calendar.html:13 +#: shiftings/cal/templates/cal/week_calendar.html:13 msgid "Week" msgstr "Woche" -#: src/shiftings/cal/templates/cal/week_calendar.html:17 +#: shiftings/cal/templates/cal/week_calendar.html:17 msgid "Next Week" msgstr "Nächste Woche" -#: src/shiftings/cal/views/day_calendar.py:24 +#: shiftings/cal/views/day_calendar.py:24 #, python-brace-format msgid "Day {date}" msgstr "Tag {date}" -#: src/shiftings/cal/views/day_calendar.py:25 +#: shiftings/cal/views/day_calendar.py:25 msgid "Day Overview" msgstr "Tagesübersicht" -#: src/shiftings/cal/views/list.py:24 -#: src/shiftings/organizations/templates/organizations/template/org_info.html:6 +#: shiftings/cal/views/list.py:24 +#: shiftings/organizations/templates/organizations/template/org_info.html:6 msgid "Shift Overview" msgstr "Schichtenübersicht" -#: src/shiftings/cal/views/month_calendar.py:24 +#: shiftings/cal/views/month_calendar.py:24 #, python-brace-format msgid "Month {year}/{month:0>2}" msgstr "Monat {year}/{month:0>2}" -#: src/shiftings/cal/views/month_calendar.py:26 -#: src/shiftings/events/templates/events/event.html:52 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:162 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:28 +#: shiftings/cal/views/month_calendar.py:26 +#: shiftings/events/templates/events/event.html:52 +#: shiftings/organizations/templates/organizations/organization_admin.html:162 +#: shiftings/organizations/templates/organizations/organization_shifts.html:28 msgid "Month Overview" msgstr "Monatsübersicht" -#: src/shiftings/events/forms/event.py:24 +#: shiftings/events/forms/event.py:24 #, python-format msgid "Start date %(start)s was after end_date %(end)s" msgstr "Startdatum %(start)s ist nach dem Enddatum %(end)s" -#: src/shiftings/events/models/event.py:26 -#: src/shiftings/events/templates/events/event.html:19 -#: src/shiftings/organizations/models/organization.py:25 -#: src/shiftings/organizations/templates/organizations/template/org_info.html:58 +#: shiftings/events/models/event.py:26 +#: shiftings/events/templates/events/event.html:19 +#: shiftings/organizations/models/organization.py:25 +#: shiftings/organizations/templates/organizations/template/org_info.html:58 msgid "Logo" msgstr "Logo" -#: src/shiftings/events/models/event.py:28 -#: src/shiftings/organizations/models/organization.py:27 +#: shiftings/events/models/event.py:28 +#: shiftings/organizations/models/organization.py:27 msgid "E-Mail" msgstr "E-Mail" -#: src/shiftings/events/models/event.py:30 -#: src/shiftings/organizations/models/organization.py:29 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:81 -#: src/shiftings/organizations/templates/organizations/template/organization.html:27 +#: shiftings/events/models/event.py:30 +#: shiftings/organizations/models/organization.py:29 +#: shiftings/organizations/templates/organizations/organization_shifts.html:81 +#: shiftings/organizations/templates/organizations/template/organization.html:27 msgid "Website" msgstr "Webseite" -#: src/shiftings/events/models/event.py:32 +#: shiftings/events/models/event.py:32 msgid "Start Date" msgstr "Startdatum" -#: src/shiftings/events/models/event.py:32 +#: shiftings/events/models/event.py:32 msgid "Earliest date where there are shifts available" msgstr "Frühestes Datum an dem Schichten verfügbar sind" -#: src/shiftings/events/models/event.py:33 +#: shiftings/events/models/event.py:33 msgid "End Date" msgstr "Enddatum" -#: src/shiftings/events/models/event.py:33 +#: shiftings/events/models/event.py:33 msgid "Latest date where there are shifts available" msgstr "Spätestes Datum an dem Schichten verfügbar sind" -#: src/shiftings/events/models/event.py:35 -#: src/shiftings/organizations/models/organization.py:32 +#: shiftings/events/models/event.py:35 +#: shiftings/organizations/models/organization.py:32 msgid "Description" msgstr "Beschreibung" -#: src/shiftings/events/models/event.py:55 +#: shiftings/events/models/event.py:55 #, python-brace-format msgid "{name} (by {organization})" msgstr "{name} (von {organization})" -#: src/shiftings/events/templates/events/event.html:10 +#: shiftings/events/templates/events/event.html:10 msgid "Edit Event" msgstr "Event bearbeiten" -#: src/shiftings/events/templates/events/event.html:55 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:165 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:31 +#: shiftings/events/templates/events/event.html:55 +#: shiftings/organizations/templates/organizations/organization_admin.html:165 +#: shiftings/organizations/templates/organizations/organization_shifts.html:31 msgid "Complete Overview" msgstr "Komplette Übersicht" -#: src/shiftings/events/templates/events/event.html:69 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:363 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:109 +#: shiftings/events/templates/events/event.html:69 +#: shiftings/organizations/templates/organizations/organization_admin.html:363 +#: shiftings/organizations/templates/organizations/organization_shifts.html:109 msgid "Shifts" msgstr "Schichten" -#: src/shiftings/events/templates/events/event.html:71 -#: src/shiftings/events/templates/events/event.html:72 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:371 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:112 +#: shiftings/events/templates/events/event.html:71 +#: shiftings/events/templates/events/event.html:72 +#: shiftings/organizations/templates/organizations/organization_admin.html:371 +#: shiftings/organizations/templates/organizations/organization_shifts.html:112 msgid "ical Export" msgstr "ical Export" -#: src/shiftings/events/templates/events/event.html:86 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:389 -#: src/shiftings/shifts/templates/shifts/list.html:7 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:7 -#: src/shiftings/shifts/templates/shifts/template/shift.html:8 -#: src/shiftings/shifts/templates/shifts/template/template.html:7 +#: shiftings/events/templates/events/event.html:86 +#: shiftings/organizations/templates/organizations/organization_admin.html:389 +#: shiftings/shifts/templates/shifts/list.html:7 +#: shiftings/shifts/templates/shifts/recurring/list.html:7 +#: shiftings/shifts/templates/shifts/template/shift.html:8 +#: shiftings/shifts/templates/shifts/template/template.html:7 msgid "Type" msgstr "Typ" -#: src/shiftings/events/templates/events/event.html:87 -#: src/shiftings/mail/forms/mail.py:39 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:241 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:390 -#: src/shiftings/shifts/models/template_group.py:26 -#: src/shiftings/shifts/templates/shifts/shift.html:43 -#: src/shiftings/shifts/templates/shifts/template/group_list.html:9 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:17 -#: src/shiftings/shifts/templates/shifts/template/template.html:13 +#: shiftings/events/templates/events/event.html:87 +#: shiftings/mail/forms/mail.py:55 +#: shiftings/organizations/templates/organizations/organization_admin.html:241 +#: shiftings/organizations/templates/organizations/organization_admin.html:390 +#: shiftings/shifts/models/template_group.py:26 +#: shiftings/shifts/templates/shifts/shift.html:43 +#: shiftings/shifts/templates/shifts/template/group_list.html:9 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:17 +#: shiftings/shifts/templates/shifts/template/template.html:13 msgid "Start Time" msgstr "Startzeit" -#: src/shiftings/events/templates/events/event.html:88 -#: src/shiftings/mail/forms/mail.py:40 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:391 -#: src/shiftings/shifts/templates/shifts/shift.html:45 -#: src/shiftings/shifts/templates/shifts/template/template.html:15 +#: shiftings/events/templates/events/event.html:88 +#: shiftings/mail/forms/mail.py:56 +#: shiftings/organizations/templates/organizations/organization_admin.html:391 +#: shiftings/shifts/templates/shifts/shift.html:45 +#: shiftings/shifts/templates/shifts/template/template.html:15 msgid "End Time" msgstr "Endzeit" -#: src/shiftings/events/templates/events/event.html:89 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:198 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:240 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:392 -#: src/shiftings/shifts/models/base.py:9 -#: src/shiftings/shifts/models/template_group.py:21 -#: src/shiftings/shifts/templates/shifts/list.html:8 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:8 -#: src/shiftings/shifts/templates/shifts/shift.html:41 -#: src/shiftings/shifts/templates/shifts/template/group.html:41 -#: src/shiftings/shifts/templates/shifts/template/group_list.html:7 -#: src/shiftings/shifts/templates/shifts/template/group_template.html:21 -#: src/shiftings/shifts/templates/shifts/template/shift_card.html:12 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:18 +#: shiftings/events/templates/events/event.html:89 +#: shiftings/organizations/templates/organizations/organization_admin.html:198 +#: shiftings/organizations/templates/organizations/organization_admin.html:240 +#: shiftings/organizations/templates/organizations/organization_admin.html:392 +#: shiftings/shifts/models/base.py:9 +#: shiftings/shifts/models/template_group.py:21 +#: shiftings/shifts/templates/shifts/list.html:8 +#: shiftings/shifts/templates/shifts/recurring/list.html:8 +#: shiftings/shifts/templates/shifts/shift.html:41 +#: shiftings/shifts/templates/shifts/template/group.html:41 +#: shiftings/shifts/templates/shifts/template/group_list.html:7 +#: shiftings/shifts/templates/shifts/template/group_template.html:21 +#: shiftings/shifts/templates/shifts/template/shift_card.html:12 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:18 msgid "Place" msgstr "Ort" -#: src/shiftings/events/templates/events/event.html:90 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:393 +#: shiftings/events/templates/events/event.html:90 +#: shiftings/organizations/templates/organizations/organization_admin.html:393 msgid "Users/Required/Max" msgstr "Benutzer/Benötigt/Maximum" -#: src/shiftings/events/templates/events/event.html:108 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:416 +#: shiftings/events/templates/events/event.html:108 +#: shiftings/organizations/templates/organizations/organization_admin.html:416 msgid "No current shifts" msgstr "Keine aktuellen Schichten" -#: src/shiftings/events/templates/events/list.html:5 -#: src/shiftings/events/templates/events/list.html:13 -#: src/shiftings/events/templates/events/list.html:22 +#: shiftings/events/templates/events/list.html:5 +#: shiftings/events/templates/events/list.html:13 +#: shiftings/events/templates/events/list.html:22 msgid "All Events" msgstr "Alle Events" -#: src/shiftings/events/templates/events/list.html:7 -#: src/shiftings/templates/top_nav.html:22 +#: shiftings/events/templates/events/list.html:7 +#: shiftings/templates/top_nav.html:22 msgid "Current Events" msgstr "Aktuelle Events" -#: src/shiftings/events/templates/events/list.html:16 +#: shiftings/events/templates/events/list.html:16 msgid "All upcoming Events" msgstr "Alle anstehenden Events" -#: src/shiftings/events/templates/events/list.html:20 +#: shiftings/events/templates/events/list.html:20 msgid "Enter Name or Organization" msgstr "Name oder Organisation angeben" -#: src/shiftings/events/templates/events/list.html:26 +#: shiftings/events/templates/events/list.html:26 msgid "Future Events" msgstr "Zukünftige Events" -#: src/shiftings/events/templates/events/list.html:39 +#: shiftings/events/templates/events/list.html:39 msgid "No Events found." msgstr "Keine Events gefunden." -#: src/shiftings/events/templates/events/template/event.html:23 +#: shiftings/events/templates/events/template/event.html:23 #, python-format msgid "" "\n" @@ -2342,69 +755,81 @@ msgstr "" " %(start_date)s bis %(end_date)s\n" " " -#: src/shiftings/events/templates/events/template/event.html:31 +#: shiftings/events/templates/events/template/event.html:31 msgid "Open Shifts" msgstr "Offene Schichten" -#: src/shiftings/events/templates/events/template/event.html:32 +#: shiftings/events/templates/events/template/event.html:32 msgid "Required People" msgstr "Benötigte Personen" -#: src/shiftings/events/templates/events/template/event.html:33 +#: shiftings/events/templates/events/template/event.html:33 msgid "Visibility" msgstr "Sichtbarkeit" -#: src/shiftings/events/templates/events/template/event.html:33 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:350 +#: shiftings/events/templates/events/template/event.html:33 +#: shiftings/organizations/templates/organizations/organization_admin.html:350 msgid "Public,Private,Unknown" msgstr "Öffentlich,Privat,Unbekannt" -#: src/shiftings/events/templates/events/template/event_stats.html:2 +#: shiftings/events/templates/events/template/event_stats.html:2 msgid "Shifts that are below the required amount of users" msgstr "Schichten mit weniger als den benötigten Benutzern" -#: src/shiftings/events/templates/events/template/event_stats.html:3 +#: shiftings/events/templates/events/template/event_stats.html:3 msgid "Shifts missing users" msgstr "Schichten mit fehlenden Benutzern" -#: src/shiftings/events/templates/events/template/event_stats.html:6 +#: shiftings/events/templates/events/template/event_stats.html:6 msgid "Shifts that are below the required and maximum amount of users" msgstr "Schichten unter der benötigten und maximalen Benutzeranzahl" -#: src/shiftings/events/templates/events/template/event_stats.html:7 +#: shiftings/events/templates/events/template/event_stats.html:7 msgid "Shifts with open slots" msgstr "Schichten mit offenen Positionen" -#: src/shiftings/events/templates/events/template/event_stats.html:10 +#: shiftings/events/templates/events/template/event_stats.html:10 msgid "Number of Shift slots filled with users" msgstr "Anzahl mit Benutzern gefüllte Positionen" -#: src/shiftings/events/templates/events/template/event_stats.html:11 +#: shiftings/events/templates/events/template/event_stats.html:11 msgid "Filled Slots" msgstr "Gefüllte Positionen" -#: src/shiftings/events/templates/events/template/event_stats.html:12 -#: src/shiftings/events/templates/events/template/event_stats.html:16 +#: shiftings/events/templates/events/template/event_stats.html:12 +#: shiftings/events/templates/events/template/event_stats.html:16 msgid "No Shifts available" msgstr "Keine Schichten verfügbar" -#: src/shiftings/events/templates/events/template/event_stats.html:14 +#: shiftings/events/templates/events/template/event_stats.html:14 msgid "Number of Shift slots that are still open" msgstr "Anzahl offene Postiionen" -#: src/shiftings/events/templates/events/template/event_stats.html:15 +#: shiftings/events/templates/events/template/event_stats.html:15 msgid "Open Slots" msgstr "Offene Postionen" -#: src/shiftings/mail/forms/mail.py:10 +#: shiftings/mail/forms/mail.py:13 msgid "Subject" msgstr "Betreff" -#: src/shiftings/mail/forms/mail.py:12 +#: shiftings/mail/forms/mail.py:14 +msgid "Text" +msgstr "Text" + +#: shiftings/mail/forms/mail.py:15 msgid "Attachments" msgstr "Anhänge" -#: src/shiftings/mail/forms/mail.py:22 +#: shiftings/mail/forms/mail.py:26 +msgid "Each attachment must be smaller than 10 MB." +msgstr "" + +#: shiftings/mail/forms/mail.py:30 +msgid "Total attachment size must be smaller than 25 MB." +msgstr "" + +#: shiftings/mail/forms/mail.py:38 msgid "" "Send the mail only to specific membership types. Or leave blank to send to " "all." @@ -2412,7 +837,7 @@ msgstr "" "Email nur an bestimmte Mitgliedertypen senden oder leerlassen um sie an alle " "zu schicken." -#: src/shiftings/mail/forms/mail.py:37 +#: shiftings/mail/forms/mail.py:53 #, fuzzy #| msgid "" #| "Send the mail only to specific membership types. Or leave blank to send " @@ -2423,193 +848,195 @@ msgstr "" "Email nur an bestimmte Mitgliedertypen senden oder leerlassen um sie an alle " "zu schicken." -#: src/shiftings/mail/templates/mail/mail.html:8 +#: shiftings/mail/forms/mail.py:71 +msgid "Start time must be before end time." +msgstr "" + +#: shiftings/mail/templates/mail/mail.html:8 msgid "Send Mail" msgstr "Email versenden" -#: src/shiftings/mail/views/mail.py:45 +#: shiftings/mail/views/mail.py:45 #, python-brace-format msgid "E-Mail sent to {count} user(s)." msgstr "Email an {count} Benutzer verschickt." -#: src/shiftings/organizations/forms/membership.py:40 -#: src/shiftings/shifts/forms/participant.py:57 +#: shiftings/organizations/forms/membership.py:40 +#: shiftings/shifts/forms/participant.py:57 msgid "The user you entered could not be found." msgstr "Der eingetragene Benutzer konnte nicht gefunden werden." -#: src/shiftings/organizations/models/membership.py:11 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:68 -#: src/shiftings/templates/top_nav.html:50 +#: shiftings/organizations/models/membership.py:11 +#: shiftings/organizations/templates/organizations/organization_admin.html:68 +#: shiftings/templates/top_nav.html:50 msgid "Admin" msgstr "Admin" -#: src/shiftings/organizations/models/membership.py:13 +#: shiftings/organizations/models/membership.py:13 msgid "Permissions" msgstr "Berechtigungen" -#: src/shiftings/organizations/models/membership.py:19 +#: shiftings/organizations/models/membership.py:19 msgid "edit organization details" msgstr "Organisationdetails bearbeiten" -#: src/shiftings/organizations/models/membership.py:20 +#: shiftings/organizations/models/membership.py:20 msgid "see members of the organization" msgstr "Mitglieder der Organisation sehen" -#: src/shiftings/organizations/models/membership.py:21 +#: shiftings/organizations/models/membership.py:21 msgid "see shift participation statistics" msgstr "Schicht Teilnahmestatistik der Organistation sehen" -#: src/shiftings/organizations/models/membership.py:22 +#: shiftings/organizations/models/membership.py:22 msgid "send emails to everyone in the organization" msgstr "Emails an alle in der Organisation senden" -#: src/shiftings/organizations/models/membership.py:24 +#: shiftings/organizations/models/membership.py:24 msgid "create and update membership types for the organization" msgstr "Mitgliedschaftstypen in der Organisation erstellen und ändern" -#: src/shiftings/organizations/models/membership.py:25 +#: shiftings/organizations/models/membership.py:25 msgid "add and remove members for the organization" msgstr "Mitglieder in der Organisation hinzufügen und entfernen" -#: src/shiftings/organizations/models/membership.py:27 +#: shiftings/organizations/models/membership.py:27 msgid "create and update events for the organization" msgstr "Events für die Organisation erstellen und bearbeiten" -#: src/shiftings/organizations/models/membership.py:29 +#: shiftings/organizations/models/membership.py:29 msgid "create and update recurring shifts for the organization" msgstr "Wiederkehrende Schichten für die Organisation erstellen und bearbeiten" -#: src/shiftings/organizations/models/membership.py:30 +#: shiftings/organizations/models/membership.py:30 msgid "create and update shifts templates for the organization" msgstr "Schichtvorlagen für die Organisation erstellen und bearbeiten" -#: src/shiftings/organizations/models/membership.py:31 +#: shiftings/organizations/models/membership.py:31 msgid "create and update shifts for the organization" msgstr "Schichten für die Organisation erstellen und bearbeiten" -#: src/shiftings/organizations/models/membership.py:32 +#: shiftings/organizations/models/membership.py:32 msgid "delete uncompleted shifts for the organization" msgstr "Unabgeschlossene Schichten der Organistation löschen" -#: src/shiftings/organizations/models/membership.py:34 +#: shiftings/organizations/models/membership.py:34 msgid "remove others from shifts" msgstr "Andere von Schichten entfernen" -#: src/shiftings/organizations/models/membership.py:35 +#: shiftings/organizations/models/membership.py:35 msgid "add other users that are not members of the organization to shifts" msgstr "" "Andere Benutzer zu Schichten hinzufügen, die keine Mitglieder der " "Organisation sind" -#: src/shiftings/organizations/models/membership.py:36 +#: shiftings/organizations/models/membership.py:36 msgid "add other organization members to shifts" msgstr "Andere Organisationsmitglieder zu Schichten hinzufügen" -#: src/shiftings/organizations/models/membership.py:37 +#: shiftings/organizations/models/membership.py:37 msgid "participate in shifts" msgstr "An Schichten teilnehmen" -#: src/shiftings/organizations/models/membership.py:38 +#: shiftings/organizations/models/membership.py:38 msgid "add self/others (depending on other permissions) to past shifts" msgstr "" -#: src/shiftings/organizations/models/membership.py:57 +#: shiftings/organizations/models/membership.py:57 #, python-brace-format msgid "{name} (Admin)" msgstr "{name} (Admin)" -#: src/shiftings/organizations/models/membership.py:59 +#: shiftings/organizations/models/membership.py:59 #, python-brace-format msgid "{name} (Default)" msgstr "{name} (Standard)" -#: src/shiftings/organizations/models/membership.py:65 +#: shiftings/organizations/models/membership.py:65 msgid "Membership Type" msgstr "Mitgliedschaftstyp" -#: src/shiftings/organizations/models/membership.py:69 -#: src/shiftings/shifts/models/type.py:38 +#: shiftings/organizations/models/membership.py:69 +#: shiftings/shifts/models/type.py:38 msgid "Group" msgstr "Gruppe" -#: src/shiftings/organizations/models/membership.py:100 +#: shiftings/organizations/models/membership.py:100 msgid "Membership can only be either user or group, not both." msgstr "" "Mitgliedschaft kann nur für Benutzer oder Gruppe eingetragen werden nicht " "beides auf einmal." -#: src/shiftings/organizations/models/membership.py:102 +#: shiftings/organizations/models/membership.py:102 msgid "Membership must consist of a user or a group." msgstr "Mitgliedschaft muss aus einem Benutzer oder einer Gruppe bestehen." -#: src/shiftings/organizations/models/organization.py:30 +#: shiftings/organizations/models/organization.py:30 msgid "Include Protocol i.E. https://example.com" msgstr "Inklusive Protokoll z.B. https://example.com" -#: src/shiftings/organizations/models/organization.py:33 -#: src/shiftings/shifts/models/base.py:24 -#: src/shiftings/shifts/models/recurring.py:56 -#: src/shiftings/shifts/models/recurring.py:63 -#: src/shiftings/shifts/models/shift.py:32 -#: src/shiftings/shifts/models/template.py:33 +#: shiftings/organizations/models/organization.py:33 +#: shiftings/shifts/models/base.py:24 shiftings/shifts/models/recurring.py:56 +#: shiftings/shifts/models/recurring.py:63 shiftings/shifts/models/shift.py:32 +#: shiftings/shifts/models/template.py:33 #, python-brace-format msgid "A maximum of {amount} characters is allowed" msgstr "Es sind maximal {amount} Zeichen erlaubt" -#: src/shiftings/organizations/models/organization.py:34 +#: shiftings/organizations/models/organization.py:34 msgid "Confirm Participants" msgstr "Teilnehmer bestätigen" -#: src/shiftings/organizations/models/organization.py:35 +#: shiftings/organizations/models/organization.py:35 msgid "Whether the participants can be confirmed or not. Default: False" msgstr "Telnehmer können bestätigt werden. Standard: False" -#: src/shiftings/organizations/models/organization.py:49 +#: shiftings/organizations/models/organization.py:49 msgid "manage all organizations" msgstr "Alle Organisationen bearbeiten" -#: src/shiftings/organizations/models/user.py:10 +#: shiftings/organizations/models/user.py:10 msgid "Claimed by" msgstr "Beansprucht von" -#: src/shiftings/organizations/templates/organizations/list.html:5 +#: shiftings/organizations/templates/organizations/list.html:5 msgid "All Organizations" msgstr "Alle Organisationen" -#: src/shiftings/organizations/templates/organizations/list.html:7 -#: src/shiftings/templates/top_nav.html:18 +#: shiftings/organizations/templates/organizations/list.html:7 +#: shiftings/templates/top_nav.html:18 msgid "My Organizations" msgstr "Meine Organisationen" -#: src/shiftings/organizations/templates/organizations/list.html:12 +#: shiftings/organizations/templates/organizations/list.html:12 msgid "Enter Name" msgstr "Name einegeben" -#: src/shiftings/organizations/templates/organizations/list.html:14 +#: shiftings/organizations/templates/organizations/list.html:14 msgid "Add new Organization" msgstr "Neue Organisation hinzufügen" -#: src/shiftings/organizations/templates/organizations/list.html:25 +#: shiftings/organizations/templates/organizations/list.html:25 msgid "No Organizations found." msgstr "Keine Organisationen gefunden." -#: src/shiftings/organizations/templates/organizations/organization_admin.html:6 +#: shiftings/organizations/templates/organizations/organization_admin.html:6 msgid "Show membership Permissions" msgstr "Mitgliedschaftsberechtigungen anzeigen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:10 +#: shiftings/organizations/templates/organizations/organization_admin.html:10 msgid "All Permissions" msgstr "Alle Berechtigungen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:19 +#: shiftings/organizations/templates/organizations/organization_admin.html:19 msgid "No permissions" msgstr "Keine Berechtigungen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:26 +#: shiftings/organizations/templates/organizations/organization_admin.html:26 msgid "Add member" msgstr "Mitglied hinzufügen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:41 +#: shiftings/organizations/templates/organizations/organization_admin.html:41 #, python-format msgid "" "\n" @@ -2620,183 +1047,187 @@ msgstr "" " Mitglieder von %(organization)s\n" " " -#: src/shiftings/organizations/templates/organizations/organization_admin.html:48 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:8 +#: shiftings/organizations/templates/organizations/organization_admin.html:48 +#: shiftings/organizations/templates/organizations/organization_shifts.html:8 msgid "Member Shift Summary" msgstr "Mitglieder Schichten Zusammenfassung" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:54 +#: shiftings/organizations/templates/organizations/organization_admin.html:54 msgid "Add Membership Type" msgstr "Mitgliedschaftstyp hinzufügen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:78 +#: shiftings/organizations/templates/organizations/organization_admin.html:78 msgid "Show user permissions" msgstr "Benutzerberechtigungen anzeigen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:81 +#: shiftings/organizations/templates/organizations/organization_admin.html:81 msgid "Edit Membership Type" msgstr "Mitgliedschaftstyp bearbeiten" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:90 +#: shiftings/organizations/templates/organizations/organization_admin.html:90 msgid "Add Member" msgstr "Mitglied hinzufügen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:100 +#: shiftings/organizations/templates/organizations/organization_admin.html:100 msgid "No Members of this type!" msgstr "Keine Mitglieder von diesem Typ!" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:106 +#: shiftings/organizations/templates/organizations/organization_admin.html:106 msgid "Direct Members" msgstr "Direkte Mitglieder" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:150 +#: shiftings/organizations/templates/organizations/organization_admin.html:150 msgid "Next Shift" msgstr "Nächste Schicht" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:154 +#: shiftings/organizations/templates/organizations/organization_admin.html:154 msgid "No Shifts planned" msgstr "Keine Schichten geplant" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:179 -#: src/shiftings/shifts/templates/shifts/template/group.html:52 +#: shiftings/organizations/templates/organizations/organization_admin.html:179 +#: shiftings/shifts/templates/shifts/template/group.html:52 msgid "Recurring Shifts" msgstr "Wiederkehrende Schichten" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:184 +#: shiftings/organizations/templates/organizations/organization_admin.html:184 msgid "Add recurring shift" msgstr "Wiederkehrende Schicht hinzufügen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:196 +#: shiftings/organizations/templates/organizations/organization_admin.html:196 msgid "Shift count" msgstr "Schichten Anzahl" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:199 +#: shiftings/organizations/templates/organizations/organization_admin.html:199 msgid "Status" msgstr "Status" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:210 +#: shiftings/organizations/templates/organizations/organization_admin.html:210 msgid "Inactive,Active,Undefined" msgstr "Inaktiv,Aktiv,Unbekannt" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:216 +#: shiftings/organizations/templates/organizations/organization_admin.html:216 msgid "No recurring shifts" msgstr "Keine wiederkehrenden Schichten" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:223 +#: shiftings/organizations/templates/organizations/organization_admin.html:223 msgid "Shifts Templates" msgstr "Schichtvorlagen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:228 +#: shiftings/organizations/templates/organizations/organization_admin.html:228 msgid "Add shifts template" msgstr "Schichtvorlagen hinzufügen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:255 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:309 +#: shiftings/organizations/templates/organizations/organization_admin.html:255 +#: shiftings/organizations/templates/organizations/organization_admin.html:309 msgid "No shifts templates" msgstr "Keine Schichtvorlagen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:262 +#: shiftings/organizations/templates/organizations/organization_admin.html:262 msgid "Shifts Types" msgstr "Schichttypen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:267 +#: shiftings/organizations/templates/organizations/organization_admin.html:267 msgid "Add Shift Type" msgstr "Schichttyp hinzufügen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:279 +#: shiftings/organizations/templates/organizations/organization_admin.html:279 msgid "Color" msgstr "Farbe" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:280 -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:15 +#: shiftings/organizations/templates/organizations/organization_admin.html:280 +#: shiftings/organizations/templates/organizations/user/claim_users.html:15 msgid "Shift Count" msgstr "Schichten Anzahl" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:281 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:41 -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:16 +#: shiftings/organizations/templates/organizations/organization_admin.html:281 +#: shiftings/organizations/templates/organizations/organization_settings.html:41 +#: shiftings/organizations/templates/organizations/user/claim_users.html:16 msgid "Action" msgstr "Aktion" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:290 +#: shiftings/organizations/templates/organizations/organization_admin.html:290 msgid "Shift Type Background Color" msgstr "Schichttyp Hintergrundfarbe" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:317 +#: shiftings/organizations/templates/organizations/organization_admin.html:317 msgid "Upcoming Events" msgstr "Anstehende Events" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:321 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:50 +#: shiftings/organizations/templates/organizations/organization_admin.html:321 +#: shiftings/organizations/templates/organizations/organization_shifts.html:50 msgid "Expired Events" msgstr "Abgelaufene Events" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:326 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:55 +#: shiftings/organizations/templates/organizations/organization_admin.html:326 +#: shiftings/organizations/templates/organizations/organization_shifts.html:55 msgid "Add Event" msgstr "Event hinzufügen" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:356 +#: shiftings/organizations/templates/organizations/organization_admin.html:356 msgid "No upcoming Events planned" msgstr "Keine anstehenden Events" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:367 +#: shiftings/organizations/templates/organizations/organization_admin.html:367 msgid "Claim Legacy Shifts" msgstr "Beanspruche alte Schichten" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:19 -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:36 -#: src/shiftings/shifts/templates/shifts/edit_templates.html:31 -#: src/shiftings/shifts/templates/shifts/recurring/form.html:25 -#: src/shiftings/templates/generic/create_or_update.html:20 -#: src/shiftings/templates/generic/formset.html:17 +#: shiftings/organizations/templates/organizations/organization_settings.html:19 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:36 +#: shiftings/shifts/templates/shifts/edit_templates.html:31 +#: shiftings/shifts/templates/shifts/recurring/form.html:25 +#: shiftings/templates/generic/create_or_update.html:20 +#: shiftings/templates/generic/formset.html:17 msgid "Save" msgstr "Speichern" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:26 +#: shiftings/organizations/templates/organizations/organization_settings.html:26 msgid "Shift Type Groups" msgstr "Schichttypgruppen" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:29 +#: shiftings/organizations/templates/organizations/organization_settings.html:29 msgid "Create Type Group" msgstr "Schichttypgruppe hinzufügen" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:40 +#: shiftings/organizations/templates/organizations/organization_settings.html:38 +msgid "Order" +msgstr "Reihenfolge" + +#: shiftings/organizations/templates/organizations/organization_settings.html:40 msgid "Types" msgstr "Typen" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:61 +#: shiftings/organizations/templates/organizations/organization_settings.html:61 msgid "Edit Type Group" msgstr "Typgruppe editieren" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:72 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:77 +#: shiftings/organizations/templates/organizations/organization_settings.html:72 +#: shiftings/organizations/templates/organizations/organization_settings.html:77 msgid "Move Up" msgstr "Nach oben" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:84 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:89 +#: shiftings/organizations/templates/organizations/organization_settings.html:84 +#: shiftings/organizations/templates/organizations/organization_settings.html:89 msgid "Move Down" msgstr "Nach unten" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:11 +#: shiftings/organizations/templates/organizations/organization_shifts.html:11 msgid "Full Summary" msgstr "Komplette Zusammenfassung" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:46 +#: shiftings/organizations/templates/organizations/organization_shifts.html:46 msgid "Upcoming Event" msgstr "Anstehendes Event" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:66 -#: src/shiftings/shifts/models/shift.py:21 +#: shiftings/organizations/templates/organizations/organization_shifts.html:66 +#: shiftings/shifts/models/shift.py:21 msgid "Event" msgstr "Event" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:68 +#: shiftings/organizations/templates/organizations/organization_shifts.html:68 msgid "Go to Event" msgstr "Zum Event springen" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:74 +#: shiftings/organizations/templates/organizations/organization_shifts.html:74 #, python-format msgid "" "\n" @@ -2811,128 +1242,126 @@ msgstr "" "td>\n" " " -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:94 +#: shiftings/organizations/templates/organizations/organization_shifts.html:94 msgid "No Events planned" msgstr "Keine geplanten Events" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:102 +#: shiftings/organizations/templates/organizations/organization_shifts.html:102 msgid "Events disabled" msgstr "Events deaktiviert" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:117 +#: shiftings/organizations/templates/organizations/organization_shifts.html:117 msgid "Create Shift from Template" msgstr "Schichten aus Vorlage erstellen" -#: src/shiftings/organizations/templates/organizations/template/member_group.html:6 +#: shiftings/organizations/templates/organizations/template/member_group.html:6 msgid "Click to expand members" msgstr "Klicke für detaillierte Mitgliederansicht" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:8 +#: shiftings/organizations/templates/organizations/template/org_info.html:8 msgid "Organization Overview" msgstr "Organisationsübersicht" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:12 +#: shiftings/organizations/templates/organizations/template/org_info.html:12 msgid "Administrate Organization" msgstr "Organisation administrieren" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:14 +#: shiftings/organizations/templates/organizations/template/org_info.html:14 msgid "Organization Admin View" msgstr "Organisation Admin Ansicht" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:19 +#: shiftings/organizations/templates/organizations/template/org_info.html:19 msgid "Organization Settings" msgstr "Organisationseinstellungen" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:21 +#: shiftings/organizations/templates/organizations/template/org_info.html:21 msgid "Organization Settings View" msgstr "Organisations Einstellungen" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:35 +#: shiftings/organizations/templates/organizations/template/org_info.html:35 #, fuzzy #| msgid "See Shift Participants" msgid "Send Mail to shift participants" msgstr "Schichtteilnehmer sehen" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:41 +#: shiftings/organizations/templates/organizations/template/org_info.html:41 msgid "Edit Organization" msgstr "Organisation bearbeiten" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:47 +#: shiftings/organizations/templates/organizations/template/org_info.html:47 msgid "Update Shift Permissions" msgstr "Schichtberechtigungen aktualisieren" -#: src/shiftings/organizations/templates/organizations/template/organization.html:12 +#: shiftings/organizations/templates/organizations/template/organization.html:12 msgid "No Image available" msgstr "Kein Bild verfügbar" -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:6 +#: shiftings/organizations/templates/organizations/user/claim_users.html:6 msgid "Imported Users" msgstr "Importierte Benutzer" -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:14 +#: shiftings/organizations/templates/organizations/user/claim_users.html:14 msgid "Claimed" msgstr "Beansprucht" -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:36 +#: shiftings/organizations/templates/organizations/user/claim_users.html:36 msgid "Claim" msgstr "Beanspruchen" -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:43 +#: shiftings/organizations/templates/organizations/user/claim_users.html:43 msgid "Unclaim" msgstr "Freigeben" -#: src/shiftings/organizations/views/membership.py:55 -#: src/shiftings/organizations/views/membership_type.py:57 +#: shiftings/organizations/views/membership.py:55 +#: shiftings/organizations/views/membership_type.py:57 msgid "Membership removed" msgstr "Mitgliedschaft entfernt" -#: src/shiftings/organizations/views/organization.py:62 +#: shiftings/organizations/views/organization.py:62 #, python-brace-format msgid "{org} Overview" msgstr "{org}Übersicht" -#: src/shiftings/organizations/views/organization.py:89 +#: shiftings/organizations/views/organization.py:89 #, python-brace-format msgid "{org} Administration" msgstr "{org} Administration" -#: src/shiftings/organizations/views/organization.py:135 +#: shiftings/organizations/views/organization.py:135 #, python-brace-format msgid "{org} Settings" msgstr "{org} Einstellungen" -#: src/shiftings/organizations/views/user.py:36 +#: shiftings/organizations/views/user.py:36 msgid "You can't claim users that are already claimed." msgstr "Du kannst keine Benutzer beanspruchen, die bereits beansprucht sind." -#: src/shiftings/shifts/forms/filters.py:12 +#: shiftings/shifts/forms/filters.py:12 msgid "Shifts I participate in" msgstr "Schichten, an denen ich teilnehme" -#: src/shiftings/shifts/forms/filters.py:17 -#: src/shiftings/shifts/forms/filters.py:19 +#: shiftings/shifts/forms/filters.py:17 shiftings/shifts/forms/filters.py:19 msgid "Date YYYY-MM-DD" msgstr "Datum YYYY-MM-DD" -#: src/shiftings/shifts/forms/filters.py:18 -#: src/shiftings/shifts/forms/filters.py:20 +#: shiftings/shifts/forms/filters.py:18 shiftings/shifts/forms/filters.py:20 msgid "Time HH:MM" msgstr "Uhrzeit HH:MM" -#: src/shiftings/shifts/forms/participant.py:28 +#: shiftings/shifts/forms/participant.py:28 #, python-brace-format msgid "User {user} is already registered for this shift." msgstr "Benutzer {user} wurde bereits für diese Schicht eingetragen." -#: src/shiftings/shifts/forms/participant.py:32 +#: shiftings/shifts/forms/participant.py:32 msgid "Organization Users" msgstr "Organisationsmitglieder" -#: src/shiftings/shifts/forms/participant.py:33 +#: shiftings/shifts/forms/participant.py:33 msgid "Other Users" msgstr "Andere Benutzer" -#: src/shiftings/shifts/forms/participant.py:34 +#: shiftings/shifts/forms/participant.py:34 msgid "" "To add users that do not belong to your organization please enter their " "username." @@ -2940,21 +1369,21 @@ msgstr "" "Um Benutzer, die nicht Teil der Organisation sind, hinzuzufügen gib deren " "Benutzernamen an." -#: src/shiftings/shifts/forms/participant.py:65 +#: shiftings/shifts/forms/participant.py:65 msgid "Only select one type of user!" msgstr "Wähle nur einen Benutzertyp aus!" -#: src/shiftings/shifts/forms/participant.py:75 +#: shiftings/shifts/forms/participant.py:75 msgid "One of the user fields is required!" msgstr "Eines der Benutzerfelder ist benötigt!" -#: src/shiftings/shifts/forms/participant.py:80 +#: shiftings/shifts/forms/participant.py:80 #, python-brace-format msgid "Cannot add {user} multiple times to this shift" msgstr "Benutzer {user} kann nicht mehrmals zur Schicht hinzugefügt werden" -#: src/shiftings/shifts/forms/permission.py:36 -#: src/shiftings/shifts/forms/permission.py:90 +#: shiftings/shifts/forms/permission.py:36 +#: shiftings/shifts/forms/permission.py:90 #, python-brace-format msgid "" "Permission would have no effect. Permission for all Users is more extensive: " @@ -2963,7 +1392,7 @@ msgstr "" "Berechtigung hätte keinen Effekt. Berechtigung für alle Benutzer ist " "weitergehender: {permission}" -#: src/shiftings/shifts/forms/permission.py:47 +#: shiftings/shifts/forms/permission.py:47 #, python-brace-format msgid "" "Permission would have no effect. There is an inherited more extensive " @@ -2972,7 +1401,7 @@ msgstr "" "Berechtigung hätte keinen Effekt. Es existiert eine weitergehende " "Berechtigung: {referred_object} ({permission})" -#: src/shiftings/shifts/forms/permission.py:56 +#: shiftings/shifts/forms/permission.py:56 #, python-brace-format msgid "" "Permission would have no effect. There is an inherited more extensive " @@ -2981,166 +1410,169 @@ msgstr "" "Berechtigung hätte keinen Effekt. Es existiert eine weitergehende " "Berechtigung für alle Benutzer: {referred_object} ({permission})" -#: src/shiftings/shifts/forms/permission.py:78 +#: shiftings/shifts/forms/permission.py:78 #, python-brace-format msgid "Can only set one permission for organization \"{organization}\"" msgstr "" "Es kann nur eine Berechtigung für die Organistation \"{organization}\" " "gesetzt werden" -#: src/shiftings/shifts/forms/permission.py:80 +#: shiftings/shifts/forms/permission.py:80 msgid "Can only set one permission for all Users" msgstr "Es kann nur eine Berechtigung für alle Benutzer gesetzt werden" -#: src/shiftings/shifts/forms/recurring.py:13 +#: shiftings/shifts/forms/recurring.py:13 msgid "Ordinal" msgstr "Ordinal" -#: src/shiftings/shifts/forms/recurring.py:35 +#: shiftings/shifts/forms/recurring.py:35 msgid "Weekday can't be empty with the chosen time frame type." msgstr "Der Wochentag ist erforderlich für den angegeben Zeitraumtyp." -#: src/shiftings/shifts/forms/recurring.py:37 +#: shiftings/shifts/forms/recurring.py:37 msgid "Month can't be empty with the chosen time frame type." msgstr "Der Monat ist erforderlich für den angegebenen Zeitraumtyp." -#: src/shiftings/shifts/forms/recurring.py:39 +#: shiftings/shifts/forms/recurring.py:39 msgid "You need to add a warning for weekend handling." msgstr "Du musst eine Warnung für die Wochenendproblembehandlung hinzufügen." -#: src/shiftings/shifts/forms/recurring.py:41 +#: shiftings/shifts/forms/recurring.py:41 msgid "You need to add a warning for holiday handling." msgstr "Du musst eine Warnung für die Feiertagsproblembehandlung hinzufügen." -#: src/shiftings/shifts/forms/shift.py:38 -#: src/shiftings/shifts/forms/template.py:66 +#: shiftings/shifts/forms/shift.py:39 +msgid "End time must be after start time" +msgstr "" + +#: shiftings/shifts/forms/shift.py:44 shiftings/shifts/forms/template.py:66 #, python-brace-format msgid "Shift is too long, can at most be {max} long" msgstr "Diese Schicht ist zu lang, sie kann Maximal {max} lang sein" -#: src/shiftings/shifts/forms/template.py:18 +#: shiftings/shifts/forms/template.py:18 msgid "Date" msgstr "Datum" -#: src/shiftings/shifts/forms/template.py:18 +#: shiftings/shifts/forms/template.py:18 msgid "Date to create the template on" msgstr "Datum an dem die Vorlage erstellt wird" -#: src/shiftings/shifts/forms/template.py:38 -#: src/shiftings/shifts/models/template.py:22 +#: shiftings/shifts/forms/template.py:38 shiftings/shifts/models/template.py:22 msgid "Start Delay" msgstr "Startverzögerung" -#: src/shiftings/shifts/forms/template.py:58 +#: shiftings/shifts/forms/template.py:40 shiftings/shifts/models/template.py:23 +#: shiftings/shifts/templates/shifts/recurring/list.html:11 +msgid "Duration" +msgstr "Dauer" + +#: shiftings/shifts/forms/template.py:58 msgid "Start Delay was None please reload and use the slider." msgstr "" "Anfangsverzögerung war None bitte lade die Seite neu und benutze den Slider." -#: src/shiftings/shifts/forms/template.py:64 +#: shiftings/shifts/forms/template.py:64 msgid "Duration was None please reload and use the slider." msgstr "Dauer war None bitte lade die Seite neu und benutze den Slider." -#: src/shiftings/shifts/forms/type.py:22 +#: shiftings/shifts/forms/type.py:22 msgid "Can't name a shift type \"System\"." msgstr "Ungültiger Name \"System\" für einen Schichttyp." -#: src/shiftings/shifts/models/base.py:13 -#: src/shiftings/shifts/models/template.py:19 -#: src/shiftings/shifts/templates/shifts/shift.html:39 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:18 +#: shiftings/shifts/models/base.py:13 shiftings/shifts/models/template.py:19 +#: shiftings/shifts/templates/shifts/shift.html:39 +#: shiftings/shifts/templates/shifts/template/template_form.html:18 msgid "Shift Type" msgstr "Schicht Typ" -#: src/shiftings/shifts/models/base.py:16 +#: shiftings/shifts/models/base.py:16 msgid "Required Users" msgstr "Benötigte Benutzer" -#: src/shiftings/shifts/models/base.py:18 -#: src/shiftings/shifts/models/template.py:27 +#: shiftings/shifts/models/base.py:18 shiftings/shifts/models/template.py:27 msgid "A maximum of 32 users can be required" msgstr "Es können maximal 32 Benutzer benötigt werden" -#: src/shiftings/shifts/models/base.py:19 +#: shiftings/shifts/models/base.py:19 msgid "Maximum Users" msgstr "Maximale Benutzer" -#: src/shiftings/shifts/models/base.py:21 -#: src/shiftings/shifts/models/template.py:30 +#: shiftings/shifts/models/base.py:21 shiftings/shifts/models/template.py:30 msgid "A maximum of 64 users can be present" msgstr "Es können maximal 64 Benutzer teilnehmen" -#: src/shiftings/shifts/models/base.py:23 -#: src/shiftings/shifts/models/template.py:32 -#: src/shiftings/shifts/templates/shifts/shift.html:79 -#: src/shiftings/shifts/templates/shifts/template/template.html:26 +#: shiftings/shifts/models/base.py:23 shiftings/shifts/models/template.py:32 +#: shiftings/shifts/templates/shifts/shift.html:79 +#: shiftings/shifts/templates/shifts/template/template.html:26 msgid "Additional Infos" msgstr "Zusätzliche Informationen" -#: src/shiftings/shifts/models/participant.py:16 +#: shiftings/shifts/models/participant.py:16 msgid "Display Name is optional, and will be shown instead of the username" msgstr "" "Der Anzeigename ist optional und wird anstatt dem Benutzernamen angezeigt" -#: src/shiftings/shifts/models/participant.py:17 +#: shiftings/shifts/models/participant.py:17 msgid "Participation confirmed" msgstr "Teilnahme bestätigt" -#: src/shiftings/shifts/models/participant.py:18 +#: shiftings/shifts/models/participant.py:18 msgid "" "Whether the participant has taken part in the shift or not. Default: False" msgstr "Hat der Teilnehmer die Schicht ausgeführt. Standard: False" -#: src/shiftings/shifts/models/permission.py:18 +#: shiftings/shifts/models/permission.py:18 msgid "No Permission" msgstr "Keine Berechtigung" -#: src/shiftings/shifts/models/permission.py:19 +#: shiftings/shifts/models/permission.py:19 msgid "See Shift exists" msgstr "Schichttexistenz sehen" -#: src/shiftings/shifts/models/permission.py:20 +#: shiftings/shifts/models/permission.py:20 msgid "See Shift Details" msgstr "Schichtdetails sehen" -#: src/shiftings/shifts/models/permission.py:21 +#: shiftings/shifts/models/permission.py:21 msgid "See Shift Participants" msgstr "Schichtteilnehmer sehen" -#: src/shiftings/shifts/models/permission.py:22 +#: shiftings/shifts/models/permission.py:22 msgid "Participate" msgstr "Teilnehmen" -#: src/shiftings/shifts/models/permission.py:80 +#: shiftings/shifts/models/permission.py:80 msgid "Permission Type" msgstr "Berechtigungstyp" -#: src/shiftings/shifts/models/permission.py:82 +#: shiftings/shifts/models/permission.py:82 msgid "Affected Organization" msgstr "Betroffene Organisationen" -#: src/shiftings/shifts/models/recurring.py:26 +#: shiftings/shifts/models/recurring.py:26 msgid "ignore" msgstr "ignorieren" -#: src/shiftings/shifts/models/recurring.py:27 +#: shiftings/shifts/models/recurring.py:27 msgid "cancel" msgstr "abbrechen" -#: src/shiftings/shifts/models/recurring.py:28 +#: shiftings/shifts/models/recurring.py:28 msgid "show warning" msgstr "Warnung anzeigen" -#: src/shiftings/shifts/models/recurring.py:36 +#: shiftings/shifts/models/recurring.py:36 msgid "Timeframe Type" msgstr "Zeitraum Typ" -#: src/shiftings/shifts/models/recurring.py:41 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:10 -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:53 +#: shiftings/shifts/models/recurring.py:41 +#: shiftings/shifts/templates/shifts/recurring/list.html:10 +#: shiftings/shifts/templates/shifts/recurring/shift.html:53 msgid "First Occurrence" msgstr "Erster Termin" -#: src/shiftings/shifts/models/recurring.py:42 +#: shiftings/shifts/models/recurring.py:42 msgid "" "Choose a minimum day for first occurrence and the system will automatically " "choose the next applicable day." @@ -3148,142 +1580,142 @@ msgstr "" "Wähle einen Tag für die erste Angabe und das system wird automatisch den " "nächsten zutreffenden Tag berechnen." -#: src/shiftings/shifts/models/recurring.py:46 +#: shiftings/shifts/models/recurring.py:46 msgid "Auto create days" msgstr "" -#: src/shiftings/shifts/models/recurring.py:46 +#: shiftings/shifts/models/recurring.py:46 msgid "How many days in advance should the shifts be created?" msgstr "" -#: src/shiftings/shifts/models/recurring.py:48 +#: shiftings/shifts/models/recurring.py:48 msgid "Shift Template" msgstr "Schichtvorlage" -#: src/shiftings/shifts/models/recurring.py:52 +#: shiftings/shifts/models/recurring.py:52 msgid "Weekend problem handling" msgstr "Wochenendproblembehandlung" -#: src/shiftings/shifts/models/recurring.py:54 +#: shiftings/shifts/models/recurring.py:54 msgid "Warning text for weekend" msgstr "Warnung für Wochenenden" -#: src/shiftings/shifts/models/recurring.py:59 +#: shiftings/shifts/models/recurring.py:59 msgid "Holidays problem handling" msgstr "Feiertagsproblembehandlung" -#: src/shiftings/shifts/models/recurring.py:61 +#: shiftings/shifts/models/recurring.py:61 msgid "Warning text for holidays" msgstr "Warnung für Feiertage" -#: src/shiftings/shifts/models/recurring.py:67 +#: shiftings/shifts/models/recurring.py:67 msgid "Manually Disabled" msgstr "Manuell deaktiviert" -#: src/shiftings/shifts/models/recurring.py:88 +#: shiftings/shifts/models/recurring.py:88 msgid "Nth" msgstr "Nte" -#: src/shiftings/shifts/models/recurring.py:89 +#: shiftings/shifts/models/recurring.py:89 msgid "[weekday]" msgstr "[Wochentag]" -#: src/shiftings/shifts/models/recurring.py:90 +#: shiftings/shifts/models/recurring.py:90 msgid "[month]" msgstr "[Monat]" -#: src/shiftings/shifts/models/shift.py:24 +#: shiftings/shifts/models/shift.py:24 msgid "Start Date and Time" msgstr "Startdatum und Zeit" -#: src/shiftings/shifts/models/shift.py:25 +#: shiftings/shifts/models/shift.py:25 msgid "End Date and Time" msgstr "Enddatum und Zeit" -#: src/shiftings/shifts/models/shift.py:27 -#: src/shiftings/shifts/templates/shifts/template/shift.html:13 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:21 +#: shiftings/shifts/models/shift.py:27 +#: shiftings/shifts/templates/shifts/template/shift.html:13 +#: shiftings/shifts/templates/shifts/template/template_form.html:21 msgid "Users" msgstr "Benutzer" -#: src/shiftings/shifts/models/shift.py:30 +#: shiftings/shifts/models/shift.py:30 msgid "Locked for Participation" msgstr "Teilnahme geschlossen" -#: src/shiftings/shifts/models/shift.py:31 -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:58 -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:64 +#: shiftings/shifts/models/shift.py:31 +#: shiftings/shifts/templates/shifts/recurring/shift.html:58 +#: shiftings/shifts/templates/shifts/recurring/shift.html:64 msgid "Warning" msgstr "Warnung" -#: src/shiftings/shifts/models/shift.py:35 +#: shiftings/shifts/models/shift.py:35 msgid "Created by Recurring Shift" msgstr "Erstellt von wiederkehrender Schicht" -#: src/shiftings/shifts/models/shift.py:37 -#: src/shiftings/shifts/templates/shifts/shift.html:53 +#: shiftings/shifts/models/shift.py:37 +#: shiftings/shifts/templates/shifts/shift.html:53 msgid "Created" msgstr "Erstellt" -#: src/shiftings/shifts/models/shift.py:38 -#: src/shiftings/shifts/templates/shifts/shift.html:55 +#: shiftings/shifts/models/shift.py:38 +#: shiftings/shifts/templates/shifts/shift.html:55 msgid "Last Modified" msgstr "Zuletzt geändert" -#: src/shiftings/shifts/models/shift.py:54 +#: shiftings/shifts/models/shift.py:54 msgid "Organization and Event Organization must be identical." msgstr "Organistion und Event Organistation müssen identisch sein." -#: src/shiftings/shifts/models/shift.py:57 +#: shiftings/shifts/models/shift.py:57 #, python-brace-format msgid "Shift {name} on {time}" msgstr "Schicht {name} am {time}" -#: src/shiftings/shifts/models/shift.py:65 +#: shiftings/shifts/models/shift.py:65 #, python-brace-format msgid "{name} from {start} to {end} " msgstr "{name} von {start} bis {end} " -#: src/shiftings/shifts/models/shift.py:72 +#: shiftings/shifts/models/shift.py:72 #, python-brace-format msgid "{start} to {end_time} on {end_date} " msgstr "{start} bis {end_time} am {end_date} " -#: src/shiftings/shifts/models/shift.py:76 +#: shiftings/shifts/models/shift.py:76 #, python-brace-format msgid "{start} to {end_time}" msgstr "{start} bis {end_time}" -#: src/shiftings/shifts/models/summary.py:11 +#: shiftings/shifts/models/summary.py:11 msgid "\"Other\" Shift Type Group Name" msgstr "\"Sonstige\" Schichttyp Gruppenname" -#: src/shiftings/shifts/models/summary.py:14 +#: shiftings/shifts/models/summary.py:14 msgid "Default time range for summary" msgstr "Standard Zeitraum für die Zusammenfassung" -#: src/shiftings/shifts/models/summary.py:25 +#: shiftings/shifts/models/summary.py:25 #, python-brace-format msgid "Organization summary settings of {organization}" msgstr "Zusammenfassungseinstellungen von {organization}" -#: src/shiftings/shifts/models/template.py:16 +#: shiftings/shifts/models/template.py:16 msgid "Template Group" msgstr "Vorlagengruppe" -#: src/shiftings/shifts/models/template.py:25 +#: shiftings/shifts/models/template.py:25 msgid "Required User" msgstr "Benötigte Benutzer" -#: src/shiftings/shifts/models/template.py:28 +#: shiftings/shifts/models/template.py:28 msgid "Maximum User" msgstr "Maximale Benutzer" -#: src/shiftings/shifts/signals.py:26 +#: shiftings/shifts/signals.py:26 msgid "Could not find a valid first occurrence." msgstr "Konnte keinen validen ersten Termin finden." -#: src/shiftings/shifts/templates/shifts/create_shift.html:11 +#: shiftings/shifts/templates/shifts/create_shift.html:11 #, python-format msgid "" "\n" @@ -3294,7 +1726,7 @@ msgstr "" "

Neue Schicht für %(organization)s erstellen

\n" " " -#: src/shiftings/shifts/templates/shifts/create_shift.html:15 +#: shiftings/shifts/templates/shifts/create_shift.html:15 #, python-format msgid "" "\n" @@ -3306,70 +1738,70 @@ msgstr "" "h4>\n" " " -#: src/shiftings/shifts/templates/shifts/create_shift.html:22 -#: src/shiftings/shifts/templates/shifts/create_shift.html:83 -#: src/shiftings/shifts/templates/shifts/recurring/form.html:23 -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:19 -#: src/shiftings/templates/generic/create_or_update.html:18 -#: src/shiftings/templates/generic/form_card.html:8 +#: shiftings/shifts/templates/shifts/create_shift.html:22 +#: shiftings/shifts/templates/shifts/create_shift.html:83 +#: shiftings/shifts/templates/shifts/recurring/form.html:23 +#: shiftings/shifts/templates/shifts/recurring/shift.html:19 +#: shiftings/templates/generic/create_or_update.html:18 +#: shiftings/templates/generic/form_card.html:8 msgid "Create" msgstr "Erstellen" -#: src/shiftings/shifts/templates/shifts/create_shift.html:24 +#: shiftings/shifts/templates/shifts/create_shift.html:24 msgid "Update" msgstr "Aktualisieren" -#: src/shiftings/shifts/templates/shifts/create_shift.html:26 -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:34 -#: src/shiftings/templates/generic/create_or_update.html:22 +#: shiftings/shifts/templates/shifts/create_shift.html:26 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:34 +#: shiftings/templates/generic/create_or_update.html:22 msgid "Back" msgstr "Zurück" -#: src/shiftings/shifts/templates/shifts/create_shift.html:47 +#: shiftings/shifts/templates/shifts/create_shift.html:47 msgid "Shift starting time" msgstr "Schicht Startzeit" -#: src/shiftings/shifts/templates/shifts/create_shift.html:48 +#: shiftings/shifts/templates/shifts/create_shift.html:48 msgctxt "Shift time" msgid "Start Time" msgstr "Startzeit" -#: src/shiftings/shifts/templates/shifts/create_shift.html:52 +#: shiftings/shifts/templates/shifts/create_shift.html:52 msgid "Shift end time" msgstr "Schichtende" -#: src/shiftings/shifts/templates/shifts/create_shift.html:53 +#: shiftings/shifts/templates/shifts/create_shift.html:53 msgctxt "Shift time" msgid "End Time" msgstr "Endzeit" -#: src/shiftings/shifts/templates/shifts/create_shift.html:59 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:24 +#: shiftings/shifts/templates/shifts/create_shift.html:59 +#: shiftings/shifts/templates/shifts/template/template_form.html:24 msgid "Required number of users to fill this shift" msgstr "Benötigte Anzahl an Benutzern um die Schicht zu füllen" -#: src/shiftings/shifts/templates/shifts/create_shift.html:60 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:25 +#: shiftings/shifts/templates/shifts/create_shift.html:60 +#: shiftings/shifts/templates/shifts/template/template_form.html:25 msgctxt "Shift users" msgid "Required" msgstr "Benötigt" -#: src/shiftings/shifts/templates/shifts/create_shift.html:64 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:29 +#: shiftings/shifts/templates/shifts/create_shift.html:64 +#: shiftings/shifts/templates/shifts/template/template_form.html:29 msgid "Maximum number of users allowed in this shift" msgstr "Maximale Anzahl an Benutzern in dieser Schicht" -#: src/shiftings/shifts/templates/shifts/create_shift.html:65 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:30 +#: shiftings/shifts/templates/shifts/create_shift.html:65 +#: shiftings/shifts/templates/shifts/template/template_form.html:30 msgctxt "Shift users" msgid "Maximum" msgstr "Maximum" -#: src/shiftings/shifts/templates/shifts/create_shift.html:76 +#: shiftings/shifts/templates/shifts/create_shift.html:76 msgid "Create from Template" msgstr "Aus Vorlage erstellen" -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:17 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:17 #, python-format msgid "" "\n" @@ -3382,39 +1814,39 @@ msgstr "" "mit \"+\" hinzu\n" " " -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:26 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:26 msgid "Edit Shift Permissions for" msgstr "Schichtberechtigungen bearbeiten" -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:38 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:38 msgid "How does it work?" msgstr "Wie funktioniert es?" -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:53 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:53 msgid "Inherited Permissions" msgstr "Geerbte Berechtigungen" -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:65 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:65 msgid "All Users" msgstr "Alle Benutzer" -#: src/shiftings/shifts/templates/shifts/edit_templates.html:21 +#: shiftings/shifts/templates/shifts/edit_templates.html:21 msgid "Edit Templates for" msgstr "Bearbeite Vorlagen für" -#: src/shiftings/shifts/templates/shifts/edit_templates.html:29 +#: shiftings/shifts/templates/shifts/edit_templates.html:29 msgid "Cancel" msgstr "Abbrechen" -#: src/shiftings/shifts/templates/shifts/recurring/form.html:33 +#: shiftings/shifts/templates/shifts/recurring/form.html:33 msgid "Recurring Time Frame" msgstr "Wiederkehrender Zeitraum" -#: src/shiftings/shifts/templates/shifts/recurring/form.html:42 +#: shiftings/shifts/templates/shifts/recurring/form.html:42 msgid "Shift Information" msgstr "Schichtinformation" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:16 +#: shiftings/shifts/templates/shifts/recurring/shift.html:16 #, python-format msgid "" "\n" @@ -3425,11 +1857,11 @@ msgstr "" " Möchtest du diese Schicht am %(date)s erstellen\n" " " -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:37 +#: shiftings/shifts/templates/shifts/recurring/shift.html:37 msgid "Edit Recurring Shift" msgstr "Wiederkehrende Schicht bearbeiten" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:44 +#: shiftings/shifts/templates/shifts/recurring/shift.html:44 #, python-format msgid "" "\n" @@ -3442,7 +1874,7 @@ msgstr "" "%(time)s\n" " " -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:48 +#: shiftings/shifts/templates/shifts/recurring/shift.html:48 #, fuzzy, python-format #| msgid "" #| "\n" @@ -3457,44 +1889,44 @@ msgstr "" " vor %(time)s\n" " " -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:55 +#: shiftings/shifts/templates/shifts/recurring/shift.html:55 msgid "Weekend Handling" msgstr "Wochenendvorgehen" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:61 +#: shiftings/shifts/templates/shifts/recurring/shift.html:61 msgid "Holiday Handling" msgstr "Feiertagsvorgehen" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:75 +#: shiftings/shifts/templates/shifts/recurring/shift.html:75 msgid "Upcoming recurring Shifts" msgstr "Anstehende wiederkehrende Schichten" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:86 +#: shiftings/shifts/templates/shifts/recurring/shift.html:86 msgid "No upcoming created Shifts" msgstr "Keine anstehenden erstellten Schichten" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:93 +#: shiftings/shifts/templates/shifts/recurring/shift.html:93 msgid "Passed recurring Shifts" msgstr "Vergangenen Wiederkehrende Schichten" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:104 +#: shiftings/shifts/templates/shifts/recurring/shift.html:104 msgid "No created Shifts have passed yet" msgstr "Keine erstellten Schichten sind abgelaufen" -#: src/shiftings/shifts/templates/shifts/shift.html:16 -#: src/shiftings/shifts/views/shift.py:78 +#: shiftings/shifts/templates/shifts/shift.html:16 +#: shiftings/shifts/views/shift.py:78 msgid "Edit Shift" msgstr "Schicht bearbeiten" -#: src/shiftings/shifts/templates/shifts/shift.html:22 +#: shiftings/shifts/templates/shifts/shift.html:22 msgid "Delete Shift" msgstr "Schicht löschen" -#: src/shiftings/shifts/templates/shifts/shift.html:28 +#: shiftings/shifts/templates/shifts/shift.html:28 msgid "Edit Permissions" msgstr "Berechtigungen bearbeiten" -#: src/shiftings/shifts/templates/shifts/shift.html:57 +#: shiftings/shifts/templates/shifts/shift.html:57 #, python-format msgid "" "\n" @@ -3505,219 +1937,219 @@ msgstr "" " vor %(time)s\n" " " -#: src/shiftings/shifts/templates/shifts/shift.html:66 -#: src/shiftings/shifts/templates/shifts/template/shift_card.html:13 +#: shiftings/shifts/templates/shifts/shift.html:66 +#: shiftings/shifts/templates/shifts/template/shift_card.html:13 msgid "Shift Participants" msgstr "Schichtteilnehmer" -#: src/shiftings/shifts/templates/shifts/shift.html:71 +#: shiftings/shifts/templates/shifts/shift.html:71 msgid "Add participant" msgstr "Teilnehmer hinzufügen" -#: src/shiftings/shifts/templates/shifts/shift.html:84 +#: shiftings/shifts/templates/shifts/shift.html:84 msgid "Nothing to consider." msgstr "Nichts zu beachten." -#: src/shiftings/shifts/templates/shifts/shift_participants.html:11 +#: shiftings/shifts/templates/shifts/shift_participants.html:11 msgid "" "This shift is over, do you really want/need to add yourself as participant?" msgstr "" -#: src/shiftings/shifts/templates/shifts/shift_url_filters.html:8 +#: shiftings/shifts/templates/shifts/shift_url_filters.html:8 msgid "Toggle Shift Filters" msgstr "Schichtfilter umschalten" -#: src/shiftings/shifts/templates/shifts/summary/summary.html:6 +#: shiftings/shifts/templates/shifts/summary/summary.html:6 msgid "Shift Summary" msgstr "Mitglieder Schichten Zusammenfassung" -#: src/shiftings/shifts/templates/shifts/template/group.html:17 +#: shiftings/shifts/templates/shifts/template/group.html:17 msgid "Delete Template" msgstr "Vorlage löschen" -#: src/shiftings/shifts/templates/shifts/template/group.html:21 +#: shiftings/shifts/templates/shifts/template/group.html:21 msgid "Edit Template" msgstr "Vorlage bearbeiten" -#: src/shiftings/shifts/templates/shifts/template/group.html:25 -#: src/shiftings/shifts/templates/shifts/template/group_template.html:13 +#: shiftings/shifts/templates/shifts/template/group.html:25 +#: shiftings/shifts/templates/shifts/template/group_template.html:13 msgid "Edit Shifts" msgstr "Schichten bearbeiten" -#: src/shiftings/shifts/templates/shifts/template/group.html:31 +#: shiftings/shifts/templates/shifts/template/group.html:31 msgid "Edit Template Permissions" msgstr "Vorlagenberechtigungen bearbeiten" -#: src/shiftings/shifts/templates/shifts/template/group.html:70 +#: shiftings/shifts/templates/shifts/template/group.html:70 msgid "Create Shift Templates" msgstr "Schichtvorlagen erstellen" -#: src/shiftings/shifts/templates/shifts/template/group_template.html:9 +#: shiftings/shifts/templates/shifts/template/group_template.html:9 msgid "Edit Shifts Template" msgstr "Schichtvorlage bearbeiten" -#: src/shiftings/shifts/templates/shifts/template/member_shift_summary.html:3 +#: shiftings/shifts/templates/shifts/template/member_shift_summary.html:3 msgid "Member" msgstr "Mitglied" -#: src/shiftings/shifts/templates/shifts/template/member_shift_summary.html:10 +#: shiftings/shifts/templates/shifts/template/member_shift_summary.html:10 msgid "Total" msgstr "Summe" -#: src/shiftings/shifts/templates/shifts/template/participation_permission_form.html:9 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:10 +#: shiftings/shifts/templates/shifts/template/participation_permission_form.html:9 +#: shiftings/shifts/templates/shifts/template/template_form.html:10 msgid "Remove Shift" msgstr "Schicht löschen" -#: src/shiftings/shifts/templates/shifts/template/participation_permission_form.html:12 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:13 +#: shiftings/shifts/templates/shifts/template/participation_permission_form.html:12 +#: shiftings/shifts/templates/shifts/template/template_form.html:13 msgid "Restore Shift" msgstr "Schicht wiederherstellen" -#: src/shiftings/shifts/templates/shifts/template/select_org.html:3 +#: shiftings/shifts/templates/shifts/template/select_org.html:3 msgid "Select Organization to create Shift for" msgstr "Organisation auswählen für die eine Schicht erstellt werden soll" -#: src/shiftings/shifts/templates/shifts/template/shift.html:5 +#: shiftings/shifts/templates/shifts/template/shift.html:5 msgid "Go to Shift" msgstr "Zur Schicht springen" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:5 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:5 msgid "Filters" msgstr "Filter" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:8 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:8 msgid "Reset Filter" msgstr "Filter zurürcksetzen" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:12 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:12 msgid "Apply Filter" msgstr "Filter anwenden" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:15 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:15 msgid "Parameters" msgstr "Parameter" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:29 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:29 msgid "Select Organizations" msgstr "Wähle Organisationen" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:47 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:47 msgid "Shift starts after" msgstr "Schicht startet nach" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:52 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:52 msgid "Shift ends before" msgstr "Schicht endet vor" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:65 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:65 msgid "Select Events" msgstr "Events auswählen" -#: src/shiftings/shifts/templates/shifts/template/slots_display.html:4 +#: shiftings/shifts/templates/shifts/template/slots_display.html:4 msgid "Required to carry out this Shift" msgstr "Benötigte um die Schicht zu erledigen" -#: src/shiftings/shifts/templates/shifts/template/slots_display.html:6 +#: shiftings/shifts/templates/shifts/template/slots_display.html:6 msgid "Open Shift Slot" msgstr "Offene Postiion" -#: src/shiftings/shifts/templates/shifts/template/slots_display.html:32 +#: shiftings/shifts/templates/shifts/template/slots_display.html:32 msgid "Free" msgstr "Frei" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:20 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:20 msgid "Required" msgstr "Benötigt" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:23 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:23 msgid "Confirmed" msgstr "Bestätigt" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:29 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:29 msgid "Participating" msgstr "Teilnehmer" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:34 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:34 msgid "Full" msgstr "Voll" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:40 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:40 msgid "Additional Users required" msgstr "Zusätzliche Mitglieder benötigt" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:42 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:42 msgid "Additional Slots available" msgstr "Zusätzliche Plätze verfügbar" -#: src/shiftings/shifts/templates/shifts/template/template.html:11 +#: shiftings/shifts/templates/shifts/template/template.html:11 msgid "Calendar Background Color" msgstr "Kalender Hintergrundfarbe" -#: src/shiftings/shifts/templates/shifts/template/template.html:17 +#: shiftings/shifts/templates/shifts/template/template.html:17 msgid "Required Users/Max Users" msgstr "Benötigte Benutzer/Maximale Benutzer" -#: src/shiftings/shifts/templates/shifts/template/template.html:21 +#: shiftings/shifts/templates/shifts/template/template.html:21 msgid "Unlimited" msgstr "Unbegrenzt" -#: src/shiftings/shifts/templates/shifts/template/template_form.html:36 +#: shiftings/shifts/templates/shifts/template/template_form.html:36 msgid "Delay to starting time" msgstr "Verzögerung zur Startzeit" -#: src/shiftings/shifts/templates/shifts/template/template_form.html:37 +#: shiftings/shifts/templates/shifts/template/template_form.html:37 msgctxt "Shift time" msgid "Start Delay" msgstr "Startverzögerung" -#: src/shiftings/shifts/templates/shifts/template/template_form.html:41 +#: shiftings/shifts/templates/shifts/template/template_form.html:41 msgid "Shift Duration" msgstr "Dauer der Schicht" -#: src/shiftings/shifts/templates/shifts/template/template_form.html:42 +#: shiftings/shifts/templates/shifts/template/template_form.html:42 msgctxt "Shift time" msgid "Duration" msgstr "Dauer" -#: src/shiftings/shifts/templates/shifts/type_group/list.html:8 +#: shiftings/shifts/templates/shifts/type_group/list.html:8 msgid "Actions" msgstr "Aktionen" -#: src/shiftings/shifts/templatetags/shifts.py:90 +#: shiftings/shifts/templatetags/shifts.py:90 #, python-brace-format msgid "Days + {delta_days}" msgstr "Tage + {delta_days}" -#: src/shiftings/shifts/utils/time_frame.py:17 +#: shiftings/shifts/utils/time_frame.py:17 msgid "Nth [weekday] of each month" msgstr "Nte [Wochentag] jeden Monat" -#: src/shiftings/shifts/utils/time_frame.py:18 +#: shiftings/shifts/utils/time_frame.py:18 msgid "Nth day of each month" msgstr "Nte Tag jeden Monat" -#: src/shiftings/shifts/utils/time_frame.py:19 +#: shiftings/shifts/utils/time_frame.py:19 msgid "every Nth [weekday]" msgstr "Jeden Nte [Wochentag]" -#: src/shiftings/shifts/utils/time_frame.py:20 +#: shiftings/shifts/utils/time_frame.py:20 msgid "Nth workday of each month" msgstr "Jeden Nte Werktag jedes Monats" -#: src/shiftings/shifts/utils/time_frame.py:21 +#: shiftings/shifts/utils/time_frame.py:21 msgid "Nth day of [month]" msgstr "Nte Tag des [Monats]" -#: src/shiftings/shifts/utils/time_frame.py:22 +#: shiftings/shifts/utils/time_frame.py:22 msgid "Nth workday of [month]" msgstr "Nte Werktag des [Monats]" -#: src/shiftings/shifts/views/participant.py:42 +#: shiftings/shifts/views/participant.py:42 msgid "This shift is over, do you really want/need to add a participant?" msgstr "" -#: src/shiftings/shifts/views/permission.py:50 +#: shiftings/shifts/views/permission.py:50 #, python-brace-format msgid "" "

Any Permission present will be applied to all Shifts belonging to " @@ -3732,35 +2164,35 @@ msgstr "" "weitergehenden Berechtigungen. Berechtigungen können für \"Alle Benutzer " "oder spezielle Organisationen festgelegt werden.\"

" -#: src/shiftings/shifts/views/recurring.py:85 +#: shiftings/shifts/views/recurring.py:85 msgid "Forbidden Method GET" msgstr "Verbotene Methode GET" -#: src/shiftings/shifts/views/recurring.py:98 +#: shiftings/shifts/views/recurring.py:98 msgid "Created Shifts on {}" msgstr "Schicht am {} erstellt" -#: src/shiftings/shifts/views/recurring.py:102 +#: shiftings/shifts/views/recurring.py:102 msgid "Error while creating shifts. Invalid Date" msgstr "Fehler beim erstellen der Schichten. Ungültiges Datum" -#: src/shiftings/shifts/views/shift.py:164 +#: shiftings/shifts/views/shift.py:164 msgid "Unable to delete past shifts." msgstr "Konnte vergangene Schichten nicht löschen." -#: src/shiftings/templates/403.html:6 +#: shiftings/templates/403.html:6 msgid "You don't have the permission to do that!" msgstr "Du besitzt nicht die benötigten Berechtigungen!" -#: src/shiftings/templates/404.html:6 +#: shiftings/templates/404.html:6 msgid "The site you requested was not found." msgstr "Die gesuchte Seite wurde nicht gefunden." -#: src/shiftings/templates/500.html:6 +#: shiftings/templates/500.html:6 msgid "A server error occured the admins have been notified" msgstr "Ein Fehler ist aufgereten die Admins wurden benachrichtigt" -#: src/shiftings/templates/generic/create_or_update.html:5 +#: shiftings/templates/generic/create_or_update.html:5 #, python-format msgid "" "\n" @@ -3771,7 +2203,7 @@ msgstr "" "

Erstelle %(object)s

\n" " " -#: src/shiftings/templates/generic/create_or_update.html:9 +#: shiftings/templates/generic/create_or_update.html:9 #, python-format msgid "" "\n" @@ -3782,7 +2214,7 @@ msgstr "" "

Aktualisiere %(object_name)s

\n" " " -#: src/shiftings/templates/generic/delete.html:6 +#: shiftings/templates/generic/delete.html:6 #, python-format msgid "" "\n" @@ -3794,53 +2226,66 @@ msgstr "" "p>\n" " " -#: src/shiftings/templates/generic/modular_search.html:4 +#: shiftings/templates/generic/delete.html:9 +msgid "Yes" +msgstr "Ja" + +#: shiftings/templates/generic/delete.html:11 +msgid "No" +msgstr "Nein" + +#: shiftings/templates/generic/modular_search.html:4 msgid "Filter by Name" msgstr "Nach Namen filtern" -#: src/shiftings/templates/generic/modular_search.html:6 +#: shiftings/templates/generic/modular_search.html:6 msgid "submit search" msgstr "Suche starten" -#: src/shiftings/templates/language.html:16 +#: shiftings/templates/language.html:16 msgid "Language" msgstr "Sprache" -#: src/shiftings/templates/language.html:21 +#: shiftings/templates/language.html:21 msgid "German" msgstr "Deutsch" -#: src/shiftings/templates/language.html:24 +#: shiftings/templates/language.html:24 msgid "English" msgstr "Englisch" -#: src/shiftings/templates/month_view.html:2 +#: shiftings/templates/local/gdpr_template.sample.html:29 +#: shiftings/templates/template/remove_modal.html:39 +#: shiftings/templates/template/simple_display_modal.html:15 +#: shiftings/templates/template/simple_form_modal.html:22 +msgid "Close" +msgstr "Schließen" + +#: shiftings/templates/month_view.html:2 msgid "M" msgstr "M" -#: src/shiftings/templates/month_view.html:3 -#: src/shiftings/templates/month_view.html:5 +#: shiftings/templates/month_view.html:3 shiftings/templates/month_view.html:5 msgid "T" msgstr "T" -#: src/shiftings/templates/month_view.html:4 +#: shiftings/templates/month_view.html:4 msgid "W" msgstr "W" -#: src/shiftings/templates/month_view.html:6 +#: shiftings/templates/month_view.html:6 msgid "F" msgstr "F" -#: src/shiftings/templates/month_view.html:7 -#: src/shiftings/templates/month_view.html:8 +#: shiftings/templates/month_view.html:7 shiftings/templates/month_view.html:8 msgid "S" msgstr "S" -#: src/shiftings/templates/switch_user.html:5 +#: shiftings/templates/switch_user.html:5 msgid "Switch User" msgstr "Benutzer wechseln" -#: src/shiftings/templates/template/remove_modal.html:12 +#: shiftings/templates/template/remove_modal.html:12 #, python-format msgid "" "\n" @@ -3853,7 +2298,7 @@ msgstr "" "bold\"> von %(target)s\n" " " -#: src/shiftings/templates/template/remove_modal.html:16 +#: shiftings/templates/template/remove_modal.html:16 msgid "" "\n" " Removing \n" " " -#: src/shiftings/templates/template/remove_modal.html:26 +#: shiftings/templates/template/remove_modal.html:26 #, python-format msgid "" "\n" @@ -3880,7 +2325,7 @@ msgstr "" "text-danger\">\" von %(target)s\n" " " -#: src/shiftings/templates/template/remove_modal.html:31 +#: shiftings/templates/template/remove_modal.html:31 msgid "" "\n" " Are you sure you want to remove\n" @@ -3894,175 +2339,269 @@ msgstr "" "text-danger\"> löschen möchtest\"\n" " " -#: src/shiftings/templates/template/remove_modal.html:38 +#: shiftings/templates/template/remove_modal.html:38 msgid "Remove" msgstr "Entfernen" -#: src/shiftings/templates/template/remove_modal.html:39 -#: src/shiftings/templates/template/simple_display_modal.html:15 -#: src/shiftings/templates/template/simple_form_modal.html:22 -msgid "Close" -msgstr "Schließen" - -#: src/shiftings/templates/top_nav.html:12 +#: shiftings/templates/top_nav.html:12 msgid "Overview" msgstr "Übersicht" -#: src/shiftings/templates/top_nav.html:32 -#: src/shiftings/templates/top_nav.html:33 +#: shiftings/templates/top_nav.html:32 shiftings/templates/top_nav.html:33 msgid "Help" msgstr "Hilfe" -#: src/shiftings/templates/top_nav.html:48 +#: shiftings/templates/top_nav.html:48 msgid "Profile" msgstr "Profil" -#: src/shiftings/templates/widgets/time_slider.html:9 +#: shiftings/templates/widgets/time_slider.html:9 msgid "You need to enter a valid timeframe in the form of HH:MM." msgstr "Du muss einen validen Zeitraum inder Form HH:MM eingeben." -#: src/shiftings/templates/widgets/time_slider.html:13 +#: shiftings/templates/widgets/time_slider.html:13 msgid "Day: +" msgstr "Tag: +" -#: src/shiftings/utils/string.py:5 +#: shiftings/utils/string.py:5 #, python-format msgid "The function %(name)s has to be implemented." msgstr "Die Funktion %(name)s muss implementiert werden." -#: src/shiftings/utils/time/month.py:32 +#: shiftings/utils/time/month.py:10 +msgid "January" +msgstr "Januar" + +#: shiftings/utils/time/month.py:11 +msgid "February" +msgstr "Februar" + +#: shiftings/utils/time/month.py:12 +msgid "March" +msgstr "März" + +#: shiftings/utils/time/month.py:13 +msgid "April" +msgstr "April" + +#: shiftings/utils/time/month.py:14 +msgid "May" +msgstr "Mai" + +#: shiftings/utils/time/month.py:15 +msgid "June" +msgstr "Juni" + +#: shiftings/utils/time/month.py:16 +msgid "July" +msgstr "Juli" + +#: shiftings/utils/time/month.py:17 +msgid "August" +msgstr "August" + +#: shiftings/utils/time/month.py:18 +msgid "September" +msgstr "September" + +#: shiftings/utils/time/month.py:19 +msgid "October" +msgstr "Oktober" + +#: shiftings/utils/time/month.py:20 +msgid "November" +msgstr "November" + +#: shiftings/utils/time/month.py:21 +msgid "December" +msgstr "Dezember" + +#: shiftings/utils/time/month.py:32 msgid "Day of the Month" msgstr "Tag des Monats" -#: src/shiftings/utils/time/timerange.py:13 +#: shiftings/utils/time/timerange.py:13 msgid "Quarter" msgstr "Quartal" -#: src/shiftings/utils/time/timerange.py:14 +#: shiftings/utils/time/timerange.py:14 msgid "Half Year" msgstr "Halbjahr" -#: src/shiftings/utils/time/timerange.py:15 +#: shiftings/utils/time/timerange.py:15 msgid "Year" msgstr "Jahr" -#: src/shiftings/utils/time/timerange.py:16 +#: shiftings/utils/time/timerange.py:16 msgid "Decade" msgstr "Dekade" -#: src/shiftings/utils/time/timerange.py:17 +#: shiftings/utils/time/timerange.py:17 msgid "Century" msgstr "Jahrhundert" -#: src/shiftings/utils/time/timerange.py:18 +#: shiftings/utils/time/timerange.py:18 msgid "Millennium" msgstr "Millennium" -#: src/shiftings/utils/time/week.py:27 +#: shiftings/utils/time/week.py:13 +msgid "Monday" +msgstr "Montag" + +#: shiftings/utils/time/week.py:14 +msgid "Tuesday" +msgstr "Dienstag" + +#: shiftings/utils/time/week.py:15 +msgid "Wednesday" +msgstr "Mittwoch" + +#: shiftings/utils/time/week.py:16 +msgid "Thursday" +msgstr "Donnerstag" + +#: shiftings/utils/time/week.py:17 +msgid "Friday" +msgstr "Freitag" + +#: shiftings/utils/time/week.py:18 +msgid "Saturday" +msgstr "Samstag" + +#: shiftings/utils/time/week.py:19 +msgid "Sunday" +msgstr "Sonntag" + +#: shiftings/utils/time/week.py:27 msgid "Day of the Week" msgstr "Wochentag" -#: src/shiftings/utils/typing.py:20 +#: shiftings/utils/typing.py:20 msgid "Value is not supposed to be None." msgstr "Dieser Wert sollte nicht None sein." -#: src/shiftings/utils/views/base.py:62 +#: shiftings/utils/views/base.py:62 msgid "The pk is missing from the url. This is not supposed to be possible." msgstr "Der PK fehlt in der url. Das sollte nicht passieren." -#: src/shiftings/utils/views/base.py:65 +#: shiftings/utils/views/base.py:65 #, python-format msgid "There is no %(name)s with that pk." msgstr "Es existiert kein %(name)s mit diesem pk." -#: src/shiftings/utils/views/base.py:73 +#: shiftings/utils/views/base.py:73 msgid "You don't have the required permission." msgstr "Du besitzt nicht die benötigten Berechtigungen." -#: src/shiftings/utils/views/base.py:90 +#: shiftings/utils/views/base.py:90 msgid "No URL to redirect to. Provide a success_url." msgstr "Keine URL zum verweisen. Bitte gib eine success_url an." -#: src/shiftings/utils/views/base.py:108 +#: shiftings/utils/views/base.py:108 msgid "Could not find the requested page. This might be a configuration error." msgstr "" "Konnte die angefragte Seite nicht finden. Dies könnte ein Einstellungsfehler " "sein." -#, python-format -#~ msgid "" -#~ "\n" -#~ " Your query resulted in %(shifts|length)s or more shifts. Please " -#~ "adjust the start and end date.\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ " Deine Anfrage ergibt %(shifts|length)s oder mehr Schichten. Bitte " -#~ "passe das Start- bzw. Enddatum an.\n" -#~ " " - -#~ msgid "Login via {{ sso_name }}" -#~ msgstr "Mit {{ sso_name }} anmelden" -#, python-format -#~ msgid "" -#~ "\n" -#~ " Click here\n" -#~ "
\n" -#~ " if you are a Member of HaDiKo e.V. to change your password on " -#~ "myHaDiNet\n" -#~ " " -#~ msgstr "" -#~ "\n" -#~ " Klicke hier\n" -#~ "
\n" -#~ " wenn du ein Mitglied des HaDiKo e.V. bist um dein Passwort auf " -#~ "myHaDiNet zu ändern\n" -#~ " " -#~ msgid "Filter Shifts" -#~ msgstr "Schichten Filtern" -#~ msgid "Day" -#~ msgstr "Tag" -#~ msgid "All Shifts" -#~ msgstr "Alle Schichten" -#~ msgid "Events" -#~ msgstr "Events" -#~ msgid "No Shifts on this day" -#~ msgstr "Keine Schichten an diesem Tag" -#~ msgid "This Day" -#~ msgstr "Dieser Tag" -#~ msgid "Calendar" -#~ msgstr "Kalender" -#~ msgid "Organizations which are allowed to participate" -#~ msgstr "Organisationen die teilnehmen dürfen" -#~ msgid "Public" -#~ msgstr "Öffentlich" -#~ msgid "Allow everyone to participate at this event" -#~ msgstr "Erlaube jedem an dem Event teilzunehmen" -#~ msgid "Scope" -#~ msgstr "Umfang" -#~ msgid "Search" -#~ msgstr "Suche" -#~ msgid "My upcoming Shifts" -#~ msgstr "Meine anstehenden Schichten" +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, fuzzy + +#, python-format -#~ msgid "Your first occurrence doesn't match your chosen time frame." -#~ msgstr "Dein erster Termin liegt nicht im gewählten Zeitraum." -#~ msgid "First Occurance" -#~ msgstr "Erster Termin" +#, python-format diff --git a/src/locale/en/LC_MESSAGES/django.po b/src/locale/en/LC_MESSAGES/django.po index 335980f..dca9de0 100644 --- a/src/locale/en/LC_MESSAGES/django.po +++ b/src/locale/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-09-25 15:12+0000\n" +"POT-Creation-Date: 2026-03-15 21:50+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,1603 +18,96 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: venv/lib/python3.11/site-packages/click/_termui_impl.py:518 -#, python-brace-format -msgid "{editor}: Editing failed" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/_termui_impl.py:522 -#, python-brace-format -msgid "{editor}: Editing failed: {e}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1120 -msgid "Aborted!" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1309 -#: venv/lib/python3.11/site-packages/click/decorators.py:559 -msgid "Show this message and exit." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1340 -#: venv/lib/python3.11/site-packages/click/core.py:1370 -#, python-brace-format -msgid "(Deprecated) {text}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1387 -msgid "Options" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1413 -#, python-brace-format -msgid "Got unexpected extra argument ({args})" -msgid_plural "Got unexpected extra arguments ({args})" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/core.py:1429 -msgid "DeprecationWarning: The command {name!r} is deprecated." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1636 -msgid "Commands" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1668 -msgid "Missing command." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:1746 -msgid "No such command {name!r}." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2310 -msgid "Value must be an iterable." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2331 -#, python-brace-format -msgid "Takes {nargs} values but 1 was given." -msgid_plural "Takes {nargs} values but {len} were given." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/core.py:2778 -#, python-brace-format -msgid "env var: {var}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2808 -msgid "(dynamic)" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2821 -#, python-brace-format -msgid "default: {default}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/core.py:2834 -msgid "required" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/decorators.py:465 -#, python-format -msgid "%(prog)s, version %(version)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/decorators.py:528 -msgid "Show the version and exit." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:44 -#: venv/lib/python3.11/site-packages/click/exceptions.py:80 -#, python-brace-format -msgid "Error: {message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:72 -#, python-brace-format -msgid "Try '{command} {option}' for help." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:121 -#, python-brace-format -msgid "Invalid value: {message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:123 -#, python-brace-format -msgid "Invalid value for {param_hint}: {message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:179 -msgid "Missing argument" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:181 -msgid "Missing option" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:183 -msgid "Missing parameter" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:185 -#, python-brace-format -msgid "Missing {param_type}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:192 -#, python-brace-format -msgid "Missing parameter: {param_name}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:212 -#, python-brace-format -msgid "No such option: {name}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:224 -#, python-brace-format -msgid "Did you mean {possibility}?" -msgid_plural "(Possible options: {possibilities})" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:262 -msgid "unknown error" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/exceptions.py:269 -msgid "Could not open file {filename!r}: {message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/parser.py:231 -msgid "Argument {name!r} takes {nargs} values." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/parser.py:413 -msgid "Option {name!r} does not take a value." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/parser.py:474 -msgid "Option {name!r} requires an argument." -msgid_plural "Option {name!r} requires {nargs} arguments." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/shell_completion.py:319 -msgid "Shell completion is not supported for Bash versions older than 4.4." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/shell_completion.py:326 -msgid "Couldn't detect Bash version, shell completion is not supported." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:158 -msgid "Repeat for confirmation" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:174 -msgid "Error: The value you entered was invalid." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:176 -#, python-brace-format -msgid "Error: {e.message}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:187 -msgid "Error: The two entered values do not match." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:243 -msgid "Error: invalid input" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/termui.py:773 -msgid "Press any key to continue..." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:266 -#, python-brace-format -msgid "" -"Choose from:\n" -"\t{choices}" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:298 -msgid "{value!r} is not {choice}." -msgid_plural "{value!r} is not one of {choices}." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/types.py:392 -msgid "{value!r} does not match the format {format}." -msgid_plural "{value!r} does not match the formats {formats}." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/click/types.py:414 -msgid "{value!r} is not a valid {number_type}." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:470 -#, python-brace-format -msgid "{value} is not in the range {range}." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:611 -msgid "{value!r} is not a valid boolean." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:635 -msgid "{value!r} is not a valid UUID." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:822 -msgid "file" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:824 -msgid "directory" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:826 -msgid "path" -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:877 -msgid "{name} {filename!r} does not exist." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:886 -msgid "{name} {filename!r} is a file." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:894 -#, python-brace-format -msgid "{name} '{filename}' is a directory." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:903 -msgid "{name} {filename!r} is not readable." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:912 -msgid "{name} {filename!r} is not writable." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:921 -msgid "{name} {filename!r} is not executable." -msgstr "" - -#: venv/lib/python3.11/site-packages/click/types.py:988 -#, python-brace-format -msgid "{len_type} values are required, but {len_value} was given." -msgid_plural "{len_type} values are required, but {len_value} were given." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/colorfield/validators.py:9 -msgid "Enter a valid hex color, eg. #000000" -msgstr "" - -#: venv/lib/python3.11/site-packages/colorfield/validators.py:17 -msgid "Enter a valid hexa color, eg. #00000000" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/contrib/messages/apps.py:7 -msgid "Messages" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/contrib/sitemaps/apps.py:8 -msgid "Site Maps" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/contrib/staticfiles/apps.py:9 -msgid "Static Files" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/contrib/syndication/apps.py:7 -msgid "Syndication" -msgstr "" - -#. Translators: String used to replace omitted page numbers in elided page -#. range generated by paginators, e.g. [1, 2, '…', 5, 6, 7, '…', 9, 10]. -#: venv/lib/python3.11/site-packages/django/core/paginator.py:30 -msgid "…" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/paginator.py:50 -msgid "That page number is not an integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/paginator.py:52 -msgid "That page number is less than 1" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/paginator.py:57 -msgid "That page contains no results" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:23 -msgid "Enter a valid value." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:105 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:743 -msgid "Enter a valid URL." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:166 -msgid "Enter a valid integer." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:177 -msgid "Enter a valid email address." -msgstr "" - -#. Translators: "letters" means latin letters: a-z and A-Z. -#: venv/lib/python3.11/site-packages/django/core/validators.py:285 -msgid "" -"Enter a valid “slug” consisting of letters, numbers, underscores or hyphens." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:293 -msgid "" -"Enter a valid “slug” consisting of Unicode letters, numbers, underscores, or " -"hyphens." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:305 -#: venv/lib/python3.11/site-packages/django/core/validators.py:313 -#: venv/lib/python3.11/site-packages/django/core/validators.py:342 -msgid "Enter a valid IPv4 address." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:322 -#: venv/lib/python3.11/site-packages/django/core/validators.py:343 -msgid "Enter a valid IPv6 address." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:334 -#: venv/lib/python3.11/site-packages/django/core/validators.py:341 -msgid "Enter a valid IPv4 or IPv6 address." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:377 -msgid "Enter only digits separated by commas." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:383 -#, python-format -msgid "Ensure this value is %(limit_value)s (it is %(show_value)s)." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:418 -#, python-format -msgid "Ensure this value is less than or equal to %(limit_value)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:427 -#, python-format -msgid "Ensure this value is greater than or equal to %(limit_value)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:437 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:455 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:478 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:343 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:378 -msgid "Enter a number." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:480 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:485 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:490 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:559 -#, python-format -msgid "" -"File extension “%(extension)s” is not allowed. Allowed extensions are: " -"%(allowed_extensions)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/core/validators.py:620 -msgid "Null characters are not allowed." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/base.py:1364 -#: venv/lib/python3.11/site-packages/django/forms/models.py:894 -msgid "and" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/base.py:1366 -#, python-format -msgid "%(model_name)s with this %(field_labels)s already exists." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:129 -#, python-format -msgid "Value %(value)r is not a valid choice." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:130 -msgid "This field cannot be null." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:131 -msgid "This field cannot be blank." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:132 -#, python-format -msgid "%(model_name)s with this %(field_label)s already exists." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:136 -#, python-format -msgid "" -"%(field_label)s must be unique for %(date_field_label)s %(lookup_type)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:156 -#, python-format -msgid "Field of type: %(field_type)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1050 -#, python-format -msgid "“%(value)s” value must be either True or False." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1051 -#, python-format -msgid "“%(value)s” value must be either True, False, or None." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1053 -msgid "Boolean (Either True or False)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1094 -#, python-format -msgid "String (up to %(max_length)s)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1192 -msgid "Comma-separated integers" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1293 -#, python-format -msgid "" -"“%(value)s” value has an invalid date format. It must be in YYYY-MM-DD " -"format." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1297 -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1432 -#, python-format -msgid "" -"“%(value)s” value has the correct format (YYYY-MM-DD) but it is an invalid " -"date." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1301 -msgid "Date (without time)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1428 -#, python-format -msgid "" -"“%(value)s” value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[." -"uuuuuu]][TZ] format." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1436 -#, 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 "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1441 -msgid "Date (with time)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1565 -#, python-format -msgid "“%(value)s” value must be a decimal number." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1567 -msgid "Decimal number" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1724 -#, python-format -msgid "" -"“%(value)s” value has an invalid format. It must be in [DD] [[HH:]MM:]ss[." -"uuuuuu] format." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1728 -#: src/shiftings/shifts/forms/template.py:40 -#: src/shiftings/shifts/models/template.py:23 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:11 -msgid "Duration" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1780 -msgid "Email address" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1805 -msgid "File path" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1883 -#, python-format -msgid "“%(value)s” value must be a float." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1885 -msgid "Floating point number" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1925 -#, python-format -msgid "“%(value)s” value must be an integer." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:1927 -msgid "Integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2019 -msgid "Big (8 byte) integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2036 -msgid "Small integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2044 -msgid "IPv4 address" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2075 -msgid "IP address" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2168 -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2169 -#, python-format -msgid "“%(value)s” value must be either None, True or False." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2171 -msgid "Boolean (Either True, False or None)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2222 -msgid "Positive big integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2237 -msgid "Positive integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2252 -msgid "Positive small integer" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2268 -#, python-format -msgid "Slug (up to %(max_length)s)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2304 -#: src/shiftings/mail/forms/mail.py:11 -msgid "Text" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2374 -#, python-format -msgid "" -"“%(value)s” value has an invalid format. It must be in HH:MM[:ss[.uuuuuu]] " -"format." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2378 -#, python-format -msgid "" -"“%(value)s” value has the correct format (HH:MM[:ss[.uuuuuu]]) but it is an " -"invalid time." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2382 -#: src/shiftings/cal/templates/cal/template/day_calendar_shift_types.html:23 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:197 -#: src/shiftings/shifts/templates/shifts/template/group.html:43 -#: src/shiftings/shifts/templates/shifts/template/group_template.html:23 -#: src/shiftings/shifts/templates/shifts/template/shift.html:10 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:33 -msgid "Time" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2490 -msgid "URL" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2514 -msgid "Raw binary data" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2579 -#, python-format -msgid "“%(value)s” is not a valid UUID." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/__init__.py:2581 -msgid "Universally unique identifier" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/files.py:232 -msgid "File" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/files.py:392 -msgid "Image" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/json.py:18 -msgid "A JSON object" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/json.py:20 -msgid "Value must be valid JSON." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:903 -#, python-format -msgid "%(model)s instance with %(field)s %(value)r does not exist." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:905 -msgid "Foreign Key (type determined by related field)" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:1204 -msgid "One-to-one relationship" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:1261 -#, python-format -msgid "%(from)s-%(to)s relationship" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:1263 -#, python-format -msgid "%(from)s-%(to)s relationships" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/db/models/fields/related.py:1311 -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 -#: venv/lib/python3.11/site-packages/django/forms/boundfield.py:176 -msgid ":?.!" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:91 -msgid "This field is required." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:298 -msgid "Enter a whole number." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:459 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1232 -msgid "Enter a valid date." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:482 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1233 -msgid "Enter a valid time." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:509 -msgid "Enter a valid date/time." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:543 -msgid "Enter a valid duration." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:544 -#, python-brace-format -msgid "The number of days must be between {min_days} and {max_days}." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:610 -msgid "No file was submitted. Check the encoding type on the form." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:611 -msgid "No file was submitted." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:612 -msgid "The submitted file is empty." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:614 -#, 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] "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:619 -msgid "Please either submit a file or check the clear checkbox, not both." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:685 -msgid "" -"Upload a valid image. The file you uploaded was either not an image or a " -"corrupted image." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:848 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:940 -#: venv/lib/python3.11/site-packages/django/forms/models.py:1563 -#, python-format -msgid "Select a valid choice. %(value)s is not one of the available choices." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:942 -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1061 -#: venv/lib/python3.11/site-packages/django/forms/models.py:1561 -msgid "Enter a list of values." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1062 -msgid "Enter a complete value." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1301 -msgid "Enter a valid UUID." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/fields.py:1331 -msgid "Enter a valid JSON." -msgstr "" - -#. Translators: This is the default suffix added to form field labels -#: venv/lib/python3.11/site-packages/django/forms/forms.py:98 -msgid ":" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/forms.py:248 -#: venv/lib/python3.11/site-packages/django/forms/forms.py:328 -#, python-format -msgid "(Hidden field %(name)s) %(error)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:67 -#, python-format -msgid "" -"ManagementForm data is missing or has been tampered with. Missing fields: " -"%(field_names)s. You may need to file a bug report if the issue persists." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:418 -#, python-format -msgid "Please submit at most %d form." -msgid_plural "Please submit at most %d forms." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:434 -#, python-format -msgid "Please submit at least %d form." -msgid_plural "Please submit at least %d forms." -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:470 -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:477 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:38 -msgid "Order" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/formsets.py:483 -msgid "Delete" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:887 -#, python-format -msgid "Please correct the duplicate data for %(field)s." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:892 -#, python-format -msgid "Please correct the duplicate data for %(field)s, which must be unique." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:899 -#, 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 "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:908 -msgid "Please correct the duplicate values below." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:1335 -msgid "The inline value did not match the parent instance." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:1426 -msgid "Select a valid choice. That choice is not one of the available choices." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/models.py:1565 -#, python-format -msgid "“%(pk)s” is not a valid value." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/utils.py:204 -#, 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 "" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:434 -msgid "Clear" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:435 -msgid "Currently" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:436 -msgid "Change" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:765 -#: src/shiftings/accounts/templates/accounts/user_detail.html:55 -#: src/shiftings/accounts/templates/accounts/user_detail.html:65 -msgid "Unknown" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:766 -#: src/shiftings/templates/generic/delete.html:9 -msgid "Yes" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/forms/widgets.py:767 -#: src/shiftings/templates/generic/delete.html:11 -msgid "No" -msgstr "" - -#. Translators: Please do not add spaces around commas. -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:858 -msgid "yes,no,maybe" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:888 -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:905 -#, python-format -msgid "%(size)d byte" -msgid_plural "%(size)d bytes" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:907 -#, python-format -msgid "%s KB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:909 -#, python-format -msgid "%s MB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:911 -#, python-format -msgid "%s GB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:913 -#, python-format -msgid "%s TB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/template/defaultfilters.py:915 -#, python-format -msgid "%s PB" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:77 -msgid "p.m." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:78 -msgid "a.m." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:83 -msgid "PM" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:84 -msgid "AM" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:155 -msgid "midnight" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dateformat.py:157 -msgid "noon" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:7 -#: src/shiftings/utils/time/week.py:13 -msgid "Monday" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:8 -#: src/shiftings/utils/time/week.py:14 -msgid "Tuesday" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:9 -#: src/shiftings/utils/time/week.py:15 -msgid "Wednesday" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:10 -#: src/shiftings/utils/time/week.py:16 -msgid "Thursday" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:11 -#: src/shiftings/utils/time/week.py:17 -msgid "Friday" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:12 -#: src/shiftings/utils/time/week.py:18 -msgid "Saturday" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:13 -#: src/shiftings/utils/time/week.py:19 -msgid "Sunday" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:16 -msgid "Mon" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:17 -msgid "Tue" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:18 -msgid "Wed" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:19 -msgid "Thu" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:20 -msgid "Fri" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:21 -msgid "Sat" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:22 -msgid "Sun" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:25 -#: src/shiftings/utils/time/month.py:10 -msgid "January" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:26 -#: src/shiftings/utils/time/month.py:11 -msgid "February" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:27 -#: src/shiftings/utils/time/month.py:12 -msgid "March" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:28 -#: src/shiftings/utils/time/month.py:13 -msgid "April" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:29 -#: src/shiftings/utils/time/month.py:14 -msgid "May" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:30 -#: src/shiftings/utils/time/month.py:15 -msgid "June" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:31 -#: src/shiftings/utils/time/month.py:16 -msgid "July" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:32 -#: src/shiftings/utils/time/month.py:17 -msgid "August" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:33 -#: src/shiftings/utils/time/month.py:18 -msgid "September" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:34 -#: src/shiftings/utils/time/month.py:19 -msgid "October" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:35 -#: src/shiftings/utils/time/month.py:20 -msgid "November" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:36 -#: src/shiftings/utils/time/month.py:21 -msgid "December" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:39 -msgid "jan" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:40 -msgid "feb" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:41 -msgid "mar" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:42 -msgid "apr" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:43 -msgid "may" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:44 -msgid "jun" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:45 -msgid "jul" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:46 -msgid "aug" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:47 -msgid "sep" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:48 -msgid "oct" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:49 -msgid "nov" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:50 -msgid "dec" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:53 -msgctxt "abbrev. month" -msgid "Jan." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:54 -msgctxt "abbrev. month" -msgid "Feb." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:55 -msgctxt "abbrev. month" -msgid "March" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:56 -msgctxt "abbrev. month" -msgid "April" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:57 -msgctxt "abbrev. month" -msgid "May" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:58 -msgctxt "abbrev. month" -msgid "June" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:59 -msgctxt "abbrev. month" -msgid "July" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:60 -msgctxt "abbrev. month" -msgid "Aug." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:61 -msgctxt "abbrev. month" -msgid "Sept." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:62 -msgctxt "abbrev. month" -msgid "Oct." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:63 -msgctxt "abbrev. month" -msgid "Nov." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:64 -msgctxt "abbrev. month" -msgid "Dec." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:67 -msgctxt "alt. month" -msgid "January" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:68 -msgctxt "alt. month" -msgid "February" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:69 -msgctxt "alt. month" -msgid "March" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:70 -msgctxt "alt. month" -msgid "April" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:71 -msgctxt "alt. month" -msgid "May" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:72 -msgctxt "alt. month" -msgid "June" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:73 -msgctxt "alt. month" -msgid "July" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:74 -msgctxt "alt. month" -msgid "August" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:75 -msgctxt "alt. month" -msgid "September" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:76 -msgctxt "alt. month" -msgid "October" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:77 -msgctxt "alt. month" -msgid "November" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/dates.py:78 -msgctxt "alt. month" -msgid "December" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/ipv6.py:8 -msgid "This is not a valid IPv6 address." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/text.py:77 -#, python-format -msgctxt "String to return when truncating text" -msgid "%(truncated_text)s…" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/text.py:253 -msgid "or" -msgstr "" - -#. Translators: This string is used as a separator between list elements -#: venv/lib/python3.11/site-packages/django/utils/text.py:272 -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:94 -msgid ", " -msgstr "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:9 -#, python-format -msgid "%(num)d year" -msgid_plural "%(num)d years" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:10 -#, python-format -msgid "%(num)d month" -msgid_plural "%(num)d months" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:11 -#, python-format -msgid "%(num)d week" -msgid_plural "%(num)d weeks" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:12 -#, python-format -msgid "%(num)d day" -msgid_plural "%(num)d days" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:13 -#, python-format -msgid "%(num)d hour" -msgid_plural "%(num)d hours" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/utils/timesince.py:14 -#, python-format -msgid "%(num)d minute" -msgid_plural "%(num)d minutes" -msgstr[0] "" -msgstr[1] "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:111 -msgid "Forbidden" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:112 -msgid "CSRF verification failed. Request aborted." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:116 -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 "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:122 -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 "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:127 -msgid "" -"If you are using the tag or " -"including the “Referrer-Policy: no-referrer” header, please remove them. The " -"CSRF protection requires the “Referer” header to do strict referer checking. " -"If you’re concerned about privacy, use alternatives like for links to third-party sites." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:136 -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 "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:142 -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 "" - -#: venv/lib/python3.11/site-packages/django/views/csrf.py:148 -msgid "More information is available with DEBUG=True." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:44 -msgid "No year specified" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:64 -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:115 -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:214 -msgid "Date out of range" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:94 -msgid "No month specified" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:147 -msgid "No day specified" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:194 -msgid "No week specified" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:349 -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:380 -#, python-format -msgid "No %(verbose_name_plural)s available" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:652 -#, python-format -msgid "" -"Future %(verbose_name_plural)s not available because %(class_name)s." -"allow_future is False." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/dates.py:692 -#, python-format -msgid "Invalid date string “%(datestr)s” given format “%(format)s”" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/detail.py:56 -#, python-format -msgid "No %(verbose_name)s found matching the query" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/list.py:70 -msgid "Page is not “last”, nor can it be converted to an int." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/list.py:77 -#, python-format -msgid "Invalid page (%(page_number)s): %(message)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/generic/list.py:169 -#, python-format -msgid "Empty list and “%(class_name)s.allow_empty” is False." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/static.py:39 -msgid "Directory indexes are not allowed here." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/static.py:41 -#, python-format -msgid "“%(path)s” does not exist" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/static.py:80 -#, python-format -msgid "Index of %(directory)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:7 -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:221 -msgid "The install worked successfully! Congratulations!" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:207 -#, python-format -msgid "" -"View release notes for Django %(version)s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:222 -#, python-format -msgid "" -"You are seeing this page because DEBUG=True is in your settings file and you have not " -"configured any URLs." -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:230 -msgid "Django Documentation" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:231 -msgid "Topics, references, & how-to’s" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:239 -msgid "Tutorial: A Polling App" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:240 -msgid "Get started with Django" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:248 -msgid "Django Community" -msgstr "" - -#: venv/lib/python3.11/site-packages/django/views/templates/default_urlconf.html:249 -msgid "Connect, get help, or contribute" +#: shiftings/accounts/forms/user_form.py:13 +msgid "Confirm password" msgstr "" -#: venv/lib/python3.11/site-packages/django_bootstrap5/components.py:26 -msgid "close" +#: shiftings/accounts/forms/user_form.py:31 +#: shiftings/accounts/forms/user_form.py:32 +msgid "Please enter matching passwords" msgstr "" -#: venv/lib/python3.11/site-packages/isort/main.py:158 -msgid "show this help message and exit" +#: shiftings/accounts/forms/user_form.py:65 +msgid "Cannot change first name, last name or email for LDAP users." msgstr "" -#: venv/lib/python3.11/site-packages/mypy/main.py:376 -#, python-format -msgid "%(prog)s: error: %(message)s\n" +#: shiftings/accounts/models/oidc_token.py:28 +#: shiftings/accounts/templates/accounts/user_detail.html:29 +#: shiftings/organizations/models/membership.py:68 +#: shiftings/shifts/models/participant.py:13 +#: shiftings/templates/top_nav.html:47 +msgid "User" msgstr "" -#: src/shiftings/accounts/forms/user_form.py:11 -msgid "Confirm password" +#: shiftings/accounts/models/oidc_token.py:30 +msgid "Refresh Token" msgstr "" -#: src/shiftings/accounts/forms/user_form.py:30 -msgid "Please enter matching passwords" +#: shiftings/accounts/models/oidc_token.py:31 +msgid "Updated" msgstr "" -#: src/shiftings/accounts/models/user.py:32 -#: src/shiftings/accounts/templates/accounts/user_detail.html:52 -#: src/shiftings/shifts/models/participant.py:15 +#: shiftings/accounts/models/user.py:32 +#: shiftings/accounts/templates/accounts/user_detail.html:52 +#: shiftings/shifts/models/participant.py:15 msgid "Display Name" msgstr "" -#: src/shiftings/accounts/models/user.py:33 -#: src/shiftings/events/models/event.py:29 -#: src/shiftings/organizations/models/organization.py:28 +#: shiftings/accounts/models/user.py:33 shiftings/events/models/event.py:29 +#: shiftings/organizations/models/organization.py:28 msgid "Telephone Number" msgstr "" -#: src/shiftings/accounts/templates/accounts/confirm_email.html:7 +#: shiftings/accounts/templates/accounts/confirm_email.html:7 msgid "Go to Login" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_form.html:6 -#: src/shiftings/accounts/templates/accounts/login_multiple.html:12 +#: shiftings/accounts/templates/accounts/login_form.html:6 +#: shiftings/accounts/templates/accounts/login_multiple.html:12 msgid "Login with local Account" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_form.html:8 -#: src/shiftings/accounts/templates/accounts/login_multiple.html:20 +#: shiftings/accounts/templates/accounts/login_form.html:8 +#: shiftings/accounts/templates/accounts/login_multiple.html:20 msgid "Login with LDAP Account" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_form.html:14 -#: src/shiftings/accounts/views/auth.py:27 -#: src/shiftings/templates/top_nav.html:57 +#: shiftings/accounts/templates/accounts/login_form.html:14 +#: shiftings/accounts/views/auth.py:23 shiftings/templates/top_nav.html:60 msgid "Login" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_form.html:16 -#: src/shiftings/accounts/templates/accounts/password_reset/prompt.html:10 +#: shiftings/accounts/templates/accounts/login_form.html:16 +#: shiftings/accounts/templates/accounts/password_reset/prompt.html:10 msgid "Reset Password" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_form.html:18 +#: shiftings/accounts/templates/accounts/login_form.html:18 msgid "Return to selection" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_form.html:29 +#: shiftings/accounts/templates/accounts/login_form.html:29 msgid "You don't have an Account?" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_form.html:30 +#: shiftings/accounts/templates/accounts/login_form.html:30 msgid "Register here" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_form.html:32 +#: shiftings/accounts/templates/accounts/login_form.html:32 msgid "Or login using another Method" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_multiple.html:5 +#: shiftings/accounts/templates/accounts/login_multiple.html:5 msgid "Welcome to Shiftings" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_multiple.html:6 +#: shiftings/accounts/templates/accounts/login_multiple.html:6 msgid "" "To manage your shifts please authenticate with one of the given methods:" msgstr "" -#: src/shiftings/accounts/templates/accounts/login_multiple.html:31 +#: shiftings/accounts/templates/accounts/login_multiple.html:31 #, python-format msgid "" "\n" @@ -1622,28 +115,28 @@ msgid "" " " msgstr "" -#: src/shiftings/accounts/templates/accounts/logout.html:6 +#: shiftings/accounts/templates/accounts/logout.html:6 msgid "Successfully logged out" msgstr "" -#: src/shiftings/accounts/templates/accounts/logout.html:7 +#: shiftings/accounts/templates/accounts/logout.html:7 msgid "Login again" msgstr "" -#: src/shiftings/accounts/templates/accounts/password_reset/confirm.html:7 +#: shiftings/accounts/templates/accounts/password_reset/confirm.html:7 msgid "Change Password" msgstr "" -#: src/shiftings/accounts/templates/accounts/password_reset/done.html:4 +#: shiftings/accounts/templates/accounts/password_reset/done.html:4 msgid "Your password has been reset, check your email!" msgstr "" -#: src/shiftings/accounts/templates/accounts/password_reset/done.html:5 -#: src/shiftings/accounts/templates/accounts/password_reset/success.html:5 +#: shiftings/accounts/templates/accounts/password_reset/done.html:5 +#: shiftings/accounts/templates/accounts/password_reset/success.html:5 msgid "Back to login" msgstr "" -#: src/shiftings/accounts/templates/accounts/password_reset/prompt.html:4 +#: shiftings/accounts/templates/accounts/password_reset/prompt.html:4 msgid "" "\n" " If you are an local user enter your email-adress below to reset your " @@ -1651,15 +144,15 @@ msgid "" " " msgstr "" -#: src/shiftings/accounts/templates/accounts/password_reset/success.html:4 +#: shiftings/accounts/templates/accounts/password_reset/success.html:4 msgid "Your password has been successfully reset!" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:3 +#: shiftings/accounts/templates/accounts/user_detail.html:3 msgid "Confirm User Deletion" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:5 +#: shiftings/accounts/templates/accounts/user_detail.html:5 #, python-format msgid "" "\n" @@ -1669,128 +162,124 @@ msgid "" " " msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:17 +#: shiftings/accounts/templates/accounts/user_detail.html:17 msgid "Yes, I want to permanently delete my Data" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:19 +#: shiftings/accounts/templates/accounts/user_detail.html:19 msgid "Abort" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:29 -#: src/shiftings/organizations/models/membership.py:68 -#: src/shiftings/shifts/models/participant.py:13 -#: src/shiftings/templates/top_nav.html:47 -msgid "User" -msgstr "" - -#: src/shiftings/accounts/templates/accounts/user_detail.html:37 -#: src/shiftings/accounts/templates/accounts/user_detail.html:57 +#: shiftings/accounts/templates/accounts/user_detail.html:37 +#: shiftings/accounts/templates/accounts/user_detail.html:57 msgid "Edit user data" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:48 -#: src/shiftings/organizations/forms/membership.py:16 +#: shiftings/accounts/templates/accounts/user_detail.html:48 +#: shiftings/organizations/forms/membership.py:16 msgid "Username" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:50 -#: src/shiftings/events/models/event.py:25 -#: src/shiftings/events/templates/events/event.html:85 -#: src/shiftings/organizations/models/membership.py:10 -#: src/shiftings/organizations/models/organization.py:24 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:195 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:239 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:278 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:388 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:39 -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:13 -#: src/shiftings/shifts/models/base.py:8 -#: src/shiftings/shifts/models/recurring.py:32 -#: src/shiftings/shifts/models/template.py:17 -#: src/shiftings/shifts/models/template_group.py:20 -#: src/shiftings/shifts/models/type.py:40 -#: src/shiftings/shifts/models/type_group.py:16 -#: src/shiftings/shifts/templates/shifts/group/list.html:6 -#: src/shiftings/shifts/templates/shifts/list.html:6 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:6 -#: src/shiftings/shifts/templates/shifts/template/group_list.html:6 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:5 -#: src/shiftings/shifts/templates/shifts/type_group/list.html:7 +#: shiftings/accounts/templates/accounts/user_detail.html:50 +#: shiftings/events/models/event.py:25 +#: shiftings/events/templates/events/event.html:85 +#: shiftings/organizations/models/membership.py:10 +#: shiftings/organizations/models/organization.py:24 +#: shiftings/organizations/templates/organizations/organization_admin.html:195 +#: shiftings/organizations/templates/organizations/organization_admin.html:239 +#: shiftings/organizations/templates/organizations/organization_admin.html:278 +#: shiftings/organizations/templates/organizations/organization_admin.html:388 +#: shiftings/organizations/templates/organizations/organization_settings.html:39 +#: shiftings/organizations/templates/organizations/user/claim_users.html:13 +#: shiftings/shifts/models/base.py:8 shiftings/shifts/models/recurring.py:32 +#: shiftings/shifts/models/template.py:17 +#: shiftings/shifts/models/template_group.py:20 +#: shiftings/shifts/models/type.py:40 shiftings/shifts/models/type_group.py:16 +#: shiftings/shifts/templates/shifts/group/list.html:6 +#: shiftings/shifts/templates/shifts/list.html:6 +#: shiftings/shifts/templates/shifts/recurring/list.html:6 +#: shiftings/shifts/templates/shifts/template/group_list.html:6 +#: shiftings/shifts/templates/shifts/template/template_form.html:5 +#: shiftings/shifts/templates/shifts/type_group/list.html:7 msgid "Name" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:58 +#: shiftings/accounts/templates/accounts/user_detail.html:55 +#: shiftings/accounts/templates/accounts/user_detail.html:65 +msgid "Unknown" +msgstr "" + +#: shiftings/accounts/templates/accounts/user_detail.html:58 msgid "Set Display Name" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:62 +#: shiftings/accounts/templates/accounts/user_detail.html:62 msgid "Email" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:64 +#: shiftings/accounts/templates/accounts/user_detail.html:64 msgid "Phone Number" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:66 +#: shiftings/accounts/templates/accounts/user_detail.html:66 msgid "Member since" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:68 +#: shiftings/accounts/templates/accounts/user_detail.html:68 msgid "Total Shifts" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:70 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:124 +#: shiftings/accounts/templates/accounts/user_detail.html:70 +#: shiftings/organizations/templates/organizations/organization_admin.html:124 msgid "Groups" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:71 -#: src/shiftings/events/templates/events/template/event.html:32 -#: src/shiftings/shifts/templates/shifts/template/template.html:19 +#: shiftings/accounts/templates/accounts/user_detail.html:71 +#: shiftings/events/templates/events/template/event.html:32 +#: shiftings/shifts/templates/shifts/template/template.html:19 msgid "None" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:77 +#: shiftings/accounts/templates/accounts/user_detail.html:77 msgid "Organizations" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:83 +#: shiftings/accounts/templates/accounts/user_detail.html:83 msgid "Hide organizations" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:102 -#: src/shiftings/events/templates/events/template/event.html:12 +#: shiftings/accounts/templates/accounts/user_detail.html:102 +#: shiftings/events/templates/events/template/event.html:12 msgid "No Logo available" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:125 +#: shiftings/accounts/templates/accounts/user_detail.html:125 msgid "Recent Shifts" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:127 -#: src/shiftings/accounts/templates/accounts/user_detail.html:132 +#: shiftings/accounts/templates/accounts/user_detail.html:127 +#: shiftings/accounts/templates/accounts/user_detail.html:132 msgid "Upcoming Shifts" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:136 +#: shiftings/accounts/templates/accounts/user_detail.html:136 msgid "Past Shifts" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:157 +#: shiftings/accounts/templates/accounts/user_detail.html:157 msgid "No recent Shifts" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_detail.html:159 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:135 +#: shiftings/accounts/templates/accounts/user_detail.html:159 +#: shiftings/organizations/templates/organizations/organization_shifts.html:135 msgid "No upcoming shifts" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_form.html:6 +#: shiftings/accounts/templates/accounts/user_form.html:6 msgid "Register" msgstr "" -#: src/shiftings/accounts/templates/accounts/user_form.html:8 +#: shiftings/accounts/templates/accounts/user_form.html:8 #, python-format msgid "" "\n" @@ -1798,427 +287,432 @@ msgid "" " " msgstr "" -#: src/shiftings/accounts/templates/accounts/user_form.html:19 -#: src/shiftings/templates/template/simple_form_modal.html:21 +#: shiftings/accounts/templates/accounts/user_form.html:19 +#: shiftings/templates/template/simple_form_modal.html:21 msgid "Submit" msgstr "" -#: src/shiftings/accounts/views/auth.py:83 +#: shiftings/accounts/views/auth.py:79 msgid "Error while creating the user instance!" msgstr "" -#: src/shiftings/accounts/views/auth.py:87 +#: shiftings/accounts/views/auth.py:83 msgid "Successfully logged in!" msgstr "" -#: src/shiftings/accounts/views/auth.py:90 +#: shiftings/accounts/views/auth.py:86 #, python-format msgid "Error while trying to authenticate with sso! %(message)s" msgstr "" -#: src/shiftings/accounts/views/auth.py:131 -#: src/shiftings/templates/top_nav.html:52 +#: shiftings/accounts/views/auth.py:111 shiftings/templates/top_nav.html:54 msgid "Logout" msgstr "" -#: src/shiftings/accounts/views/password.py:13 +#: shiftings/accounts/views/password.py:13 msgid "Password Reset" msgstr "" -#: src/shiftings/accounts/views/password.py:19 +#: shiftings/accounts/views/password.py:19 msgid "Confirm Password Reset" msgstr "" -#: src/shiftings/accounts/views/user.py:35 -#: src/shiftings/templates/top_nav.html:15 +#: shiftings/accounts/views/user.py:35 shiftings/templates/top_nav.html:15 msgid "My Shifts" msgstr "" -#: src/shiftings/accounts/views/user.py:100 +#: shiftings/accounts/views/user.py:102 msgid "Could not find your user." msgstr "" -#: src/shiftings/accounts/views/user.py:106 +#: shiftings/accounts/views/user.py:108 msgid "Your EMail was confirmed. You can now login." msgstr "" -#: src/shiftings/accounts/views/user.py:109 +#: shiftings/accounts/views/user.py:111 msgid "Your activation link was invalid." msgstr "" -#: src/shiftings/accounts/views/user.py:126 +#: shiftings/accounts/views/user.py:128 msgid "Error while deleting your data: Please confirm deletion!" msgstr "" -#: src/shiftings/cal/feed/event.py:44 +#: shiftings/cal/feed/event.py:44 msgid "Public Events" msgstr "" -#: src/shiftings/cal/forms/day_form.py:8 +#: shiftings/cal/forms/day_form.py:8 msgid "Select Day" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_base.html:14 -#: src/shiftings/cal/templates/cal/calendar_base.html:24 +#: shiftings/cal/templates/cal/calendar_base.html:14 +#: shiftings/cal/templates/cal/calendar_base.html:24 msgid "Day View" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_base.html:20 +#: shiftings/cal/templates/cal/calendar_base.html:20 msgid "Day (Detailed)" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_base.html:30 +#: shiftings/cal/templates/cal/calendar_base.html:30 msgid "Day (By Types)" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_base.html:37 +#: shiftings/cal/templates/cal/calendar_base.html:37 msgid "Month View" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_base.html:38 -#: src/shiftings/utils/time/month.py:25 -#: src/shiftings/utils/time/timerange.py:12 +#: shiftings/cal/templates/cal/calendar_base.html:38 +#: shiftings/utils/time/month.py:25 shiftings/utils/time/timerange.py:12 msgid "Month" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_base.html:42 -#: src/shiftings/cal/templates/cal/calendar_base.html:48 +#: shiftings/cal/templates/cal/calendar_base.html:42 +#: shiftings/cal/templates/cal/calendar_base.html:48 msgid "List View" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_base.html:44 +#: shiftings/cal/templates/cal/calendar_base.html:44 msgid "List (Detailed)" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_base.html:50 +#: shiftings/cal/templates/cal/calendar_base.html:50 msgid "List (By Types)" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_templates/cal_shift_create_entry.html:4 -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:106 -#: src/shiftings/events/templates/events/event.html:74 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:376 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:120 +#: shiftings/cal/templates/cal/calendar_templates/cal_shift_create_entry.html:4 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:106 +#: shiftings/events/templates/events/event.html:74 +#: shiftings/organizations/templates/organizations/organization_admin.html:376 +#: shiftings/organizations/templates/organizations/organization_shifts.html:120 msgid "Create Shift" msgstr "" -#: src/shiftings/cal/templates/cal/calendar_templates/recurring_shift_entry.html:5 +#: shiftings/cal/templates/cal/calendar_templates/recurring_shift_entry.html:5 msgid "Recurring" msgstr "" -#: src/shiftings/cal/templates/cal/day_calendar.html:14 +#: shiftings/cal/templates/cal/day_calendar.html:14 msgid "Previous Day" msgstr "" -#: src/shiftings/cal/templates/cal/day_calendar.html:22 +#: shiftings/cal/templates/cal/day_calendar.html:22 msgid "Jump to Date" msgstr "" -#: src/shiftings/cal/templates/cal/day_calendar.html:28 +#: shiftings/cal/templates/cal/day_calendar.html:28 msgid "Jump to Day" msgstr "" -#: src/shiftings/cal/templates/cal/day_calendar.html:30 +#: shiftings/cal/templates/cal/day_calendar.html:30 msgid "Select" msgstr "" -#: src/shiftings/cal/templates/cal/day_calendar.html:38 +#: shiftings/cal/templates/cal/day_calendar.html:38 msgid "Next Day" msgstr "" -#: src/shiftings/cal/templates/cal/list_calendar.html:12 +#: shiftings/cal/templates/cal/list_calendar.html:12 msgid "Shift list" msgstr "Schichtenliste" -#: src/shiftings/cal/templates/cal/template/day_calendar_shift_types.html:7 -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:48 -#: src/shiftings/shifts/templates/shifts/shift_participants.html:4 +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:3 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:3 +#, python-format +msgid "" +"\n" +" Your query was capped to the server limit of %(max_entries)s. Please " +"filter more specifically.\n" +" " +msgstr "" + +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:14 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:48 +#: shiftings/shifts/templates/shifts/shift_participants.html:4 msgid "Add with Name to Shift" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_shift_types.html:33 -#: src/shiftings/organizations/models/membership.py:12 -msgid "Default" +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:30 +#: shiftings/organizations/templates/organizations/organization_admin.html:197 +#: shiftings/shifts/templates/shifts/template/group.html:43 +#: shiftings/shifts/templates/shifts/template/group_template.html:23 +#: shiftings/shifts/templates/shifts/template/shift.html:10 +#: shiftings/shifts/templates/shifts/template/template_form.html:33 +msgid "Time" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_shift_types.html:38 -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:95 -msgid "No Shifts found with these parameters or planned on this day" +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:40 +#: shiftings/organizations/models/membership.py:12 +msgid "Default" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:3 -#, python-format -msgid "" -"\n" -" Your query was capped to the server limit of %(max_entries)s. Please " -"filter more specifically.\n" -" " +#: shiftings/cal/templates/cal/template/day_calendar_shift_types.html:45 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:95 +msgid "No Shifts found with these parameters or planned on this day" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:12 -#: src/shiftings/events/models/event.py:24 -#: src/shiftings/shifts/models/base.py:12 -#: src/shiftings/shifts/models/recurring.py:34 -#: src/shiftings/shifts/models/template_group.py:24 -#: src/shiftings/shifts/models/type.py:37 -#: src/shiftings/shifts/models/type_group.py:14 -#: src/shiftings/shifts/templates/shifts/create_shift.html:79 -#: src/shiftings/shifts/templates/shifts/list.html:9 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:9 -#: src/shiftings/shifts/templates/shifts/shift.html:47 -#: src/shiftings/shifts/templates/shifts/template/group.html:39 -#: src/shiftings/shifts/templates/shifts/template/group.html:45 -#: src/shiftings/shifts/templates/shifts/template/group_list.html:8 -#: src/shiftings/shifts/templates/shifts/template/group_template.html:25 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:12 +#: shiftings/events/models/event.py:24 shiftings/shifts/models/base.py:12 +#: shiftings/shifts/models/recurring.py:34 +#: shiftings/shifts/models/template_group.py:24 +#: shiftings/shifts/models/type.py:37 shiftings/shifts/models/type_group.py:14 +#: shiftings/shifts/templates/shifts/create_shift.html:79 +#: shiftings/shifts/templates/shifts/list.html:9 +#: shiftings/shifts/templates/shifts/recurring/list.html:9 +#: shiftings/shifts/templates/shifts/shift.html:47 +#: shiftings/shifts/templates/shifts/template/group.html:39 +#: shiftings/shifts/templates/shifts/template/group.html:45 +#: shiftings/shifts/templates/shifts/template/group_list.html:8 +#: shiftings/shifts/templates/shifts/template/group_template.html:25 msgid "Organization" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:13 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:13 msgid "Org" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:14 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:14 msgid "Shift" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:15 -#: src/shiftings/shifts/templates/shifts/create_shift.html:56 -#: src/shiftings/shifts/templates/shifts/template/shift.html:12 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:21 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:15 +#: shiftings/shifts/templates/shifts/create_shift.html:56 +#: shiftings/shifts/templates/shifts/template/shift.html:12 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:21 msgid "Participants" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:16 -#: src/shiftings/shifts/templates/shifts/list.html:10 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:16 +#: shiftings/shifts/templates/shifts/list.html:10 msgid "Start" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:17 -#: src/shiftings/shifts/templates/shifts/list.html:11 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:17 +#: shiftings/shifts/templates/shifts/list.html:11 msgid "End" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:36 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:7 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:36 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:7 msgid "Shift Details" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:61 -#: src/shiftings/shifts/templates/shifts/shift_participants.html:23 -#: src/shiftings/shifts/templates/shifts/template/slots_display.html:29 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:44 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:61 +#: shiftings/shifts/templates/shifts/shift_participants.html:23 +#: shiftings/shifts/templates/shifts/template/slots_display.html:29 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:44 msgid "Add me" msgstr "" -#: src/shiftings/cal/templates/cal/template/day_calendar_xs.html:112 -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:31 -#: src/shiftings/shifts/templates/shifts/edit_templates.html:26 +#: shiftings/cal/templates/cal/template/day_calendar_xs.html:112 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:31 +#: shiftings/shifts/templates/shifts/edit_templates.html:26 msgid "Add Shift" msgstr "" -#: src/shiftings/cal/templates/cal/template/month_calendar.html:7 +#: shiftings/cal/templates/cal/template/month_calendar.html:7 msgid "Previous Month" msgstr "" -#: src/shiftings/cal/templates/cal/template/month_calendar.html:15 +#: shiftings/cal/templates/cal/template/month_calendar.html:15 msgid "Next Month" msgstr "" -#: src/shiftings/cal/templates/cal/week_calendar.html:9 +#: shiftings/cal/templates/cal/week_calendar.html:9 msgid "Previous Week" msgstr "" -#: src/shiftings/cal/templates/cal/week_calendar.html:13 +#: shiftings/cal/templates/cal/week_calendar.html:13 msgid "Week" msgstr "" -#: src/shiftings/cal/templates/cal/week_calendar.html:17 +#: shiftings/cal/templates/cal/week_calendar.html:17 msgid "Next Week" msgstr "" -#: src/shiftings/cal/views/day_calendar.py:24 +#: shiftings/cal/views/day_calendar.py:24 #, python-brace-format msgid "Day {date}" msgstr "" -#: src/shiftings/cal/views/day_calendar.py:25 +#: shiftings/cal/views/day_calendar.py:25 msgid "Day Overview" msgstr "" -#: src/shiftings/cal/views/list.py:24 -#: src/shiftings/organizations/templates/organizations/template/org_info.html:6 +#: shiftings/cal/views/list.py:24 +#: shiftings/organizations/templates/organizations/template/org_info.html:6 msgid "Shift Overview" msgstr "" -#: src/shiftings/cal/views/month_calendar.py:24 +#: shiftings/cal/views/month_calendar.py:24 #, python-brace-format msgid "Month {year}/{month:0>2}" msgstr "" -#: src/shiftings/cal/views/month_calendar.py:26 -#: src/shiftings/events/templates/events/event.html:52 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:162 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:28 +#: shiftings/cal/views/month_calendar.py:26 +#: shiftings/events/templates/events/event.html:52 +#: shiftings/organizations/templates/organizations/organization_admin.html:162 +#: shiftings/organizations/templates/organizations/organization_shifts.html:28 msgid "Month Overview" msgstr "" -#: src/shiftings/events/forms/event.py:24 +#: shiftings/events/forms/event.py:24 #, python-format msgid "Start date %(start)s was after end_date %(end)s" msgstr "" -#: src/shiftings/events/models/event.py:26 -#: src/shiftings/events/templates/events/event.html:19 -#: src/shiftings/organizations/models/organization.py:25 -#: src/shiftings/organizations/templates/organizations/template/org_info.html:58 +#: shiftings/events/models/event.py:26 +#: shiftings/events/templates/events/event.html:19 +#: shiftings/organizations/models/organization.py:25 +#: shiftings/organizations/templates/organizations/template/org_info.html:58 msgid "Logo" msgstr "" -#: src/shiftings/events/models/event.py:28 -#: src/shiftings/organizations/models/organization.py:27 +#: shiftings/events/models/event.py:28 +#: shiftings/organizations/models/organization.py:27 msgid "E-Mail" msgstr "" -#: src/shiftings/events/models/event.py:30 -#: src/shiftings/organizations/models/organization.py:29 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:81 -#: src/shiftings/organizations/templates/organizations/template/organization.html:27 +#: shiftings/events/models/event.py:30 +#: shiftings/organizations/models/organization.py:29 +#: shiftings/organizations/templates/organizations/organization_shifts.html:81 +#: shiftings/organizations/templates/organizations/template/organization.html:27 msgid "Website" msgstr "" -#: src/shiftings/events/models/event.py:32 +#: shiftings/events/models/event.py:32 msgid "Start Date" msgstr "" -#: src/shiftings/events/models/event.py:32 +#: shiftings/events/models/event.py:32 msgid "Earliest date where there are shifts available" msgstr "" -#: src/shiftings/events/models/event.py:33 +#: shiftings/events/models/event.py:33 msgid "End Date" msgstr "" -#: src/shiftings/events/models/event.py:33 +#: shiftings/events/models/event.py:33 msgid "Latest date where there are shifts available" msgstr "" -#: src/shiftings/events/models/event.py:35 -#: src/shiftings/organizations/models/organization.py:32 +#: shiftings/events/models/event.py:35 +#: shiftings/organizations/models/organization.py:32 msgid "Description" msgstr "" -#: src/shiftings/events/models/event.py:55 +#: shiftings/events/models/event.py:55 #, python-brace-format msgid "{name} (by {organization})" msgstr "" -#: src/shiftings/events/templates/events/event.html:10 +#: shiftings/events/templates/events/event.html:10 msgid "Edit Event" msgstr "" -#: src/shiftings/events/templates/events/event.html:55 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:165 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:31 +#: shiftings/events/templates/events/event.html:55 +#: shiftings/organizations/templates/organizations/organization_admin.html:165 +#: shiftings/organizations/templates/organizations/organization_shifts.html:31 msgid "Complete Overview" msgstr "" -#: src/shiftings/events/templates/events/event.html:69 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:363 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:109 +#: shiftings/events/templates/events/event.html:69 +#: shiftings/organizations/templates/organizations/organization_admin.html:363 +#: shiftings/organizations/templates/organizations/organization_shifts.html:109 msgid "Shifts" msgstr "" -#: src/shiftings/events/templates/events/event.html:71 -#: src/shiftings/events/templates/events/event.html:72 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:371 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:112 +#: shiftings/events/templates/events/event.html:71 +#: shiftings/events/templates/events/event.html:72 +#: shiftings/organizations/templates/organizations/organization_admin.html:371 +#: shiftings/organizations/templates/organizations/organization_shifts.html:112 msgid "ical Export" msgstr "" -#: src/shiftings/events/templates/events/event.html:86 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:389 -#: src/shiftings/shifts/templates/shifts/list.html:7 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:7 -#: src/shiftings/shifts/templates/shifts/template/shift.html:8 -#: src/shiftings/shifts/templates/shifts/template/template.html:7 +#: shiftings/events/templates/events/event.html:86 +#: shiftings/organizations/templates/organizations/organization_admin.html:389 +#: shiftings/shifts/templates/shifts/list.html:7 +#: shiftings/shifts/templates/shifts/recurring/list.html:7 +#: shiftings/shifts/templates/shifts/template/shift.html:8 +#: shiftings/shifts/templates/shifts/template/template.html:7 msgid "Type" msgstr "" -#: src/shiftings/events/templates/events/event.html:87 -#: src/shiftings/mail/forms/mail.py:39 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:241 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:390 -#: src/shiftings/shifts/models/template_group.py:26 -#: src/shiftings/shifts/templates/shifts/shift.html:43 -#: src/shiftings/shifts/templates/shifts/template/group_list.html:9 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:17 -#: src/shiftings/shifts/templates/shifts/template/template.html:13 +#: shiftings/events/templates/events/event.html:87 +#: shiftings/mail/forms/mail.py:55 +#: shiftings/organizations/templates/organizations/organization_admin.html:241 +#: shiftings/organizations/templates/organizations/organization_admin.html:390 +#: shiftings/shifts/models/template_group.py:26 +#: shiftings/shifts/templates/shifts/shift.html:43 +#: shiftings/shifts/templates/shifts/template/group_list.html:9 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:17 +#: shiftings/shifts/templates/shifts/template/template.html:13 msgid "Start Time" msgstr "" -#: src/shiftings/events/templates/events/event.html:88 -#: src/shiftings/mail/forms/mail.py:40 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:391 -#: src/shiftings/shifts/templates/shifts/shift.html:45 -#: src/shiftings/shifts/templates/shifts/template/template.html:15 +#: shiftings/events/templates/events/event.html:88 +#: shiftings/mail/forms/mail.py:56 +#: shiftings/organizations/templates/organizations/organization_admin.html:391 +#: shiftings/shifts/templates/shifts/shift.html:45 +#: shiftings/shifts/templates/shifts/template/template.html:15 msgid "End Time" msgstr "" -#: src/shiftings/events/templates/events/event.html:89 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:198 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:240 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:392 -#: src/shiftings/shifts/models/base.py:9 -#: src/shiftings/shifts/models/template_group.py:21 -#: src/shiftings/shifts/templates/shifts/list.html:8 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:8 -#: src/shiftings/shifts/templates/shifts/shift.html:41 -#: src/shiftings/shifts/templates/shifts/template/group.html:41 -#: src/shiftings/shifts/templates/shifts/template/group_list.html:7 -#: src/shiftings/shifts/templates/shifts/template/group_template.html:21 -#: src/shiftings/shifts/templates/shifts/template/shift_card.html:12 -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:18 +#: shiftings/events/templates/events/event.html:89 +#: shiftings/organizations/templates/organizations/organization_admin.html:198 +#: shiftings/organizations/templates/organizations/organization_admin.html:240 +#: shiftings/organizations/templates/organizations/organization_admin.html:392 +#: shiftings/shifts/models/base.py:9 +#: shiftings/shifts/models/template_group.py:21 +#: shiftings/shifts/templates/shifts/list.html:8 +#: shiftings/shifts/templates/shifts/recurring/list.html:8 +#: shiftings/shifts/templates/shifts/shift.html:41 +#: shiftings/shifts/templates/shifts/template/group.html:41 +#: shiftings/shifts/templates/shifts/template/group_list.html:7 +#: shiftings/shifts/templates/shifts/template/group_template.html:21 +#: shiftings/shifts/templates/shifts/template/shift_card.html:12 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:18 msgid "Place" msgstr "" -#: src/shiftings/events/templates/events/event.html:90 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:393 +#: shiftings/events/templates/events/event.html:90 +#: shiftings/organizations/templates/organizations/organization_admin.html:393 msgid "Users/Required/Max" msgstr "" -#: src/shiftings/events/templates/events/event.html:108 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:416 +#: shiftings/events/templates/events/event.html:108 +#: shiftings/organizations/templates/organizations/organization_admin.html:416 msgid "No current shifts" msgstr "" -#: src/shiftings/events/templates/events/list.html:5 -#: src/shiftings/events/templates/events/list.html:13 -#: src/shiftings/events/templates/events/list.html:22 +#: shiftings/events/templates/events/list.html:5 +#: shiftings/events/templates/events/list.html:13 +#: shiftings/events/templates/events/list.html:22 msgid "All Events" msgstr "" -#: src/shiftings/events/templates/events/list.html:7 -#: src/shiftings/templates/top_nav.html:22 +#: shiftings/events/templates/events/list.html:7 +#: shiftings/templates/top_nav.html:22 msgid "Current Events" msgstr "" -#: src/shiftings/events/templates/events/list.html:16 +#: shiftings/events/templates/events/list.html:16 msgid "All upcoming Events" msgstr "" -#: src/shiftings/events/templates/events/list.html:20 +#: shiftings/events/templates/events/list.html:20 msgid "Enter Name or Organization" msgstr "" -#: src/shiftings/events/templates/events/list.html:26 +#: shiftings/events/templates/events/list.html:26 msgid "Future Events" msgstr "" -#: src/shiftings/events/templates/events/list.html:39 +#: shiftings/events/templates/events/list.html:39 msgid "No Events found." msgstr "" -#: src/shiftings/events/templates/events/template/event.html:23 +#: shiftings/events/templates/events/template/event.html:23 #, python-format msgid "" "\n" @@ -2226,262 +720,276 @@ msgid "" " " msgstr "" -#: src/shiftings/events/templates/events/template/event.html:31 +#: shiftings/events/templates/events/template/event.html:31 msgid "Open Shifts" msgstr "" -#: src/shiftings/events/templates/events/template/event.html:32 +#: shiftings/events/templates/events/template/event.html:32 msgid "Required People" msgstr "" -#: src/shiftings/events/templates/events/template/event.html:33 +#: shiftings/events/templates/events/template/event.html:33 msgid "Visibility" msgstr "" -#: src/shiftings/events/templates/events/template/event.html:33 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:350 +#: shiftings/events/templates/events/template/event.html:33 +#: shiftings/organizations/templates/organizations/organization_admin.html:350 msgid "Public,Private,Unknown" msgstr "" -#: src/shiftings/events/templates/events/template/event_stats.html:2 +#: shiftings/events/templates/events/template/event_stats.html:2 msgid "Shifts that are below the required amount of users" msgstr "" -#: src/shiftings/events/templates/events/template/event_stats.html:3 +#: shiftings/events/templates/events/template/event_stats.html:3 msgid "Shifts missing users" msgstr "" -#: src/shiftings/events/templates/events/template/event_stats.html:6 +#: shiftings/events/templates/events/template/event_stats.html:6 msgid "Shifts that are below the required and maximum amount of users" msgstr "" -#: src/shiftings/events/templates/events/template/event_stats.html:7 +#: shiftings/events/templates/events/template/event_stats.html:7 msgid "Shifts with open slots" msgstr "" -#: src/shiftings/events/templates/events/template/event_stats.html:10 +#: shiftings/events/templates/events/template/event_stats.html:10 msgid "Number of Shift slots filled with users" msgstr "" -#: src/shiftings/events/templates/events/template/event_stats.html:11 +#: shiftings/events/templates/events/template/event_stats.html:11 msgid "Filled Slots" msgstr "" -#: src/shiftings/events/templates/events/template/event_stats.html:12 -#: src/shiftings/events/templates/events/template/event_stats.html:16 +#: shiftings/events/templates/events/template/event_stats.html:12 +#: shiftings/events/templates/events/template/event_stats.html:16 msgid "No Shifts available" msgstr "" -#: src/shiftings/events/templates/events/template/event_stats.html:14 +#: shiftings/events/templates/events/template/event_stats.html:14 msgid "Number of Shift slots that are still open" msgstr "" -#: src/shiftings/events/templates/events/template/event_stats.html:15 +#: shiftings/events/templates/events/template/event_stats.html:15 msgid "Open Slots" msgstr "" -#: src/shiftings/mail/forms/mail.py:10 +#: shiftings/mail/forms/mail.py:13 msgid "Subject" msgstr "" -#: src/shiftings/mail/forms/mail.py:12 +#: shiftings/mail/forms/mail.py:14 +msgid "Text" +msgstr "" + +#: shiftings/mail/forms/mail.py:15 msgid "Attachments" msgstr "" -#: src/shiftings/mail/forms/mail.py:22 +#: shiftings/mail/forms/mail.py:26 +msgid "Each attachment must be smaller than 10 MB." +msgstr "" + +#: shiftings/mail/forms/mail.py:30 +msgid "Total attachment size must be smaller than 25 MB." +msgstr "" + +#: shiftings/mail/forms/mail.py:38 msgid "" "Send the mail only to specific membership types. Or leave blank to send to " "all." msgstr "" -#: src/shiftings/mail/forms/mail.py:37 +#: shiftings/mail/forms/mail.py:53 msgid "" "Send the mail only to specific shift types. Or leave blank to send to all." msgstr "" -#: src/shiftings/mail/templates/mail/mail.html:8 +#: shiftings/mail/forms/mail.py:71 +msgid "Start time must be before end time." +msgstr "" + +#: shiftings/mail/templates/mail/mail.html:8 msgid "Send Mail" msgstr "" -#: src/shiftings/mail/views/mail.py:45 +#: shiftings/mail/views/mail.py:45 #, python-brace-format msgid "E-Mail sent to {count} user(s)." msgstr "" -#: src/shiftings/organizations/forms/membership.py:40 -#: src/shiftings/shifts/forms/participant.py:57 +#: shiftings/organizations/forms/membership.py:40 +#: shiftings/shifts/forms/participant.py:57 msgid "The user you entered could not be found." msgstr "" -#: src/shiftings/organizations/models/membership.py:11 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:68 -#: src/shiftings/templates/top_nav.html:50 +#: shiftings/organizations/models/membership.py:11 +#: shiftings/organizations/templates/organizations/organization_admin.html:68 +#: shiftings/templates/top_nav.html:50 msgid "Admin" msgstr "" -#: src/shiftings/organizations/models/membership.py:13 +#: shiftings/organizations/models/membership.py:13 msgid "Permissions" msgstr "" -#: src/shiftings/organizations/models/membership.py:19 +#: shiftings/organizations/models/membership.py:19 msgid "edit organization details" msgstr "" -#: src/shiftings/organizations/models/membership.py:20 +#: shiftings/organizations/models/membership.py:20 msgid "see members of the organization" msgstr "" -#: src/shiftings/organizations/models/membership.py:21 +#: shiftings/organizations/models/membership.py:21 msgid "see shift participation statistics" msgstr "" -#: src/shiftings/organizations/models/membership.py:22 +#: shiftings/organizations/models/membership.py:22 msgid "send emails to everyone in the organization" msgstr "" -#: src/shiftings/organizations/models/membership.py:24 +#: shiftings/organizations/models/membership.py:24 msgid "create and update membership types for the organization" msgstr "" -#: src/shiftings/organizations/models/membership.py:25 +#: shiftings/organizations/models/membership.py:25 msgid "add and remove members for the organization" msgstr "" -#: src/shiftings/organizations/models/membership.py:27 +#: shiftings/organizations/models/membership.py:27 msgid "create and update events for the organization" msgstr "" -#: src/shiftings/organizations/models/membership.py:29 +#: shiftings/organizations/models/membership.py:29 msgid "create and update recurring shifts for the organization" msgstr "" -#: src/shiftings/organizations/models/membership.py:30 +#: shiftings/organizations/models/membership.py:30 msgid "create and update shifts templates for the organization" msgstr "" -#: src/shiftings/organizations/models/membership.py:31 +#: shiftings/organizations/models/membership.py:31 msgid "create and update shifts for the organization" msgstr "" -#: src/shiftings/organizations/models/membership.py:32 +#: shiftings/organizations/models/membership.py:32 msgid "delete uncompleted shifts for the organization" msgstr "" -#: src/shiftings/organizations/models/membership.py:34 +#: shiftings/organizations/models/membership.py:34 msgid "remove others from shifts" msgstr "" -#: src/shiftings/organizations/models/membership.py:35 +#: shiftings/organizations/models/membership.py:35 msgid "add other users that are not members of the organization to shifts" msgstr "" -#: src/shiftings/organizations/models/membership.py:36 +#: shiftings/organizations/models/membership.py:36 msgid "add other organization members to shifts" msgstr "" -#: src/shiftings/organizations/models/membership.py:37 +#: shiftings/organizations/models/membership.py:37 msgid "participate in shifts" msgstr "" -#: src/shiftings/organizations/models/membership.py:38 +#: shiftings/organizations/models/membership.py:38 msgid "add self/others (depending on other permissions) to past shifts" msgstr "" -#: src/shiftings/organizations/models/membership.py:57 +#: shiftings/organizations/models/membership.py:57 #, python-brace-format msgid "{name} (Admin)" msgstr "" -#: src/shiftings/organizations/models/membership.py:59 +#: shiftings/organizations/models/membership.py:59 #, python-brace-format msgid "{name} (Default)" msgstr "" -#: src/shiftings/organizations/models/membership.py:65 +#: shiftings/organizations/models/membership.py:65 msgid "Membership Type" msgstr "" -#: src/shiftings/organizations/models/membership.py:69 -#: src/shiftings/shifts/models/type.py:38 +#: shiftings/organizations/models/membership.py:69 +#: shiftings/shifts/models/type.py:38 msgid "Group" msgstr "" -#: src/shiftings/organizations/models/membership.py:100 +#: shiftings/organizations/models/membership.py:100 msgid "Membership can only be either user or group, not both." msgstr "" -#: src/shiftings/organizations/models/membership.py:102 +#: shiftings/organizations/models/membership.py:102 msgid "Membership must consist of a user or a group." msgstr "" -#: src/shiftings/organizations/models/organization.py:30 +#: shiftings/organizations/models/organization.py:30 msgid "Include Protocol i.E. https://example.com" msgstr "" -#: src/shiftings/organizations/models/organization.py:33 -#: src/shiftings/shifts/models/base.py:24 -#: src/shiftings/shifts/models/recurring.py:56 -#: src/shiftings/shifts/models/recurring.py:63 -#: src/shiftings/shifts/models/shift.py:32 -#: src/shiftings/shifts/models/template.py:33 +#: shiftings/organizations/models/organization.py:33 +#: shiftings/shifts/models/base.py:24 shiftings/shifts/models/recurring.py:56 +#: shiftings/shifts/models/recurring.py:63 shiftings/shifts/models/shift.py:32 +#: shiftings/shifts/models/template.py:33 #, python-brace-format msgid "A maximum of {amount} characters is allowed" msgstr "" -#: src/shiftings/organizations/models/organization.py:34 +#: shiftings/organizations/models/organization.py:34 msgid "Confirm Participants" msgstr "" -#: src/shiftings/organizations/models/organization.py:35 +#: shiftings/organizations/models/organization.py:35 msgid "Whether the participants can be confirmed or not. Default: False" msgstr "" -#: src/shiftings/organizations/models/organization.py:49 +#: shiftings/organizations/models/organization.py:49 msgid "manage all organizations" msgstr "" -#: src/shiftings/organizations/models/user.py:10 +#: shiftings/organizations/models/user.py:10 msgid "Claimed by" msgstr "" -#: src/shiftings/organizations/templates/organizations/list.html:5 +#: shiftings/organizations/templates/organizations/list.html:5 msgid "All Organizations" msgstr "" -#: src/shiftings/organizations/templates/organizations/list.html:7 -#: src/shiftings/templates/top_nav.html:18 +#: shiftings/organizations/templates/organizations/list.html:7 +#: shiftings/templates/top_nav.html:18 msgid "My Organizations" msgstr "" -#: src/shiftings/organizations/templates/organizations/list.html:12 +#: shiftings/organizations/templates/organizations/list.html:12 msgid "Enter Name" msgstr "" -#: src/shiftings/organizations/templates/organizations/list.html:14 +#: shiftings/organizations/templates/organizations/list.html:14 msgid "Add new Organization" msgstr "" -#: src/shiftings/organizations/templates/organizations/list.html:25 +#: shiftings/organizations/templates/organizations/list.html:25 msgid "No Organizations found." msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:6 +#: shiftings/organizations/templates/organizations/organization_admin.html:6 msgid "Show membership Permissions" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:10 +#: shiftings/organizations/templates/organizations/organization_admin.html:10 msgid "All Permissions" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:19 +#: shiftings/organizations/templates/organizations/organization_admin.html:19 msgid "No permissions" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:26 +#: shiftings/organizations/templates/organizations/organization_admin.html:26 msgid "Add member" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:41 +#: shiftings/organizations/templates/organizations/organization_admin.html:41 #, python-format msgid "" "\n" @@ -2489,183 +997,187 @@ msgid "" " " msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:48 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:8 +#: shiftings/organizations/templates/organizations/organization_admin.html:48 +#: shiftings/organizations/templates/organizations/organization_shifts.html:8 msgid "Member Shift Summary" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:54 +#: shiftings/organizations/templates/organizations/organization_admin.html:54 msgid "Add Membership Type" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:78 +#: shiftings/organizations/templates/organizations/organization_admin.html:78 msgid "Show user permissions" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:81 +#: shiftings/organizations/templates/organizations/organization_admin.html:81 msgid "Edit Membership Type" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:90 +#: shiftings/organizations/templates/organizations/organization_admin.html:90 msgid "Add Member" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:100 +#: shiftings/organizations/templates/organizations/organization_admin.html:100 msgid "No Members of this type!" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:106 +#: shiftings/organizations/templates/organizations/organization_admin.html:106 msgid "Direct Members" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:150 +#: shiftings/organizations/templates/organizations/organization_admin.html:150 msgid "Next Shift" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:154 +#: shiftings/organizations/templates/organizations/organization_admin.html:154 msgid "No Shifts planned" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:179 -#: src/shiftings/shifts/templates/shifts/template/group.html:52 +#: shiftings/organizations/templates/organizations/organization_admin.html:179 +#: shiftings/shifts/templates/shifts/template/group.html:52 msgid "Recurring Shifts" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:184 +#: shiftings/organizations/templates/organizations/organization_admin.html:184 msgid "Add recurring shift" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:196 +#: shiftings/organizations/templates/organizations/organization_admin.html:196 msgid "Shift count" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:199 +#: shiftings/organizations/templates/organizations/organization_admin.html:199 msgid "Status" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:210 +#: shiftings/organizations/templates/organizations/organization_admin.html:210 msgid "Inactive,Active,Undefined" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:216 +#: shiftings/organizations/templates/organizations/organization_admin.html:216 msgid "No recurring shifts" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:223 +#: shiftings/organizations/templates/organizations/organization_admin.html:223 msgid "Shifts Templates" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:228 +#: shiftings/organizations/templates/organizations/organization_admin.html:228 msgid "Add shifts template" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:255 -#: src/shiftings/organizations/templates/organizations/organization_admin.html:309 +#: shiftings/organizations/templates/organizations/organization_admin.html:255 +#: shiftings/organizations/templates/organizations/organization_admin.html:309 msgid "No shifts templates" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:262 +#: shiftings/organizations/templates/organizations/organization_admin.html:262 msgid "Shifts Types" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:267 +#: shiftings/organizations/templates/organizations/organization_admin.html:267 msgid "Add Shift Type" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:279 +#: shiftings/organizations/templates/organizations/organization_admin.html:279 msgid "Color" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:280 -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:15 +#: shiftings/organizations/templates/organizations/organization_admin.html:280 +#: shiftings/organizations/templates/organizations/user/claim_users.html:15 msgid "Shift Count" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:281 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:41 -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:16 +#: shiftings/organizations/templates/organizations/organization_admin.html:281 +#: shiftings/organizations/templates/organizations/organization_settings.html:41 +#: shiftings/organizations/templates/organizations/user/claim_users.html:16 msgid "Action" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:290 +#: shiftings/organizations/templates/organizations/organization_admin.html:290 msgid "Shift Type Background Color" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:317 +#: shiftings/organizations/templates/organizations/organization_admin.html:317 msgid "Upcoming Events" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:321 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:50 +#: shiftings/organizations/templates/organizations/organization_admin.html:321 +#: shiftings/organizations/templates/organizations/organization_shifts.html:50 msgid "Expired Events" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:326 -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:55 +#: shiftings/organizations/templates/organizations/organization_admin.html:326 +#: shiftings/organizations/templates/organizations/organization_shifts.html:55 msgid "Add Event" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:356 +#: shiftings/organizations/templates/organizations/organization_admin.html:356 msgid "No upcoming Events planned" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_admin.html:367 +#: shiftings/organizations/templates/organizations/organization_admin.html:367 msgid "Claim Legacy Shifts" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:19 -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:36 -#: src/shiftings/shifts/templates/shifts/edit_templates.html:31 -#: src/shiftings/shifts/templates/shifts/recurring/form.html:25 -#: src/shiftings/templates/generic/create_or_update.html:20 -#: src/shiftings/templates/generic/formset.html:17 +#: shiftings/organizations/templates/organizations/organization_settings.html:19 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:36 +#: shiftings/shifts/templates/shifts/edit_templates.html:31 +#: shiftings/shifts/templates/shifts/recurring/form.html:25 +#: shiftings/templates/generic/create_or_update.html:20 +#: shiftings/templates/generic/formset.html:17 msgid "Save" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:26 +#: shiftings/organizations/templates/organizations/organization_settings.html:26 msgid "Shift Type Groups" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:29 +#: shiftings/organizations/templates/organizations/organization_settings.html:29 msgid "Create Type Group" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:40 +#: shiftings/organizations/templates/organizations/organization_settings.html:38 +msgid "Order" +msgstr "" + +#: shiftings/organizations/templates/organizations/organization_settings.html:40 msgid "Types" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:61 +#: shiftings/organizations/templates/organizations/organization_settings.html:61 msgid "Edit Type Group" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:72 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:77 +#: shiftings/organizations/templates/organizations/organization_settings.html:72 +#: shiftings/organizations/templates/organizations/organization_settings.html:77 msgid "Move Up" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_settings.html:84 -#: src/shiftings/organizations/templates/organizations/organization_settings.html:89 +#: shiftings/organizations/templates/organizations/organization_settings.html:84 +#: shiftings/organizations/templates/organizations/organization_settings.html:89 msgid "Move Down" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:11 +#: shiftings/organizations/templates/organizations/organization_shifts.html:11 msgid "Full Summary" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:46 +#: shiftings/organizations/templates/organizations/organization_shifts.html:46 msgid "Upcoming Event" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:66 -#: src/shiftings/shifts/models/shift.py:21 +#: shiftings/organizations/templates/organizations/organization_shifts.html:66 +#: shiftings/shifts/models/shift.py:21 msgid "Event" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:68 +#: shiftings/organizations/templates/organizations/organization_shifts.html:68 msgid "Go to Event" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:74 +#: shiftings/organizations/templates/organizations/organization_shifts.html:74 #, python-format msgid "" "\n" @@ -2675,463 +1187,464 @@ msgid "" " " msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:94 +#: shiftings/organizations/templates/organizations/organization_shifts.html:94 msgid "No Events planned" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:102 +#: shiftings/organizations/templates/organizations/organization_shifts.html:102 msgid "Events disabled" msgstr "" -#: src/shiftings/organizations/templates/organizations/organization_shifts.html:117 +#: shiftings/organizations/templates/organizations/organization_shifts.html:117 msgid "Create Shift from Template" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/member_group.html:6 +#: shiftings/organizations/templates/organizations/template/member_group.html:6 msgid "Click to expand members" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:8 +#: shiftings/organizations/templates/organizations/template/org_info.html:8 msgid "Organization Overview" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:12 +#: shiftings/organizations/templates/organizations/template/org_info.html:12 msgid "Administrate Organization" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:14 +#: shiftings/organizations/templates/organizations/template/org_info.html:14 msgid "Organization Admin View" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:19 +#: shiftings/organizations/templates/organizations/template/org_info.html:19 msgid "Organization Settings" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:21 +#: shiftings/organizations/templates/organizations/template/org_info.html:21 msgid "Organization Settings View" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:35 +#: shiftings/organizations/templates/organizations/template/org_info.html:35 msgid "Send Mail to shift participants" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:41 +#: shiftings/organizations/templates/organizations/template/org_info.html:41 msgid "Edit Organization" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/org_info.html:47 +#: shiftings/organizations/templates/organizations/template/org_info.html:47 msgid "Update Shift Permissions" msgstr "" -#: src/shiftings/organizations/templates/organizations/template/organization.html:12 +#: shiftings/organizations/templates/organizations/template/organization.html:12 msgid "No Image available" msgstr "" -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:6 +#: shiftings/organizations/templates/organizations/user/claim_users.html:6 msgid "Imported Users" msgstr "" -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:14 +#: shiftings/organizations/templates/organizations/user/claim_users.html:14 msgid "Claimed" msgstr "" -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:36 +#: shiftings/organizations/templates/organizations/user/claim_users.html:36 msgid "Claim" msgstr "" -#: src/shiftings/organizations/templates/organizations/user/claim_users.html:43 +#: shiftings/organizations/templates/organizations/user/claim_users.html:43 msgid "Unclaim" msgstr "" -#: src/shiftings/organizations/views/membership.py:55 -#: src/shiftings/organizations/views/membership_type.py:57 +#: shiftings/organizations/views/membership.py:55 +#: shiftings/organizations/views/membership_type.py:57 msgid "Membership removed" msgstr "" -#: src/shiftings/organizations/views/organization.py:62 +#: shiftings/organizations/views/organization.py:62 #, python-brace-format msgid "{org} Overview" msgstr "" -#: src/shiftings/organizations/views/organization.py:89 +#: shiftings/organizations/views/organization.py:89 #, python-brace-format msgid "{org} Administration" msgstr "" -#: src/shiftings/organizations/views/organization.py:135 +#: shiftings/organizations/views/organization.py:135 #, python-brace-format msgid "{org} Settings" msgstr "" -#: src/shiftings/organizations/views/user.py:36 +#: shiftings/organizations/views/user.py:36 msgid "You can't claim users that are already claimed." msgstr "" -#: src/shiftings/shifts/forms/filters.py:12 +#: shiftings/shifts/forms/filters.py:12 msgid "Shifts I participate in" msgstr "" -#: src/shiftings/shifts/forms/filters.py:17 -#: src/shiftings/shifts/forms/filters.py:19 +#: shiftings/shifts/forms/filters.py:17 shiftings/shifts/forms/filters.py:19 msgid "Date YYYY-MM-DD" msgstr "" -#: src/shiftings/shifts/forms/filters.py:18 -#: src/shiftings/shifts/forms/filters.py:20 +#: shiftings/shifts/forms/filters.py:18 shiftings/shifts/forms/filters.py:20 msgid "Time HH:MM" msgstr "" -#: src/shiftings/shifts/forms/participant.py:28 +#: shiftings/shifts/forms/participant.py:28 #, python-brace-format msgid "User {user} is already registered for this shift." msgstr "" -#: src/shiftings/shifts/forms/participant.py:32 +#: shiftings/shifts/forms/participant.py:32 msgid "Organization Users" msgstr "" -#: src/shiftings/shifts/forms/participant.py:33 +#: shiftings/shifts/forms/participant.py:33 msgid "Other Users" msgstr "" -#: src/shiftings/shifts/forms/participant.py:34 +#: shiftings/shifts/forms/participant.py:34 msgid "" "To add users that do not belong to your organization please enter their " "username." msgstr "" -#: src/shiftings/shifts/forms/participant.py:65 +#: shiftings/shifts/forms/participant.py:65 msgid "Only select one type of user!" msgstr "" -#: src/shiftings/shifts/forms/participant.py:75 +#: shiftings/shifts/forms/participant.py:75 msgid "One of the user fields is required!" msgstr "" -#: src/shiftings/shifts/forms/participant.py:80 +#: shiftings/shifts/forms/participant.py:80 #, python-brace-format msgid "Cannot add {user} multiple times to this shift" msgstr "" -#: src/shiftings/shifts/forms/permission.py:36 -#: src/shiftings/shifts/forms/permission.py:90 +#: shiftings/shifts/forms/permission.py:36 +#: shiftings/shifts/forms/permission.py:90 #, python-brace-format msgid "" "Permission would have no effect. Permission for all Users is more extensive: " "{permission}" msgstr "" -#: src/shiftings/shifts/forms/permission.py:47 +#: shiftings/shifts/forms/permission.py:47 #, python-brace-format msgid "" "Permission would have no effect. There is an inherited more extensive " "permission: {referred_object} ({permission})" msgstr "" -#: src/shiftings/shifts/forms/permission.py:56 +#: shiftings/shifts/forms/permission.py:56 #, python-brace-format msgid "" "Permission would have no effect. There is an inherited more extensive " "permission for all Users: {referred_object} ({permission})" msgstr "" -#: src/shiftings/shifts/forms/permission.py:78 +#: shiftings/shifts/forms/permission.py:78 #, python-brace-format msgid "Can only set one permission for organization \"{organization}\"" msgstr "" -#: src/shiftings/shifts/forms/permission.py:80 +#: shiftings/shifts/forms/permission.py:80 msgid "Can only set one permission for all Users" msgstr "" -#: src/shiftings/shifts/forms/recurring.py:13 +#: shiftings/shifts/forms/recurring.py:13 msgid "Ordinal" msgstr "" -#: src/shiftings/shifts/forms/recurring.py:35 +#: shiftings/shifts/forms/recurring.py:35 msgid "Weekday can't be empty with the chosen time frame type." msgstr "" -#: src/shiftings/shifts/forms/recurring.py:37 +#: shiftings/shifts/forms/recurring.py:37 msgid "Month can't be empty with the chosen time frame type." msgstr "" -#: src/shiftings/shifts/forms/recurring.py:39 +#: shiftings/shifts/forms/recurring.py:39 msgid "You need to add a warning for weekend handling." msgstr "" -#: src/shiftings/shifts/forms/recurring.py:41 +#: shiftings/shifts/forms/recurring.py:41 msgid "You need to add a warning for holiday handling." msgstr "" -#: src/shiftings/shifts/forms/shift.py:38 -#: src/shiftings/shifts/forms/template.py:66 +#: shiftings/shifts/forms/shift.py:39 +msgid "End time must be after start time" +msgstr "" + +#: shiftings/shifts/forms/shift.py:44 shiftings/shifts/forms/template.py:66 #, python-brace-format msgid "Shift is too long, can at most be {max} long" msgstr "" -#: src/shiftings/shifts/forms/template.py:18 +#: shiftings/shifts/forms/template.py:18 msgid "Date" msgstr "" -#: src/shiftings/shifts/forms/template.py:18 +#: shiftings/shifts/forms/template.py:18 msgid "Date to create the template on" msgstr "" -#: src/shiftings/shifts/forms/template.py:38 -#: src/shiftings/shifts/models/template.py:22 +#: shiftings/shifts/forms/template.py:38 shiftings/shifts/models/template.py:22 msgid "Start Delay" msgstr "" -#: src/shiftings/shifts/forms/template.py:58 +#: shiftings/shifts/forms/template.py:40 shiftings/shifts/models/template.py:23 +#: shiftings/shifts/templates/shifts/recurring/list.html:11 +msgid "Duration" +msgstr "" + +#: shiftings/shifts/forms/template.py:58 msgid "Start Delay was None please reload and use the slider." msgstr "" -#: src/shiftings/shifts/forms/template.py:64 +#: shiftings/shifts/forms/template.py:64 msgid "Duration was None please reload and use the slider." msgstr "" -#: src/shiftings/shifts/forms/type.py:22 +#: shiftings/shifts/forms/type.py:22 msgid "Can't name a shift type \"System\"." msgstr "" -#: src/shiftings/shifts/models/base.py:13 -#: src/shiftings/shifts/models/template.py:19 -#: src/shiftings/shifts/templates/shifts/shift.html:39 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:18 +#: shiftings/shifts/models/base.py:13 shiftings/shifts/models/template.py:19 +#: shiftings/shifts/templates/shifts/shift.html:39 +#: shiftings/shifts/templates/shifts/template/template_form.html:18 msgid "Shift Type" msgstr "" -#: src/shiftings/shifts/models/base.py:16 +#: shiftings/shifts/models/base.py:16 msgid "Required Users" msgstr "" -#: src/shiftings/shifts/models/base.py:18 -#: src/shiftings/shifts/models/template.py:27 +#: shiftings/shifts/models/base.py:18 shiftings/shifts/models/template.py:27 msgid "A maximum of 32 users can be required" msgstr "" -#: src/shiftings/shifts/models/base.py:19 +#: shiftings/shifts/models/base.py:19 msgid "Maximum Users" msgstr "" -#: src/shiftings/shifts/models/base.py:21 -#: src/shiftings/shifts/models/template.py:30 +#: shiftings/shifts/models/base.py:21 shiftings/shifts/models/template.py:30 msgid "A maximum of 64 users can be present" msgstr "" -#: src/shiftings/shifts/models/base.py:23 -#: src/shiftings/shifts/models/template.py:32 -#: src/shiftings/shifts/templates/shifts/shift.html:79 -#: src/shiftings/shifts/templates/shifts/template/template.html:26 +#: shiftings/shifts/models/base.py:23 shiftings/shifts/models/template.py:32 +#: shiftings/shifts/templates/shifts/shift.html:79 +#: shiftings/shifts/templates/shifts/template/template.html:26 msgid "Additional Infos" msgstr "" -#: src/shiftings/shifts/models/participant.py:16 +#: shiftings/shifts/models/participant.py:16 msgid "Display Name is optional, and will be shown instead of the username" msgstr "" -#: src/shiftings/shifts/models/participant.py:17 +#: shiftings/shifts/models/participant.py:17 msgid "Participation confirmed" msgstr "" -#: src/shiftings/shifts/models/participant.py:18 +#: shiftings/shifts/models/participant.py:18 msgid "" "Whether the participant has taken part in the shift or not. Default: False" msgstr "" -#: src/shiftings/shifts/models/permission.py:18 +#: shiftings/shifts/models/permission.py:18 msgid "No Permission" msgstr "" -#: src/shiftings/shifts/models/permission.py:19 +#: shiftings/shifts/models/permission.py:19 msgid "See Shift exists" msgstr "" -#: src/shiftings/shifts/models/permission.py:20 +#: shiftings/shifts/models/permission.py:20 msgid "See Shift Details" msgstr "" -#: src/shiftings/shifts/models/permission.py:21 +#: shiftings/shifts/models/permission.py:21 msgid "See Shift Participants" msgstr "" -#: src/shiftings/shifts/models/permission.py:22 +#: shiftings/shifts/models/permission.py:22 msgid "Participate" msgstr "" -#: src/shiftings/shifts/models/permission.py:80 +#: shiftings/shifts/models/permission.py:80 msgid "Permission Type" msgstr "" -#: src/shiftings/shifts/models/permission.py:82 +#: shiftings/shifts/models/permission.py:82 msgid "Affected Organization" msgstr "" -#: src/shiftings/shifts/models/recurring.py:26 +#: shiftings/shifts/models/recurring.py:26 msgid "ignore" msgstr "" -#: src/shiftings/shifts/models/recurring.py:27 +#: shiftings/shifts/models/recurring.py:27 msgid "cancel" msgstr "" -#: src/shiftings/shifts/models/recurring.py:28 +#: shiftings/shifts/models/recurring.py:28 msgid "show warning" msgstr "" -#: src/shiftings/shifts/models/recurring.py:36 +#: shiftings/shifts/models/recurring.py:36 msgid "Timeframe Type" msgstr "" -#: src/shiftings/shifts/models/recurring.py:41 -#: src/shiftings/shifts/templates/shifts/recurring/list.html:10 -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:53 +#: shiftings/shifts/models/recurring.py:41 +#: shiftings/shifts/templates/shifts/recurring/list.html:10 +#: shiftings/shifts/templates/shifts/recurring/shift.html:53 msgid "First Occurrence" msgstr "" -#: src/shiftings/shifts/models/recurring.py:42 +#: shiftings/shifts/models/recurring.py:42 msgid "" "Choose a minimum day for first occurrence and the system will automatically " "choose the next applicable day." msgstr "" -#: src/shiftings/shifts/models/recurring.py:46 +#: shiftings/shifts/models/recurring.py:46 msgid "Auto create days" msgstr "" -#: src/shiftings/shifts/models/recurring.py:46 +#: shiftings/shifts/models/recurring.py:46 msgid "How many days in advance should the shifts be created?" msgstr "" -#: src/shiftings/shifts/models/recurring.py:48 +#: shiftings/shifts/models/recurring.py:48 msgid "Shift Template" msgstr "" -#: src/shiftings/shifts/models/recurring.py:52 +#: shiftings/shifts/models/recurring.py:52 msgid "Weekend problem handling" msgstr "" -#: src/shiftings/shifts/models/recurring.py:54 +#: shiftings/shifts/models/recurring.py:54 msgid "Warning text for weekend" msgstr "" -#: src/shiftings/shifts/models/recurring.py:59 +#: shiftings/shifts/models/recurring.py:59 msgid "Holidays problem handling" msgstr "" -#: src/shiftings/shifts/models/recurring.py:61 +#: shiftings/shifts/models/recurring.py:61 msgid "Warning text for holidays" msgstr "" -#: src/shiftings/shifts/models/recurring.py:67 +#: shiftings/shifts/models/recurring.py:67 msgid "Manually Disabled" msgstr "" -#: src/shiftings/shifts/models/recurring.py:88 +#: shiftings/shifts/models/recurring.py:88 msgid "Nth" msgstr "" -#: src/shiftings/shifts/models/recurring.py:89 +#: shiftings/shifts/models/recurring.py:89 msgid "[weekday]" msgstr "" -#: src/shiftings/shifts/models/recurring.py:90 +#: shiftings/shifts/models/recurring.py:90 msgid "[month]" msgstr "" -#: src/shiftings/shifts/models/shift.py:24 +#: shiftings/shifts/models/shift.py:24 msgid "Start Date and Time" msgstr "" -#: src/shiftings/shifts/models/shift.py:25 +#: shiftings/shifts/models/shift.py:25 msgid "End Date and Time" msgstr "" -#: src/shiftings/shifts/models/shift.py:27 -#: src/shiftings/shifts/templates/shifts/template/shift.html:13 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:21 +#: shiftings/shifts/models/shift.py:27 +#: shiftings/shifts/templates/shifts/template/shift.html:13 +#: shiftings/shifts/templates/shifts/template/template_form.html:21 msgid "Users" msgstr "" -#: src/shiftings/shifts/models/shift.py:30 +#: shiftings/shifts/models/shift.py:30 msgid "Locked for Participation" msgstr "" -#: src/shiftings/shifts/models/shift.py:31 -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:58 -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:64 +#: shiftings/shifts/models/shift.py:31 +#: shiftings/shifts/templates/shifts/recurring/shift.html:58 +#: shiftings/shifts/templates/shifts/recurring/shift.html:64 msgid "Warning" msgstr "" -#: src/shiftings/shifts/models/shift.py:35 +#: shiftings/shifts/models/shift.py:35 msgid "Created by Recurring Shift" msgstr "" -#: src/shiftings/shifts/models/shift.py:37 -#: src/shiftings/shifts/templates/shifts/shift.html:53 +#: shiftings/shifts/models/shift.py:37 +#: shiftings/shifts/templates/shifts/shift.html:53 msgid "Created" msgstr "" -#: src/shiftings/shifts/models/shift.py:38 -#: src/shiftings/shifts/templates/shifts/shift.html:55 +#: shiftings/shifts/models/shift.py:38 +#: shiftings/shifts/templates/shifts/shift.html:55 msgid "Last Modified" msgstr "" -#: src/shiftings/shifts/models/shift.py:54 +#: shiftings/shifts/models/shift.py:54 msgid "Organization and Event Organization must be identical." msgstr "" -#: src/shiftings/shifts/models/shift.py:57 +#: shiftings/shifts/models/shift.py:57 #, python-brace-format msgid "Shift {name} on {time}" msgstr "" -#: src/shiftings/shifts/models/shift.py:65 +#: shiftings/shifts/models/shift.py:65 #, python-brace-format msgid "{name} from {start} to {end} " msgstr "" -#: src/shiftings/shifts/models/shift.py:72 +#: shiftings/shifts/models/shift.py:72 #, python-brace-format msgid "{start} to {end_time} on {end_date} " msgstr "" -#: src/shiftings/shifts/models/shift.py:76 +#: shiftings/shifts/models/shift.py:76 #, python-brace-format msgid "{start} to {end_time}" msgstr "" -#: src/shiftings/shifts/models/summary.py:11 +#: shiftings/shifts/models/summary.py:11 msgid "\"Other\" Shift Type Group Name" msgstr "" -#: src/shiftings/shifts/models/summary.py:14 +#: shiftings/shifts/models/summary.py:14 msgid "Default time range for summary" msgstr "" -#: src/shiftings/shifts/models/summary.py:25 +#: shiftings/shifts/models/summary.py:25 #, python-brace-format msgid "Organization summary settings of {organization}" msgstr "" -#: src/shiftings/shifts/models/template.py:16 +#: shiftings/shifts/models/template.py:16 msgid "Template Group" msgstr "" -#: src/shiftings/shifts/models/template.py:25 +#: shiftings/shifts/models/template.py:25 msgid "Required User" msgstr "" -#: src/shiftings/shifts/models/template.py:28 +#: shiftings/shifts/models/template.py:28 msgid "Maximum User" msgstr "" -#: src/shiftings/shifts/signals.py:26 +#: shiftings/shifts/signals.py:26 msgid "Could not find a valid first occurrence." msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:11 +#: shiftings/shifts/templates/shifts/create_shift.html:11 #, python-format msgid "" "\n" @@ -3139,7 +1652,7 @@ msgid "" " " msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:15 +#: shiftings/shifts/templates/shifts/create_shift.html:15 #, python-format msgid "" "\n" @@ -3147,70 +1660,70 @@ msgid "" " " msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:22 -#: src/shiftings/shifts/templates/shifts/create_shift.html:83 -#: src/shiftings/shifts/templates/shifts/recurring/form.html:23 -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:19 -#: src/shiftings/templates/generic/create_or_update.html:18 -#: src/shiftings/templates/generic/form_card.html:8 +#: shiftings/shifts/templates/shifts/create_shift.html:22 +#: shiftings/shifts/templates/shifts/create_shift.html:83 +#: shiftings/shifts/templates/shifts/recurring/form.html:23 +#: shiftings/shifts/templates/shifts/recurring/shift.html:19 +#: shiftings/templates/generic/create_or_update.html:18 +#: shiftings/templates/generic/form_card.html:8 msgid "Create" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:24 +#: shiftings/shifts/templates/shifts/create_shift.html:24 msgid "Update" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:26 -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:34 -#: src/shiftings/templates/generic/create_or_update.html:22 +#: shiftings/shifts/templates/shifts/create_shift.html:26 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:34 +#: shiftings/templates/generic/create_or_update.html:22 msgid "Back" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:47 +#: shiftings/shifts/templates/shifts/create_shift.html:47 msgid "Shift starting time" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:48 +#: shiftings/shifts/templates/shifts/create_shift.html:48 msgctxt "Shift time" msgid "Start Time" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:52 +#: shiftings/shifts/templates/shifts/create_shift.html:52 msgid "Shift end time" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:53 +#: shiftings/shifts/templates/shifts/create_shift.html:53 msgctxt "Shift time" msgid "End Time" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:59 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:24 +#: shiftings/shifts/templates/shifts/create_shift.html:59 +#: shiftings/shifts/templates/shifts/template/template_form.html:24 msgid "Required number of users to fill this shift" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:60 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:25 +#: shiftings/shifts/templates/shifts/create_shift.html:60 +#: shiftings/shifts/templates/shifts/template/template_form.html:25 msgctxt "Shift users" msgid "Required" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:64 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:29 +#: shiftings/shifts/templates/shifts/create_shift.html:64 +#: shiftings/shifts/templates/shifts/template/template_form.html:29 msgid "Maximum number of users allowed in this shift" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:65 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:30 +#: shiftings/shifts/templates/shifts/create_shift.html:65 +#: shiftings/shifts/templates/shifts/template/template_form.html:30 msgctxt "Shift users" msgid "Maximum" msgstr "" -#: src/shiftings/shifts/templates/shifts/create_shift.html:76 +#: shiftings/shifts/templates/shifts/create_shift.html:76 msgid "Create from Template" msgstr "" -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:17 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:17 #, python-format msgid "" "\n" @@ -3219,39 +1732,39 @@ msgid "" " " msgstr "" -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:26 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:26 msgid "Edit Shift Permissions for" msgstr "" -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:38 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:38 msgid "How does it work?" msgstr "" -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:53 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:53 msgid "Inherited Permissions" msgstr "" -#: src/shiftings/shifts/templates/shifts/edit_participation_permissions.html:65 +#: shiftings/shifts/templates/shifts/edit_participation_permissions.html:65 msgid "All Users" msgstr "" -#: src/shiftings/shifts/templates/shifts/edit_templates.html:21 +#: shiftings/shifts/templates/shifts/edit_templates.html:21 msgid "Edit Templates for" msgstr "" -#: src/shiftings/shifts/templates/shifts/edit_templates.html:29 +#: shiftings/shifts/templates/shifts/edit_templates.html:29 msgid "Cancel" msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/form.html:33 +#: shiftings/shifts/templates/shifts/recurring/form.html:33 msgid "Recurring Time Frame" msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/form.html:42 +#: shiftings/shifts/templates/shifts/recurring/form.html:42 msgid "Shift Information" msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:16 +#: shiftings/shifts/templates/shifts/recurring/shift.html:16 #, python-format msgid "" "\n" @@ -3259,11 +1772,11 @@ msgid "" " " msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:37 +#: shiftings/shifts/templates/shifts/recurring/shift.html:37 msgid "Edit Recurring Shift" msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:44 +#: shiftings/shifts/templates/shifts/recurring/shift.html:44 #, python-format msgid "" "\n" @@ -3272,7 +1785,7 @@ msgid "" " " msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:48 +#: shiftings/shifts/templates/shifts/recurring/shift.html:48 #, python-format msgid "" "\n" @@ -3280,44 +1793,44 @@ msgid "" " " msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:55 +#: shiftings/shifts/templates/shifts/recurring/shift.html:55 msgid "Weekend Handling" msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:61 +#: shiftings/shifts/templates/shifts/recurring/shift.html:61 msgid "Holiday Handling" msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:75 +#: shiftings/shifts/templates/shifts/recurring/shift.html:75 msgid "Upcoming recurring Shifts" msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:86 +#: shiftings/shifts/templates/shifts/recurring/shift.html:86 msgid "No upcoming created Shifts" msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:93 +#: shiftings/shifts/templates/shifts/recurring/shift.html:93 msgid "Passed recurring Shifts" msgstr "" -#: src/shiftings/shifts/templates/shifts/recurring/shift.html:104 +#: shiftings/shifts/templates/shifts/recurring/shift.html:104 msgid "No created Shifts have passed yet" msgstr "" -#: src/shiftings/shifts/templates/shifts/shift.html:16 -#: src/shiftings/shifts/views/shift.py:78 +#: shiftings/shifts/templates/shifts/shift.html:16 +#: shiftings/shifts/views/shift.py:78 msgid "Edit Shift" msgstr "" -#: src/shiftings/shifts/templates/shifts/shift.html:22 +#: shiftings/shifts/templates/shifts/shift.html:22 msgid "Delete Shift" msgstr "" -#: src/shiftings/shifts/templates/shifts/shift.html:28 +#: shiftings/shifts/templates/shifts/shift.html:28 msgid "Edit Permissions" msgstr "" -#: src/shiftings/shifts/templates/shifts/shift.html:57 +#: shiftings/shifts/templates/shifts/shift.html:57 #, python-format msgid "" "\n" @@ -3325,219 +1838,219 @@ msgid "" " " msgstr "" -#: src/shiftings/shifts/templates/shifts/shift.html:66 -#: src/shiftings/shifts/templates/shifts/template/shift_card.html:13 +#: shiftings/shifts/templates/shifts/shift.html:66 +#: shiftings/shifts/templates/shifts/template/shift_card.html:13 msgid "Shift Participants" msgstr "" -#: src/shiftings/shifts/templates/shifts/shift.html:71 +#: shiftings/shifts/templates/shifts/shift.html:71 msgid "Add participant" msgstr "" -#: src/shiftings/shifts/templates/shifts/shift.html:84 +#: shiftings/shifts/templates/shifts/shift.html:84 msgid "Nothing to consider." msgstr "" -#: src/shiftings/shifts/templates/shifts/shift_participants.html:11 +#: shiftings/shifts/templates/shifts/shift_participants.html:11 msgid "" "This shift is over, do you really want/need to add yourself as participant?" msgstr "" -#: src/shiftings/shifts/templates/shifts/shift_url_filters.html:8 +#: shiftings/shifts/templates/shifts/shift_url_filters.html:8 msgid "Toggle Shift Filters" msgstr "" -#: src/shiftings/shifts/templates/shifts/summary/summary.html:6 +#: shiftings/shifts/templates/shifts/summary/summary.html:6 msgid "Shift Summary" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/group.html:17 +#: shiftings/shifts/templates/shifts/template/group.html:17 msgid "Delete Template" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/group.html:21 +#: shiftings/shifts/templates/shifts/template/group.html:21 msgid "Edit Template" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/group.html:25 -#: src/shiftings/shifts/templates/shifts/template/group_template.html:13 +#: shiftings/shifts/templates/shifts/template/group.html:25 +#: shiftings/shifts/templates/shifts/template/group_template.html:13 msgid "Edit Shifts" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/group.html:31 +#: shiftings/shifts/templates/shifts/template/group.html:31 msgid "Edit Template Permissions" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/group.html:70 +#: shiftings/shifts/templates/shifts/template/group.html:70 msgid "Create Shift Templates" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/group_template.html:9 +#: shiftings/shifts/templates/shifts/template/group_template.html:9 msgid "Edit Shifts Template" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/member_shift_summary.html:3 +#: shiftings/shifts/templates/shifts/template/member_shift_summary.html:3 msgid "Member" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/member_shift_summary.html:10 +#: shiftings/shifts/templates/shifts/template/member_shift_summary.html:10 msgid "Total" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/participation_permission_form.html:9 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:10 +#: shiftings/shifts/templates/shifts/template/participation_permission_form.html:9 +#: shiftings/shifts/templates/shifts/template/template_form.html:10 msgid "Remove Shift" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/participation_permission_form.html:12 -#: src/shiftings/shifts/templates/shifts/template/template_form.html:13 +#: shiftings/shifts/templates/shifts/template/participation_permission_form.html:12 +#: shiftings/shifts/templates/shifts/template/template_form.html:13 msgid "Restore Shift" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/select_org.html:3 +#: shiftings/shifts/templates/shifts/template/select_org.html:3 msgid "Select Organization to create Shift for" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/shift.html:5 +#: shiftings/shifts/templates/shifts/template/shift.html:5 msgid "Go to Shift" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:5 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:5 msgid "Filters" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:8 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:8 msgid "Reset Filter" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:12 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:12 msgid "Apply Filter" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:15 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:15 msgid "Parameters" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:29 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:29 msgid "Select Organizations" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:47 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:47 msgid "Shift starts after" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:52 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:52 msgid "Shift ends before" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:65 +#: shiftings/shifts/templates/shifts/template/shift_url_filter_form.html:65 msgid "Select Events" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/slots_display.html:4 +#: shiftings/shifts/templates/shifts/template/slots_display.html:4 msgid "Required to carry out this Shift" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/slots_display.html:6 +#: shiftings/shifts/templates/shifts/template/slots_display.html:6 msgid "Open Shift Slot" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/slots_display.html:32 +#: shiftings/shifts/templates/shifts/template/slots_display.html:32 msgid "Free" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:20 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:20 msgid "Required" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:23 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:23 msgid "Confirmed" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:29 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:29 msgid "Participating" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:34 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:34 msgid "Full" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:40 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:40 msgid "Additional Users required" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/small_shift_display.html:42 +#: shiftings/shifts/templates/shifts/template/small_shift_display.html:42 msgid "Additional Slots available" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/template.html:11 +#: shiftings/shifts/templates/shifts/template/template.html:11 msgid "Calendar Background Color" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/template.html:17 +#: shiftings/shifts/templates/shifts/template/template.html:17 msgid "Required Users/Max Users" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/template.html:21 +#: shiftings/shifts/templates/shifts/template/template.html:21 msgid "Unlimited" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/template_form.html:36 +#: shiftings/shifts/templates/shifts/template/template_form.html:36 msgid "Delay to starting time" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/template_form.html:37 +#: shiftings/shifts/templates/shifts/template/template_form.html:37 msgctxt "Shift time" msgid "Start Delay" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/template_form.html:41 +#: shiftings/shifts/templates/shifts/template/template_form.html:41 msgid "Shift Duration" msgstr "" -#: src/shiftings/shifts/templates/shifts/template/template_form.html:42 +#: shiftings/shifts/templates/shifts/template/template_form.html:42 msgctxt "Shift time" msgid "Duration" msgstr "" -#: src/shiftings/shifts/templates/shifts/type_group/list.html:8 +#: shiftings/shifts/templates/shifts/type_group/list.html:8 msgid "Actions" msgstr "" -#: src/shiftings/shifts/templatetags/shifts.py:90 +#: shiftings/shifts/templatetags/shifts.py:90 #, python-brace-format msgid "Days + {delta_days}" msgstr "" -#: src/shiftings/shifts/utils/time_frame.py:17 +#: shiftings/shifts/utils/time_frame.py:17 msgid "Nth [weekday] of each month" msgstr "" -#: src/shiftings/shifts/utils/time_frame.py:18 +#: shiftings/shifts/utils/time_frame.py:18 msgid "Nth day of each month" msgstr "" -#: src/shiftings/shifts/utils/time_frame.py:19 +#: shiftings/shifts/utils/time_frame.py:19 msgid "every Nth [weekday]" msgstr "" -#: src/shiftings/shifts/utils/time_frame.py:20 +#: shiftings/shifts/utils/time_frame.py:20 msgid "Nth workday of each month" msgstr "" -#: src/shiftings/shifts/utils/time_frame.py:21 +#: shiftings/shifts/utils/time_frame.py:21 msgid "Nth day of [month]" msgstr "" -#: src/shiftings/shifts/utils/time_frame.py:22 +#: shiftings/shifts/utils/time_frame.py:22 msgid "Nth workday of [month]" msgstr "" -#: src/shiftings/shifts/views/participant.py:42 +#: shiftings/shifts/views/participant.py:42 msgid "This shift is over, do you really want/need to add a participant?" msgstr "" -#: src/shiftings/shifts/views/permission.py:50 +#: shiftings/shifts/views/permission.py:50 #, python-brace-format msgid "" "

Any Permission present will be applied to all Shifts belonging to " @@ -3547,35 +2060,35 @@ msgid "" "organizations.

" msgstr "" -#: src/shiftings/shifts/views/recurring.py:85 +#: shiftings/shifts/views/recurring.py:85 msgid "Forbidden Method GET" msgstr "" -#: src/shiftings/shifts/views/recurring.py:98 +#: shiftings/shifts/views/recurring.py:98 msgid "Created Shifts on {}" msgstr "" -#: src/shiftings/shifts/views/recurring.py:102 +#: shiftings/shifts/views/recurring.py:102 msgid "Error while creating shifts. Invalid Date" msgstr "" -#: src/shiftings/shifts/views/shift.py:164 +#: shiftings/shifts/views/shift.py:164 msgid "Unable to delete past shifts." msgstr "" -#: src/shiftings/templates/403.html:6 +#: shiftings/templates/403.html:6 msgid "You don't have the permission to do that!" msgstr "" -#: src/shiftings/templates/404.html:6 +#: shiftings/templates/404.html:6 msgid "The site you requested was not found." msgstr "" -#: src/shiftings/templates/500.html:6 +#: shiftings/templates/500.html:6 msgid "A server error occured the admins have been notified" msgstr "" -#: src/shiftings/templates/generic/create_or_update.html:5 +#: shiftings/templates/generic/create_or_update.html:5 #, python-format msgid "" "\n" @@ -3583,7 +2096,7 @@ msgid "" " " msgstr "" -#: src/shiftings/templates/generic/create_or_update.html:9 +#: shiftings/templates/generic/create_or_update.html:9 #, python-format msgid "" "\n" @@ -3591,7 +2104,7 @@ msgid "" " " msgstr "" -#: src/shiftings/templates/generic/delete.html:6 +#: shiftings/templates/generic/delete.html:6 #, python-format msgid "" "\n" @@ -3599,53 +2112,66 @@ msgid "" " " msgstr "" -#: src/shiftings/templates/generic/modular_search.html:4 +#: shiftings/templates/generic/delete.html:9 +msgid "Yes" +msgstr "" + +#: shiftings/templates/generic/delete.html:11 +msgid "No" +msgstr "" + +#: shiftings/templates/generic/modular_search.html:4 msgid "Filter by Name" msgstr "" -#: src/shiftings/templates/generic/modular_search.html:6 +#: shiftings/templates/generic/modular_search.html:6 msgid "submit search" msgstr "" -#: src/shiftings/templates/language.html:16 +#: shiftings/templates/language.html:16 msgid "Language" msgstr "" -#: src/shiftings/templates/language.html:21 +#: shiftings/templates/language.html:21 msgid "German" msgstr "" -#: src/shiftings/templates/language.html:24 +#: shiftings/templates/language.html:24 msgid "English" msgstr "" -#: src/shiftings/templates/month_view.html:2 +#: shiftings/templates/local/gdpr_template.sample.html:29 +#: shiftings/templates/template/remove_modal.html:39 +#: shiftings/templates/template/simple_display_modal.html:15 +#: shiftings/templates/template/simple_form_modal.html:22 +msgid "Close" +msgstr "" + +#: shiftings/templates/month_view.html:2 msgid "M" msgstr "" -#: src/shiftings/templates/month_view.html:3 -#: src/shiftings/templates/month_view.html:5 +#: shiftings/templates/month_view.html:3 shiftings/templates/month_view.html:5 msgid "T" msgstr "" -#: src/shiftings/templates/month_view.html:4 +#: shiftings/templates/month_view.html:4 msgid "W" msgstr "" -#: src/shiftings/templates/month_view.html:6 +#: shiftings/templates/month_view.html:6 msgid "F" msgstr "" -#: src/shiftings/templates/month_view.html:7 -#: src/shiftings/templates/month_view.html:8 +#: shiftings/templates/month_view.html:7 shiftings/templates/month_view.html:8 msgid "S" msgstr "" -#: src/shiftings/templates/switch_user.html:5 +#: shiftings/templates/switch_user.html:5 msgid "Switch User" msgstr "" -#: src/shiftings/templates/template/remove_modal.html:12 +#: shiftings/templates/template/remove_modal.html:12 #, python-format msgid "" "\n" @@ -3654,7 +2180,7 @@ msgid "" " " msgstr "" -#: src/shiftings/templates/template/remove_modal.html:16 +#: shiftings/templates/template/remove_modal.html:16 msgid "" "\n" " Removing dict[str, str]: + """Fetch and cache the OpenID Connect discovery document.""" + resp = requests.get(settings.OPENID_CONF_URL, timeout=10) + resp.raise_for_status() + return resp.json() + + +class OIDCOfflineToken(models.Model): + user = models.OneToOneField( + settings.AUTH_USER_MODEL, + on_delete=models.CASCADE, + related_name='oidc_offline_token', + verbose_name=_('User'), + ) + refresh_token = models.TextField(verbose_name=_('Refresh Token')) + updated = models.DateTimeField(auto_now=True, verbose_name=_('Updated')) + + class Meta: + default_permissions = () + + def __str__(self) -> str: + return f'OIDCOfflineToken for {self.user}' + + def refresh_user_info(self) -> bool: + """Use the stored offline token to refresh the user's OIDC data. + + Returns True on success, False if the token is expired or invalid. + """ + try: + endpoints = _get_oidc_endpoints() + token_endpoint = endpoints['token_endpoint'] + userinfo_endpoint = endpoints['userinfo_endpoint'] + except Exception: + logger.exception('Failed to fetch OIDC discovery document') + return False + + client_config = settings.AUTHLIB_OAUTH_CLIENTS['shiftings'] + + try: + token_resp = requests.post( + token_endpoint, + data={ + 'grant_type': 'refresh_token', + 'refresh_token': self.refresh_token, + 'client_id': client_config['client_id'], + 'client_secret': client_config['client_secret'], + }, + timeout=10, + ) + except Exception: + logger.exception('Failed to call OIDC token endpoint') + return False + + if token_resp.status_code != 200: + logger.warning( + 'OIDC token refresh failed (status %d): %s', + token_resp.status_code, + token_resp.text, + ) + return False + + token_data = token_resp.json() + + self.refresh_token = token_data['refresh_token'] + self.save(update_fields=['refresh_token', 'updated']) + + access_token = token_data['access_token'] + try: + userinfo_resp = requests.get( + userinfo_endpoint, + headers={'Authorization': f'Bearer {access_token}'}, + timeout=10, + ) + except Exception: + logger.exception('Failed to call OIDC userinfo endpoint') + return False + + if userinfo_resp.status_code != 200: + logger.warning( + 'OIDC userinfo request failed (status %d): %s', + userinfo_resp.status_code, + userinfo_resp.text, + ) + return False + + from shiftings.accounts.oidc import populate_user_from_oidc + populate_user_from_oidc(userinfo_resp.json()) + return True diff --git a/src/shiftings/accounts/oidc.py b/src/shiftings/accounts/oidc.py new file mode 100644 index 0000000..7ab770e --- /dev/null +++ b/src/shiftings/accounts/oidc.py @@ -0,0 +1,38 @@ +from __future__ import annotations + +import re +from typing import Any + +from django.conf import settings +from django.contrib.auth.models import AbstractUser, Group +from django.contrib.auth.views import UserModel + +from shiftings.accounts.models import User + + +def populate_user_from_oidc(user_data: dict[str, Any]) -> AbstractUser: + """Create or update a Django user from OIDC userinfo claims. + + Syncs username, email, groups, and admin status from the OIDC provider. + """ + username = user_data.get(settings.OAUTH_USERNAME_CLAIM, '') + groups: list[str] = user_data.get(settings.OAUTH_GROUP_CLAIM, []) + for group in groups: + if re.match(settings.OAUTH_GROUP_IGNORE_REGEX, group) is None: + Group.objects.get_or_create(name=group) + try: + user: AbstractUser = User.objects.get_by_natural_key(username) + except UserModel.DoesNotExist: + user = User.objects.create(username=username) + user.set_unusable_password() + # ignore secondary names + user.first_name = user_data.get(settings.OAUTH_FIRST_NAME_CLAIM, '').split(' ')[0] + user.last_name = user_data.get(settings.OAUTH_LAST_NAME_CLAIM, '') + user.email = user_data.get(settings.OAUTH_EMAIL_CLAIM, '') + user.groups.set(Group.objects.filter(name__in=groups)) + + user.is_superuser = settings.OAUTH_ADMIN_GROUP in groups + user.is_staff = settings.OAUTH_ADMIN_GROUP in groups + user.backend = 'django.contrib.auth.backends.ModelBackend' + user.save() + return user diff --git a/src/shiftings/accounts/views/auth.py b/src/shiftings/accounts/views/auth.py index 10d9ba2..265696d 100644 --- a/src/shiftings/accounts/views/auth.py +++ b/src/shiftings/accounts/views/auth.py @@ -1,6 +1,5 @@ from __future__ import annotations -import re from json import JSONDecodeError from typing import Any, Optional @@ -9,8 +8,8 @@ from django.conf import settings from django.contrib import messages from django.contrib.auth import login as login_user, logout, REDIRECT_FIELD_NAME -from django.contrib.auth.models import AbstractUser, Group -from django.contrib.auth.views import LoginView, LogoutView, UserModel +from django.contrib.auth.models import AbstractUser +from django.contrib.auth.views import LoginView, LogoutView from django.http import HttpRequest, HttpResponse, HttpResponseRedirect from django.urls import reverse from django.utils.decorators import method_decorator @@ -18,8 +17,6 @@ from django.views.decorators.cache import never_cache from django.views.generic import RedirectView -from shiftings.accounts.models import User - class UserLoginView(LoginView): redirect_authenticated_user = True @@ -95,35 +92,19 @@ def authenticate(self, request: HttpRequest) -> Optional[AbstractUser]: try: token = oauth.shiftings.authorize_access_token(request) if 'userinfo' in token: - return self._populate_user(token['userinfo']) + from shiftings.accounts.oidc import populate_user_from_oidc + user = populate_user_from_oidc(token['userinfo']) + if 'refresh_token' in token: + from shiftings.accounts.models import OIDCOfflineToken + OIDCOfflineToken.objects.update_or_create( + user=user, + defaults={'refresh_token': token['refresh_token']}, + ) + return user except JSONDecodeError: pass return None - @staticmethod - def _populate_user(user_data: dict[str, Any]) -> AbstractUser: - username = user_data.get(settings.OAUTH_USERNAME_CLAIM, '') - groups: list[str] = user_data.get(settings.OAUTH_GROUP_CLAIM, []) - for group in groups: - if re.match(settings.OAUTH_GROUP_IGNORE_REGEX, group) is None: - Group.objects.get_or_create(name=group) - try: - user: AbstractUser = User.objects.get_by_natural_key(username) - except UserModel.DoesNotExist: - user = User.objects.create(username=username) - user.set_unusable_password() - # ignore secondary names - user.first_name = user_data.get(settings.OAUTH_FIRST_NAME_CLAIM, '').split(' ')[0] - user.last_name = user_data.get(settings.OAUTH_LAST_NAME_CLAIM, '') - user.email = user_data.get(settings.OAUTH_EMAIL_CLAIM, '') - user.groups.set(Group.objects.filter(name__in=groups)) - - user.is_superuser = settings.OAUTH_ADMIN_GROUP in groups - user.is_staff = settings.OAUTH_ADMIN_GROUP in groups - user.backend = 'django.contrib.auth.backends.ModelBackend' - user.save() - return user - class UserLogoutView(LogoutView): template_name = 'accounts/logout.html' diff --git a/src/shiftings/accounts/views/user.py b/src/shiftings/accounts/views/user.py index a60f501..a736d26 100644 --- a/src/shiftings/accounts/views/user.py +++ b/src/shiftings/accounts/views/user.py @@ -48,6 +48,7 @@ def get_context_data(self, **kwargs: Any) -> dict[str, Any]: Q(organization__in=self.object.organizations) | Q(participants__user=self.object))).distinct() context['shifts'] = get_pagination_context(self.request, shifts.filter(self.get_filters()), 5, 'shifts') + return context