blob: f95dabf9a37e0c1bdae1577c8f8d4da7b10267c3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# vim: set fileencoding=utf-8 :
import sys, yaml
from lxml import etree
from lxml import objectify
def mainImportEkvv (args):
"""
Parse ekvv participant management lists
XXX: priorities are not properly imported yet and need to be “normalized”
See http://ekvv.uni-bielefeld.de/wiki/en/Export_von_Anmeldelisten_für_Platzvergabeverfahren_im_XML_Format
"""
worker = {}
limit = {}
for f in args.files:
with open (f, 'r') as fd:
tree = objectify.parse (fd)
root = tree.getroot ()
slotid = root.get ('id')
workerlist = root.teilnehmerliste
limit[slotid] = int (workerlist.get ('teilnehmerbegrenzung'))
for t in workerlist.teilnehmer:
wid = t.get ('matrikelnummer')
worker.setdefault (wid, {})
worker[wid][slotid] = int (t.get ('prioritaet'))
yaml.dump ({'worker': worker, 'slots': limit, 'env': {'minSlots': len (limit), 'maxSlots': len (limit)}}, sys.stdout)
|