output: update titleblock with template

This commit is contained in:
Laurier Loiselle 2023-01-23 18:43:45 -05:00
parent 641b44abf7
commit 72ae647d03
No known key found for this signature in database
GPG Key ID: 345920CC72089A3F
4 changed files with 94 additions and 78 deletions

View File

@ -79,7 +79,7 @@
right: -0mm;
}
#titleblock table {
#titleblock {
width: 180mm;
height: 38.25mm;
}
@ -149,7 +149,7 @@
}
.company {
font-size: 4mm;
font-size: 3mm;
text-align: center;
white-space: normal;
}
@ -203,9 +203,7 @@
{{ bom_reversed }}
</div>
<div id="titleblock">
{{ titleblock }}
</div>
{{ titleblock }}
</div> <!-- /frame -->
</div> <!-- /page -->
</body>

View File

@ -1,78 +1,67 @@
<table>
<div id="titleblock">
<!-- REVISION TABLE --!>
<table class=revisions style="float:left" >
{% for revision in revisions %}
<tr>
{% for key in ['rev', 'changelog', 'date', 'name'] %}
<td class={{ key }}> {{ revision.get(key, '') }} </td>
{% endfor %}
</tr>
{% endfor %}
<tr>
<td class={{ rev }}><b>Rev</td>
<td class={{ changelog }}><b>Date</td>
<td class={{ date }}><b>Name</td>
<td class={{ name }}><b>Changelog</td>
</tr>
</table>
<!-- AUTHOR INFO + LOGO TABLE --!>
<table class=author_info style="float:left" >
<tr>
<td class="revno"> {{ revisions_8 }}</td>
<td class="changelog"> {{ revisions_8_changelog }}</td>
<td class="date"> {{ revisions_8_date }}</td>
<td class="name"> {{ revisions_8_name }}</td>
<td class="process"></td>
<td class="date">Date</td>
<td class="name">Name</td>
<td class="title" colspan="3" rowspan="5"> {{ title }}</td>
<td class="date"><b>Date</b></td>
<td class="name"><b>Name</b></td>
</tr>
{% for author in authors %}
<tr>
<td class="revno"> {{ revisions_7 }}</td>
<td> {{ revisions_7_changelog }}</td>
<td> {{ revisions_7_date }}</td>
<td> {{ revisions_7_name }}</td>
<td> {{ authors_1 }}</td>
<td> {{ authors_1_date }}</td>
<td> {{ authors_1_name }}</td>
<td><b>{{ author['row'] }}</b></td>
<td> {{ author['date'] }}</td>
<td> {{ author['name'] }}</td>
</tr>
{% endfor %}
<tr>
<td class="revno"> {{ revisions_6 }}</td>
<td> {{ revisions_6_changelog }}</td>
<td> {{ revisions_6_date }}</td>
<td> {{ revisions_6_name }}</td>
<td> {{ authors_2 }}</td>
<td> {{ authors_2_date }}</td>
<td> {{ authors_2_name }}</td>
<td class="logo" colspan="3" rowspan="4" >
<img src={{ logo }} alt="" style="height:auto; width:150px;display:block;margin-left:auto;margin-right:auto" />
</td>
</tr>
<tr></tr>
<tr></tr>
<tr></tr>
</table>
<!-- HARNESS INFO TABLE --!>
<table class=harness_info>
<tr>
<td class="revno"> {{ revisions_5 }}</td>
<td> {{ revisions_5_changelog }}</td>
<td> {{ revisions_5_date }}</td>
<td> {{ revisions_5_name }}</td>
<td> {{ authors_3 }}</td>
<td> {{ authors_3_date }}</td>
<td> {{ authors_3_name }}</td>
<td class="company" colspan="4" rowspan="2"><b> {{ company }}</b></td>
</tr>
<tr></tr>
<tr>
<td class="revno"> {{ revisions_4 }}</td>
<td> {{ revisions_4_changelog }}</td>
<td> {{ revisions_4_date }}</td>
<td> {{ revisions_4_name }}</td>
<td colspan="2"></td>
<td></td>
<td class="company" colspan="4" rowspan="2"> {{ address }}</td>
</tr>
<tr></tr>
<tr>
<td class="revno"> {{ revisions_3 }}</td>
<td> {{ revisions_3_changelog }}</td>
<td> {{ revisions_3_date }}</td>
<td> {{ revisions_3_name }}</td>
<td class="company" colspan="3" rowspan="3"> {{ company }}</td>
<td class="partno" colspan="2" rowspan="3"> {{ pn }}</td>
<td class="sheetno" rowspan="2">Sheet<br /> {{ sheet_current }}</td>
<td class="title" colspan="4" rowspan="2"> {{ title }}</td>
</tr>
<tr></tr>
<tr>
<td class="revno"> {{ revisions_2 }}</td>
<td> {{ revisions_2_changelog }}</td>
<td> {{ revisions_2_date }}</td>
<td> {{ revisions_2_name }}</td>
<td class="partno" colspan="3" rowspan="3"> {{ pn }}</td>
<td class="revision" colspan="1" rowspan="2"> {{ revision }}</td>
</tr>
<tr></tr>
<tr>
<td class="revno"> {{ revisions_1 }}</td>
<td> {{ revisions_1_changelog }}</td>
<td> {{ revisions_1_date }}</td>
<td> {{ revisions_1_name }}</td>
<td class="sheetno">of {{ sheet_total }}</td>
<td class="sheetno" colspan="1">Sheet {{ sheet_current }} of {{ sheet_total }}</td>
</tr>
<tr>
<td>Rev</td>
<td>Changelog</td>
<td>Date</td>
<td>Name</td>
<td colspan="3"></td>
<td></td>
<td colspan="2"></td>
</tr>
</table>
</table>
</div> <!--/titleblock --!>

