diff --git a/apps/common/const/choices.py b/apps/common/const/choices.py index fba8418df..9b6c817f3 100644 --- a/apps/common/const/choices.py +++ b/apps/common/const/choices.py @@ -12,6 +12,7 @@ class Trigger(models.TextChoices): class Status(models.TextChoices): + ready = 'ready', _('Ready') pending = 'pending', _("Pending") running = 'running', _("Running") success = 'success', _("Success") diff --git a/apps/common/drf/fields.py b/apps/common/drf/fields.py index 8dc88ae9e..97f9785f5 100644 --- a/apps/common/drf/fields.py +++ b/apps/common/drf/fields.py @@ -51,7 +51,7 @@ class LabeledChoiceField(ChoiceField): } def to_representation(self, value): - if value in ('', None): + if value is None: return value return { 'value': value, diff --git a/apps/terminal/api/applet/applet.py b/apps/terminal/api/applet/applet.py index 91fe417d0..4a627e451 100644 --- a/apps/terminal/api/applet/applet.py +++ b/apps/terminal/api/applet/applet.py @@ -116,4 +116,5 @@ class AppletViewSet(DownloadUploadMixin, viewsets.ModelViewSet): class AppletPublicationViewSet(viewsets.ModelViewSet): queryset = AppletPublication.objects.all() serializer_class = serializers.AppletPublicationSerializer - filterset_fields = ['host', 'applet'] + filterset_fields = ['host', 'applet', 'status'] + search_fields = ['applet__name', 'applet__display_name', 'host__name'] diff --git a/apps/terminal/models/applet/applet.py b/apps/terminal/models/applet/applet.py index fc819d83c..cf854b036 100644 --- a/apps/terminal/models/applet/applet.py +++ b/apps/terminal/models/applet/applet.py @@ -57,7 +57,7 @@ class Applet(JMSBaseModel): class AppletPublication(JMSBaseModel): applet = models.ForeignKey('Applet', on_delete=models.PROTECT, related_name='publications', verbose_name=_('Applet')) host = models.ForeignKey('AppletHost', on_delete=models.PROTECT, related_name='publications', verbose_name=_('Host')) - status = models.CharField(max_length=16, default='', verbose_name=_('Status')) + status = models.CharField(max_length=16, default='ready', verbose_name=_('Status')) comment = models.TextField(default='', blank=True, verbose_name=_('Comment')) class Meta: diff --git a/apps/terminal/serializers/applet.py b/apps/terminal/serializers/applet.py index c8c132e58..183a34c93 100644 --- a/apps/terminal/serializers/applet.py +++ b/apps/terminal/serializers/applet.py @@ -17,7 +17,7 @@ class AppletUploadSerializer(serializers.Serializer): class AppletPublicationSerializer(serializers.ModelSerializer): - applet = ObjectRelatedField(attrs=('id', 'display_name', 'icon'), queryset=Applet.objects.all()) + applet = ObjectRelatedField(attrs=('id', 'display_name', 'icon', 'version'), queryset=Applet.objects.all()) host = ObjectRelatedField(queryset=AppletHost.objects.all()) status = LabeledChoiceField(choices=Status.choices, label=_("Status")) diff --git a/apps/terminal/utils.py b/apps/terminal/utils.py index abdfbd738..eed67f408 100644 --- a/apps/terminal/utils.py +++ b/apps/terminal/utils.py @@ -11,8 +11,7 @@ import jms_storage from common.utils import get_logger from . import const from .models import ReplayStorage -from tickets.models import TicketSession, TicketStep, TicketAssignee -from tickets.const import StepState +from tickets.models import TicketSession logger = get_logger(__name__)