From e554b9b9b3d2645c35eb20346a8e8add1835e047 Mon Sep 17 00:00:00 2001 From: Lucas Brandstaetter <lucas@branstaetter.tech> Date: Fri, 29 Dec 2023 14:54:34 +0100 Subject: [PATCH] Show hidden assemblies in BO Fixes #537 --- .../templates/backoffice/assembly_editchildren.html | 4 ++-- src/backoffice/views/assemblyteam.py | 3 ++- src/backoffice/views/channelteam.py | 3 ++- src/backoffice/views/mixins.py | 6 +----- src/core/models/assemblies.py | 4 ++-- 5 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/backoffice/templates/backoffice/assembly_editchildren.html b/src/backoffice/templates/backoffice/assembly_editchildren.html index ac8f2c29d..e325c1703 100644 --- a/src/backoffice/templates/backoffice/assembly_editchildren.html +++ b/src/backoffice/templates/backoffice/assembly_editchildren.html @@ -47,7 +47,7 @@ <ul> {% for child in children %} <li> - <a href="{% url 'backoffice:assembly' pk=child.id %}">{{ child.name }}</a> + {% if child.state_assembly == "hidden" %}<i class="bi bi-eye-slash" title='hidden'></i> {% endif %}<a href="{% url 'backoffice:assembly' pk=child.id %}">{{ child.name }}</a> <form action="{% url 'backoffice:assembly-editchildren' pk=assembly.id %}" method="POST" style="display: inline;">{% csrf_token %} <input type="hidden" name="delete" value="{{ child.pk }}"> <button type="submit" class="btn btn-sm btn-secondary">{% trans 'delete' %}</button> @@ -64,4 +64,4 @@ </div> </div> -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/src/backoffice/views/assemblyteam.py b/src/backoffice/views/assemblyteam.py index 37ffb3621..4b29353b1 100644 --- a/src/backoffice/views/assemblyteam.py +++ b/src/backoffice/views/assemblyteam.py @@ -41,7 +41,8 @@ class AssemblyTeamMixin(ConferenceLoginRequiredMixin): 'accepted': (Q(state_assembly__in=Assembly.PUBLIC_STATES), _('nav_assemblies_accepted')), 'pending': (Q(state_assembly__in=[Assembly.State.REGISTERED]), _('nav_assemblies_pending')), 'planned': (Q(state_assembly__in=[Assembly.State.PLANNED]), _('nav_assemblies_planned')), - 'rejected': (Q(state_assembly__in=[Assembly.State.REJECTED, Assembly.State.HIDDEN]), _('nav_assemblies_rejected')), + 'rejected': (Q(state_assembly__in=[Assembly.State.REJECTED]), _('nav_assemblies_rejected')), + 'hidden': (Q(state_assembly__in=[Assembly.State.HIDDEN]), _('nav_assemblies_hidden')), 'not_selected': (Q(state_assembly__in=[Assembly.State.NONE]), _('nav_assemblies_not_selected')), } diff --git a/src/backoffice/views/channelteam.py b/src/backoffice/views/channelteam.py index bee9d64cf..e8c259fdd 100644 --- a/src/backoffice/views/channelteam.py +++ b/src/backoffice/views/channelteam.py @@ -14,7 +14,8 @@ class ChannelsMixin: 'accepted': (Q(state_channel__in=Assembly.PUBLIC_STATES), _('nav_channels_accepted')), 'pending': (Q(state_channel__in=[Assembly.State.REGISTERED]), _('nav_channels_pending')), 'planned': (Q(state_channel__in=[Assembly.State.PLANNED]), _('nav_channels_planned')), - 'rejected': (Q(state_channel__in=[Assembly.State.REJECTED, Assembly.State.HIDDEN]), _('nav_channels_rejected')), + 'rejected': (Q(state_channel__in=[Assembly.State.REJECTED]), _('nav_channels_rejected')), + 'hidden': (Q(state_channel__in=[Assembly.State.HIDDEN]), _('nav_channels_hidden')), } permission_required = ['core.channel_team'] active_page = 'channels' diff --git a/src/backoffice/views/mixins.py b/src/backoffice/views/mixins.py index 30d6190c7..20bd7303b 100644 --- a/src/backoffice/views/mixins.py +++ b/src/backoffice/views/mixins.py @@ -181,11 +181,7 @@ class AssemblyMixin(ConferenceLoginRequiredMixin): if assembly.has_user(self.request.user): # don't set self._staff_mode = False here as this would prevent assembly team members to edit their own assemblies - if ( - not self._staff_access - and assembly.state_assembly in [Assembly.State.NONE, Assembly.State.HIDDEN] - and assembly.state_channel in [Assembly.State.NONE, Assembly.State.HIDDEN] - ): + if not self._staff_access and assembly.state_assembly in [Assembly.State.NONE] and assembly.state_channel in [Assembly.State.NONE]: raise Assembly.DoesNotExist # neither owner/manager nor assembly team? go away diff --git a/src/core/models/assemblies.py b/src/core/models/assemblies.py index 223de736a..7e8139efa 100644 --- a/src/core/models/assemblies.py +++ b/src/core/models/assemblies.py @@ -71,7 +71,7 @@ class AssemblyManager(models.Manager): qs = qs.filter(members__member=user) # but don't show "hidden" ones to the user - qs = qs.exclude(state_assembly__in=[Assembly.State.NONE, Assembly.State.HIDDEN], state_channel__in=[Assembly.State.NONE, Assembly.State.HIDDEN]) + qs = qs.exclude(state_assembly__in=[Assembly.State.NONE], state_channel__in=[Assembly.State.NONE]) # finally return the resulting QuerySet return qs @@ -403,7 +403,7 @@ class Assembly(TaggedItemMixin, models.Model): @property def children(self): - return Assembly.objects.filter(parent=self).exclude(state_assembly=Assembly.State.HIDDEN).order_by('name') + return Assembly.objects.filter(parent=self).order_by('name') @property def public_children(self): -- GitLab