2020from ietf .utils .aliases import dump_sublist
2121
2222DEFAULT_YEARS = 5
23- ACTIVE_STATES = ['active' , 'bof' , 'proposed' ]
23+ ACTIVE_STATES = ['active' ,'bof' ,'proposed' ]
2424GROUP_TYPES = ['wg' ,'rg' ,'dir' ,'team' ,'review' ,'program' ]
2525NO_AD_GROUP_TYPES = ['rg' ,'team' ,'program' ]
26+ IETF_DOMAIN = ['ietf.org' , ]
27+ IRTF_DOMAIN = ['irtf.org' , ]
28+ IAB_DOMAIN = ['iab.org' , ]
2629
2730class Command (BaseCommand ):
2831 help = ('Generate the group-aliases and group-virtual files for Internet-Draft '
@@ -44,37 +47,43 @@ def handle(self, *args, **options):
4447 vfile .write (signature )
4548 vfile .write ("%s anything\n " % settings .GROUP_VIRTUAL_DOMAIN )
4649
47- alias_domains = ['ietf.org' , ]
48-
4950 # Loop through each group type and build -ads and -chairs entries
5051 for g in GROUP_TYPES :
52+ domains = []
53+ domains += IETF_DOMAIN
54+ if g == 'rg' :
55+ domains += IRTF_DOMAIN
56+ if g == 'program' :
57+ domains += IAB_DOMAIN
58+
5159 entries = Group .objects .filter (type = g ).all ()
5260 active_entries = entries .filter (state__in = ACTIVE_STATES )
5361 inactive_recent_entries = entries .exclude (state__in = ACTIVE_STATES ).filter (time__gte = show_since )
5462 interesting_entries = active_entries | inactive_recent_entries
5563
5664 for e in interesting_entries .distinct ().iterator ():
5765 name = e .acronym
66+
5867 # Research groups, teams, and programs do not have -ads lists
5968 if not g in NO_AD_GROUP_TYPES :
60- dump_sublist (afile , vfile , name + '-ads' , [ 'ietf.org' , ] , settings .GROUP_VIRTUAL_DOMAIN , get_group_ad_emails (e ))
69+ dump_sublist (afile , vfile , name + '-ads' , domains , settings .GROUP_VIRTUAL_DOMAIN , get_group_ad_emails (e ))
6170 # All group types have -chairs lists
62- dump_sublist (afile , vfile , name + '-chairs' , [ 'ietf.org' , ] , settings .GROUP_VIRTUAL_DOMAIN , get_group_role_emails (e , ['chair' , 'secr' ]))
71+ dump_sublist (afile , vfile , name + '-chairs' , domains , settings .GROUP_VIRTUAL_DOMAIN , get_group_role_emails (e , ['chair' , 'secr' ]))
6372
6473 # The area lists include every chair in active working groups in the area
6574 areas = Group .objects .filter (type = 'area' ).all ()
6675 active_areas = areas .filter (state__in = ACTIVE_STATES )
6776 for area in active_areas :
6877 name = area .acronym
6978 area_ad_emails = get_group_role_emails (area , ['pre-ad' , 'ad' , 'chair' ])
70- dump_sublist (afile , vfile , name + '-ads' , alias_domains , settings .GROUP_VIRTUAL_DOMAIN , area_ad_emails )
71- dump_sublist (afile , vfile , name + '-chairs' , alias_domains , settings .GROUP_VIRTUAL_DOMAIN , (get_child_group_role_emails (area , ['chair' , 'secr' ]) | area_ad_emails ))
79+ dump_sublist (afile , vfile , name + '-ads' , IETF_DOMAIN , settings .GROUP_VIRTUAL_DOMAIN , area_ad_emails )
80+ dump_sublist (afile , vfile , name + '-chairs' , IETF_DOMAIN , settings .GROUP_VIRTUAL_DOMAIN , (get_child_group_role_emails (area , ['chair' , 'secr' ]) | area_ad_emails ))
7281
7382 # Other groups with chairs that require Internet-Draft submission approval
7483 gtypes = GroupTypeName .objects .values_list ('slug' , flat = True )
7584 special_groups = Group .objects .filter (type__features__req_subm_approval = True , acronym__in = gtypes , state = 'active' )
7685 for group in special_groups :
77- dump_sublist (afile , vfile , group .acronym + '-chairs' , alias_domains , settings .GROUP_VIRTUAL_DOMAIN , get_group_role_emails (group , ['chair' , 'delegate' ]))
86+ dump_sublist (afile , vfile , group .acronym + '-chairs' , IETF_DOMAIN , settings .GROUP_VIRTUAL_DOMAIN , get_group_role_emails (group , ['chair' , 'delegate' ]))
7887
7988 afile .close ()
8089 vfile .close ()
0 commit comments