Skip to content

Commit 905f908

Browse files
authored
Merge pull request #429 from PROCOLLAB-github/dev
Dev
2 parents c6aa85b + 99dbb39 commit 905f908

1 file changed

Lines changed: 12 additions & 1 deletion

File tree

feed/views.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from django.contrib.contenttypes.models import ContentType
2-
from django.db.models import QuerySet
2+
from django.db.models import QuerySet, Q
33
from rest_framework.generics import CreateAPIView
44
from rest_framework.response import Response
55
from rest_framework.views import APIView
@@ -10,6 +10,7 @@
1010
from news.models import News
1111
from .serializers import NewsFeedListSerializer
1212
from projects.models import Project
13+
from partner_programs.models import PartnerProgramUserProfile
1314
from vacancy.models import Vacancy
1415

1516

@@ -26,12 +27,22 @@ def _get_filter_data(self) -> list[str]:
2627
news_types.append("customuser")
2728
return news_types
2829

30+
def _get_excluded_projects_ids(self) -> list[int]:
31+
"""IDs for exclude projects which in Partner Program."""
32+
excluded_projects = PartnerProgramUserProfile.objects.values_list("project_id", flat=True)
33+
return excluded_projects
34+
2935
def get_queryset(self) -> QuerySet[News]:
3036
filters = self._get_filter_data()
37+
excluded_project_ids: list[int] = self._get_excluded_projects_ids()
38+
3139
queryset = (
3240
News.objects.select_related("content_type")
3341
.prefetch_related("content_object", "files")
3442
.filter(content_type__model__in=filters)
43+
.exclude(
44+
Q(content_type__model="project") & Q(object_id__in=excluded_project_ids)
45+
)
3546
.order_by("-datetime_created")
3647
)
3748
return queryset

0 commit comments

Comments
 (0)