# Third party imports from rest_framework import serializers # Module imports from .base import DynamicBaseSerializer from plane.db.models import IssueView from plane.utils.issue_filters import issue_filters class IssueViewSerializer(DynamicBaseSerializer): is_favorite = serializers.BooleanField(read_only=True) class Meta: model = IssueView fields = "__all__" read_only_fields = [ "workspace", "project", "query", "owned_by", "access", "is_locked", ] def create(self, validated_data): query_params = validated_data.get("filters", {}) if bool(query_params): validated_data["query"] = issue_filters(query_params, "POST") else: validated_data["query"] = {} return IssueView.objects.create(**validated_data) def update(self, instance, validated_data): query_params = validated_data.get("filters", {}) if bool(query_params): validated_data["query"] = issue_filters(query_params, "POST") else: validated_data["query"] = {} validated_data["query"] = issue_filters(query_params, "PATCH") return super().update(instance, validated_data)