Skip to content

Commit d09d9de

Browse files
committed
Patch from esanchez@yaco.es to add a new IETF liaison-sending entity 'IESG and IAB'.
- Legacy-Id: 4537
1 parent 9cd0849 commit d09d9de

1 file changed

Lines changed: 56 additions & 3 deletions

File tree

ietf/liaisons/utilsREDESIGN.py

Lines changed: 56 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,34 @@ def full_user_list(self):
124124
return result
125125

126126

127+
class IAB_IESG_Entity(Entity):
128+
129+
poc = [IABEntity.chair, IABEntity.director, FakePerson(**IETFCHAIR)]
130+
cc = [FakePerson(**IAB), FakePerson(**IESG)]
131+
132+
def __init__(self, name, obj=None):
133+
self.name = name
134+
self.obj = obj
135+
self.iab = IABEntity(name, obj)
136+
self.iesg = IETFEntity(name, obj)
137+
138+
def get_from_cc(self, person):
139+
return list(set(self.iab.get_from_cc(person) + self.iesg.get_from_cc(person)))
140+
141+
def needs_approval(self, person=None):
142+
if not self.iab.needs_approval(person):
143+
return False
144+
if not self.iesg.needs_approval(person):
145+
return False
146+
return True
147+
148+
def can_approve(self):
149+
return list(set(self.iab.can_approve() + self.iesg.can_approve()))
150+
151+
def full_user_list(self):
152+
return list(set(self.iab.full_user_list() + self.iesg.full_user_list()))
153+
154+
127155
class AreaEntity(Entity):
128156

129157
def get_poc(self):
@@ -274,6 +302,30 @@ def can_approve_list(self, person):
274302
return []
275303

276304

305+
class IAB_IESG_EntityManager(EntityManager):
306+
307+
def __init__(self, *args, **kwargs):
308+
super(IAB_IESG_EntityManager, self).__init__(*args, **kwargs)
309+
self.entity = IAB_IESG_Entity(name=self.name)
310+
311+
def get_entity(self, pk=None):
312+
return self.entity
313+
314+
def can_send_on_behalf(self, person):
315+
if (is_iabchair(person) or
316+
is_iab_executive_director(person) or
317+
is_ietfchair(person)):
318+
return self.get_managed_list()
319+
return []
320+
321+
def can_approve_list(self, person):
322+
if (is_iabchair(person) or
323+
is_iab_executive_director(person) or
324+
is_ietfchair(person)):
325+
return self.get_managed_list()
326+
return []
327+
328+
277329
class AreaEntityManager(EntityManager):
278330

279331
def __init__(self, pk=None, name=None, queryset=None):
@@ -363,6 +415,7 @@ def __init__(self):
363415
self.managers = {'ietf': IETFEntityManager(pk='ietf', name=u'The IETF'),
364416
'iesg': IETFEntityManager(pk='iesg', name=u'The IESG'),
365417
'iab': IABEntityManager(pk='iab', name=u'The IAB'),
418+
'iabiesg': IAB_IESG_EntityManager(pk='iabiesg', name=u'The IESG and the IAB'),
366419
'area': AreaEntityManager(pk='area', name=u'IETF Areas'),
367420
'wg': WGEntityManager(pk='wg', name=u'IETF Working Groups'),
368421
'sdo': SDOEntityManager(pk='sdo', name=u'Standards Development Organizations'),
@@ -390,7 +443,7 @@ def get_all_entities(self):
390443
def get_all_incoming_entities(self):
391444
entities = []
392445
results = []
393-
for key in ['ietf', 'iesg', 'iab']:
446+
for key in ['ietf', 'iesg', 'iab', 'iabiesg']:
394447
results += self.managers[key].get_managed_list()
395448
entities.append(('Main IETF Entities', results))
396449
entities.append(('IETF Areas', self.managers['area'].get_managed_list()))
@@ -405,7 +458,7 @@ def get_all_outgoing_entities(self):
405458
def get_entities_for_person(self, person):
406459
entities = []
407460
results = []
408-
for key in ['ietf', 'iesg', 'iab']:
461+
for key in ['ietf', 'iesg', 'iab', 'iabiesg']:
409462
results += self.managers[key].can_send_on_behalf(person)
410463
if results:
411464
entities.append(('Main IETF Entities', results))
@@ -419,7 +472,7 @@ def get_entities_for_person(self, person):
419472

420473
def get_all_can_approve_codes(self, person):
421474
entities = []
422-
for key in ['ietf', 'iesg', 'iab']:
475+
for key in ['ietf', 'iesg', 'iab', 'iabiesg']:
423476
entities += self.managers[key].can_approve_list(person)
424477
entities += self.managers['area'].can_approve_list(person)
425478
entities += self.managers['wg'].can_approve_list(person)

0 commit comments

Comments
 (0)