Reworked function calls to report functions

To make things make more sense.
This commit is contained in:
Jamie Hardt
2021-05-25 12:53:32 -07:00
parent 2f037ad4db
commit 9927488f1e
5 changed files with 59 additions and 58 deletions

View File

@@ -143,31 +143,34 @@ def convert(input_file, output_format='fmpxml', start=None, end=None, select_ree
if output_format == 'json': if output_format == 'json':
json.dump(parsed, output) json.dump(parsed, output)
elif output_format == 'full': elif output_format == 'adr':
lines = [e for e in parsed['events'] if 'ADR' in e.keys()]
print_section_header_style("Creating PDF Reports") print_section_header_style("Creating PDF Reports")
print_status_style("Creating ADR Report") print_status_style("Creating ADR Report")
output_summary(parsed) output_summary(lines)
print_status_style("Creating Line Count") print_status_style("Creating Line Count")
output_line_count(parsed) output_line_count(lines)
print_status_style("Creating Supervisor Logs directory and reports") print_status_style("Creating Supervisor Logs directory and reports")
os.makedirs("Supervisor Logs", exist_ok=True) os.makedirs("Supervisor Logs", exist_ok=True)
os.chdir("Supervisor Logs") os.chdir("Supervisor Logs")
output_supervisor_1pg(parsed) output_supervisor_1pg(lines)
os.chdir("..") os.chdir("..")
print_status_style("Creating Director's Logs director and reports") print_status_style("Creating Director's Logs director and reports")
os.makedirs("Director Logs", exist_ok=True) os.makedirs("Director Logs", exist_ok=True)
os.chdir("Director Logs") os.chdir("Director Logs")
output_summary(parsed, by_character=True) output_summary(lines, by_character=True)
os.chdir("..") os.chdir("..")
print_status_style("Creating Scripts directory and reports") 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(lines)
elif output_format == 'fmpxml': elif output_format == 'fmpxml':
if xsl is None: if xsl is None:

View File

@@ -11,9 +11,9 @@ from reportlab.lib.styles import getSampleStyleSheet
from .common import time_format, make_doc_template from .common import time_format, make_doc_template
def build_columns(records, show_priorities=False, include_omitted=False): def build_columns(lines, show_priorities=False, include_omitted=False):
columns = list() columns = list()
reel_numbers = sorted(set([x['Reel'] for x in records['events'] if 'Reel' in x.keys()])) reel_numbers = sorted(set([x['Reel'] for x in lines if 'Reel' in x.keys()]))
num_column_width = 0.375 * inch num_column_width = 0.375 * inch
@@ -129,12 +129,12 @@ def build_columns(records, show_priorities=False, include_omitted=False):
return columns return columns
def populate_columns(records, columns, include_omitted, page_size): def populate_columns(lines, columns, include_omitted, page_size):
data = list() data = list()
styles = list() styles = list()
columns_widths = list() columns_widths = list()
sorted_character_numbers = sorted(set([x['Character Number'] for x in records['events'] sorted_character_numbers = sorted(set([x['Character Number'] for x in lines
if 'Character Number' in x.keys()]), if 'Character Number' in x.keys()]),
key=lambda x: str(x)) key=lambda x: str(x))
@@ -146,10 +146,8 @@ def populate_columns(records, columns, include_omitted, page_size):
data.append(list(map(lambda x: x['heading'], columns))) data.append(list(map(lambda x: x['heading'], columns)))
if include_omitted: if not include_omitted:
lines = [x for x in records['events']] lines = [x for x in lines if 'Omitted' not in x.keys()]
else:
lines = [x for x in records['events'] if 'Omitted' not in x.keys()]
for n in sorted_character_numbers: for n in sorted_character_numbers:
char_records = list([x for x in lines if x['Character Number'] == n]) char_records = list([x for x in lines if x['Character Number'] == n])
@@ -189,9 +187,9 @@ def populate_columns(records, columns, include_omitted, page_size):
def build_header(column_widths): def build_header(column_widths):
pass pass
def output_report(records, include_omitted=False, page_size=portrait(letter)): def output_report(lines, include_omitted=False, page_size=portrait(letter)):
columns = build_columns(records, include_omitted) columns = build_columns(lines, include_omitted)
data, style, columns_widths = populate_columns(records, columns, include_omitted, page_size) data, style, columns_widths = populate_columns(lines, columns, include_omitted, page_size)
style.append(('FONTNAME', (0, 0), (-1, -1), "Futura")) style.append(('FONTNAME', (0, 0), (-1, -1), "Futura"))
style.append(('FONTSIZE', (0, 0), (-1, -1), 9.)) style.append(('FONTSIZE', (0, 0), (-1, -1), 9.))
@@ -200,11 +198,11 @@ def output_report(records, include_omitted=False, page_size=portrait(letter)):
pdfmetrics.registerFont(TTFont('Futura', 'Futura.ttc')) pdfmetrics.registerFont(TTFont('Futura', 'Futura.ttc'))
title = "%s Line Count" % (records['events'][0]['Title']) title = "%s Line Count" % (lines[0]['Title'])
filename = title + '.pdf' filename = title + '.pdf'
doc = make_doc_template(page_size=page_size, filename=filename, doc = make_doc_template(page_size=page_size, filename=filename,
document_title=title, document_title=title,
record=records['events'][0], record=lines[0],
document_header='Line Count') document_header='Line Count')
#header_data, header_style, header_widths = build_header(columns_widths) #header_data, header_style, header_widths = build_header(columns_widths)

View File

@@ -56,16 +56,7 @@ 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(): cue_number_field = "%s<br /><font fontSize=7>%s</font>" % (line['Cue Number'], line['Character Name'])
# 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.)) time_data = time_format(line.get('Time Budget Mins', 0.))
@@ -74,19 +65,7 @@ def build_story(lines):
aux_data_field = build_aux_data_field(line) aux_data_field = build_aux_data_field(line)
tc_data = line['PT.Clip.Start'] + "<br />" + line['PT.Clip.Finish'] tc_data = build_tc_data(line)
third_line = []
if 'Reel' in line.keys():
if line['Reel'][0:1] == 'R':
third_line.append("%s" % (line['Reel']))
else:
third_line.append("Reel %s" % (line['Reel']))
if 'Version' in line.keys():
third_line.append("(%s)" % line['Version'])
if len(third_line) > 0:
tc_data = tc_data + "<br/>" + " ".join(third_line)
line_table_data = [[Paragraph(cue_number_field, line_style), line_table_data = [[Paragraph(cue_number_field, line_style),
Paragraph(tc_data, line_style), Paragraph(tc_data, line_style),
@@ -112,8 +91,23 @@ def build_story(lines):
return story return story
def generate_report(page_size, records, character_number=None): def build_tc_data(line):
lines = records['events'] tc_data = line['PT.Clip.Start'] + "<br />" + line['PT.Clip.Finish']
third_line = []
if 'Reel' in line.keys():
if line['Reel'][0:1] == 'R':
third_line.append("%s" % (line['Reel']))
else:
third_line.append("Reel %s" % (line['Reel']))
if 'Version' in line.keys():
third_line.append("(%s)" % line['Version'])
if len(third_line) > 0:
tc_data = tc_data + "<br/>" + " ".join(third_line)
return tc_data
def generate_report(page_size, lines, character_number=None, include_done=True,
include_omitted=True):
if character_number is not None: if character_number is not None:
lines = [r for r in lines if r['Character Number'] == character_number] lines = [r for r in lines if r['Character Number'] == character_number]
title = "%s ADR Report (%s)" % (lines[0]['Title'], lines[0]['Character Name']) title = "%s ADR Report (%s)" % (lines[0]['Title'], lines[0]['Character Name'])
@@ -122,6 +116,12 @@ def generate_report(page_size, records, character_number=None):
title = "%s ADR Report" % (lines[0]['Title']) title = "%s ADR Report" % (lines[0]['Title'])
document_header = 'ADR Report' document_header = 'ADR Report'
if not include_done:
lines = [line for line in lines if 'Done' not in line.keys()]
if not include_omitted:
lines = [line for line in lines if 'Omitted' not in line.keys()]
lines = sorted(lines, key=lambda line: line['PT.Clip.Start_Seconds']) lines = sorted(lines, key=lambda line: line['PT.Clip.Start_Seconds'])
filename = title + ".pdf" filename = title + ".pdf"
@@ -132,10 +132,10 @@ def generate_report(page_size, records, character_number=None):
doc.build(story) doc.build(story)
def output_report(records, page_size=portrait(letter), by_character=False): def output_report(lines, page_size=portrait(letter), by_character=False):
if by_character: if by_character:
character_numbers = set((r['Character Number'] for r in records['events'])) character_numbers = set((r['Character Number'] for r in lines))
for n in character_numbers: for n in character_numbers:
generate_report(page_size, records, n) generate_report(page_size, lines, n)
else: else:
generate_report(page_size, records) generate_report(page_size, lines)

View File

@@ -236,10 +236,10 @@ def create_report_for_character(records, report_date):
c.save() c.save()
def output_report(records): def output_report(lines):
report_date = datetime.datetime.now() report_date = datetime.datetime.now()
events = sorted(records['events'], key=lambda x: x['PT.Clip.Start_Frames']) events = sorted(lines, key=lambda x: x['PT.Clip.Start_Frames'])
character_numbers = set([x['CN'] for x in events]) character_numbers = set([x['CN'] for x in lines])
for n in character_numbers: for n in character_numbers:
create_report_for_character([e for e in events if e['CN'] == n], report_date) create_report_for_character([e for e in events if e['CN'] == n], report_date)

View File

@@ -12,21 +12,21 @@ from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont from reportlab.pdfbase.ttfonts import TTFont
def output_report(records): def output_report(lines):
character_numbers = set([n['Character Number'] for n in records['events']]) character_numbers = set([n['Character Number'] for n in lines])
pdfmetrics.registerFont(TTFont('Futura', 'Futura.ttc')) pdfmetrics.registerFont(TTFont('Futura', 'Futura.ttc'))
for n in character_numbers: for n in character_numbers:
lines = [line for line in records['events'] char_lines = [line for line in lines
if 'Omit' not in line.keys() and line['Character Number'] == n] if 'Omit' not in line.keys() and line['Character Number'] == n]
sorted(lines, key=lambda line: line['PT.Clip.Start_Seconds']) sorted(char_lines, key=lambda line: line['PT.Clip.Start_Seconds'])
title = "%s (%s) %s ADR Script" % (lines[0]['Title'], lines[0]['Character Name'], n) title = "%s (%s) %s ADR Script" % (char_lines[0]['Title'], char_lines[0]['Character Name'], n)
filename = "%s_%s_%s_ADR Script.pdf" % (lines[0]['Title'], n, lines[0]['Character Name']) filename = "%s_%s_%s_ADR Script.pdf" % (lines[0]['Title'], n, lines[0]['Character Name'])
doc = make_doc_template(page_size=letter, filename=filename, document_title=title, doc = make_doc_template(page_size=letter, filename=filename, document_title=title,
record=lines[0], document_header=lines[0]['Character Name']) record=char_lines[0], document_header=char_lines[0]['Character Name'])
story = [] story = []
@@ -46,7 +46,7 @@ def output_report(records):
number_style.leftIndent = 0. number_style.leftIndent = 0.
number_style.rightIndent = 0. number_style.rightIndent = 0.
for line in lines: for line in char_lines:
data_block = [[Paragraph(line['Cue Number'], number_style), data_block = [[Paragraph(line['Cue Number'], number_style),
Paragraph(line['PT.Clip.Start'] + " - " + line['PT.Clip.Finish'], number_style) Paragraph(line['PT.Clip.Start'] + " - " + line['PT.Clip.Finish'], number_style)
]] ]]