From 3d541831c779f13274cce7d19396b708a7af18b4 Mon Sep 17 00:00:00 2001 From: i701 Date: Mon, 30 Jun 2025 22:29:27 +0500 Subject: [PATCH] =?UTF-8?q?refactor(portal-api):=20Device=20serializers=20?= =?UTF-8?q?to=20include=20user=20information=20and=20ensure=20consistent?= =?UTF-8?q?=20Meta=20class=20formatting=20=F0=9F=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- devices/serializers.py | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/devices/serializers.py b/devices/serializers.py index 9240886..8ae13ef 100644 --- a/devices/serializers.py +++ b/devices/serializers.py @@ -8,7 +8,7 @@ class CreateDeviceSerializer(serializers.ModelSerializer): name = serializers.CharField(required=True) mac = serializers.CharField(required=True) - class Meta: + class Meta: # type: ignore model = Device fields = [ "name", @@ -25,17 +25,25 @@ class BlockDeviceSerializer(serializers.ModelSerializer): choices=[("ADMIN", "Admin"), ("PARENT", "Parent")], required=True ) - class Meta: + class Meta: # type: ignore model = Device fields = ["blocked", "reason_for_blocking", "blocked_by"] class DeviceSerializer(serializers.ModelSerializer): pending_payment_id = serializers.SerializerMethodField() + user = serializers.SerializerMethodField() - class Meta: - model = Device - fields = "__all__" + def get_user(self, obj): + user = obj.user + if user: + return { + "id": user.id, + "name": user.first_name + " " + user.last_name, + "id_card": user.id_card, + "mobile": user.mobile, + } + return None def get_pending_payment_id(self, obj): # Query the last unpaid payment for the device @@ -46,6 +54,10 @@ class DeviceSerializer(serializers.ModelSerializer): ) return unpaid_payment.id if unpaid_payment else None + class Meta: # type: ignore + model = Device + fields = "__all__" + class ReadOnlyDeviceSerializer(serializers.ModelSerializer): user = CustomReadOnlyUserSerializer(read_only=True)