Character reports

This commit is contained in:
Jamie Hardt
2021-05-25 12:03:24 -07:00
parent 38fc92183d
commit f5a80b3bdf
3 changed files with 51 additions and 20 deletions

View File

@@ -49,6 +49,7 @@ adr_field_map = ((['Title', 'PT.Session.Name'], 'Title', str),
(['OMIT'], 'Omit', str),
(['ADLIB'], 'Adlib', str),
(['OPT'], 'Optional', str),
(['DONE'], 'Done', str),
(['Movie.Filename'], 'Movie', str),
(['Movie.Start_Offset_Seconds'], 'Movie Seconds', float),
)
@@ -156,8 +157,14 @@ def convert(input_file, output_format='fmpxml', start=None, end=None, select_ree
os.chdir("Supervisor Logs")
output_supervisor_1pg(parsed)
print_status_style("Creating Scripts directory and reports")
os.chdir("..")
print_status_style("Creating Director's Logs director and reports")
os.makedirs("Director Logs", exist_ok=True)
os.chdir("Director Logs")
output_summary(parsed, by_character=True)
os.chdir("..")
print_status_style("Creating Scripts directory and reports")
os.makedirs("Talent Scripts", exist_ok=True)
os.chdir("Talent Scripts")
output_talent_sides(parsed)

View File

@@ -8,6 +8,7 @@ from reportlab.platypus.frames import Frame
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
# This is from https://code.activestate.com/recipes/576832/ for
# generating page count messages
class ReportCanvas(canvas.Canvas):
@@ -87,7 +88,7 @@ def time_format(mins, zero_str=""):
else:
m = round(mins)
hh, mm = divmod(m, 60)
return "%ih%i" % (hh, mm)
return "%i:%02i" % (hh, mm)
def draw_header_footer(a_canvas, title_box, doc_title_box, footer_box, record, doc_title=""):

View File

@@ -23,7 +23,16 @@ def build_aux_data_field(line):
tag_field = ""
for tag in line.keys():
if line[tag] == tag and tag != 'ADR':
tag_field += "<font backColor=black textColor=white>" + tag + "</font> "
fcolor = 'white'
bcolor = 'black'
if tag == 'ADLIB' or tag == 'TBW':
bcolor = 'darkmagenta'
elif tag == 'EFF':
bcolor = 'red'
elif tag == 'TV':
bcolor = 'blue'
tag_field += "<font backColor=%s textColor=%s fontSize=11>%s</font> " % (bcolor, fcolor, tag)
entries.append(tag_field)
@@ -47,16 +56,16 @@ def build_story(lines):
('LEFTPADDING', (0, 0), (0, 0), 0.0),
('BOTTOMPADDING', (0, 0), (-1, -1), 24.)]
if 'Omitted' in line.keys():
cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
line['Character Name'] + "</font>"
table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightpink))
elif 'Effort' in line.keys():
cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
line['Character Name'] + "</font>"
table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightgreen))
else:
cue_number_field = line['Cue Number'] + "<br /><font fontSize=7>" + line['Character Name'] + "</font>"
# if 'Omitted' in line.keys():
# cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
# line['Character Name'] + "</font>"
# table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightpink))
# elif 'Effort' in line.keys():
# cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
# line['Character Name'] + "</font>"
# table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightgreen))
# else:
cue_number_field = line['Cue Number'] + "<br /><font fontSize=7>" + line['Character Name'] + "</font>"
time_data = time_format(line.get('Time Budget Mins', 0.))
@@ -89,16 +98,30 @@ def build_story(lines):
return story
def output_report(records, page_size=portrait(letter)):
lines = sorted(records['events'], key=lambda line: line['PT.Clip.Start_Seconds'])
def generate_report(page_size, records, character_number=None):
lines = records['events']
if character_number is not None:
lines = [r for r in lines if r['Character Number'] == character_number]
title = "%s ADR Report (%s)" % (lines[0]['Title'], lines[0]['Character Name'])
document_header = "%s ADR Report" % (lines[0]['Character Name'])
else:
title = "%s ADR Report" % (lines[0]['Title'])
document_header = 'ADR Report'
lines = sorted(lines, key=lambda line: line['PT.Clip.Start_Seconds'])
title = "%s ADR Report" % (lines[0]['Title'])
filename = title + ".pdf"
doc = make_doc_template(page_size=page_size,
filename=filename, document_title=title,
record=lines[0], document_header='ADR Report')
record=lines[0], document_header=document_header)
story = build_story(lines)
doc.build(story)
def output_report(records, page_size=portrait(letter), by_character=False):
if by_character:
character_numbers = set((r['Character Number'] for r in records['events']))
for n in character_numbers:
generate_report(page_size, records, n)
else:
generate_report(page_size, records)