Support bgcolor of additional components

Maybe not needed that much, but mainly for consistency, to support
bgcolor in all dataclasses that represent boxes in the diagram.
This commit is contained in:
KV 2021-02-21 10:54:03 +01:00 committed by Daniel Rojas
parent 324508a8ee
commit 166ab2fdf1
3 changed files with 7 additions and 3 deletions

View File

@ -323,6 +323,7 @@ Parts can be added to a connector or cable in the section `<additional-component
mpn: <str> # manufacturer part number mpn: <str> # manufacturer part number
supplier: <str> # supplier name supplier: <str> # supplier name
spn: <str> # supplier part number spn: <str> # supplier part number
bgcolor: <color> # Background color of entry in diagram component box
``` ```
Alternatively items can be added to just the BOM by putting them in the section `<bom-item>` above. Alternatively items can be added to just the BOM by putting them in the section `<bom-item>` above.

View File

@ -114,6 +114,7 @@ class AdditionalComponent:
qty: float = 1 qty: float = 1
unit: Optional[str] = None unit: Optional[str] = None
qty_multiplier: Union[ConnectorMultiplier, CableMultiplier, None] = None qty_multiplier: Union[ConnectorMultiplier, CableMultiplier, None] = None
bgcolor: Optional[Color] = None
@property @property
def description(self) -> str: def description(self) -> str:

View File

@ -5,9 +5,9 @@ from dataclasses import asdict
from itertools import groupby from itertools import groupby
from typing import Any, Dict, List, Optional, Tuple, Union from typing import Any, Dict, List, Optional, Tuple, Union
from wireviz.DataClasses import AdditionalComponent, Connector, Cable from wireviz.DataClasses import AdditionalComponent, Cable, Color, Connector
from wireviz.wv_colors import translate_color from wireviz.wv_colors import translate_color
from wireviz.wv_gv_html import html_line_breaks from wireviz.wv_gv_html import html_bgcolor_attr, html_line_breaks
from wireviz.wv_helper import clean_whitespace from wireviz.wv_helper import clean_whitespace
BOM_COLUMNS_ALWAYS = ('id', 'description', 'qty', 'unit', 'designators') BOM_COLUMNS_ALWAYS = ('id', 'description', 'qty', 'unit', 'designators')
@ -36,6 +36,7 @@ def get_additional_component_table(harness: "Harness", component: Union[Connecto
common_args = { common_args = {
'qty': part.qty * component.get_qty_multiplier(part.qty_multiplier), 'qty': part.qty * component.get_qty_multiplier(part.qty_multiplier),
'unit': part.unit, 'unit': part.unit,
'bgcolor': part.bgcolor,
} }
if harness.options.mini_bom_mode: if harness.options.mini_bom_mode:
id = get_bom_index(harness.bom(), bom_entry_key({**asdict(part), 'description': part.description})) id = get_bom_index(harness.bom(), bom_entry_key({**asdict(part), 'description': part.description}))
@ -158,6 +159,7 @@ def component_table_entry(
type: str, type: str,
qty: Union[int, float], qty: Union[int, float],
unit: Optional[str] = None, unit: Optional[str] = None,
bgcolor: Optional[Color] = None,
pn: Optional[str] = None, pn: Optional[str] = None,
manufacturer: Optional[str] = None, manufacturer: Optional[str] = None,
mpn: Optional[str] = None, mpn: Optional[str] = None,
@ -177,7 +179,7 @@ def component_table_entry(
+ (', '.join([pn for pn in part_number_list if pn]))) + (', '.join([pn for pn in part_number_list if pn])))
# format the above output as left aligned text in a single visible cell # format the above output as left aligned text in a single visible cell
# indent is set to two to match the indent in the generated html table # indent is set to two to match the indent in the generated html table
return f'''<table border="0" cellspacing="0" cellpadding="3" cellborder="1"><tr> return f'''<table border="0" cellspacing="0" cellpadding="3" cellborder="1"{html_bgcolor_attr(bgcolor)}><tr>
<td align="left" balign="left">{html_line_breaks(output)}</td> <td align="left" balign="left">{html_line_breaks(output)}</td>
</tr></table>''' </tr></table>'''