52 lines
1.5 KiB
Python
52 lines
1.5 KiB
Python
import json
|
|
import os
|
|
import html_helper
|
|
from Cheetah.Template import Template
|
|
from distutils.dir_util import copy_tree
|
|
|
|
|
|
def prep_out_dir(out_dir):
|
|
src_dir = os.path.dirname(__file__)
|
|
report_files_dir = os.path.join(src_dir, 'report_files')
|
|
copy_tree(report_files_dir, out_dir)
|
|
|
|
|
|
def _create_json(out_dir, name_space={}):
|
|
data = {
|
|
'generated': name_space['dts'],
|
|
'projects': {}, }
|
|
|
|
projects = data['projects']
|
|
|
|
for project_name in name_space['projects']:
|
|
projects[project_name] = {}
|
|
|
|
mps = name_space['projects'][project_name]
|
|
for mp in mps:
|
|
projects[project_name][mp.url] = {
|
|
'score': mp.score,
|
|
'cause': mp.cause,
|
|
'subject': mp.subject,
|
|
'owner': mp.owner_name,
|
|
'feedback': {'lowest': mp.lowest_feedback,
|
|
'highest': mp.highest_feedback, }, }
|
|
|
|
with open(os.path.join(out_dir, 'reviewday.json.tmp'), "w") as f:
|
|
json.dump(data, f, indent=2)
|
|
os.rename(f.name, os.path.join(out_dir, 'reviewday.json'))
|
|
|
|
|
|
def create_report(out_dir, name_space={}):
|
|
filename = os.path.join(os.path.dirname(__file__), 'report.html')
|
|
report_text = open(filename).read()
|
|
name_space['helper'] = html_helper
|
|
t = Template(report_text, searchList=[name_space])
|
|
|
|
prep_out_dir(out_dir)
|
|
|
|
with open(os.path.join(out_dir, 'index.html.tmp'), "w") as f:
|
|
f.write(str(t))
|
|
os.rename(f.name, os.path.join(out_dir, 'index.html'))
|
|
|
|
_create_json(out_dir, name_space=name_space)
|