admin: add dashboard and explanations

pull/73/head
Christian Merten 1 year ago
parent 8c4d97b5d1
commit 8ef0bc848b
Signed by: christian.merten
GPG Key ID: D953D69721B948B3

@ -34,12 +34,16 @@ JET_SIDE_MENU_ITEMS = [
]}, ]},
{'app_label': 'members', 'items': [ {'app_label': 'members', 'items': [
{'name': 'member', 'permissions': ['members.view_member']}, {'name': 'member', 'permissions': ['members.view_member']},
{'name': 'group', 'permissions': ['members.view_group']},
{'name': 'membernotelist', 'permissions': ['members.view_membernotelist']}, {'name': 'membernotelist', 'permissions': ['members.view_membernotelist']},
{'name': 'freizeit', 'permissions': ['members.view_freizeit']}, {'name': 'freizeit', 'permissions': ['members.view_freizeit']},
{'name': 'klettertreff', 'permissions': ['members.view_klettertreff']}, {'name': 'klettertreff', 'permissions': ['members.view_klettertreff']},
]},
{'label': 'Gruppenverwaltung', 'app_label': 'members', 'permissions': ['members.view_group'], 'items': [
{'name': 'group', 'permissions': ['members.view_group']},
{'name': 'activitycategory', 'permissions': ['members.view_activitycategory']}, {'name': 'activitycategory', 'permissions': ['members.view_activitycategory']},
{'name': 'trainingcategory', 'permissions': ['members.view_trainingcategory']}, {'name': 'trainingcategory', 'permissions': ['members.view_trainingcategory']},
]},
{'label': 'Neue Mitglieder', 'app_label': 'members', 'permissions': ['members.view_memberunconfirmedproxy'], 'items': [
{'name': 'memberunconfirmedproxy', 'permissions': ['members.view_memberunconfirmedproxy']}, {'name': 'memberunconfirmedproxy', 'permissions': ['members.view_memberunconfirmedproxy']},
{'name': 'memberwaitinglist', 'permissions': ['members.view_memberwaitinglist']}, {'name': 'memberwaitinglist', 'permissions': ['members.view_memberwaitinglist']},
]}, ]},
@ -48,6 +52,8 @@ JET_SIDE_MENU_ITEMS = [
{'name': 'materialpart', 'permissions': ['material.view_materialpart']}, {'name': 'materialpart', 'permissions': ['material.view_materialpart']},
]}, ]},
{'label': 'Externe Links', 'items' : [ {'label': 'Externe Links', 'items' : [
{ 'label': 'Nextcloud', 'url': CLOUD_LINK } { 'label': 'Nextcloud', 'url': CLOUD_LINK },
{ 'label': 'DAV 360', 'url': DAV_360_LINK },
{ 'label': 'Julei-Wiki', 'url': WIKI_LINK },
]}, ]},
] ]

@ -26,6 +26,8 @@ ALLOWANCE_PER_DAY = 10
MAX_NIGHT_COST = 11 MAX_NIGHT_COST = 11
CLOUD_LINK = 'https://nc.cloud-jdav-hd.de' CLOUD_LINK = 'https://nc.cloud-jdav-hd.de'
DAV_360_LINK = 'https://dav360.de'
WIKI_LINK = 'https://davbgs.sharepoint.com/sites/S-114-O-JDAV-Jugendreferat'
# Admin setup # Admin setup

@ -667,6 +667,14 @@ class Member(Person):
settings.INVITE_AS_USER_TEXT.format(name=self.prename, settings.INVITE_AS_USER_TEXT.format(name=self.prename,
link=get_invite_as_user_key(self.invite_as_user_key))) link=get_invite_as_user_key(self.invite_as_user_key)))
def led_groups(self):
"""Returns a queryset of groups that this member is a youth leader of."""
return Group.objects.filter(leiters__pk=self.pk)
def led_freizeiten(self, limit=5):
"""Returns a queryset of freizeiten that this member is a youth leader of."""
return Freizeit.objects.filter(jugendleiter__pk=self.pk)[:limit]
class EmergencyContact(ContactWithPhoneNumber): class EmergencyContact(ContactWithPhoneNumber):
""" """

@ -0,0 +1,7 @@
{% extends "admin/app_index.html" %}
{% block content %}
<div id="content-main">
{% include "admin/app_list.html" with app_list=app_list show_changelinks=True %}
</div>
{% endblock %}

