示例#1
0
class JobBaseSerializer(serializers.ModelSerializer):
    env_node = serializers.SerializerMethodField()
    is_linked = serializers.SerializerMethodField()
    artifacts = serializers.SerializerMethodField()
    project = serializers.SerializerMethodField()
    duration = PTDurationField()

    def get_is_linked(self, job):
        return job.regression_linked is not None

    def get_project(self, job):
        return ProjectSerializer(job.project).data

    def get_env_node(self, job):
        # this function is required to apply 'parent=None' filter because env_node children will be
        # populated by the EnvNodeNestedSerializer
        objs = EnvNodeModel.objects.filter(job=job.id, parent=None).all()
        if isinstance(self, JobSimpleSerializer):
            return EnvNodeSimpleSerializer(objs, many=True).data
        else:
            return EnvNodeNestedSerializer(objs, many=True).data

    def get_artifacts(self, job):
        objs = ArtifactLinkModel.objects.filter(linked_uuid=job.uuid,
                                                deleted=False).all()
        artifacts = []
        for obj in objs:
            try:
                artifacts.append(obj.artifact)
            except ArtifactMetaModel.DoesNotExist:
                continue
        return ArtifactMetaSerializer(artifacts, many=True).data
示例#2
0
class TestSimpleSerializer(serializers.ModelSerializer):
    duration = PTDurationField()
    avg_score = PTRoundedFloatMKField()
    avg_plusmin = PTRoundedFloatField()

    class Meta:
        model = TestModel
        fields = ('id', 'seq_num', 'group', 'tag', 'category', 'duration', 'avg_score', 'avg_plusmin')
示例#3
0
class JobBaseSerializer(serializers.ModelSerializer):
    env_node = serializers.SerializerMethodField()
    duration = PTDurationField()

    def get_env_node(self, job):
        # this function is required to apply 'parent=None' filter because env_node children will be
        # populated by the EnvNodeNestedSerializer
        objs = EnvNodeModel.objects.filter(job=job.id, parent=None).all()
        if isinstance(self, JobSimpleSerializer):
            return EnvNodeSimpleSerializer(objs, many=True).data
        else:
            return EnvNodeNestedSerializer(objs, many=True).data