MCPcopy Create free account
hub / github.com/HumanSignal/label-studio / TaskQuerySet

Class TaskQuerySet

label_studio/data_manager/managers.py:501–544  ·  view source on GitHub ↗

QuerySet for Task model with Data Manager filters and ordering support.

Source from the content-addressed store, hash-verified

499
500
501class TaskQuerySet(FSMStateQuerySetMixin, models.QuerySet):
502 """QuerySet for Task model with Data Manager filters and ordering support."""
503
504 def prepared(self, prepare_params=None):
505 """Apply filters, ordering and selected items to queryset
506
507 :param prepare_params: prepare params with project, filters, orderings, etc
508 :return: ordered and filtered queryset
509
510 Note: For multi-project queries, filters and ordering will use the first project's
511 configuration (label config, custom fields, etc.). This is backwards compatible
512 with single-project queries.
513 """
514 from projects.models import Project
515
516 queryset = self
517
518 if prepare_params is None:
519 return queryset
520
521 # Get the project for filter/ordering configuration
522 # For multi-project queries, use the first project's configuration
523 if prepare_params.is_multi_project:
524 project = Project.objects.get(pk=prepare_params.projects[0])
525 else:
526 # Backwards compatible: prepare_params.project is an int
527 project = Project.objects.get(pk=prepare_params.project)
528
529 request = prepare_params.request
530 queryset = apply_filters(queryset, prepare_params.filters, project, request)
531 queryset = apply_ordering(queryset, prepare_params.ordering, project, request, view_data=prepare_params.data)
532
533 if not prepare_params.selectedItems:
534 return queryset
535
536 # included selected items
537 if prepare_params.selectedItems.all is False and prepare_params.selectedItems.included:
538 queryset = queryset.filter(id__in=prepare_params.selectedItems.included)
539
540 # excluded selected items
541 elif prepare_params.selectedItems.all is True and prepare_params.selectedItems.excluded:
542 queryset = queryset.exclude(id__in=prepare_params.selectedItems.excluded)
543
544 return queryset
545
546
547class GroupConcat(Aggregate):

Callers 3

get_querysetMethod · 0.85
only_filteredMethod · 0.85
get_querysetMethod · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected