@@ -28,6 +28,50 @@ def gather_address_lists(slug, **kwargs):
2828
2929 return AddrLists (to = list (to ),cc = list (cc ))
3030
31+ def gather_relevant_expansions (** kwargs ):
32+ relevant = set ()
33+
34+ if 'doc' in kwargs :
35+
36+ doc = kwargs ['doc' ]
37+
38+ relevant .update (MailToken .objects .filter (slug__startswith = 'doc_' ).values_list ('slug' ,flat = True ))
39+
40+ if doc .stream_id == 'ietf' :
41+ relevant .update (['ballot_approved_ietf_stream' ])
42+ else :
43+ relevant .update (['pubreq_rfced' ])
44+
45+ if doc .type_id in ['draft' ,'statchg' ]:
46+ relevant .update (MailToken .objects .filter (slug__startswith = 'last_call_' ).values_list ('slug' ,flat = True ))
47+ if doc .type_id == 'draft' :
48+ relevant .update (['ipr_posted_on_doc' ,])
49+ if doc .type_id == 'conflrev' :
50+ relevant .update (['conflrev_requested' ,'ballot_approved_conflrev' ])
51+ if doc .type_id == 'charter' :
52+ relevant .update (['charter_external_review' ,'ballot_approved_charter' ])
53+
54+ rule_list = []
55+ for mailtoken in MailToken .objects .filter (slug__in = relevant ):
56+ addrs = gather_address_lists (mailtoken .slug ,** kwargs )
57+ rule_list .append ((mailtoken .slug ,mailtoken .desc ,addrs .to ,addrs .cc ))
58+ return sorted (rule_list )
59+
60+ #def gather_relevant_expansions_recipient(**kwargs):
61+ # relevant_tokens = []
62+ #
63+ # if 'doc' in kwargs:
64+ # relevant_tokens.extend(Recipient.objects.filter(slug__startswith='doc').values_list('slug',flat=True))
65+ #
66+ # rule_dict = {}
67+ #
68+ # for recipient in Recipient.objects.filter(slug__in=relevant_tokens):
69+ # #for recipient in Recipient.objects.all():
70+ # addrs = recipient.gather(**kwargs)
71+ # if addrs:
72+ # rule_dict[recipient.slug] = recipient.gather(**kwargs)
73+ # return sorted(rule_dict.iteritems())
74+
3175def get_base_ipr_request_address ():
3276 return Recipient .objects .get (slug = 'ipr_requests' ).gather ()[0 ]
3377
0 commit comments