From 3087b8f8ee45b8564f876c6915ef0101134d3fda Mon Sep 17 00:00:00 2001 From: Christian Merten Date: Sun, 24 Nov 2024 22:26:48 +0100 Subject: [PATCH] members/admin: add help texts to excursion --- jdav_web/locale/de/LC_MESSAGES/django.po | 44 ++- jdav_web/members/admin.py | 10 + .../members/locale/de/LC_MESSAGES/django.po | 344 ++++++++++-------- .../templates/admin/edit_inline/stacked.html | 1 + .../templates/admin/edit_inline/tabular.html | 78 ++++ .../nesting/admin/inlines/stacked.html | 95 +++++ 6 files changed, 413 insertions(+), 159 deletions(-) create mode 100644 jdav_web/templates/admin/edit_inline/stacked.html create mode 100644 jdav_web/templates/admin/edit_inline/tabular.html create mode 100644 jdav_web/templates/nesting/admin/inlines/stacked.html diff --git a/jdav_web/locale/de/LC_MESSAGES/django.po b/jdav_web/locale/de/LC_MESSAGES/django.po index 27b06a5..0517c44 100644 --- a/jdav_web/locale/de/LC_MESSAGES/django.po +++ b/jdav_web/locale/de/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-11-24 18:18+0100\n" +"POT-Creation-Date: 2024-11-24 22:24+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -142,9 +142,9 @@ msgid "" "related objects, but your account doesn't have permission to delete the " "following types of objects:" msgstr "" -"Löschen von %(object_name)s '%(escaped_object)s' würde zur Löschung der folgenden " -"verknüpften Objekte führen, aber du hast nicht die Berechtigung die folgenden Typen " -"von Objekten zu löschen:" +"Löschen von %(object_name)s '%(escaped_object)s' würde zur Löschung der " +"folgenden verknüpften Objekte führen, aber du hast nicht die Berechtigung " +"die folgenden Typen von Objekten zu löschen:" #: templates/admin/delete_confirmation.html:12 #, python-format @@ -152,16 +152,16 @@ msgid "" "Deleting the %(object_name)s '%(escaped_object)s' would require deleting the " "following protected related objects:" msgstr "" -"Löschen von %(object_name)s '%(escaped_object)s' würde zur Löschung der folgenden " -"geschützten verknüpften Objekte führen:" +"Löschen von %(object_name)s '%(escaped_object)s' würde zur Löschung der " +"folgenden geschützten verknüpften Objekte führen:" #: templates/admin/delete_confirmation.html:17 #, python-format msgid "" "Are you sure you want to delete the %(object_name)s \"%(escaped_object)s\"?" msgstr "" -"Bist du sicher, dass du %(object_name)s \"%(escaped_object)s\" und alle davon abhängigen " -"Objekte löschen möchtest? " +"Bist du sicher, dass du %(object_name)s \"%(escaped_object)s\" und alle " +"davon abhängigen Objekte löschen möchtest? " #: templates/admin/delete_confirmation.html:29 #: templates/admin/delete_selected_confirmation.html:34 @@ -181,8 +181,8 @@ msgid "" "types of objects:" msgstr "" "Löschen der ausgewählten %(objects_name)s würde zur Löschung der folgenden " -"verknüpften Objekte führen, aber du hast nicht die Berechtigung die folgenden Typen " -"von Objekten zu löschen:" +"verknüpften Objekte führen, aber du hast nicht die Berechtigung die " +"folgenden Typen von Objekten zu löschen:" #: templates/admin/delete_selected_confirmation.html:9 #, python-format @@ -210,6 +210,25 @@ msgstr "Zusammenfassung" msgid "Objects" msgstr "Objekte" +#: templates/admin/edit_inline/tabular.html:33 +msgid "Delete?" +msgstr "Löschen?" + +#: templates/admin/edit_inline/tabular.html:47 +#: templates/nesting/admin/inlines/stacked.html:42 +msgid "Change" +msgstr "Ändern" + +#: templates/admin/edit_inline/tabular.html:47 +#: templates/nesting/admin/inlines/stacked.html:42 +msgid "View" +msgstr "Anzeigen" + +#: templates/admin/edit_inline/tabular.html:49 +#: templates/nesting/admin/inlines/stacked.html:44 +msgid "View on site" +msgstr "Auf der Website anzeigen" + #: templates/admin/finance/statementconfirmed/change_form_object_tools.html:8 msgid "Unconfirm" msgstr "Bestätigung zurücknehmen" @@ -255,6 +274,11 @@ msgstr "Als Kompassbenutzer:in einladen" msgid "Invite to group" msgstr "Zu Gruppe einladen" +#: templates/nesting/admin/inlines/stacked.html:87 +#, python-format +msgid "Add another %(verbose_name)s" +msgstr "Weiteren %(verbose_name)s hinzufügen" + #: utils.py:14 msgid "Please keep filesize under {} MiB. Current filesize: {:10.2f} MiB." msgstr "Maximale Dateigröße {} MiB. Aktuelle Dateigröße: {:10.2f} MiB." diff --git a/jdav_web/members/admin.py b/jdav_web/members/admin.py index eacf19f..9da53d4 100644 --- a/jdav_web/members/admin.py +++ b/jdav_web/members/admin.py @@ -681,6 +681,7 @@ class BillOnExcursionInline(CommonAdminInlineMixin, admin.TabularInline): class StatementOnListInline(CommonAdminInlineMixin, nested_admin.NestedStackedInline): model = Statement extra = 1 + description = _('Please list here all expenses in relation with this excursion and upload relevant bills. These have to be permanently stored for the application of LJP contributions. The short descriptions are used in the seminar report cost overview (possible descriptions are e.g. food, material, etc.).') sortable_options = [] fields = ['night_cost'] inlines = [BillOnExcursionInline] @@ -698,6 +699,7 @@ class InterventionOnLJPInline(CommonAdminInlineMixin, admin.TabularInline): class LJPOnListInline(CommonAdminInlineMixin, nested_admin.NestedStackedInline): model = LJPProposal extra = 1 + description = _('Here you can work on a seminar report for applying for financial contributions from Landesjugendplan (LJP). More information on creating a seminar report can be found in the wiki. The seminar report or only a participant list and cost overview can be consequently downloaded.') sortable_options = [] inlines = [InterventionOnLJPInline] @@ -705,6 +707,7 @@ class LJPOnListInline(CommonAdminInlineMixin, nested_admin.NestedStackedInline): class MemberOnListInline(CommonAdminInlineMixin, GenericTabularInline): model = NewMemberOnList extra = 0 + description = _('Please list all participants (also youth leaders) of this excursion. Here you can still make changes just before departure and hence generate the latest participant list for crisis intervention at all times.') formfield_overrides = { TextField: {'widget': Textarea(attrs={'rows': 1, 'cols': 40})} } @@ -776,6 +779,13 @@ class FreizeitAdmin(CommonAdminMixin, nested_admin.NestedModelAdmin): search_fields = ('name',) ordering = ('-date',) view_on_site = False + fieldsets = ( + (None, { + 'fields': ('name', 'place', 'destination', 'date', 'end', 'description', 'groups', 'jugendleiter', + 'tour_type', 'tour_approach', 'kilometers_traveled', 'activity', 'difficulty'), + 'description': _('General information on your excursion. These are partly relevant for the amount of financial compensation (means of transport, travel distance, etc.).') + }), + ) #formfield_overrides = { # ManyToManyField: {'widget': forms.CheckboxSelectMultiple}, # ForeignKey: {'widget': apply_select2(forms.Select)} diff --git a/jdav_web/members/locale/de/LC_MESSAGES/django.po b/jdav_web/members/locale/de/LC_MESSAGES/django.po index 5e81b32..eb91978 100644 --- a/jdav_web/members/locale/de/LC_MESSAGES/django.po +++ b/jdav_web/members/locale/de/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-11-24 02:47+0100\n" +"POT-Creation-Date: 2024-11-24 22:24+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: members/admin.py:126 members/models.py:371 +#: members/admin.py:126 members/models.py:373 msgid "Registration complete" msgstr "Anmeldung vollständig" @@ -109,7 +109,7 @@ msgstr "" msgid "activity" msgstr "Aktivität" -#: members/admin.py:373 members/models.py:53 members/models.py:1379 +#: members/admin.py:373 members/models.py:53 members/models.py:1390 msgid "Name" msgstr "Name" @@ -155,8 +155,8 @@ msgstr "%(name)s zurück auf die Warteliste gesetzt." msgid "Demote selected registrations to waiters." msgstr "Ausgewählte Registrierungen zurück auf die Warteliste setzen." -#: members/admin.py:496 members/models.py:378 members/models.py:718 -#: members/models.py:1124 +#: members/admin.py:496 members/models.py:380 members/models.py:729 +#: members/models.py:1135 msgid "Group" msgstr "Gruppe" @@ -189,73 +189,119 @@ msgstr "Wähle Gruppe für Einladung aus" msgid "Offer waiter a place in a group." msgstr "Personen auf der Warteliste einen Gruppenplatz anbieten." -#: members/admin.py:651 +#: members/admin.py:652 msgid "Difficulty" msgstr "Schwierigkeit" -#: members/admin.py:654 +#: members/admin.py:655 msgid "Tour type" msgstr "Art der Tour" -#: members/admin.py:657 members/models.py:934 +#: members/admin.py:658 members/models.py:945 msgid "Means of transportation" msgstr "Verkehrsmittel" -#: members/admin.py:752 +#: members/admin.py:684 +msgid "" +"Please list here all expenses in relation with this excursion and upload " +"relevant bills. These have to be permanently stored for the application of " +"LJP contributions. The short descriptions are used in the seminar report " +"cost overview (possible descriptions are e.g. food, material, etc.)." +msgstr "" +"Gib hier bitte alle deine Ausgaben in Zusammenhang mit der Ausfahrt an und " +"lade entsprechende Belege/Quittungen hoch. Diese müssen für die Beantragung " +"von LJP-Zuschüssen langfristig aufbewahrt werden. Die Kurzbeschreibung der " +"einzelnen Posten wird dabei auf der LJP-Kostenübersicht angezeigt (sinnvoll " +"wären z.B. Anreise, Verpflegung, Material etc.)." + +#: members/admin.py:702 +msgid "" +"Here you can work on a seminar report for applying for financial " +"contributions from Landesjugendplan (LJP). More information on creating a " +"seminar report can be found in the wiki. The seminar report or only a " +"participant list and cost overview can be consequently downloaded." +msgstr "" +"Hier kannst du an einem Seminarbericht für die Beantragung von Zuschüssen " +"des Landesjugendplans (LJP) arbeiten. Weitere Informationen zur Gestaltung " +"von Seminarberichten findest du im JL-Wiki. Den Seminarbericht oder " +"wahlweise nur TN-Liste und Kostenübersicht kannst du anschließend " +"herunterladen." + +#: members/admin.py:710 +msgid "" +"Please list all participants (also youth leaders) of this excursion. Here " +"you can still make changes just before departure and hence generate the " +"latest participant list for crisis intervention at all times." +msgstr "" +"Gib hier bitte alle Personen an, die bei der Ausfahrt dabei sind (auch JL). " +"Hier kannst du auch spontan kurz vor Abfahrt noch Änderungen machen und so " +"jederzeit die aktuelle Teilnehmer:innenliste für die Krisenintervention " +"generieren." + +#: members/admin.py:756 #, python-format msgid "You are not allowed to view all members on note list %(name)s." msgstr "" "Du hast nicht die nötigen Rechte um alle Teilnehmer:innen der Notizliste " "%(name)s anzusehen." -#: members/admin.py:762 +#: members/admin.py:766 msgid "Generate PDF summary" msgstr "Übersicht erstellen" -#: members/admin.py:766 +#: members/admin.py:770 msgid "Full report" msgstr "Vollständiger Seminarbericht" -#: members/admin.py:767 +#: members/admin.py:771 msgid "Costs and participants only" msgstr "Nur Kosten und Teilnehmende" -#: members/admin.py:768 +#: members/admin.py:772 msgid "Mode" msgstr "Modus" -#: members/admin.py:805 +#: members/admin.py:786 +msgid "" +"General information on your excursion. These are partly relevant for the " +"amount of financial compensation (means of transport, travel distance, etc.)." +msgstr "" +"Hier kannst du allgemein Angaben zu deiner Ausfahrt machen. Diese sind " +"teilweise relevant für die Zuschüsse aus dem Jugendetat (Verkehrsmittel, " +"Fahrstrecke in km)." + +#: members/admin.py:816 #, python-format msgid "You are not allowed to view all members on excursion %(name)s." msgstr "" "Du hast nicht die nötigen Rechte um alle Teilnehmer:innen der Ausfahrt " "%(name)s anzusehen." -#: members/admin.py:813 +#: members/admin.py:824 msgid "Generate crisis intervention list" msgstr "Kriseninterventionsliste erstellen" -#: members/admin.py:821 +#: members/admin.py:832 msgid "Generate overview" msgstr "Hinweise für Jugendleiter erstellen" -#: members/admin.py:825 members/admin.py:848 +#: members/admin.py:836 members/admin.py:859 #: members/templates/admin/generate_seminar_report.html:21 msgid "Generate seminar report" msgstr "Seminarbericht erstellen" -#: members/admin.py:838 +#: members/admin.py:849 msgid "Please select a mode." msgstr "Bitte wähle einen Modus aus." -#: members/admin.py:842 +#: members/admin.py:853 msgid "" "Full mode is only available, if the seminar report section is filled out." msgstr "" "Der vollständiger Modus ist nur verfügbar, wenn der Seminarbericht " "ausgefüllt ist. " -#: members/admin.py:860 +#: members/admin.py:871 msgid "Generate SJR application" msgstr "SJR Antrag erstellen" @@ -291,11 +337,11 @@ msgstr "Samstag" msgid "Sunday" msgstr "Sonntag" -#: members/models.py:54 members/models.py:920 +#: members/models.py:54 members/models.py:931 msgid "Description" msgstr "Beschreibung" -#: members/models.py:60 members/models.py:912 +#: members/models.py:60 members/models.py:923 #: members/templates/members/change_member.html:18 msgid "Activity" msgstr "Aktivität" @@ -328,7 +374,7 @@ msgstr "Bis Jahrgang" msgid "youth leaders" msgstr "Jugendleiter" -#: members/models.py:77 members/models.py:1206 +#: members/models.py:77 members/models.py:1217 msgid "Starting time" msgstr "Zeitpunkt" @@ -336,7 +382,7 @@ msgstr "Zeitpunkt" msgid "Ending time" msgstr "Endzeitpunkt" -#: members/models.py:85 members/models.py:247 +#: members/models.py:85 members/models.py:249 msgid "group" msgstr "Gruppe" @@ -356,478 +402,478 @@ msgstr "Nachname" msgid "Email confirmed" msgstr "Emailadresse bestätigt" -#: members/models.py:137 +#: members/models.py:139 msgid "Email confirmation needed" msgstr "Email Bestätigung erforderlich" -#: members/models.py:177 members/models.py:221 +#: members/models.py:179 members/models.py:223 msgid "phone number" msgstr "Telefonnummer (mobil)" -#: members/models.py:187 +#: members/models.py:189 msgid "birth date" msgstr "Geburtsdatum" -#: members/models.py:193 +#: members/models.py:195 msgid "Gender" msgstr "Gender" -#: members/models.py:194 +#: members/models.py:196 msgid "comments" msgstr "Kommentare" -#: members/models.py:218 +#: members/models.py:220 msgid "Alternative email confirmed" msgstr "Alternative E-Mail Adresse bestätigt" -#: members/models.py:222 +#: members/models.py:224 msgid "street and house number" msgstr "Straße und Hausnummer" -#: members/models.py:223 +#: members/models.py:225 msgid "Postcode" msgstr "PLZ" -#: members/models.py:225 +#: members/models.py:227 msgid "town" msgstr "Stadt" -#: members/models.py:226 +#: members/models.py:228 msgid "Address extra" msgstr "Adress-Zusatz" -#: members/models.py:227 +#: members/models.py:229 msgid "Country" msgstr "Land" -#: members/models.py:229 +#: members/models.py:231 msgid "Good conduct certificate presented on" msgstr "Führungszeugnis vorgelegt am" -#: members/models.py:230 +#: members/models.py:232 msgid "Joined on" msgstr "Eintritt" -#: members/models.py:231 +#: members/models.py:233 msgid "Left on" msgstr "Austritt" -#: members/models.py:232 +#: members/models.py:234 msgid "Has key" msgstr "Hat Jugendraumschlüssel" -#: members/models.py:233 +#: members/models.py:235 msgid "Has a free ticket for the climbing gym" msgstr "Hat Freikarte für Kletterhalle" -#: members/models.py:234 +#: members/models.py:236 msgid "DAV badge number" msgstr "DAV Mitgliedsnummer" -#: members/models.py:235 +#: members/models.py:237 msgid "Knows how to swim" msgstr "Kann schwimmen" -#: members/models.py:236 +#: members/models.py:238 msgid "Climbing badge" msgstr "Kletterschein" -#: members/models.py:237 +#: members/models.py:239 msgid "Alpine experience" msgstr "Alpine Erfahrung" -#: members/models.py:238 +#: members/models.py:240 msgid "Allergies" msgstr "Allergieen" -#: members/models.py:239 +#: members/models.py:241 msgid "Medication" msgstr "Medikamente" -#: members/models.py:240 +#: members/models.py:242 msgid "Tetanus vaccination" msgstr "Tetanusimpfung" -#: members/models.py:241 +#: members/models.py:243 msgid "Photos may be taken" msgstr "Fotoerlaubnis" -#: members/models.py:242 +#: members/models.py:244 msgid "Legal guardians" msgstr "Erziehungsberechtigte" -#: members/models.py:244 +#: members/models.py:246 msgid "May cancel a group appointment independently" msgstr "Darf sich allein von der Gruppenstunde abmelden" -#: members/models.py:251 +#: members/models.py:253 msgid "receives newsletter" msgstr "Erhält den Newsletter" -#: members/models.py:255 +#: members/models.py:257 msgid "created" msgstr "erstellt" -#: members/models.py:256 +#: members/models.py:258 msgid "Active" msgstr "Aktiv" -#: members/models.py:257 +#: members/models.py:259 msgid "registration form" msgstr "Anmeldeformular" -#: members/models.py:265 +#: members/models.py:267 msgid "image" msgstr "Bild" -#: members/models.py:274 +#: members/models.py:276 msgid "Echoed" msgstr "Rückgemeldet" -#: members/models.py:275 +#: members/models.py:277 msgid "Confirmed" msgstr "Bestätigt" -#: members/models.py:277 +#: members/models.py:279 msgid "Login data" msgstr "Zugangsdaten" -#: members/models.py:307 +#: members/models.py:309 msgid "Good conduct certificate valid" msgstr "Führungszeugnis gültig" -#: members/models.py:381 +#: members/models.py:383 msgid "member" msgstr "Teilnehmer" -#: members/models.py:382 +#: members/models.py:384 msgid "members" msgstr "Teilnehmer" -#: members/models.py:455 +#: members/models.py:457 #, python-format msgid "New unconfirmed registration for group %(group)s" msgstr "Neue unbestätigte Registrierung für Gruppe %(group)s" -#: members/models.py:666 +#: members/models.py:668 msgid "Set login data for Kompass" msgstr "Zugangsdaten für Kompass wählen" -#: members/models.py:675 members/models.py:868 members/models.py:879 -#: members/models.py:1155 members/models.py:1162 +#: members/models.py:685 members/models.py:879 members/models.py:890 +#: members/models.py:1166 members/models.py:1173 msgid "Member" msgstr "Teilnehmer" -#: members/models.py:681 +#: members/models.py:692 msgid "Emergency contact" msgstr "Notfallkontakt" -#: members/models.py:682 +#: members/models.py:693 msgid "Emergency contacts" msgstr "Notfallkontakte" -#: members/models.py:702 +#: members/models.py:713 msgid "Unconfirmed registration" msgstr "Unbestätigte Registrierung" -#: members/models.py:703 +#: members/models.py:714 msgid "Unconfirmed registrations" msgstr "Unbestätigte Registrierungen" -#: members/models.py:717 members/models.py:762 +#: members/models.py:728 members/models.py:773 msgid "Waiter" msgstr "Wartende Person" -#: members/models.py:719 +#: members/models.py:730 msgid "Invitation date" msgstr "Einladungsdatum" -#: members/models.py:720 members/templates/members/reject_success.html:6 +#: members/models.py:731 members/templates/members/reject_success.html:6 #: members/templates/members/reject_success.html:11 msgid "Invitation rejected" msgstr "Einladung abgelehnt" -#: members/models.py:724 +#: members/models.py:735 msgid "Invitation to group" msgstr "Gruppeneinladung" -#: members/models.py:725 +#: members/models.py:736 msgid "Invitations to groups" msgstr "Gruppeneinladungen" -#: members/models.py:732 +#: members/models.py:743 msgid "Rejected" msgstr "Abgelehnt" -#: members/models.py:734 +#: members/models.py:745 msgid "Expired" msgstr "Abgelaufen" -#: members/models.py:736 +#: members/models.py:747 msgid "Undecided" msgstr "Ausstehend" -#: members/models.py:737 +#: members/models.py:748 msgid "Status" msgstr "Status" -#: members/models.py:748 +#: members/models.py:759 msgid "Do you want to tell us something else?" msgstr "Möchtest du uns noch etwas mitteilen?" -#: members/models.py:749 +#: members/models.py:760 msgid "application date" msgstr "Bewerbungsdatum" -#: members/models.py:751 +#: members/models.py:762 msgid "Last wait confirmation" msgstr "Letzte Wartebestätigung" -#: members/models.py:755 +#: members/models.py:766 msgid "Last reminder" msgstr "Letzte Erinnerung" -#: members/models.py:756 +#: members/models.py:767 msgid "Missed reminders" msgstr "Verpasste Erinnerungen" -#: members/models.py:763 +#: members/models.py:774 msgid "Waiters" msgstr "Warteliste" -#: members/models.py:787 +#: members/models.py:798 msgid "Waiting status confirmed" msgstr "Wartelistenplatz bestätigt" -#: members/models.py:794 +#: members/models.py:805 msgid "Waiting confirmation needed" msgstr "Wartelistenplatzbestätigung erforderlich" -#: members/models.py:847 +#: members/models.py:858 msgid "Invitation to trial group meeting" msgstr "Einladung zu Schnupperstunde" -#: members/models.py:859 +#: members/models.py:870 msgid "Unregistered from waiting list" msgstr "Von der Warteliste abgemeldet" -#: members/models.py:873 +#: members/models.py:884 msgid "Comment" msgstr "Kommentar" -#: members/models.py:880 members/models.py:1163 +#: members/models.py:891 members/models.py:1174 msgid "Members" msgstr "Teilnehmer" -#: members/models.py:914 +#: members/models.py:925 msgid "Place" msgstr "Stützpunkt / Ort" -#: members/models.py:915 +#: members/models.py:926 msgid "Destination (optional)" msgstr "ggf. Ziel" -#: members/models.py:917 +#: members/models.py:928 msgid "e.g. a peak" msgstr "z.B. ein Gipfel" -#: members/models.py:918 +#: members/models.py:929 msgid "Begin" msgstr "Anfang" -#: members/models.py:919 +#: members/models.py:930 msgid "End (optional)" msgstr "Ende" -#: members/models.py:922 +#: members/models.py:933 msgid "Groups" msgstr "Gruppen" -#: members/models.py:935 +#: members/models.py:946 msgid "Kilometers traveled" msgstr "Fahrstrecke in Kilometer" -#: members/models.py:938 +#: members/models.py:949 msgid "Categories" msgstr "Kategorien" -#: members/models.py:939 +#: members/models.py:950 msgid "easy" msgstr "leicht" -#: members/models.py:939 +#: members/models.py:950 msgid "medium" msgstr "mittel" -#: members/models.py:939 +#: members/models.py:950 msgid "hard" msgstr "schwer" -#: members/models.py:949 members/models.py:1186 +#: members/models.py:960 members/models.py:1197 msgid "Excursion" msgstr "Ausfahrt" -#: members/models.py:950 +#: members/models.py:961 msgid "Excursions" msgstr "Ausfahrten" -#: members/models.py:1101 members/models.py:1177 members/models.py:1393 +#: members/models.py:1112 members/models.py:1188 members/models.py:1404 msgid "Title" msgstr "Titel" -#: members/models.py:1102 members/models.py:1120 members/models.py:1394 +#: members/models.py:1113 members/models.py:1131 members/models.py:1405 msgid "Date" msgstr "Datum" -#: members/models.py:1121 +#: members/models.py:1132 msgid "Location" msgstr "Ort" -#: members/models.py:1122 +#: members/models.py:1133 msgid "Topic" msgstr "Thema" -#: members/models.py:1146 +#: members/models.py:1157 msgid "Jugendleiter" msgstr "Jugendleiter" -#: members/models.py:1149 +#: members/models.py:1160 msgid "Klettertreff" msgstr "Klettertreff" -#: members/models.py:1150 +#: members/models.py:1161 msgid "Klettertreffs" msgstr "Klettertreffs" -#: members/models.py:1168 +#: members/models.py:1179 msgid "Password" msgstr "Passwort" -#: members/models.py:1171 +#: members/models.py:1182 msgid "registration password" msgstr "Registrierungspassort" -#: members/models.py:1172 +#: members/models.py:1183 msgid "registration passwords" msgstr "Registrierungspasswörter" -#: members/models.py:1179 +#: members/models.py:1190 msgid "Alpinistic goals" msgstr "Alpintechnische Ziele" -#: members/models.py:1180 +#: members/models.py:1191 msgid "Pedagogic goals" msgstr "Pädagogische Ziele" -#: members/models.py:1181 +#: members/models.py:1192 msgid "Content and methods" msgstr "Inhalte und Methoden" -#: members/models.py:1182 +#: members/models.py:1193 msgid "Evaluation" msgstr "Wertung" -#: members/models.py:1183 +#: members/models.py:1194 msgid "Experiences and possible improvements" msgstr "Erfahrungen und Verbesserungsvorschläge" -#: members/models.py:1192 members/models.py:1213 +#: members/models.py:1203 members/models.py:1224 msgid "LJP Proposal" msgstr "Seminarbericht" -#: members/models.py:1193 +#: members/models.py:1204 msgid "LJP Proposals" msgstr "Seminarberichte" -#: members/models.py:1207 +#: members/models.py:1218 msgid "Duration in hours" msgstr "Dauer in Stunden" -#: members/models.py:1210 +#: members/models.py:1221 msgid "Activity and method" msgstr "Art der Aktion inkl. Methode" -#: members/models.py:1218 +#: members/models.py:1229 msgid "Intervention" msgstr "Aktion" -#: members/models.py:1219 +#: members/models.py:1230 msgid "Interventions" msgstr "Aktionen" -#: members/models.py:1321 members/models.py:1351 +#: members/models.py:1332 members/models.py:1362 msgid "May list members" msgstr "Darf folgende Teilnehmer:innen listen" -#: members/models.py:1323 members/models.py:1353 +#: members/models.py:1334 members/models.py:1364 msgid "May view members" msgstr "Darf folgende Teilnehmer:innen anzeigen" -#: members/models.py:1325 members/models.py:1355 +#: members/models.py:1336 members/models.py:1366 msgid "May change members" msgstr "Darf folgende Teilnehmer:innen ändern" -#: members/models.py:1327 members/models.py:1357 +#: members/models.py:1338 members/models.py:1368 msgid "May delete members" msgstr "Darf folgende Teilnehmer:innen löschen" -#: members/models.py:1331 members/models.py:1361 +#: members/models.py:1342 members/models.py:1372 msgid "May list members of groups" msgstr "Darf Teilnehmer:innen folgender Gruppen listen" -#: members/models.py:1333 members/models.py:1363 +#: members/models.py:1344 members/models.py:1374 msgid "May view members of groups" msgstr "Darf Teilnehmer:innen folgender Gruppen anzeigen" -#: members/models.py:1335 members/models.py:1365 +#: members/models.py:1346 members/models.py:1376 msgid "May change members of groups" msgstr "Darf Teilnehmer:innen folgender Gruppen ändern" -#: members/models.py:1337 members/models.py:1367 +#: members/models.py:1348 members/models.py:1378 msgid "May delete members of groups" msgstr "Darf Teilnehmer:innen folgender Gruppen löschen" -#: members/models.py:1340 members/models.py:1341 members/models.py:1344 +#: members/models.py:1351 members/models.py:1352 members/models.py:1355 msgid "Permissions" msgstr "Berechtigungen" -#: members/models.py:1370 members/models.py:1371 members/models.py:1374 +#: members/models.py:1381 members/models.py:1382 members/models.py:1385 msgid "Group permissions" msgstr "Gruppenberechtigungen" -#: members/models.py:1380 +#: members/models.py:1391 msgid "Permission needed" msgstr "Freigabe erforderlich" -#: members/models.py:1383 +#: members/models.py:1394 msgid "Training category" msgstr "Fortbildungstyp" -#: members/models.py:1384 +#: members/models.py:1395 msgid "Training categories" msgstr "Fortbildungstypen" -#: members/models.py:1395 +#: members/models.py:1406 msgid "Category" msgstr "Kategorien" -#: members/models.py:1396 +#: members/models.py:1407 msgid "Comments" msgstr "Kommentar" -#: members/models.py:1397 +#: members/models.py:1408 msgid "Participated" msgstr "Teilgenommmen" -#: members/models.py:1398 +#: members/models.py:1409 msgid "Passed" msgstr "Bestanden" -#: members/models.py:1401 +#: members/models.py:1412 msgid "Training" msgstr "Fortbildung" -#: members/models.py:1402 +#: members/models.py:1413 msgid "Trainings" msgstr "Fortbildungen" @@ -844,8 +890,8 @@ msgid "" "Here you can generate a seminar report suitable for the LJP. A report\n" "always contains a head page with the basic information on the seminar." msgstr "" -"Hier kannst du einen Seminarbericht für den Landesjugendplan erstellen. " -"Ein Bericht enthält immer einen Kopf mit den Stammdaten des Seminars." +"Hier kannst du einen Seminarbericht für den Landesjugendplan erstellen. Ein " +"Bericht enthält immer einen Kopf mit den Stammdaten des Seminars." #: members/templates/admin/generate_seminar_report.html:32 msgid "" @@ -853,9 +899,9 @@ msgid "" "schedule. This requires\n" "the seminar report section to be filled out." msgstr "" -"Vollständiger Bericht: Stelle Lernziele und einen detaillierte, " -"tabellierten Zeitplan dar. Dies benötigt, dass der Seminarbericht " -"in der Ausfahrt ausgefüllt ist." +"Vollständiger Bericht: Stelle Lernziele und einen detaillierte, tabellierten " +"Zeitplan dar. Dies benötigt, dass der Seminarbericht in der Ausfahrt " +"ausgefüllt ist." #: members/templates/admin/generate_seminar_report.html:36 msgid "" @@ -1122,7 +1168,7 @@ msgstr "" "Ich bin einverstanden, dass meine Daten auf dem Server der JDAV %(sektion)s " "gespeichert und verarbeitet werden." -#: members/templates/members/member_form.html:101 +#: members/templates/members/member_form.html:103 msgid "This file is bigger than the maximal allowed file size of 5 MiB." msgstr "Diese Datei ist größer als die maximal erlaubte Dateigröße von 5 MiB." diff --git a/jdav_web/templates/admin/edit_inline/stacked.html b/jdav_web/templates/admin/edit_inline/stacked.html new file mode 100644 index 0000000..f797e82 --- /dev/null +++ b/jdav_web/templates/admin/edit_inline/stacked.html @@ -0,0 +1 @@ +{% load i18n admin_urls %} diff --git a/jdav_web/templates/admin/edit_inline/tabular.html b/jdav_web/templates/admin/edit_inline/tabular.html new file mode 100644 index 0000000..42bb07f --- /dev/null +++ b/jdav_web/templates/admin/edit_inline/tabular.html @@ -0,0 +1,78 @@ +{% load i18n admin_urls static admin_modify %} +
+ +
diff --git a/jdav_web/templates/nesting/admin/inlines/stacked.html b/jdav_web/templates/nesting/admin/inlines/stacked.html new file mode 100644 index 0000000..58fac04 --- /dev/null +++ b/jdav_web/templates/nesting/admin/inlines/stacked.html @@ -0,0 +1,95 @@ +{% load i18n nested_admin admin_urls %} +{% with inline_admin_formset.formset.is_nested as is_nested %} + +{% with inline_admin_formset.opts as inline_opts %} +
+ + {% ifinlineclasses %}
{% endifinlineclasses %} + {% if inline_admin_formset.is_collapsible %}
{% endif %} +

+ {% if inline_admin_formset.opts.title %}{{ inline_admin_formset.opts.title }}{% else %}{{ inline_admin_formset.opts.verbose_name_plural|capfirst }}{% endif %} +

+ {% if inline_admin_formset.is_collapsible %}
{% endif %} + + {{ inline_admin_formset.formset.management_form }} + {{ inline_admin_formset.formset.non_form_errors }} + {% if inline_admin_formset.opts.description %} +
+

+ {{ inline_admin_formset.opts.description }} +

+
+ {% endif %} +
+ + {% with inline_admin_formset.opts.sortable_field_name|default:"" as sortable_field_name %} + {% for inline_admin_form in inline_admin_formset|formsetsort:sortable_field_name %} + {% if forloop.first %} +
+ {% endif %} + + {% endfor %} + {% endwith %} +
+ + {% if inline_admin_formset.is_collapsible %}
{% endif %} + {% ifinlineclasses %}
{% endifinlineclasses %} +
+{% endwith %}{# ends with inline_admin_formset.opts as inline_opts #} + +{% endwith %}{# ends {% with inline_admin_formset.formset.is_nested as is_nested %} #}