@@ -85,8 +85,11 @@ class Meta:
8585class GSRShareCodeSerializer (serializers .ModelSerializer ):
8686 status = serializers .SerializerMethodField ()
8787 expires_at = serializers .SerializerMethodField ()
88- booking_id = serializers .PrimaryKeyRelatedField (
89- source = "booking" , queryset = GSRBooking .objects .all (), write_only = True
88+ booking_id = serializers .SlugRelatedField (
89+ slug_field = "booking_id" ,
90+ source = "booking" ,
91+ queryset = GSRBooking .objects .all (),
92+ write_only = True ,
9093 )
9194
9295 class Meta :
@@ -126,11 +129,23 @@ class SharedGSRBookingSerializer(serializers.ModelSerializer):
126129
127130 building = serializers .CharField (source = "gsr.name" )
128131 is_valid = serializers .SerializerMethodField ()
132+ owner_name = serializers .SerializerMethodField ()
129133
130134 class Meta :
131135 model = GSRBooking
132- fields = ["room_name" , "building" , "start" , "end" , "is_valid" ]
136+ fields = ["room_name" , "building" , "start" , "end" , "is_valid" , "owner_name" ]
133137 read_only_fields = fields
134138
139+ def get_owner_name (self , obj ):
140+ user = obj .reservation .creator if obj .reservation else obj .user
141+ if not user :
142+ return "Unknown"
143+
144+ full_name = f"{ user .first_name } { user .last_name } " .strip ()
145+ if full_name :
146+ return full_name
147+
148+ return user .username
149+
135150 def get_is_valid (self , obj ):
136151 return obj .end and obj .end > timezone .now ()
0 commit comments