diff --git a/ptulsconv/commands.py b/ptulsconv/commands.py
index 0bccfbd..6634b6e 100644
--- a/ptulsconv/commands.py
+++ b/ptulsconv/commands.py
@@ -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)
diff --git a/ptulsconv/pdf/common.py b/ptulsconv/pdf/common.py
index 33ede77..b96312f 100644
--- a/ptulsconv/pdf/common.py
+++ b/ptulsconv/pdf/common.py
@@ -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=""):
diff --git a/ptulsconv/pdf/summary_log.py b/ptulsconv/pdf/summary_log.py
index 8d60b24..602f574 100644
--- a/ptulsconv/pdf/summary_log.py
+++ b/ptulsconv/pdf/summary_log.py
@@ -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 += "" + tag + " "
+ fcolor = 'white'
+ bcolor = 'black'
+ if tag == 'ADLIB' or tag == 'TBW':
+ bcolor = 'darkmagenta'
+ elif tag == 'EFF':
+ bcolor = 'red'
+ elif tag == 'TV':
+ bcolor = 'blue'
+
+ tag_field += "%s " % (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 = "" + line['Cue Number'] + "
" + \
- line['Character Name'] + ""
- table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightpink))
- elif 'Effort' in line.keys():
- cue_number_field = "" + line['Cue Number'] + "
" + \
- line['Character Name'] + ""
- table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightgreen))
- else:
- cue_number_field = line['Cue Number'] + "
" + line['Character Name'] + ""
+ # if 'Omitted' in line.keys():
+ # cue_number_field = "" + line['Cue Number'] + "
" + \
+ # line['Character Name'] + ""
+ # table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightpink))
+ # elif 'Effort' in line.keys():
+ # cue_number_field = "" + line['Cue Number'] + "
" + \
+ # line['Character Name'] + ""
+ # table_style.append(('BACKGROUND', (0, 0), (-1, 0), colors.lightgreen))
+ # else:
+ cue_number_field = line['Cue Number'] + "
" + line['Character Name'] + ""
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)