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
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
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