{% set bom_part_uri_idx = bom_parts.index("uri") -%} BOM === {#- {% if unresolved_parts -%} Unresolved Parts ---------------- {% for bp in unresolved_parts %} * `{{ bp.ref }} <{{ bp.ref }}_>`_ {%- endfor %} {%- endif %} #} {% if unresolved_parts -%} There are {{ unresolved_parts|length }} unresolved parts. {%- endif %} +-{{ "-"*30 }}-+-{{ "-"*60 }}-+-{{ "-"*60 }}-+ | {{ "%-30s" | format("Reference") }} | {{ "%-60s" | format("MPN") }} | {{ "%-60s" | format("MPN") }} | +={{ "="*30 }}=+={{ "="*60 }}=+={{ "="*60 }}=+ {%- for bp in bom_parts %} {%- set ref="_`{}`".format(bp.ref, bp.ref) %} {%- if bp.selected_part %} {%- set mpn=bp.selected_part.get_only_mpn().valueProp %} {%- set spn=bp.selected_part.get_only_spn().valueProp %} {%- set spn="`{} `_".format(spn, spn) %} {%- else %} {%- set mpn="Unresolved" %} {%- set spn="" %} {%- endif %} | {{ "%-30s" | format(ref) }} | {{ "%-60s" | format(mpn) }} | {{ "%-60s" | format(spn) }} | +-{{ "-"*30 }}-+-{{ "-"*60 }}-+-{{ "-"*60 }}-+ {%- endfor %} Part details ============ {%- set part_by_uri=supplier_parts.index("uri") %} {% for supplier, partUris in bom_parts.index("supplier,part").items() %} {{ ("From " + supplier) | subsection }} {% for partUri in partUris %} {%- set part=part_by_uri.get_single(partUri) %} {%- set pn=part|first_pn %} {%- set spn=part|first_spn %} {%- set title=pn.valueProp if pn else (spn.valueProp if spn else "???") %} .. _part-{{spn.valueProp}}: {{ title|subsubsection }} =========== === {%- if part.description %} Description {{ part.description }} {%- endif %} MPN {{ pn.value }} SPN {{ spn.value }} Used by: {% for bp in bom_part_uri_idx.get(part.uri) %}`{{ bp.ref }} <{{ bp.ref }}_>`_{{ ", " if not loop.last }}{% endfor %} =========== === {# Facts ..... {% for f in part.facts.fact %} f={{f}} {% endfor %} #} Documentation ............. {% for l in part.get_links() %} {%- if l.relationProp == "http://purl.org/ee/link-relation#documentation" %} * `{{ l.title }} <{{ l.url }}>`__ {%- endif %} {%- endfor %} {% endfor %} {% endfor %}