Skip to content
Merged
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
0aa5b61
[submodules] Build static HumanSignal/dm2
Travis1282 Sep 6, 2023
a61c6c9
[submodules] Build static HumanSignal/label-studio-frontend
Travis1282 Sep 6, 2023
dde8558
[submodules] Build static HumanSignal/dm2
Travis1282 Sep 8, 2023
183f22d
Merge branch 'origin/develop' into 'fb-lsdv-5044/task-count-total'
Travis1282 Sep 8, 2023
b4db02c
[submodules] Build static HumanSignal/label-studio-frontend
Travis1282 Sep 14, 2023
416ab4f
Merge branch 'origin/develop' into 'fb-lsdv-5044/task-count-total'
Travis1282 Sep 14, 2023
8bd195a
[submodules] Build static HumanSignal/dm2
Travis1282 Sep 14, 2023
3fe3618
[submodules] Build static HumanSignal/dm2
Travis1282 Sep 15, 2023
d6e3422
Merge branch 'origin/develop' into 'fb-lsdv-5044/task-count-total'
Travis1282 Sep 15, 2023
b5a2258
[submodules] Build static HumanSignal/label-studio-frontend
Travis1282 Sep 15, 2023
a555aa2
[submodules] Build static HumanSignal/label-studio-frontend
Travis1282 Sep 17, 2023
6cb8b2f
Merge branch 'origin/develop' into 'fb-lsdv-5044/task-count-total'
Travis1282 Sep 17, 2023
1e8343c
[submodules] Build static HumanSignal/label-studio-frontend
Travis1282 Sep 19, 2023
2a78b02
Merge branch 'origin/develop' into 'fb-lsdv-5044/task-count-total'
Travis1282 Sep 19, 2023
f93e85e
[submodules] Build static HumanSignal/label-studio-frontend
Travis1282 Sep 20, 2023
d6371ed
Merge branch 'origin/develop' into 'fb-lsdv-5044/task-count-total'
Travis1282 Sep 20, 2023
0ebff97
[submodules] Build static HumanSignal/label-studio-frontend
Travis1282 Sep 20, 2023
12985c9
Add queue_total and queue_done fields to project serializer
dredivaris Sep 29, 2023
929301e
[submodules] Build static HumanSignal/label-studio-frontend
AndrejOros Oct 4, 2023
92b4a85
docs: LSF Update
AndrejOros Oct 4, 2023
dd66eaa
Merge branch 'origin/develop' into 'fb-lsdv-5044/task-count-total'
AndrejOros Oct 4, 2023
95ade79
ci: Build frontend
robot-ci-heartex Oct 4, 2023
6462fcd
[submodules] Build static HumanSignal/dm2
Travis1282 Oct 4, 2023
4be0b7b
[submodules] Build static HumanSignal/label-studio-frontend
Travis1282 Oct 4, 2023
5986027
[submodules] Build static HumanSignal/dm2
Travis1282 Oct 5, 2023
43a35e2
merge develop
bmartel Oct 10, 2023
eb6df5e
Merge remote-tracking branch 'origin/develop' into fb-lsdv-5044/task-…
bmartel Oct 10, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions label_studio/projects/serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,12 @@
"""
import bleach
from constants import SAFE_HTML_ATTRIBUTES, SAFE_HTML_TAGS
from django.db.models import Q
from projects.models import Project, ProjectImport, ProjectOnboarding, ProjectReimport, ProjectSummary
from rest_flex_fields import FlexFieldsModelSerializer
from rest_framework import serializers
from rest_framework.serializers import SerializerMethodField
from tasks.models import Task
from users.serializers import UserSimpleSerializer


Expand Down Expand Up @@ -66,6 +68,16 @@ class ProjectSerializer(FlexFieldsModelSerializer):
)
finished_task_number = serializers.IntegerField(default=None, read_only=True, help_text='Finished tasks')

queue_total = serializers.SerializerMethodField()
queue_done = serializers.SerializerMethodField()

@property
def user_id(self):
try:
return self.context['request'].user.id
except KeyError:
return next(iter(self.context['user_cache']))

@staticmethod
def get_config_has_control_tags(project):
return len(project.get_parsed_config()) > 0
Expand Down Expand Up @@ -141,6 +153,8 @@ class Meta:
'reveal_preannotations_interactively',
'pinned_at',
'finished_task_number',
'queue_total',
'queue_done',
]

def validate_label_config(self, value):
Expand All @@ -152,6 +166,27 @@ def validate_label_config(self, value):
self.instance.validate_config(value)
return value

def get_queue_total(self, project):
remain = project.tasks.filter(
Q(is_labeled=False) & ~Q(annotations__completed_by_id=self.user_id)
| Q(annotations__completed_by_id=self.user_id)
).distinct()
return remain.count()

def get_queue_done(self, project):
tasks_filter = {
'project': project,
'annotations__completed_by_id': self.user_id,
}

if project.skip_queue == project.SkipQueue.REQUEUE_FOR_ME:
tasks_filter['annotations__was_cancelled'] = False

already_done_tasks = Task.objects.filter(**tasks_filter)
result = already_done_tasks.distinct().count()

return result


class ProjectOnboardingSerializer(serializers.ModelSerializer):
class Meta:
Expand Down