@ -0,0 +1,121 @@
{% extends "admin/index.html" %}
{% load i18n static %}
{% block content %}
<div id="content-main">
<div>
<p>
<h2>Willkommen, {% firstof user.member.prename user.get_username %}!</h2>
</p>
<p>
Der KOMPASS ist dein Kompass in der Jugendarbeit der JDAV Heidelberg. Hier hast du Zugriff
auf deine
<a href="{% url 'admin:members_member_changelist' %}">Jugendgruppen</a>, deine letzten
<a href="{% url 'admin:members_freizeit_changelist' %}">Ausfahrten</a> und deine
<a href="{% url 'admin:finance_statementunsubmitted_changelist' %}">Abrechnungen</a>.
</p>
</div>
{% if user.member %}
<div>
<p>
<h3>Deine Jugendgruppen</h3>
Hier siehst du alle von dir geleiteten Jugendgruppen.
</p>
<p>
<table>
{% for group in user.member.led_groups %}
<tr>
<td>
<a href='{% url 'admin:members_member_changelist' %}?group__id__exact={{group.pk}}'>{{ group.name }}</a>
</td>
</tr>
{% endfor %}
</table>
</p>
</div>
<div>
<p>
<h3>Deine letzten Ausfahrten</h3>
Hier siehst du alle von dir geleiteten Ausfahrten.
</p>
<p>
<table>
{% for freizeit in user.member.led_freizeiten %}
<tr>
<td>
<a href='{% url 'admin:members_freizeit_change' freizeit.pk %}'>{{freizeit.name}}</a>
</td>
</tr>
{% endfor %}
</table>
</p>
</div>
</div>
{% endif %}
{% endblock %}
{% block sidebar %}
<div id="content-related">
<div class="module" id="recent-actions-module">
<h2>Links</h2>
<table>
<tr>
<td>
<a href="https://nc.cloud-jdav-hd.de/">Nextcloud</a>
</td>
<td>
Hier liegen Vorlagen für Formulare und nützliche Handbücher.
</td>
</tr>
<tr>
<td>
<a href="https://dav360.de">DAV 360</a>
</td>
<td>
Zugriff zu Online Office, Teams und deinem DAV Mailaccount.
</td>
</tr>
<tr>
<td>
<a href="https://davbgs.sharepoint.com/sites/S-114-O-JDAV-Jugendreferat">Julei-Wiki</a>
</td>
<td>
Informationen zum Jugendleiter:in-sein.
</td>
</tr>
</table>
<h2>Ansprechpersonen</h2>
{% comment %}
Nicht alles im Leben ist ein automatisierter Prozess. Falls du trotz KOMPASS nicht mehr
weiterweißt oder sonst der Schuh drückt, schreibe eine E-Mail an eine der folgenden Personen:
{% endcomment %}
<div>
<table>
<tr>
<td>
Jugendreferat
</td>
<td>
<a href="mailto:jugendreferat@jdav-hd.de">jugendreferat@jdav-hd.de</a>
</td>
</tr>
<tr>
<td>
Fragen zum Kompass
</td>
<td>
<a href="mailto:digitales@jdav-hd.de">digitales@jdav-hd.de</a>
</td>
</tr>
</table>
</div>
</div>
</div>
{% endblock %}

@ -0,0 +1,106 @@
{% extends "admin/app_index.html" %}
{% block content %}
<div id="content-main">
<div class="app-members module current-app">
<h2>Meine Jugendgruppen</h2>
<p>
Hier siehst du alle Teilnehmer:innen deiner Jugendgruppen und alle von dir geleiteten Ausfahrten.
</p>
<table>
<tr>
<th scope="row">
<a href="{% url 'admin:members_member_changelist' %}">Teilnehmer:innen</a>
</th>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">
<a href="{% url 'admin:members_freizeit_changelist' %}">Ausfahrten</a>
</th>
<td></td>
<td></td>
</tr>
</table>
<table>
{% if perms.members.change_waitinglist %}
<br>
<div class="app-members module current-app">
<h2>Neue Mitglieder</h2>
<p>
Hier werden neue Mitglieder verwaltet. Um ein neues Mitglied anzulegen, muss sich die Person
<a href="{% url 'members:register_waiting_list' %}">anmelden</a>. Daraufhin landet
sie auf der <a href="{% url 'admin:members_memberwaitinglist_changelist' %}">Warteliste</a>. Eine
Person auf der Warteliste kannst du dann zu einer Schnupperstunde einer gewählten Gruppe einladen.
Diese Einladung enthält einen Registrierungslink zu einem Formular in dem die Person alle ihre
Stammdaten eingbit. Diese Daten landen dann unter
<a href="{% url 'admin:members_memberunconfirmedproxy_changelist' %}">Unbestätigte Registrierungen</a>.
</p>
<table>
<tr>
<th scope="row">
<a href="{% url 'admin:members_memberwaitinglist_changelist' %}">Warteliste</a>
</th>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">
<a href="{% url 'admin:members_memberunconfirmedproxy_changelist' %}">Unbestätigte Registrierungen</a>
</th>
<td></td>
<td></td>
</tr>
</table>
</div>
{% endif %}
{% if perms.members.change_group %}
<br>
<div class="app-members module current-app">
<h2>Gruppenverwaltung</h2>
<p>
Hier kannst du Gruppen anlegen und ändern.
</p>
<table>
<tr>
<th scope="row">
<a href="{% url 'admin:members_group_changelist' %}">Gruppen</a>
</th>
<td></td>
<td></td>
</tr>
</table>
</div>
{% endif %}
{% if perms.members.change_activitycategory %}
<br>
<div class="app-members module current-app">
<h2>Sonstiges</h2>
<p>
Hier kannst du mögliche Aktivitäten und Fortbildungstypen festlegen. Diese bestimmen, welche
Aktivitäten bzw. Fortbildungen Nutzer:innen auswählen können.
</p>
<table>
<tr>
<th scope="row">
<a href="{% url 'admin:members_activitycategory_changelist' %}">Aktivitäten</a>
</th>
<td></td>
<td></td>
</tr>
<tr>
<th scope="row">
<a href="{% url 'admin:members_trainingcategory_changelist' %}">Fortbildungstypen</a>
</th>
<td></td>
<td></td>
</tr>
</table>
</div>
{% endif %}
</div>
{% endblock %}
Loading…
Cancel
Save