Skip to content
Snippets Groups Projects
Commit 4bfb7f70 authored by Roang's avatar Roang
Browse files

Add teams navigation to the backoffice

parent 4a1ace36
No related branches found
No related tags found
No related merge requests found
......@@ -761,6 +761,10 @@ msgstr "Karte"
msgid "nav_moderation"
msgstr "Moderation"
# Use translation from core
msgid "Teams"
msgstr ""
msgid "nav_conference_admin"
msgstr "Konferenz"
......@@ -1443,10 +1447,6 @@ msgstr "Self-organized Session löschen"
msgid "SoS__delete__introduction"
msgstr "Hiermit wird diese Self-organized Session gelöscht. Wenn du sie nur unsichtbar machen möchtest gibt es weiter oben die Möglichkeit die Self-organized Session zurückzunehmen!"
# use translation from core
msgid "Teams"
msgstr ""
msgid "Team__name"
msgstr "Name"
......
......@@ -761,6 +761,10 @@ msgstr "map"
msgid "nav_moderation"
msgstr "moderation"
# Use translation from core
msgid "Teams"
msgstr ""
msgid "nav_conference_admin"
msgstr "Conference"
......@@ -1448,10 +1452,6 @@ msgstr "Delete self-organized session"
msgid "SoS__delete__introduction"
msgstr "This removes this self-organized session. If you only want to make it invisible, there is an option above to recall the self-organized session above!"
# use translation from core
msgid "Teams"
msgstr ""
msgid "Team__name"
msgstr "name"
......
......@@ -96,6 +96,12 @@
</a>
</li>
{% endif %}
<li class="nav-item">
<a class="nav-link{% if active_page == 'teams' %} active{% endif %}"
href="{% url 'backoffice:teams' %}">{% trans "Teams" %}
{% if active_page == 'teams' %}<span class="visually-hidden">{{ activetab_srmarker }}</span>{% endif %}
</a>
</li>
{% if has_conference_admin or has_assembly_registration_admin %}
<li class="nav-item">
<a class="nav-link{% if active_page == 'conference_admin' %} active{% endif %}"
......
......@@ -3,14 +3,65 @@ from typing import Any
from django.contrib.postgres.aggregates.general import ArrayAgg
from django.db.models import BooleanField, Case, Count, When
from django.db.models.query import Q, QuerySet
from django.urls import reverse
from django.utils.translation import gettext as _
from django.views.generic import ListView
from core.models import ConferenceMember, Team
from backoffice.views.mixins import ConferenceRuleLoginRequiredMixin
from backoffice.views.mixins import ConferenceRuleLoginRequiredMixin, guess_active_sidebar_item
class TeamListView(ConferenceRuleLoginRequiredMixin, ListView):
class TeamNavContextMixin(ConferenceRuleLoginRequiredMixin):
def get_context_data(self, **kwargs) -> dict[str, Any]:
member = ConferenceMember.get_member(
conference=self.conference,
user=self.request.user,
)
teams = [
{
'caption': team['name'],
'link': reverse(
'backoffice:team',
kwargs={
'uuid': team['uuid'],
},
),
'classes': [],
}
for team in Team.objects.all().values(
'uuid',
'name',
'require_staff',
)
if member.is_staff or not team['require_staff']
]
team_entry = {
'caption': _('Teams'),
'link': reverse('backoffice:teams'),
'children': teams,
'count': len(teams),
'expanded': True,
}
context = {
**super().get_context_data(**kwargs),
'active_page': 'teams',
'sidebar': {
'title': _('Teams'),
'title_link': reverse('backoffice:teams'),
'items': [
team_entry,
],
},
}
guess_active_sidebar_item(self.request, context['sidebar']['items'])
return context
class TeamListView(TeamNavContextMixin, ListView):
model = Team
template_name = 'backoffice/teams/list.html'
context_object_name = 'teams'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment