"""Report generation.
"""
-import subprocess
import logging
import datetime
-from os import makedirs, environ
-from os.path import isdir
-from shutil import copy, Error, make_archive
+from shutil import make_archive
from utils import get_files, execute_command, archive_input_data
-from errors import PresentationError
# .css file for the html format of the report
line-height: 18px;
margin-bottom: 0px;
}
+.wy-menu-vertical a {
+ display: inline-block;
+ line-height: 18px;
+ padding: 0 2em;
+ display: block;
+ position: relative;
+ font-size: 90%;
+ color: #d9d9d9
+}
+.wy-menu-vertical li.current a {
+ color: gray;
+ border-right: solid 1px #c9c9c9;
+ padding: 0 3em;
+}
+.wy-menu-vertical li.toctree-l2.current > a {
+ background: #c9c9c9;
+ padding: 0 3em;
+}
+.wy-menu-vertical li.toctree-l2.current li.toctree-l3 > a {
+ display: block;
+ background: #c9c9c9;
+ padding: 0 4em;
+}
+.wy-menu-vertical li.toctree-l3.current li.toctree-l4 > a {
+ display: block;
+ background: #bdbdbd;
+ padding: 0 5em;
+}
+.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a {
+ color: #404040;
+ padding: 0 2em;
+ font-weight: bold;
+ position: relative;
+ background: #fcfcfc;
+ border: none;
+ border-top-width: medium;
+ border-bottom-width: medium;
+ border-top-style: none;
+ border-bottom-style: none;
+ border-top-color: currentcolor;
+ border-bottom-color: currentcolor;
+ padding-left: 2em -4px;
+}
"""
# Command to build the html format of the report
'-b html -E ' \
'-t html ' \
'-D release={release} ' \
- '-D version="{release} report - {date}" ' \
+ '-D version="Report v{report_version} - {date}" ' \
'{working_dir} ' \
'{build_dir}/'
'-b latex -E ' \
'-t latex ' \
'-D release={release} ' \
- '-D version="{release} report - {date}" ' \
+ '-D version="Report v{report_version} - {date}" ' \
'{working_dir} ' \
'{build_dir}'
-def generate_report(release, spec):
+def generate_report(release, spec, report_version):
"""Generate all formats and versions of the report.
:param release: Release string of the product.
:param spec: Specification read from the specification file.
+ :param report_version: Version of the report.
:type release: str
:type spec: Specification
+ :type report_version: str
"""
logging.info("Generating the report ...")
}
for report_format, versions in spec.output["format"].items():
- report[report_format](release, spec, versions)
+ report[report_format](release, spec, versions, report_version)
archive_input_data(spec)
archive_report(spec)
logging.info("Done.")
-def generate_html_report(release, spec, versions):
+def generate_html_report(release, spec, versions, report_version):
"""Generate html format of the report.
:param release: Release string of the product.
:param spec: Specification read from the specification file.
:param versions: List of versions to generate.
+ :param report_version: Version of the report.
:type release: str
:type spec: Specification
:type versions: list
+ :type report_version: str
"""
logging.info(" Generating the html report, give me a few minutes, please "
cmd = HTML_BUILDER.format(
release=release,
- date=datetime.date.today().strftime('%d-%b-%Y'),
+ report_version=report_version,
+ date=datetime.datetime.utcnow().strftime('%m/%d/%Y %H:%M UTC'),
working_dir=spec.environment["paths"]["DIR[WORKING,SRC]"],
build_dir=spec.environment["paths"]["DIR[BUILD,HTML]"])
execute_command(cmd)
logging.info(" Done.")
-def generate_pdf_report(release, spec, versions):
+def generate_pdf_report(release, spec, versions, report_version):
"""Generate html format of the report.
:param release: Release string of the product.
:param spec: Specification read from the specification file.
:param versions: List of versions to generate. Not implemented yet.
+ :param report_version: Version of the report.
:type release: str
:type spec: Specification
:type versions: list
+ :type report_version: str
"""
logging.info(" Generating the pdf report, give me a few minutes, please "
build_dir = spec.environment["paths"]["DIR[BUILD,LATEX]"]
cmd = PDF_BUILDER.format(
release=release,
- date=datetime.date.today().strftime('%d-%b-%Y'),
+ report_version=report_version,
+ date=datetime.datetime.utcnow().strftime('%m/%d/%Y %H:%M UTC'),
working_dir=spec.environment["paths"]["DIR[WORKING,SRC]"],
build_dir=build_dir)
execute_command(cmd)
'pdflatex -interaction nonstopmode csit.tex || true'.
format(build_dir=build_dir),
'cd {build_dir} && '
- 'cp csit.pdf ../{archive_dir}/csit_{release}.pdf'.
+ 'cp csit.pdf ../{archive_dir}/csit_{release}_v{report_version}.pdf'.
format(build_dir=build_dir,
archive_dir=archive_dir,
- release=release)
+ release=release,
+ report_version=report_version)
]
for cmd in cmds: