From e0b2d00332e3ea07834d72d47601cb7d0c6daa6a Mon Sep 17 00:00:00 2001 From: Jamie Hardt Date: Sun, 6 Jun 2021 20:22:51 -0700 Subject: [PATCH] Style fixes --- .idea/dictionaries/jamie.xml | 3 ++ ptulsconv/commands.py | 5 +- ptulsconv/pdf/__init__.py | 14 +++--- ptulsconv/pdf/continuity.py | 11 +++-- ptulsconv/pdf/line_count.py | 86 ++++++++++++++++++++--------------- ptulsconv/pdf/summary_log.py | 2 +- ptulsconv/pdf/talent_sides.py | 2 +- 7 files changed, 70 insertions(+), 53 deletions(-) diff --git a/.idea/dictionaries/jamie.xml b/.idea/dictionaries/jamie.xml index 63cbafe..07f35a2 100644 --- a/.idea/dictionaries/jamie.xml +++ b/.idea/dictionaries/jamie.xml @@ -6,9 +6,12 @@ fmpxml futura leftpadding + lineafter + linebefore ptulsconv retval smpte + subheader timecode timespan diff --git a/ptulsconv/commands.py b/ptulsconv/commands.py index b8d7a8d..711fc72 100644 --- a/ptulsconv/commands.py +++ b/ptulsconv/commands.py @@ -160,8 +160,9 @@ def convert(input_file, major_mode='fmpxml', output=sys.stdout, warnings=True): os.makedirs(reports_dir, exist_ok=False) os.chdir(reports_dir) - reels = sorted([r for r in compiler.compile_all_time_spans() if r[0] == 'Reel'], - key=lambda x: x[2]) + # reels = sorted([r for r in compiler.compile_all_time_spans() if r[0] == 'Reel'], + # key=lambda x: x[2]) + reels = ['R1', 'R2', 'R3', 'R4', 'R5', 'R6'] create_adr_reports(adr_lines, tc_display_format=session_tc_format, diff --git a/ptulsconv/pdf/__init__.py b/ptulsconv/pdf/__init__.py index 0baef7d..b56a926 100644 --- a/ptulsconv/pdf/__init__.py +++ b/ptulsconv/pdf/__init__.py @@ -14,7 +14,6 @@ from ptulsconv.docparser.adr_entity import ADRLine # TODO: A Generic report useful for spotting # TODO: A report useful for M&E mixer's notes -# TODO: Address all style notes this file # This is from https://code.activestate.com/recipes/576832/ for # generating page count messages @@ -62,7 +61,7 @@ def make_doc_template(page_size, filename, document_title, supervisor: str, document_header: str, client: str, - document_date: str, + document_subheader: str, left_margin=0.5 * inch) -> ADRDocTemplate: right_margin = top_margin = bottom_margin = 0.5 * inch page_box = GRect(0., 0., page_size[0], page_size[1]) @@ -79,7 +78,8 @@ def make_doc_template(page_size, filename, document_title, frames=[Frame(page_box.min_x, page_box.min_y, page_box.width, page_box.height)], onPage=lambda c, _: draw_header_footer(c, report_box, title_box, footer_box, title=title, supervisor=supervisor, - document_date=document_date, client=client, + document_subheader=document_subheader, + client=client, doc_title=document_header)) pdfmetrics.registerFont(TTFont('Futura', 'Futura.ttc')) @@ -95,7 +95,7 @@ def make_doc_template(page_size, filename, document_title, return doc -def time_format(mins, zero_str=""): +def time_format(mins, zero_str="-"): if mins == 0. and zero_str is not None: return zero_str elif mins < 60.: @@ -107,7 +107,7 @@ def time_format(mins, zero_str=""): def draw_header_footer(a_canvas: ReportCanvas, left_box, right_box, footer_box, title: str, supervisor: str, - document_date: str, client: str, doc_title=""): + document_subheader: str, client: str, doc_title=""): (_supervisor_box, client_box,), title_box = right_box.divide_y([16., 16., ]) title_box.draw_text_cell(a_canvas, title, "Futura", 18, inset_y=2., inset_x=5.) @@ -130,8 +130,8 @@ def draw_header_footer(a_canvas: ReportCanvas, left_box, right_box, footer_box, doc_title_cell.draw_text_cell(a_canvas, doc_title, 'Futura', 14., inset_y=2.) - if document_date is not None: - spotting_version_cell.draw_text_cell(a_canvas, document_date, 'Futura', 12., inset_y=2.) + if document_subheader is not None: + spotting_version_cell.draw_text_cell(a_canvas, document_subheader, 'Futura', 12., inset_y=2.) if supervisor is not None: a_canvas.setFont('Futura', 11.) diff --git a/ptulsconv/pdf/continuity.py b/ptulsconv/pdf/continuity.py index 99a2bd0..5e23049 100644 --- a/ptulsconv/pdf/continuity.py +++ b/ptulsconv/pdf/continuity.py @@ -10,7 +10,8 @@ from ptulsconv.pdf import make_doc_template # TODO: A Continuity def output_report(scenes: List[Tuple[str, Fraction, Fraction]], - tc_display_format: TimecodeFormat, title: str, + tc_display_format: TimecodeFormat, + title: str, client: str, supervisor, page_size=portrait(letter)): filename = "%s Continuity" % title @@ -18,9 +19,9 @@ def output_report(scenes: List[Tuple[str, Fraction, Fraction]], doc = make_doc_template(page_size=page_size, filename=filename, document_title=title, - title="", - client="", - document_date="", - supervisor="", + title=title, + client=client, + document_subheader="", + supervisor=supervisor, document_header=document_header, left_margin=0.75 * inch) diff --git a/ptulsconv/pdf/line_count.py b/ptulsconv/pdf/line_count.py index 89419d4..29bf4c8 100644 --- a/ptulsconv/pdf/line_count.py +++ b/ptulsconv/pdf/line_count.py @@ -7,7 +7,7 @@ from reportlab.lib.units import inch from reportlab.lib.pagesizes import letter, portrait from reportlab.lib import colors -from reportlab.platypus import Table, Paragraph +from reportlab.platypus import Table, Paragraph, Spacer from reportlab.lib.styles import getSampleStyleSheet from .__init__ import time_format, make_doc_template @@ -38,6 +38,47 @@ def build_columns(lines: List[ADRLine], reel_list: Optional[List[str]], show_pri 'summarize': False }) + columns.append({ + 'heading': 'TV', + 'value_getter': lambda recs: len([r for r in recs if r.tv]), + 'value_getter2': lambda recs: time_format(sum([r.time_budget_mins or 0. + for r in recs if r.tv])), + 'style_getter': lambda col_index: [('ALIGN', (col_index, 0), (col_index, -1), 'CENTER'), + ('LINEBEFORE', (col_index, 0), (col_index, -1), 1., colors.black), + ('LINEAFTER', (col_index, 0), (col_index, -1), .5, colors.gray)], + 'width': num_column_width + }) + + columns.append({ + 'heading': 'Opt', + 'value_getter': lambda recs: len([r for r in recs if r.optional]), + 'value_getter2': lambda recs: time_format(sum([r.time_budget_mins or 0. + for r in recs if r.optional])), + 'style_getter': lambda col_index: [('ALIGN', (col_index, 0), (col_index, -1), 'CENTER'), + ('LINEAFTER', (col_index, 0), (col_index, -1), .5, colors.gray)], + 'width': num_column_width + }) + + columns.append({ + 'heading': 'Eff', + 'value_getter': lambda recs: len([r for r in recs if r.effort]), + 'value_getter2': lambda recs: time_format(sum([r.time_budget_mins or 0. + for r in recs if r.effort])), + 'style_getter': lambda col_index: [('ALIGN', (col_index, 0), (col_index, -1), 'CENTER')], + 'width': num_column_width + }) + + columns.append({ + 'heading': '', + 'value_getter': lambda _: '', + 'value_getter2': lambda _: '', + 'style_getter': lambda col_index: [ + ('LINEBEFORE', (col_index, 0), (col_index, -1), 1., colors.black), + ('LINEAFTER', (col_index, 0), (col_index, -1), 1., colors.black), + ], + 'width': 2. + }) + if len(reel_numbers) > 0: # columns.append({ # 'heading': 'RX', @@ -79,36 +120,6 @@ def build_columns(lines: List[ADRLine], reel_list: Optional[List[str]], show_pri 'width': num_column_width }) - columns.append({ - 'heading': 'TV', - 'value_getter': lambda recs: len([r for r in recs if r.tv]), - 'value_getter2': lambda recs: time_format(sum([r.time_budget_mins or 0. - for r in recs if r.tv])), - 'style_getter': lambda col_index: [('ALIGN', (col_index, 0), (col_index, -1), 'CENTER'), - ('LINEBEFORE', (col_index, 0), (col_index, -1), 1., colors.black), - ('LINEAFTER', (col_index, 0), (col_index, -1), .5, colors.gray)], - 'width': num_column_width - }) - - columns.append({ - 'heading': 'Opt', - 'value_getter': lambda recs: len([r for r in recs if r.optional]), - 'value_getter2': lambda recs: time_format(sum([r.time_budget_mins or 0. - for r in recs if r.optional])), - 'style_getter': lambda col_index: [('ALIGN', (col_index, 0), (col_index, -1), 'CENTER'), - ('LINEAFTER', (col_index, 0), (col_index, -1), .5, colors.gray)], - 'width': num_column_width - }) - - columns.append({ - 'heading': 'Eff', - 'value_getter': lambda recs: len([r for r in recs if r.effort]), - 'value_getter2': lambda recs: time_format(sum([r.time_budget_mins or 0. - for r in recs if r.effort])), - 'style_getter': lambda col_index: [('ALIGN', (col_index, 0), (col_index, -1), 'CENTER')], - 'width': num_column_width - }) - if include_omitted: columns.append({ 'heading': 'Omit', @@ -133,7 +144,6 @@ def build_columns(lines: List[ADRLine], reel_list: Optional[List[str]], show_pri def populate_columns(lines: List[ADRLine], columns, include_omitted, _page_size): - # TODO: use page_size parameter data = list() styles = list() columns_widths = list() @@ -199,7 +209,7 @@ def output_report(lines: List[ADRLine], reel_list: List[str], include_omitted=Fa style.append(('FONTNAME', (0, 0), (-1, -1), "Futura")) style.append(('FONTSIZE', (0, 0), (-1, -1), 9.)) style.append(('LINEBELOW', (0, 0), (-1, 0), 1.0, colors.black)) - style.append(('LINEBELOW', (0, 1), (-1, -1), 0.25, colors.gray)) + # style.append(('LINEBELOW', (0, 1), (-1, -1), 0.25, colors.gray)) pdfmetrics.registerFont(TTFont('Futura', 'Futura.ttc')) @@ -207,7 +217,7 @@ def output_report(lines: List[ADRLine], reel_list: List[str], include_omitted=Fa filename = title + '.pdf' doc = make_doc_template(page_size=page_size, filename=filename, document_title=title, title=lines[0].title, - document_date=lines[0].spot, + document_subheader=lines[0].spot, client=lines[0].client, supervisor=lines[0].supervisor, document_header='Line Count') @@ -217,7 +227,7 @@ def output_report(lines: List[ADRLine], reel_list: List[str], include_omitted=Fa table = Table(data=data, style=style, colWidths=columns_widths) - story = [table] + story = [Spacer(height=0.5 * inch, width=1.), table] style = getSampleStyleSheet()['Normal'] style.fontName = 'Futura' @@ -225,7 +235,9 @@ def output_report(lines: List[ADRLine], reel_list: List[str], include_omitted=Fa style.spaceBefore = 16. style.spaceAfter = 16. - if not include_omitted: - story.append(Paragraph("* Omitted lines are excluded.", style)) + omitted_count = len([x for x in lines if x.omitted]) + + if not include_omitted and omitted_count > 0: + story.append(Paragraph("* %i Omitted lines are excluded." % omitted_count, style)) doc.build(story) diff --git a/ptulsconv/pdf/summary_log.py b/ptulsconv/pdf/summary_log.py index 763ddb4..2c472d9 100644 --- a/ptulsconv/pdf/summary_log.py +++ b/ptulsconv/pdf/summary_log.py @@ -130,7 +130,7 @@ def generate_report(page_size, lines: List[ADRLine], tc_rate: TimecodeFormat, ch title=lines[0].title, supervisor=lines[0].supervisor, client=lines[0].client, - document_date=lines[0].spot, + document_subheader=lines[0].spot, left_margin=0.75 * inch) story = build_story(lines, tc_rate) doc.build(story) diff --git a/ptulsconv/pdf/talent_sides.py b/ptulsconv/pdf/talent_sides.py index 22f68c7..e3b3e60 100644 --- a/ptulsconv/pdf/talent_sides.py +++ b/ptulsconv/pdf/talent_sides.py @@ -31,7 +31,7 @@ def output_report(lines: List[ADRLine], tc_display_format: TimecodeFormat): doc = make_doc_template(page_size=letter, filename=filename, document_title=title, title=char_lines[0].title, - document_date=char_lines[0].spot, + document_subheader=char_lines[0].spot, supervisor=char_lines[0].supervisor, client=char_lines[0].client, document_header=character_name)