diff --git a/src/backoffice/locale/de/LC_MESSAGES/django.po b/src/backoffice/locale/de/LC_MESSAGES/django.po index 8f393e510154b53d2ef8f3da70945d9ced02f105..01b290213c7b5f87cbb10d5411d17e320a4545fe 100644 --- a/src/backoffice/locale/de/LC_MESSAGES/django.po +++ b/src/backoffice/locale/de/LC_MESSAGES/django.po @@ -960,6 +960,12 @@ msgstr "" msgid "Assembly__is_remote" msgstr "" +msgid "moderation__public_link" +msgstr "öffentliche Ansicht" + +msgid "moderation__notpublic" +msgstr "nicht veröffentlicht" + msgid "moderation__assembly__cannotunhide" msgstr "Eine versteckte Assembly muss vom Assembly-Team wieder in den passenden Status zurückversetzt werden (multiple Optionen)." @@ -1073,6 +1079,14 @@ msgstr "Projekt Banner" msgid "PlatformUser__type" msgstr "Typ" +msgid "username" +msgstr "Benutzername" + +# use translation from core +msgid "PlatformUser__display_name" +msgstr "" + +# use translation from core/Django msgid "date joined" msgstr "" @@ -1086,15 +1100,20 @@ msgstr "" msgid "BulletinBoardEntrys" msgstr "Boardeinträge" +# use translation from core +msgid "EventParticipant__is_accepted" +msgstr "" + +# use translation from core +msgid "EventParticipant__is_public" +msgstr "" + msgid "not active" msgstr "nicht aktiv" msgid "PlatformUser__registration" msgstr "Registrierung" -msgid "username" -msgstr "Benutzername" - msgid "StaticPage__title" msgstr "Überschrift" diff --git a/src/backoffice/locale/en/LC_MESSAGES/django.po b/src/backoffice/locale/en/LC_MESSAGES/django.po index 964da351cdfc5905c33b3e1cd0e7dd86fca4b004..5a8ded02d2136cd57c6416572e2522bd22c5ff24 100644 --- a/src/backoffice/locale/en/LC_MESSAGES/django.po +++ b/src/backoffice/locale/en/LC_MESSAGES/django.po @@ -963,6 +963,12 @@ msgstr "" msgid "Assembly__is_remote" msgstr "" +msgid "moderation__public_link" +msgstr "public link" + +msgid "moderation__notpublic" +msgstr "not public" + msgid "moderation__assembly__cannotunhide" msgstr "A hidden assembly can only be reversed by the assembly team as there are multiple valid states/types." @@ -1077,6 +1083,13 @@ msgstr "project banner" msgid "PlatformUser__type" msgstr "" +msgid "username" +msgstr "" + +# use translation from core +msgid "PlatformUser__display_name" +msgstr "" + # use translation from core msgid "date joined" msgstr "" @@ -1091,15 +1104,20 @@ msgstr "" msgid "BulletinBoardEntrys" msgstr "board entries" +# use translation from core +msgid "EventParticipant__is_accepted" +msgstr "" + +# use translation from core +msgid "EventParticipant__is_public" +msgstr "" + msgid "not active" msgstr "" msgid "PlatformUser__registration" msgstr "registration" -msgid "username" -msgstr "" - # use translation from core msgid "StaticPage__title" msgstr "" diff --git a/src/backoffice/templates/backoffice/moderation_assembly-detail.html b/src/backoffice/templates/backoffice/moderation_assembly-detail.html index 750c917236c2c54a47ce2d1f9d5bbee2d79b2d70..1b27538235c4cebd4f25e7b79dd7d2efe2b43e7f 100644 --- a/src/backoffice/templates/backoffice/moderation_assembly-detail.html +++ b/src/backoffice/templates/backoffice/moderation_assembly-detail.html @@ -2,6 +2,7 @@ {% load humanize %} {% load i18n %} {% load static %} +{% load hub_absolute %} {% block content %} @@ -66,6 +67,11 @@ </div> <div class="col-md-3"> + <a class="d-block btn btn-outline-{% if event.is_public %}success{% else %}warning{% endif %} mb-3" href="{% hub_absolute 'plainui:assembly' assembly_slug=assembly.slug %}"> + {% trans "moderation__public_link" %} + {% if not assembly.is_public %}<br><small class="text-muted fst-italic">{% trans "moderation__notpublic" %}</small>{% endif %} + </a> + <div class="card border-primary-subtle"> <div class="card-header bg-primary-subtle text-bg-primary">{% trans "nav_moderation" %}</div> <div class="card-body" id="moderation"> diff --git a/src/backoffice/templates/backoffice/moderation_event-detail.html b/src/backoffice/templates/backoffice/moderation_event-detail.html index 10a3c1c89175e793bf83111c53c8e641354d0362..35d7db8786f6379500fb88a1bec9de8c1e2e314f 100644 --- a/src/backoffice/templates/backoffice/moderation_event-detail.html +++ b/src/backoffice/templates/backoffice/moderation_event-detail.html @@ -2,10 +2,11 @@ {% load humanize %} {% load i18n %} {% load c3assemblies %} +{% load hub_absolute %} {% block content %} - <h1>Event "{{ object.slug }}": {{ object.name }}</h1> + <h1>{% trans "Event" %} "{{ object.slug }}": {{ object.name }}</h1> <div class="row"> <div class="col-md-9"> @@ -51,7 +52,7 @@ <dt class="col-sm-3">{% trans "Event__owner" %}:</dt> <dd class="col-sm-9">{% if object.owner %}<a href="{% url "backoffice:moderation-user-detail" pk=object.owner.id %}">{{ object.owner.username }}</a>{% else %}-/-{% endif %}</dd> <dt class="col-sm-3">{% trans "Event__public_speakers" %}:</dt> - <dd class="col-sm-9">{% for speaker in object.public_speaker %}- <a href="{% url "backoffice:moderation-user-detail" pk=speaker.participant.id %}">{{ speaker.participant.username }}</a><br>{% empty %}-/-{% endfor %}</dd> + <dd class="col-sm-9">{% for speaker in object.public_speakers %}- <a href="{% url "backoffice:moderation-user-detail" pk=speaker.participant.id %}" title="{{ speaker.participant.username }}">{{ speaker.participant.get_display_name }}</a><br>{% empty %}-/-{% endfor %}</dd> </dl> </div> </div> @@ -79,6 +80,11 @@ </div> <div class="col-md-3"> + <a class="d-block btn btn-outline-{% if event.is_public %}success{% else %}warning{% endif %} mb-3" href="{% hub_absolute 'plainui:event' event_slug=event.slug %}"> + {% trans "moderation__public_link" %} + {% if not event.is_public %}<br><small class="text-muted fst-italic">{% trans "moderation__notpublic" %}</small>{% endif %} + </a> + <div class="card border-primary-subtle"> <div class="card-header bg-primary-subtle text-bg-primary">{% trans "nav_moderation" %}</div> <div class="card-body" id="moderation"> diff --git a/src/backoffice/templates/backoffice/moderation_user-detail.html b/src/backoffice/templates/backoffice/moderation_user-detail.html index 4491508a195fc7783527030ff5c628cb0fb72a5f..77bc599934d957b6a7dfd7097e252379b3e353c8 100644 --- a/src/backoffice/templates/backoffice/moderation_user-detail.html +++ b/src/backoffice/templates/backoffice/moderation_user-detail.html @@ -20,6 +20,10 @@ <dd class="col-sm-9">{{ object.id }}</dd> <dt class="col-sm-3">UUID:</dt> <dd class="col-sm-9">{{ object.uuid }}</dd> + <dt class="col-sm-3">{% trans "username" %}:</dt> + <dd class="col-sm-9">{{ object.username|default:"-/-" }}</dd> + <dt class="col-sm-3">{% trans "PlatformUser__display_name" %}:</dt> + <dd class="col-sm-9">{{ object.display_name|default:"-/-" }}</dd> <dt class="col-sm-3">{% trans "date joined" %}:</dt> <dd class="col-sm-9">{{ object.date_joined }} ({{ object.date_joined|naturaltime }})</dd> <dt class="col-sm-3">{% trans "active" %}:</dt> @@ -51,7 +55,7 @@ {% endfor %}</ul> </div> </div> - + <div class="row"> <div class="col-md-6"> @@ -86,7 +90,32 @@ </div> </div> </div> - + + <div class="row"> + <div class="col-md-12"> + + <div class="card mb-3"> + <div class="card-header">{% trans "Events" %} (beteiligt)</div> + <div class="card-body"> + <ul>{% for e in object.events.all %} + <li> + <strong>{{ e.get_role_display }}</strong> + {% if e.is_accepted %}<span class="badge text-bg-success">{% trans "EventParticipant__is_accepted" %}</span> + {% else %}<span class="badge text-bg-warning text-decoration-line-through">{% trans "EventParticipant__is_accepted" %}</span> + {% endif %} + {% if e.is_public %}<span class="badge text-bg-success">{% trans "EventParticipant__is_public" %}</span> + {% else %}<span class="badge text-bg-warning text-decoration-line-through">{% trans "EventParticipant__is_public" %}</span> + {% endif %} + <a href="{% url "backoffice:moderation-event-detail" pk=e.event.pk %}">{{ e.event.name }}</a><br> + <small>{{ e.event.schedule_start }} .. {{ e.event.schedule_end }} ({{ e.event.schedule_duration|naturaltimespan }})</small> + </li> + {% empty %} + <span class="text-muted">-/-</span> + {% endfor %}</ul> + </div> + </div> + </div> + </div> </div> <div class="col-md-3"> <div class="card border-primary-subtle mb-3"> @@ -106,7 +135,7 @@ <a class="mb-3 w-100 btn btn-outline-primary" href="{% url "backoffice:moderation-user-rename" pk=object.pk %}"><i class="bi bi-mask"></i> rename</a> </div> </div> - + <div class="card mb-3"> <div class="card-header">DMs</div> <div class="card-body"> diff --git a/src/backoffice/templates/backoffice/moderation_user-item.html b/src/backoffice/templates/backoffice/moderation_user-item.html index 2a755f0e4d73dd1a688a246ef2dbfb9b2e3ca2d0..05dc57661d06e04afc8bec341faec782430f1331 100644 --- a/src/backoffice/templates/backoffice/moderation_user-item.html +++ b/src/backoffice/templates/backoffice/moderation_user-item.html @@ -2,7 +2,7 @@ {% load humanize %} <div class="card mb-1"> <div class="card-body"> - User "<a href="{% url 'backoffice:moderation-user-detail' pk=user.pk %}" class="fw-bold">{{ user.username }}</a>" + User <a href="{% url 'backoffice:moderation-user-detail' pk=user.pk %}" class="fw-bold"><code>{{ user.username }}</code> "{{ user.display_name }}"</a> <br> {% if user.is_active %}<span class="text-success">{% trans "active" %}</span>{% else %}<span class="text-danger">{% trans "not active" %}</span>{% endif %} diff --git a/src/backoffice/views/moderation.py b/src/backoffice/views/moderation.py index e8bc456dbb5de94c082f07bd67bc712548568119..01c233b86ec4e19c2202a7fe2d858db05514e762 100644 --- a/src/backoffice/views/moderation.py +++ b/src/backoffice/views/moderation.py @@ -102,11 +102,13 @@ def lookup_moderation_items(conference: Conference, query: str): q_slug = Q() q_name = Q() q_username = Q() + q_display_name = Q() for word in words: q_slug = q_slug & Q(slug__icontains=word) q_name = q_name & Q(name__icontains=word) q_username = q_username & Q(username__icontains=word) + q_display_name = q_display_name & Q(display_name__icontains=word) for a in conference.assemblies.filter(q_slug).values('pk'): candidates.append(('assembly', a['pk'])) @@ -114,7 +116,7 @@ def lookup_moderation_items(conference: Conference, query: str): candidates.append(('badge', b['pk'])) for e in conference.events.filter(q_slug).values('pk'): candidates.append(('event', e['pk'])) - for u in PlatformUser.objects.filter(conferences__conference=conference).filter(q_username | q_slug).values('pk'): + for u in PlatformUser.objects.filter(conferences__conference=conference).filter(q_username | q_display_name | q_slug).values('pk'): candidates.append(('user', u['pk'])) for p in conference.pages.filter(q_slug).values('pk'): candidates.append(('wiki', p['pk']))