2727 update_action_holders ,
2828 update_rfcauthors ,
2929)
30- from ietf .group .models import Group
30+ from ietf .group .models import Group , Role
3131from ietf .group .serializers import AreaSerializer
3232from ietf .name .models import StreamName , StdLevelName
3333from ietf .person .models import Person
@@ -97,6 +97,21 @@ class Meta:
9797 fields = ["draft_name" , "authors" ]
9898
9999
100+ class WgChairSerializer (serializers .Serializer ):
101+ """Serialize a WG chair's name and email from a Role"""
102+
103+ name = serializers .SerializerMethodField ()
104+ email = serializers .SerializerMethodField ()
105+
106+ @extend_schema_field (serializers .CharField )
107+ def get_name (self , role : Role ) -> str :
108+ return role .person .plain_name ()
109+
110+ @extend_schema_field (serializers .EmailField )
111+ def get_email (self , role : Role ) -> str :
112+ return role .email .email_address ()
113+
114+
100115class DocumentAuthorSerializer (serializers .ModelSerializer ):
101116 """Serializer for a Person in a response"""
102117
@@ -126,6 +141,7 @@ class FullDraftSerializer(serializers.ModelSerializer):
126141 source = "shepherd.person" , read_only = True
127142 )
128143 consensus = serializers .SerializerMethodField ()
144+ wg_chairs = serializers .SerializerMethodField ()
129145
130146 class Meta :
131147 model = Document
@@ -145,11 +161,21 @@ class Meta:
145161 "consensus" ,
146162 "shepherd" ,
147163 "ad" ,
164+ "wg_chairs" ,
148165 ]
149166
150167 def get_consensus (self , doc : Document ) -> Optional [bool ]:
151168 return default_consensus (doc )
152169
170+ @extend_schema_field (WgChairSerializer (many = True ))
171+ def get_wg_chairs (self , doc : Document ):
172+ if doc .group is None :
173+ return []
174+ chairs = doc .group .role_set .filter (name_id = "chair" ).select_related (
175+ "person" , "email"
176+ )
177+ return WgChairSerializer (chairs , many = True ).data
178+
153179 def get_source_format (
154180 self , doc : Document
155181 ) -> Literal ["unknown" , "xml-v2" , "xml-v3" , "txt" ]:
0 commit comments