members/admin: show last group invitation and gender in list

pull/82/head^2
Christian Merten 1 year ago
parent f61941c3d0
commit 55c9605428
Signed by: christian.merten
GPG Key ID: D953D69721B948B3

@ -15,6 +15,7 @@ from django.template.loader import get_template
from django.urls import path, reverse
from django.http import HttpResponse, HttpResponseRedirect
from wsgiref.util import FileWrapper
from django.utils import timezone
from django import forms
from django.contrib import admin, messages
from django.contrib.admin import DateFieldListFilter
@ -580,14 +581,28 @@ class InvitationToGroupAdmin(admin.TabularInline):
return False
class InvitedToGroupFilter(admin.SimpleListFilter):
title = _('Pending group invitation for group')
parameter_name = 'pending_group_invitation'
def lookups(self, request, model_admin):
return [(g.pk, g.name) for g in Group.objects.all()]
def queryset(self, request, queryset):
pk = self.value()
if not pk:
return queryset
return queryset.filter(invitationtogroup__group__pk=pk, invitationtogroup__rejected=False,
invitationtogroup__date__gt=(timezone.now() - timezone.timedelta(days=30)).date()).distinct()
class MemberWaitingListAdmin(CommonAdminMixin, admin.ModelAdmin):
fields = ['prename', 'lastname', 'email', 'birth_date', 'gender', 'application_text',
'application_date', 'comments',
'sent_reminders']
list_display = ('name', 'birth_date', 'age', 'application_date', 'confirmed_mail',
'waiting_confirmed', 'sent_reminders')
'application_date', 'comments', 'sent_reminders']
list_display = ('name', 'birth_date', 'age', 'gender', 'application_date', 'latest_group_invitation',
'confirmed_mail', 'waiting_confirmed', 'sent_reminders')
search_fields = ('prename', 'lastname', 'email')
list_filter = ('confirmed_mail',)
list_filter = ['confirmed_mail', 'gender', InvitedToGroupFilter]
actions = ['ask_for_registration', 'ask_for_wait_confirmation']
inlines = [InvitationToGroupAdmin]
readonly_fields= ['application_date', 'sent_reminders']

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-12-04 00:04+0100\n"
"POT-Creation-Date: 2024-12-14 16:49+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -18,186 +18,190 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: members/admin.py:126 members/models.py:404
#: members/admin.py:127 members/models.py:404
msgid "Registration complete"
msgstr "Anmeldung vollständig"
#: members/admin.py:132
#: members/admin.py:133
msgid "True"
msgstr "Ja"
#: members/admin.py:133
#: members/admin.py:134
msgid "False"
msgstr "Nein"
#: members/admin.py:134
#: members/admin.py:135
msgid "All"
msgstr "Alle"
#: members/admin.py:184 members/admin.py:414
#: members/admin.py:185 members/admin.py:415
msgid "Contact information"
msgstr "Kontaktinformationen"
#: members/admin.py:189 members/admin.py:419
#: members/admin.py:190 members/admin.py:420
msgid "Skills"
msgstr "Fähigkeiten"
#: members/admin.py:194 members/admin.py:424
#: members/admin.py:195 members/admin.py:425
msgid "Others"
msgstr "Sonstiges"
#: members/admin.py:200 members/admin.py:429
#: members/admin.py:201 members/admin.py:430
msgid "Organizational"
msgstr "Organisatorisches"
#: members/admin.py:282
#: members/admin.py:283
msgid "Compose new mail to selected members"
msgstr "Neue Nachricht an ausgewählte Teilnehmer*innen verfassen"
#: members/admin.py:288
#: members/admin.py:289
msgid "Echo required"
msgstr "Rückmeldung erforderlich"
#: members/admin.py:290
#: members/admin.py:291
msgid "Successfully requested echo from selected members."
msgstr ""
"Rückmeldungsaufforderung erfolgreich an ausgewählte Teilnehmer*innen "
"verschickt."
#: members/admin.py:291
#: members/admin.py:292
msgid "Request echo from selected members"
msgstr "Rückmeldungsaufforderung an ausgewählte Teilnehmer*innen verschicken"
#: members/admin.py:300
#: members/admin.py:301
#, python-format
msgid "%(name)s does not have a DAV360 email address or is already registered."
msgstr "%(name)s hat keine DAV360 E-Mail Adresse oder ist bereits registriert."
#: members/admin.py:302
#: members/admin.py:303
#, python-format
msgid "Successfully invited %(name)s as user."
msgstr "Erfolgreich %(name)s aufgefordert Zugangsdaten zu wählen."
#: members/admin.py:304
#: members/admin.py:305
msgid "Successfully invited selected members to join as users."
msgstr ""
"Erfolgreich ausgewählte Teilnehmer*innen aufgefordert Zugangsdaten zu wählen."
#: members/admin.py:306
#: members/admin.py:307
msgid "Some members have been invited, others could not be invited."
msgstr ""
"Manche Teilnehmer*innen wurden eingeladen, andere konnten nicht eingeladen "
"werden."
#: members/admin.py:313 members/admin.py:330
#: members/admin.py:314 members/admin.py:331
msgid "Permission denied."
msgstr "Fehlende Berechtigungen."
#: members/admin.py:320 members/admin.py:354
#: members/admin.py:321 members/admin.py:355
#: members/templates/admin/invite_as_user.html:21
msgid "Invite as user"
msgstr "Kompass Zugangsdaten wählen lassen"
#: members/admin.py:325
#: members/admin.py:326
msgid "Invite selected members to join Kompass as users."
msgstr "Ausgewählte Teilnehmer*innen Kompass Zugangsdaten wählen lassen."
#: members/admin.py:336
#: members/admin.py:337
msgid "Member not found."
msgstr "Teilnehmer*in nicht gefunden."
#: members/admin.py:340
#: members/admin.py:341
#, python-format
msgid "%(name)s already has login data."
msgstr "%(name)s hat schon Zugangsdaten."
#: members/admin.py:345
#: members/admin.py:346
#, python-format
msgid "The configured email address for %(name)s is not an internal one."
msgstr "Die für %(name)s eingestellte E-Mail Adresse ist keine DAV360 Adresse."
#: members/admin.py:359
#: members/admin.py:360
#, python-format
msgid "%(name)s already has a pending invitation as user."
msgstr ""
"%(name)s hat bereits eine ausstehende Aufforderung Zugangsdaten zu wählen."
#: members/admin.py:377
#: members/admin.py:378
msgid "activity"
msgstr "Aktivität"
#: members/admin.py:387 members/models.py:56 members/models.py:1519
#: members/admin.py:388 members/models.py:56 members/models.py:1527
msgid "Name"
msgstr "Name"
#: members/admin.py:477
#: members/admin.py:478
msgid "Successfully requested mail confirmation from selected registrations."
msgstr "Aufforderung zur Bestätigung der Email Adresse versendet."
#: members/admin.py:478
#: members/admin.py:479
msgid "Request mail confirmation from selected registrations"
msgstr "Aufforderung zur Bestätigung der Email Adresse versenden"
#: members/admin.py:485 members/admin.py:559
#: members/admin.py:486 members/admin.py:560
#, python-format
msgid "Successfully confirmed %(name)s."
msgstr "Registrierung von %(name)s erfolgreich bestätigt."
#: members/admin.py:489 members/admin.py:562
#: members/admin.py:490 members/admin.py:563
#, python-format
msgid "Can't confirm. %(name)s has unconfirmed email addresses."
msgstr "Bestätigung nicht möglich. %(name)s hat unbestätigte Emailadressen."
#: members/admin.py:494
#: members/admin.py:495
msgid "Successfully confirmed multiple registrations."
msgstr "Erfolgreich mehrere Registrierungen bestätigt."
#: members/admin.py:496
#: members/admin.py:497
msgid ""
"Failed to confirm some registrations because of unconfirmed email addresses."
msgstr ""
"Einige Bestätigungen fehlgeschlagen, weil Emailadressen noch nicht bestätigt "
"sind."
#: members/admin.py:497
#: members/admin.py:498
msgid "Confirm selected registrations"
msgstr "Ausgewählte Registrierungen bestätigen"
#: members/admin.py:520
#: members/admin.py:521
msgid "Demote selected registrations to waiters."
msgstr "Ausgewählte Registrierungen zurück auf die Warteliste setzen."
#: members/admin.py:536
#: members/admin.py:537
msgid "Demote member to waiter"
msgstr "Ausgewählte Registrierung zurück auf die Warteliste setzen."
#: members/admin.py:554
#: members/admin.py:555
#, python-format
msgid "Successfully demoted %(name)s to waiter."
msgstr "%(name)s zurück auf die Warteliste gesetzt."
#: members/admin.py:569 members/models.py:411 members/models.py:777
#: members/models.py:1264
#: members/admin.py:570 members/models.py:411 members/models.py:777
#: members/models.py:1272
msgid "Group"
msgstr "Gruppe"
#: members/admin.py:603
#: members/admin.py:585
msgid "Pending group invitation for group"
msgstr "Ausstehende Gruppeneinladung für Gruppe"
#: members/admin.py:618
#, python-format
msgid "Successfully asked %(name)s to confirm their waiting status."
msgstr "Erfolgreich %(name)s aufgefordert den Wartelistenplatz zu bestätigen."
#: members/admin.py:604
#: members/admin.py:619
msgid "Ask selected waiters to confirm their waiting status"
msgstr "Wartende auffordern den Wartelistenplatz zu bestätigen"
#: members/admin.py:613 members/admin.py:673
#: members/admin.py:628 members/admin.py:688
msgid ""
"An error occurred while trying to invite said members. Please try again."
msgstr ""
"Beim Einladen dieser Personen ist ein Fehler aufgetreten. Bitte versuche es "
"nochmal. "
#: members/admin.py:617 members/admin.py:678
#: members/admin.py:632 members/admin.py:693
msgid ""
"The selected group does not have a contact email. Please first set a contact "
"email and then try again."
@ -205,43 +209,43 @@ msgstr ""
"Die ausgewählte Gruppe hat keine Kontakt E-Mail Adresse. Bitte stelle eine "
"Kontakt E-Mail Adresse ein und versuche es erneut."
#: members/admin.py:625 members/admin.py:685
#: members/admin.py:640 members/admin.py:700
#, python-format
msgid "Successfully invited %(name)s to %(group)s."
msgstr "Erfolgreich %(name)s zu Gruppe %(group)s eingeladen."
#: members/admin.py:629 members/admin.py:691
#: members/admin.py:644 members/admin.py:706
msgid "Select group for invitation"
msgstr "Wähle Gruppe für Einladung aus"
#: members/admin.py:636
#: members/admin.py:651
msgid "Offer waiter a place in a group."
msgstr "Personen auf der Warteliste einen Gruppenplatz anbieten."
#: members/admin.py:708 members/models.py:72
#: members/admin.py:723 members/models.py:72
msgid "name"
msgstr "Name"
#: members/admin.py:709
#: members/admin.py:724
msgid ""
"The group name may only consist of letters, numerals, _, -, :, * and spaces."
msgstr ""
"Der Gruppenname darf nur aus Buchstaben, Zahlen, _, -, :, * oder Leerzeichen "
"bestehen."
#: members/admin.py:738
#: members/admin.py:753
msgid "Difficulty"
msgstr "Schwierigkeit"
#: members/admin.py:741
#: members/admin.py:756
msgid "Tour type"
msgstr "Art der Tour"
#: members/admin.py:744 members/models.py:995
#: members/admin.py:759 members/models.py:1003
msgid "Means of transportation"
msgstr "Verkehrsmittel"
#: members/admin.py:770
#: members/admin.py:785
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 "
@ -254,7 +258,7 @@ msgstr ""
"einzelnen Posten wird dabei auf der LJP-Kostenübersicht angezeigt (sinnvoll "
"wären z.B. Anreise, Verpflegung, Material etc.)."
#: members/admin.py:788
#: members/admin.py:803
msgid ""
"Here you can work on a seminar report for applying for financial "
"contributions from Landesjugendplan (LJP). More information on creating a "
@ -267,7 +271,7 @@ msgstr ""
"wahlweise nur TN-Liste und Kostenübersicht kannst du anschließend "
"herunterladen."
#: members/admin.py:796
#: members/admin.py:811
msgid ""
"Please list all participants (also youth leaders) of this excursion. Here "
"you can still make changes just before departure and hence generate the "
@ -278,34 +282,34 @@ msgstr ""
"jederzeit die aktuelle Teilnehmer*innenliste für die Krisenintervention "
"generieren."
#: members/admin.py:842
#: members/admin.py:857
#, 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:852
#: members/admin.py:867
msgid "Generate PDF summary"
msgstr "Übersicht erstellen"
#: members/admin.py:856
#: members/admin.py:871
msgid "Full report"
msgstr "Vollständiger Seminarbericht"
#: members/admin.py:857
#: members/admin.py:872
msgid "Costs and participants only"
msgstr "Nur Kosten und Teilnehmende"
#: members/admin.py:858
#: members/admin.py:873
msgid "Mode"
msgstr "Modus"
#: members/admin.py:859
#: members/admin.py:874
msgid "Prepend V32"
msgstr "V32 Formblatt einfügen"
#: members/admin.py:875
#: members/admin.py:890
msgid ""
"General information on your excursion. These are partly relevant for the "
"amount of financial compensation (means of transport, travel distance, etc.)."
@ -314,48 +318,48 @@ msgstr ""
"teilweise relevant für die Zuschüsse aus dem Jugendetat (Verkehrsmittel, "
"Fahrstrecke in km)."
#: members/admin.py:905
#: members/admin.py:920
#, 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:913
#: members/admin.py:928
msgid "Generate crisis intervention list"
msgstr "Kriseninterventionsliste erstellen"
#: members/admin.py:921
#: members/admin.py:936
msgid "Generate overview"
msgstr "Hinweise für Jugendleiter erstellen"
#: members/admin.py:925 members/admin.py:957
#: members/admin.py:940 members/admin.py:972
#: members/templates/admin/generate_seminar_report.html:21
msgid "Generate seminar report"
msgstr "Landesjugendplan Antrag erstellen"
#: members/admin.py:938
#: members/admin.py:953
msgid "Please select a mode."
msgstr "Bitte wähle einen Modus aus."
#: members/admin.py:943
#: members/admin.py:958
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:969
#: members/admin.py:984
msgid "Generate SJR application"
msgstr "SJR Antrag erstellen"
#: members/admin.py:973
#: members/admin.py:988
msgid "No statement found. Please add a statement and then retry."
msgstr ""
"Keine Abrechnung angelegt. Bitte lege eine Abrechnung and und versuche es "
"erneut."
#: members/admin.py:977
#: members/admin.py:992
msgid ""
"Successfully submited statement. The finance department will notify you as "
"soon as possible."
@ -363,7 +367,7 @@ msgstr ""
"Abrechnung erfolgreich eingericht. Die Finanzabteilung wird sich bei dir so "
"schnell wie möglich melden."
#: members/admin.py:980
#: members/admin.py:995
#: members/templates/admin/freizeit_finance_overview.html:21
msgid "Finance overview"
msgstr "Kostenübersicht"
@ -400,11 +404,11 @@ msgstr "Samstag"
msgid "Sunday"
msgstr "Sonntag"
#: members/models.py:57 members/models.py:981
#: members/models.py:57 members/models.py:989
msgid "Description"
msgstr "Beschreibung"
#: members/models.py:63 members/models.py:973
#: members/models.py:63 members/models.py:981
#: members/templates/members/change_member.html:18
msgid "Activity"
msgstr "Aktivität"
@ -437,7 +441,7 @@ msgstr "Jugendleiter"
msgid "week day"
msgstr "Wochentag"
#: members/models.py:80 members/models.py:1346
#: members/models.py:80 members/models.py:1354
msgid "Starting time"
msgstr "Zeitpunkt"
@ -626,8 +630,8 @@ msgstr "Neue unbestätigte Registrierung für Gruppe %(group)s"
msgid "Set login data for Kompass"
msgstr "Zugangsdaten für Kompass wählen"
#: members/models.py:728 members/models.py:929 members/models.py:940
#: members/models.py:1295 members/models.py:1302
#: members/models.py:728 members/models.py:937 members/models.py:948
#: members/models.py:1303 members/models.py:1310
msgid "Member"
msgstr "Teilnehmer*in"
@ -708,240 +712,244 @@ msgstr "Verpasste Erinnerungen"
msgid "Waiters"
msgstr "Warteliste"
#: members/models.py:846
#: members/models.py:837
msgid "Latest group invitation"
msgstr "Letzte Gruppeneinladung"
#: members/models.py:854
msgid "Waiting status confirmed"
msgstr "Wartelistenplatz bestätigt"
#: members/models.py:853
#: members/models.py:861
msgid "Waiting confirmation needed"
msgstr "Wartelistenplatzbestätigung erforderlich"
#: members/models.py:908
#: members/models.py:916
msgid "Invitation to trial group meeting"
msgstr "Einladung zu Schnupperstunde"
#: members/models.py:920
#: members/models.py:928
msgid "Unregistered from waiting list"
msgstr "Von der Warteliste abgemeldet"
#: members/models.py:934
#: members/models.py:942
msgid "Comment"
msgstr "Kommentar"
#: members/models.py:941 members/models.py:1303
#: members/models.py:949 members/models.py:1311
msgid "Members"
msgstr "Teilnehmer*innen"
#: members/models.py:975
#: members/models.py:983
msgid "Place"
msgstr "Stützpunkt / Ort"
#: members/models.py:976
#: members/models.py:984
msgid "Destination (optional)"
msgstr "ggf. Ziel"
#: members/models.py:978
#: members/models.py:986
msgid "e.g. a peak"
msgstr "z.B. ein Gipfel"
#: members/models.py:979
#: members/models.py:987
msgid "Begin"
msgstr "Anfang"
#: members/models.py:980
#: members/models.py:988
msgid "End (optional)"
msgstr "Ende"
#: members/models.py:983
#: members/models.py:991
msgid "Groups"
msgstr "Gruppen"
#: members/models.py:996
#: members/models.py:1004
msgid "Kilometers traveled"
msgstr "Fahrstrecke in Kilometer"
#: members/models.py:999
#: members/models.py:1007
msgid "Categories"
msgstr "Kategorien"
#: members/models.py:1000
#: members/models.py:1008
msgid "easy"
msgstr "leicht"
#: members/models.py:1000
#: members/models.py:1008
msgid "medium"
msgstr "mittel"
#: members/models.py:1000
#: members/models.py:1008
msgid "hard"
msgstr "schwer"
#: members/models.py:1010 members/models.py:1326
#: members/models.py:1018 members/models.py:1334
#: members/templates/admin/freizeit_finance_overview.html:26
msgid "Excursion"
msgstr "Ausfahrt"
#: members/models.py:1011
#: members/models.py:1019
msgid "Excursions"
msgstr "Ausfahrten"
#: members/models.py:1241 members/models.py:1317 members/models.py:1533
#: members/models.py:1249 members/models.py:1325 members/models.py:1541
msgid "Title"
msgstr "Titel"
#: members/models.py:1242 members/models.py:1260 members/models.py:1534
#: members/models.py:1250 members/models.py:1268 members/models.py:1542
msgid "Date"
msgstr "Datum"
#: members/models.py:1261
#: members/models.py:1269
msgid "Location"
msgstr "Ort"
#: members/models.py:1262
#: members/models.py:1270
msgid "Topic"
msgstr "Thema"
#: members/models.py:1286
#: members/models.py:1294
msgid "Jugendleiter"
msgstr "Jugendleiter"
#: members/models.py:1289
#: members/models.py:1297
msgid "Klettertreff"
msgstr "Klettertreff"
#: members/models.py:1290
#: members/models.py:1298
msgid "Klettertreffs"
msgstr "Klettertreffs"
#: members/models.py:1308
#: members/models.py:1316
msgid "Password"
msgstr "Passwort"
#: members/models.py:1311
#: members/models.py:1319
msgid "registration password"
msgstr "Registrierungspassort"
#: members/models.py:1312
#: members/models.py:1320
msgid "registration passwords"
msgstr "Registrierungspasswörter"
#: members/models.py:1319
#: members/models.py:1327
msgid "Alpinistic goals"
msgstr "Alpintechnische Ziele"
#: members/models.py:1320
#: members/models.py:1328
msgid "Pedagogic goals"
msgstr "Pädagogische Ziele"
#: members/models.py:1321
#: members/models.py:1329
msgid "Content and methods"
msgstr "Inhalte und Methoden"
#: members/models.py:1322
#: members/models.py:1330
msgid "Evaluation"
msgstr "Wertung"
#: members/models.py:1323
#: members/models.py:1331
msgid "Experiences and possible improvements"
msgstr "Erfahrungen und Verbesserungsvorschläge"
#: members/models.py:1332 members/models.py:1353
#: members/models.py:1340 members/models.py:1361
msgid "LJP Proposal"
msgstr "Seminarbericht"
#: members/models.py:1333
#: members/models.py:1341
msgid "LJP Proposals"
msgstr "Seminarberichte"
#: members/models.py:1347
#: members/models.py:1355
msgid "Duration in hours"
msgstr "Dauer in Stunden"
#: members/models.py:1350
#: members/models.py:1358
msgid "Activity and method"
msgstr "Art der Aktion inkl. Methode"
#: members/models.py:1358
#: members/models.py:1366
msgid "Intervention"
msgstr "Aktion"
#: members/models.py:1359
#: members/models.py:1367
msgid "Interventions"
msgstr "Aktionen"
#: members/models.py:1461 members/models.py:1491
#: members/models.py:1469 members/models.py:1499
msgid "May list members"
msgstr "Darf folgende Teilnehmer*innen listen"
#: members/models.py:1463 members/models.py:1493
#: members/models.py:1471 members/models.py:1501
msgid "May view members"
msgstr "Darf folgende Teilnehmer*innen anzeigen"
#: members/models.py:1465 members/models.py:1495
#: members/models.py:1473 members/models.py:1503
msgid "May change members"
msgstr "Darf folgende Teilnehmer*innen ändern"
#: members/models.py:1467 members/models.py:1497
#: members/models.py:1475 members/models.py:1505
msgid "May delete members"
msgstr "Darf folgende Teilnehmer*innen löschen"
#: members/models.py:1471 members/models.py:1501
#: members/models.py:1479 members/models.py:1509
msgid "May list members of groups"
msgstr "Darf Teilnehmer*innen folgender Gruppen listen"
#: members/models.py:1473 members/models.py:1503
#: members/models.py:1481 members/models.py:1511
msgid "May view members of groups"
msgstr "Darf Teilnehmer*innen folgender Gruppen anzeigen"
#: members/models.py:1475 members/models.py:1505
#: members/models.py:1483 members/models.py:1513
msgid "May change members of groups"
msgstr "Darf Teilnehmer*innen folgender Gruppen ändern"
#: members/models.py:1477 members/models.py:1507
#: members/models.py:1485 members/models.py:1515
msgid "May delete members of groups"
msgstr "Darf Teilnehmer*innen folgender Gruppen löschen"
#: members/models.py:1480 members/models.py:1481 members/models.py:1484
#: members/models.py:1488 members/models.py:1489 members/models.py:1492
msgid "Permissions"
msgstr "Berechtigungen"
#: members/models.py:1510 members/models.py:1511 members/models.py:1514
#: members/models.py:1518 members/models.py:1519 members/models.py:1522
msgid "Group permissions"
msgstr "Gruppenberechtigungen"
#: members/models.py:1520
#: members/models.py:1528
msgid "Permission needed"
msgstr "Freigabe erforderlich"
#: members/models.py:1523
#: members/models.py:1531
msgid "Training category"
msgstr "Fortbildungstyp"
#: members/models.py:1524
#: members/models.py:1532
msgid "Training categories"
msgstr "Fortbildungstypen"
#: members/models.py:1535
#: members/models.py:1543
msgid "Category"
msgstr "Kategorien"
#: members/models.py:1536
#: members/models.py:1544
msgid "Comments"
msgstr "Kommentar"
#: members/models.py:1537
#: members/models.py:1545
msgid "Participated"
msgstr "Teilgenommmen"
#: members/models.py:1538
#: members/models.py:1546
msgid "Passed"
msgstr "Bestanden"
#: members/models.py:1541
#: members/models.py:1549
msgid "Training"
msgstr "Fortbildung"
#: members/models.py:1542
#: members/models.py:1550
msgid "Trainings"
msgstr "Fortbildungen"

@ -828,6 +828,14 @@ class MemberWaitingList(Person):
'delete_obj': has_global_perm('members.delete_global_memberwaitinglist'),
}
def latest_group_invitation(self):
gi = self.invitationtogroup_set.order_by('-pk').first()
if gi:
return "{group}: {status}".format(group=gi.group.name, status=gi.status())
else:
return "-"
latest_group_invitation.short_description = _('Latest group invitation')
@property
def waiting_confirmation_needed(self):
"""Returns if person should be asked to confirm waiting status."""

Loading…
Cancel
Save