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), (['OMIT'], 'Omit', str),
(['ADLIB'], 'Adlib', str), (['ADLIB'], 'Adlib', str),
(['OPT'], 'Optional', str), (['OPT'], 'Optional', str),
(['DONE'], 'Done', str),
(['Movie.Filename'], 'Movie', str), (['Movie.Filename'], 'Movie', str),
(['Movie.Start_Offset_Seconds'], 'Movie Seconds', float), (['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") os.chdir("Supervisor Logs")
output_supervisor_1pg(parsed) output_supervisor_1pg(parsed)
print_status_style("Creating Scripts directory and reports")
os.chdir("..") 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.makedirs("Talent Scripts", exist_ok=True)
os.chdir("Talent Scripts") os.chdir("Talent Scripts")
output_talent_sides(parsed) output_talent_sides(parsed)

View File

@@ -8,6 +8,7 @@ from reportlab.platypus.frames import Frame
from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfbase.ttfonts import TTFont
# This is from https://code.activestate.com/recipes/576832/ for # This is from https://code.activestate.com/recipes/576832/ for
# generating page count messages # generating page count messages
class ReportCanvas(canvas.Canvas): class ReportCanvas(canvas.Canvas):
@@ -87,7 +88,7 @@ def time_format(mins, zero_str=""):
else: else:
m = round(mins) m = round(mins)
hh, mm = divmod(m, 60) 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=""): 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 = "" tag_field = ""
for tag in line.keys(): for tag in line.keys():
if line[tag] == tag and tag != 'ADR': 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) entries.append(tag_field)
@@ -47,16 +56,16 @@ def build_story(lines):
('LEFTPADDING', (0, 0), (0, 0), 0.0), ('LEFTPADDING', (0, 0), (0, 0), 0.0),
('BOTTOMPADDING', (0, 0), (-1, -1), 24.)] ('BOTTOMPADDING', (0, 0), (-1, -1), 24.)]
if 'Omitted' in line.keys(): # if 'Omitted' in line.keys():
cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \ # cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
line['Character Name'] + "</font>" # line['Character Name'] + "</font>"
table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightpink)) # table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightpink))
elif 'Effort' in line.keys(): # elif 'Effort' in line.keys():
cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \ # cue_number_field = "<s>" + line['Cue Number'] + "</s><br /><font fontSize=7>" + \
line['Character Name'] + "</font>" # line['Character Name'] + "</font>"
table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightgreen)) # table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightgreen))
else: # else:
cue_number_field = line['Cue Number'] + "<br /><font fontSize=7>" + line['Character Name'] + "</font>" cue_number_field = line['Cue Number'] + "<br /><font fontSize=7>" + line['Character Name'] + "</font>"
time_data = time_format(line.get('Time Budget Mins', 0.)) time_data = time_format(line.get('Time Budget Mins', 0.))
@@ -89,16 +98,30 @@ def build_story(lines):
return story return story
def output_report(records, page_size=portrait(letter)): def generate_report(page_size, records, character_number=None):
lines = sorted(records['events'], key=lambda line: line['PT.Clip.Start_Seconds']) 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" filename = title + ".pdf"
doc = make_doc_template(page_size=page_size, doc = make_doc_template(page_size=page_size,
filename=filename, document_title=title, filename=filename, document_title=title,
record=lines[0], document_header='ADR Report') record=lines[0], document_header=document_header)
story = build_story(lines) story = build_story(lines)
doc.build(story) 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)