Skip to content

Commit 275023f

Browse files
committed
Missed adding the new form
- Legacy-Id: 10055
1 parent 4e61776 commit 275023f

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

ietf/mailtoken/forms.py

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
from django import forms
2+
3+
from ietf.mailtoken.models import MailToken
4+
5+
class CcSelectForm(forms.Form):
6+
expansions = dict()
7+
cc_tokens = forms.MultipleChoiceField(
8+
label='Cc',
9+
choices=[],
10+
widget=forms.CheckboxSelectMultiple(attrs={'frob':'knob'}),
11+
)
12+
13+
def __init__(self, mailtoken_slug, mailtoken_context, *args, **kwargs):
14+
super(CcSelectForm,self).__init__(*args,**kwargs)
15+
mailtoken = MailToken.objects.get(slug=mailtoken_slug)
16+
17+
for r in mailtoken.cc.all():
18+
self.expansions[r.slug] = r.gather(**mailtoken_context)
19+
20+
non_empty_expansions = [x for x in self.expansions if self.expansions[x]]
21+
self.fields['cc_tokens'].initial = non_empty_expansions
22+
self.fields['cc_tokens'].choices = [(t,'%s: %s'%(t,", ".join(self.expansions[t]))) for t in non_empty_expansions]
23+
24+
def get_selected_addresses(self):
25+
if self.is_valid():
26+
addrs = []
27+
for t in self.cleaned_data['cc_tokens']:
28+
addrs.extend(self.expansions[t])
29+
return addrs
30+
else:
31+
raise forms.ValidationError('Cannot get selected addresses from an invalid form.')

0 commit comments

Comments
 (0)