Example #1
0
def parse_section(people, section_elem):
    columns = []
    reportmap = {}
    single = False
    for e in section_elem:
        if e.tag == 'report':
            if columns:
                raise ParseError(
                    'Section has both columns and a single report', e)
            if reportmap:
                raise ParseError(
                    'Multiple reports provided for a single report section', e)
            single = True
            reportid, obj = parse_report(people, e)
            reportmap[reportid] = obj
        elif e.tag == 'column':
            if single:
                raise ParseError(
                    'Section has both columns and a single report', e)
            obj = PeopleSectionColumn()
            obj.set_reports(parse_reports(people, e, reportmap))
            columns.append(obj)
        elif e.tag == 'acl':
            pass
        else:
            raise ParseError('Unrecognized element', e)
    return columns, reportmap
Example #2
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
Example #3
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