diff --git a/apps/asm/serializers.py b/apps/asm/serializers.py index f6fa70b1..66080407 100644 --- a/apps/asm/serializers.py +++ b/apps/asm/serializers.py @@ -12,6 +12,9 @@ class AssetCateSerializer(CustomModelSerializer): read_only_fields = EXCLUDE_FIELDS class AssetSerializer(CustomModelSerializer): + keep_dept_name = serializers.CharField(source="keep_dept.name", read_only=True) + keeper_name = serializers.CharField(source="keeper.name", read_only=True) + cate_name = serializers.CharField(source="cate.name", read_only=True) class Meta: model = Asset fields = '__all__' diff --git a/apps/asm/views.py b/apps/asm/views.py index 75ff3454..785140c1 100644 --- a/apps/asm/views.py +++ b/apps/asm/views.py @@ -60,5 +60,12 @@ class AssetLogViewSet(TicketMixin, CustomModelViewSet): def gen_other_ticket_data(self, instance:AssetLog): return {"keep_dept_name": instance.keep_dept.name} - + + @staticmethod + def apply(ticket: Ticket, transition, new_ticket_data: dict): + assetlog:AssetLog = ticket.assetlog_ticket + items = assetlog.items + sr = AssetSerializer(data=items, many=True) + sr.is_valid(raise_exception=True) + sr.save(create_by=ticket.create_by)