15
15
16
16
from ocfweb import caching
17
17
18
- _Term = namedtuple ('_Term' , ['name' , 'gms' , 'sms' , 'dgms' , 'dsms' ])
18
+ _Term = namedtuple ('_Term' , ['name' , 'gms' , 'sms' , 'dgms' , 'dsms' , 'heads' ])
19
+ Committee = namedtuple ('Committee' , ['name' , 'heads' ])
19
20
20
21
21
22
def Term (
@@ -24,12 +25,17 @@ def Term(
24
25
sms : List [Any ],
25
26
dgms : Optional [List [Any ]] = None ,
26
27
dsms : Optional [List [Any ]] = None ,
28
+ heads : Optional [List [Tuple [str , List [Any ]]]] = None ,
27
29
) -> _Term :
28
30
gms = list (map (Officer .from_uid_or_info , gms ))
29
31
sms = list (map (Officer .from_uid_or_info , sms ))
30
32
dgms = list (map (Officer .from_uid_or_info , dgms or []))
31
33
dsms = list (map (Officer .from_uid_or_info , dsms or []))
32
- return _Term (name , gms , sms , dgms , dsms )
34
+ heads = [
35
+ Committee (committee [0 ], list (map (Officer .from_uid_or_info , committee [1 ])))
36
+ for committee in heads or []
37
+ ]
38
+ return _Term (name , gms , sms , dgms , dsms , heads )
33
39
34
40
35
41
class Officer (namedtuple ('Officer' , ['uid' , 'name' , 'start' , 'end' , 'acting' ])):
@@ -237,7 +243,25 @@ def _bod_terms() -> List[Any]:
237
243
dgms = ['asai' ], dsms = ['ethanhs' , 'cooperc' ],
238
244
),
239
245
Term (
240
- 'Fall 2019' , gms = ['cooperc' , 'php' ], sms = ['ethanhs' , 'fydai' ],
246
+ 'Fall 2019' ,
247
+ gms = ['cooperc' , 'php' ],
248
+ sms = [
249
+ ('ethanhs' , date (2019 , 5 , 18 ), date (2018 , 11 , 18 )),
250
+ 'fydai' ,
251
+ ],
252
+ ),
253
+ Term (
254
+ 'Spring 2020' ,
255
+ gms = ['dphan' , 'bernardzhao' ],
256
+ sms = ['cooperc' , 'jaw' ],
257
+ heads = [
258
+ ('University Affairs' , ['dphan' , 'bernardzhao' ]),
259
+ ('Internal' , ['php' , 'kmo' ]),
260
+ ('Industry and Alumni Relations' , ['asai' , 'rachy' ]),
261
+ ('Finance' , ['ncberberi' , 'nint' ]),
262
+ ('Communication' , ['rachy' ]),
263
+ ('DeCal' , ['exiang' , 'bencuan' , 'kmo' ]),
264
+ ],
241
265
),
242
266
]
243
267
@@ -250,6 +274,6 @@ def officers(doc: Any, request: HttpRequest) -> HttpResponse:
250
274
{
251
275
'title' : doc .title ,
252
276
'current_term' : terms [- 1 ],
253
- 'previous_terms' : reversed ( terms [: - 1 ]) ,
277
+ 'previous_terms' : terms [- 2 :: - 1 ],
254
278
},
255
279
)
0 commit comments