View File

@ -129,7 +129,7 @@ def cli(file, format, prepend, output_dir, output_name, version):
raise Exception(f"Path is not a file:\n{file}")
extra_metadata = {}
extra_metadata["name"] = file.stem
extra_metadata["sheet_name"] = file.stem
extra_metadata["sheet_total"] = len(filepaths)
extra_metadata["sheet_current"] = sheet_current
sheet_current += 1

View File

@ -123,7 +123,6 @@ def generate_html_output(
sheet_total = 1
replacements = {
"title": "pizza",
"generator": f"{APP_NAME} {__version__} - {APP_URL}",
"fontname": options.fontname,
"bgcolor": options.bgcolor.html,
@ -132,27 +131,57 @@ def generate_html_output(
"bom_reversed": bom_html_reversed,
"sheet_current": sheet_current,
"sheet_total": sheet_total,
"titleblock_rows": 9
}
# prepare metadata replacements
added_metadata = {
'revisions': [],
'authors': [],
}
if metadata:
for item, contents in metadata.items():
if isinstance(contents, (str, int, float)):
replacements[str(item)] = html_line_breaks(str(contents))
elif isinstance(contents, Dict): # useful for authors, revisions
for index, (category, entry) in enumerate(contents.items()):
if isinstance(entry, Dict):
replacements[f"{item}_{index+1}"] = str(category)
for entry_key, entry_value in entry.items():
replacements[
f"{item}_{index+1}_{entry_key}"
] = html_line_breaks(str(entry_value))
if item == 'revisions':
added_metadata['revisions'] = [{'rev': rev, **v} for rev, v in contents.items()]
continue
if item == 'authors':
added_metadata['authors'] = [{'row': row, **v} for row, v in contents.items()]
continue
if item == 'pn':
added_metadata[item] = f'{contents}-{metadata.get("sheet_name")}'
continue
added_metadata[item] = contents
#if isinstance(contents, (str, int, float)):
# replacements[str(item)] = html_line_breaks(str(contents))
#elif isinstance(contents, Dict): # useful for authors, revisions
# for index, (category, entry) in enumerate(contents.items()):
# if isinstance(entry, Dict):
# replacements[f"{item}_{index+1}"] = str(category)
# for entry_key, entry_value in entry.items():
# replacements[
# f"{item}_{index+1}_{entry_key}"
# ] = html_line_breaks(str(entry_value))
replacements[
"sheetsize_default"
] = f'{metadata.get("template", {}).get("sheetsize", "sheetsize_default")}'
# include quotes so no replacement happens within <style> definition
for i in range(replacements["titleblock_rows"]-len(added_metadata['revisions'])-1):
added_metadata['revisions'].append({})
added_metadata['revisions'].reverse()
for i in range(4-len(added_metadata['authors'])):
added_metadata['authors'].append({})
replacements = {**replacements, **added_metadata}
# Add logo
#if 'logo' in replacements:
# #import pdb;pdb.set_trace()
# replacements['logo'] = f'<img class=logo src={logo_path} alt="Company Logo"/>'
# prepare titleblock
titleblock_template = get_template_html("titleblock")
replacements["titleblock"] = titleblock_template.render(replacements)