Skip to content
Snippets Groups Projects
Commit 3185a8b9 authored by Roang's avatar Roang
Browse files

Fix apply_assembly_rights_filter

parent 559543b2
No related branches found
No related tags found
No related merge requests found
......@@ -3,9 +3,9 @@ from typing import TYPE_CHECKING, Generic, TypeVar
from django.core.exceptions import ImproperlyConfigured
from django.db import models
from django.db.models import F, Model, QuerySet
from django.db.models import Model, QuerySet
from core.models.assemblies import Assembly
from core.models.assemblies import Assembly, AssemblyMember
from core.models.conference import ConferenceMember
if TYPE_CHECKING:
......@@ -73,9 +73,10 @@ class ConferenceManagerMixin(models.Manager, Generic[_ModelType]):
else:
prefix = f'{self.assembly_filter}__'
queryset = queryset.select_related(self.assembly_filter)
queryset = queryset.filter(**{f'{prefix}members__member': member}).exclude(**{f'{prefix}__state_assembly__in': [Assembly.State.HIDDEN]})
queryset = queryset.annotate(can_manage=F(f'{prefix}members__can_manage_assembly'))
return queryset.filter(**{f'{prefix}members__can_manage_assembly': True}) if only_manageable else queryset
allowed_members = AssemblyMember.objects.filter(member=member.user)
allowed_members = allowed_members.filter(can_manage_assembly=True) if only_manageable else allowed_members
queryset = queryset.filter(**{f'{prefix}members__in': allowed_members}).exclude(**{f'{prefix}state_assembly__in': [Assembly.State.HIDDEN]})
return queryset
def apply_self_organized_rights_filter(
self,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment