{% set bom_part_uri_idx = bom_parts.index("uri") -%} BOM === {%- if unresolved_parts %} Unresolved Parts ---------------- {{- unresolved_parts|length }} unresolved parts: {% for bp in unresolved_parts %} * `{{ bp.ref }} `_ {%- endfor %} {%- 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) %} {%- set mpn=bp.selected_part.get_only_mpn().valueProp %} {%- set spn=bp.selected_part.get_only_spn().valueProp %} {%- set spn="`{} `_".format(spn, spn) %} | {{ "%-30s" | format(ref) }} | {{ "%-60s" | format(mpn) }} | {{ "%-60s" | format(spn) }} | +-{{ "-"*30 }}-+-{{ "-"*60 }}-+-{{ "-"*60 }}-+ {%- endfor %} {# Parts for BOM =============== {% for bp in bom_parts %} .. _ref-{{ bp.ref }}: {{ bp.ref | subsection }} {% if not bp.selected_part %} Could not find part. {% if bp.part.get_mpns()|length == 1 -%} MPN: {{ bp.part.get_mpns()[0].valueProp }} {% elif bp.part.get_mpns()|length > 1 -%} {%- for mpn in bp.part.get_mpns() %} MPNs: * {{ mpn.valuePrbp }} {%- endfor %} {%- endif -%} #} {# #}{# {% if bp.part.get_spns()|length == 1 -%} SPN: {{ bp.part.get_spns()[0].valueProp }} {% elif bp.part.get_spns()|length > 1 -%} {%- for spn in bp.part.get_spns() %} SPNs: * {{ spn.valueProp }} {%- endfor %} {%- endif -%} {% elif bp.selected_part %} {%- set part=bp.selected_part %} {%- set pn=part|first_pn %} {%- set spn=part|first_spn %} Selected supplier: {{ part.supplier }}{{ (", pn: " + pn.valueProp) if pn else "" }}{{ (", spn: " + spn.valueProp) if spn else "" }}. Part: `{{pn.valueProp}} `_ {% else %} MANY {% endif %} {%- 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 %}