ФУНКЦИИ - МЕЖПРОЕКТНАЯ КОММУНИКАЦИЯ: унификация фильтров внешнего контура с внутренним rich-filters слоем

This commit is contained in:
DCCONSTRUCTIONS
2026-04-21 12:29:32 +03:00
parent 2c54a8f274
commit 0a85ea3cb2
16 changed files with 588 additions and 564 deletions
@@ -323,6 +323,7 @@ class ExternalContourReadMixin:
for key in [
"direction",
"status",
"state_groups",
"state_ids",
"priority",
"assignee_ids",
@@ -337,6 +338,9 @@ class ExternalContourReadMixin:
filters["has_unread_updates"] = self.parse_bool_param(request, "has_unread_updates")
filters["search"] = (request.query_params.get("search") or "").strip()
filters["target_date_exact"] = (request.query_params.get("target_date_exact") or "").strip()
filters["target_date_from"] = (request.query_params.get("target_date_from") or "").strip()
filters["target_date_to"] = (request.query_params.get("target_date_to") or "").strip()
return filters
def get_sorting(self, request):
@@ -392,6 +396,8 @@ class ExternalContourReadMixin:
queryset = self.apply_status_filter(queryset, filters["status"])
if filters["state_groups"]:
queryset = queryset.filter(issue__state__group__in=filters["state_groups"])
if filters["state_ids"]:
queryset = queryset.filter(issue__state_id__in=filters["state_ids"])
if filters["priority"]:
@@ -419,6 +425,12 @@ class ExternalContourReadMixin:
)
if filters["label_ids"]:
queryset = queryset.filter(issue__label_issue__label_id__in=filters["label_ids"])
if filters["target_date_exact"]:
queryset = queryset.filter(issue__target_date=filters["target_date_exact"])
if filters["target_date_from"]:
queryset = queryset.filter(issue__target_date__gte=filters["target_date_from"])
if filters["target_date_to"]:
queryset = queryset.filter(issue__target_date__lte=filters["target_date_to"])
if filters["has_unread_updates"] is not None:
unread_request_ids = self.get_unread_request_ids(request.user)
if filters["has_unread_updates"]: