Example #1
0
def parse_section(people, section_elem):
    items = []
    for e in section_elem:
        if e.tag == 'report':
            name, report = parse_report(people, e)
            items.append((name, report))
        elif e.tag == 'report-group':
            name, group = parse_report_group(people, e)
            items.append((name, group))
        elif e.tag == 'column':
            name, _ = name_and_title(e)
            column = PeopleSectionColumn()
            c_order = []
            for sub_name, sub in parse_reports(people, e):
                column[sub_name] = sub
                c_order.append(sub_name)
            column.order = tuple(c_order)
            items.append((name, column))
        elif e.tag == 'redirector':
            name, _ = name_and_title(e)
            redirector = PeopleRedirector()
            redirector.target_url = e.get('target_url')
            items.append((name, redirector))
        elif e.tag == 'acl':
            pass  # section ACL is set by caller
        else:
            raise ParseError('Unrecognized element', e)
    return items