Move mathsoc regex and exception userid's into config
[mspang/pyceo.git] / ceo / console / mathsoclist.py
1 from ceo import members, terms
2 import re
3
4 class MathSocList:
5   help = '''
6 mathsoclist [term]
7
8 Displays a list of members for a term that are likely to be paying MathSoc
9 members; defaults to the current term if term is not given.
10 '''
11
12   def main(self, args):
13     regex = re.compile(members.cfg['mathsoc_regex'])
14     noinc = members.cfg['mathsoc_dont_count'].split(' ')
15     if len(args) == 1:
16       mlist = members.list_term(args[0])
17     else:
18       mlist = members.list_term(terms.current())
19     dns = mlist.keys()
20     dns.sort()
21     for dn in dns:
22       member = mlist[dn]
23       if member['uid'][0] in noinc:
24         continue
25       program = member.get('program', [''])[0]
26       if regex.match(program.lower()) != None:
27         print '%s %s %s' % (
28           member['uid'][0].ljust(12),
29           member['cn'][0].ljust(30),
30           member.get('program', [''])[0]
31         )