diff --git a/jdav_web/members/admin.py b/jdav_web/members/admin.py index 925c881..bc0a37f 100644 --- a/jdav_web/members/admin.py +++ b/jdav_web/members/admin.py @@ -81,6 +81,8 @@ class MemberAdmin(admin.ModelAdmin): extra_context = extra_context or {} extra_context['qualities'] =\ Member.objects.get(pk=object_id).get_skills() + extra_context['activities'] =\ + Member.objects.get(pk=object_id).get_activities() return super(MemberAdmin, self).change_view(request, object_id, form_url=form_url, extra_context=extra_context) diff --git a/jdav_web/members/locale/de/LC_MESSAGES/django.po b/jdav_web/members/locale/de/LC_MESSAGES/django.po index ba550ea..d15d4b5 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: 2017-11-11 14:53+0100\n" +"POT-Creation-Date: 2019-09-14 23:12+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,223 +18,229 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#: admin.py:25 models.py:69 +#: members/admin.py:26 members/models.py:72 msgid "Registration complete" msgstr "Anmeldung vollständig" -#: admin.py:31 +#: members/admin.py:32 msgid "True" msgstr "Ja" -#: admin.py:32 +#: members/admin.py:33 msgid "False" msgstr "Nein" -#: admin.py:33 +#: members/admin.py:34 msgid "All" msgstr "Alle" -#: admin.py:91 +#: members/admin.py:94 msgid "Compose new mail to selected members" msgstr "Neue Nachricht an ausgewählte Teilnehmer verfassen" -#: admin.py:107 +#: members/admin.py:110 msgid "Difficulty" msgstr "Schwierigkeit" -#: admin.py:111 +#: members/admin.py:114 msgid "Tour type" msgstr "Art der Tour" -#: admin.py:249 +#: members/admin.py:257 msgid "Convert to PDF" msgstr "Kriseninterventionsliste erstellen" -#: admin.py:355 +#: members/admin.py:366 msgid "Generate overview" msgstr "Hinweise für Jugendleiter erstellen" -#: apps.py:7 models.py:112 +#: members/apps.py:7 members/models.py:128 msgid "members" msgstr "Teilnehmer" -#: models.py:16 +#: members/models.py:19 msgid "Name" msgstr "Name" -#: models.py:17 +#: members/models.py:20 msgid "Description" msgstr "Beschreibung" -#: models.py:23 models.py:128 templates/members/change_member.html:9 +#: members/models.py:26 members/models.py:151 +#: members/templates/members/change_member.html:17 msgid "Activity" msgstr "Aktivität" -#: models.py:24 +#: members/models.py:27 msgid "Activities" msgstr "Aktivitäten" -#: models.py:32 +#: members/models.py:35 msgid "name" msgstr "Name" -#: models.py:34 +#: members/models.py:37 msgid "minimum age (years)" msgstr "Mindestalter (Jahre)" -#: models.py:41 models.py:62 +#: members/models.py:44 members/models.py:65 msgid "group" msgstr "Gruppe" -#: models.py:42 +#: members/models.py:45 msgid "groups" msgstr "Gruppen" -#: models.py:50 +#: members/models.py:53 msgid "prename" msgstr "Vorname" -#: models.py:51 +#: members/models.py:54 msgid "last name" msgstr "Nachname" -#: models.py:52 +#: members/models.py:55 msgid "street" msgstr "Straße" -#: models.py:53 +#: members/models.py:56 msgid "Postcode" msgstr "PLZ" -#: models.py:55 +#: members/models.py:58 msgid "town" msgstr "Stadt" -#: models.py:56 +#: members/models.py:59 msgid "phone number" msgstr "Telefonnummer" -#: models.py:57 +#: members/models.py:60 msgid "parents phone number" msgstr "Telefonnummer der Eltern" -#: models.py:60 +#: members/models.py:63 msgid "Parents' Email" msgstr "Email der Eltern" -#: models.py:61 +#: members/models.py:64 msgid "birth date" msgstr "Geburtsdatum" -#: models.py:63 +#: members/models.py:66 msgid "receives newsletter" msgstr "Erhält den Newsletter" -#: models.py:67 +#: members/models.py:70 msgid "comments" msgstr "Kommentare" -#: models.py:68 +#: members/models.py:71 msgid "created" msgstr "erstellt" -#: models.py:70 +#: members/models.py:73 msgid "registration form" msgstr "Anmeldeformular" -#: models.py:108 models.py:192 +#: members/models.py:124 members/models.py:215 msgid "Group" msgstr "Gruppe" -#: models.py:111 +#: members/models.py:127 msgid "member" msgstr "Teilnehmer" -#: models.py:130 +#: members/models.py:153 msgid "Place" msgstr "Ort" -#: models.py:131 +#: members/models.py:154 msgid "Destination (optional)" msgstr "Ziel (optional)" -#: models.py:133 models.py:188 +#: members/models.py:156 members/models.py:211 msgid "Date" msgstr "Datum" -#: models.py:134 +#: members/models.py:157 msgid "End (optional)" msgstr "Ende" -#: models.py:136 +#: members/models.py:159 msgid "Groups" msgstr "Gruppen" -#: models.py:144 +#: members/models.py:167 msgid "Categories" msgstr "Kategorien" -#: models.py:145 +#: members/models.py:168 msgid "easy" msgstr "leicht" -#: models.py:145 +#: members/models.py:168 msgid "medium" msgstr "mittel" -#: models.py:145 +#: members/models.py:168 msgid "hard" msgstr "schwer" -#: models.py:154 +#: members/models.py:177 msgid "Memberlist" msgstr "Teilnehmerliste" -#: models.py:155 +#: members/models.py:178 msgid "Memberlists" msgstr "Teilnehmerlisten" -#: models.py:170 models.py:178 models.py:223 models.py:230 +#: members/models.py:193 members/models.py:201 members/models.py:246 +#: members/models.py:253 msgid "Member" msgstr "Teilnehmer" -#: models.py:172 +#: members/models.py:195 msgid "Comment" msgstr "Kommentar" -#: models.py:179 models.py:231 +#: members/models.py:202 members/models.py:254 msgid "Members" msgstr "Teilnehmer" -#: models.py:189 +#: members/models.py:212 msgid "Location" msgstr "Ort" -#: models.py:190 +#: members/models.py:213 msgid "Topic" msgstr "Thema" -#: models.py:214 +#: members/models.py:237 msgid "Jugendleiter" msgstr "Jugendleiter" -#: models.py:217 +#: members/models.py:240 msgid "Klettertreff" msgstr "Klettertreff" -#: models.py:218 +#: members/models.py:241 msgid "Klettertreffs" msgstr "Klettertreffs" -#: templates/admin/klettertreff_overview.html:9 +#: members/templates/admin/klettertreff_overview.html:9 msgid "date" msgstr "Datum" -#: templates/members/change_member.html:6 +#: members/templates/members/change_member.html:6 +msgid "Participations:" +msgstr "Freizeitteilnahmen:" + +#: members/templates/members/change_member.html:14 msgid "Qualities:" msgstr "Fähigkeiten:" -#: templates/members/change_member.html:10 +#: members/templates/members/change_member.html:18 msgid "Skill level" msgstr "Fähigkeitsniveau" diff --git a/jdav_web/members/models.py b/jdav_web/members/models.py index cbbc483..ca22efe 100644 --- a/jdav_web/members/models.py +++ b/jdav_web/members/models.py @@ -3,6 +3,7 @@ import uuid from django.db import models from django.utils.translation import ugettext_lazy as _ from django.utils import timezone +from django.urls import reverse from utils import RestrictedFileField import os @@ -126,6 +127,7 @@ class Member(models.Model): class Meta: verbose_name = _('member') verbose_name_plural = _('members') + permissions = (('may_see_qualities', 'Is allowed to see the quality overview'),) def get_skills(self): # get skills by summing up all the activities taken part in @@ -137,6 +139,10 @@ class Member(models.Model): if l.date < datetime.now().date()]) return skills + def get_activities(self): + # get activity overview + return MemberList.objects.filter(memberonlist__member=self) + class MemberList(models.Model): """Lets the user create a list of members in pdf format. """ @@ -178,6 +184,9 @@ class MemberList(models.Model): else: return "Gemeinschaftstour" + def get_absolute_url(self): + return reverse('admin:members_memberlist_change', args=[str(self.id)]) + class MemberOnList(models.Model): """ diff --git a/jdav_web/members/templates/members/change_member.html b/jdav_web/members/templates/members/change_member.html index c622fd1..785e28e 100644 --- a/jdav_web/members/templates/members/change_member.html +++ b/jdav_web/members/templates/members/change_member.html @@ -3,6 +3,14 @@ {% load static %} {% block after_field_sets %} +

{% trans "Participations:" %}

+ +{% endfor %} + +{% if perms.members.may_see_qualities %}

{% trans "Qualities:" %}

@@ -16,5 +24,6 @@ {% endfor %}
+{% endif %} {% endblock %}