From 44ee1286491c819aca764c55c24de7e63488e08b Mon Sep 17 00:00:00 2001 From: Holger Frey Date: Thu, 7 May 2026 15:47:14 +0200 Subject: [PATCH] ics2table: the email view contains now also the location --- work_helpers/ics2table.py | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/work_helpers/ics2table.py b/work_helpers/ics2table.py index 77820cf..241ee61 100644 --- a/work_helpers/ics2table.py +++ b/work_helpers/ics2table.py @@ -138,17 +138,32 @@ def create_wiki_table(events: Iterable[Event]) -> str: table_meta_data = _get_table_meta_data(events) headers = {key: f"'''{key.capitalize()}'''" for key in TABLE_COLUMN_ORDER} lines = [ - _create_table_line(headers, table_meta_data), + _create_table_line(headers, table_meta_data, sep="||", bracket=True), ] - for event in events: - lines.append(_create_table_line(event, table_meta_data)) + lines.extend( + _create_table_body(events, table_meta_data, sep="||", bracket=True) + ) + return "\n".join(lines) + + +def create_email_table(events: Iterable[Event]) -> str: + table_meta_data = _get_table_meta_data(events) + lines = _create_table_body(events, table_meta_data, sep="|", bracket=False) return "\n".join(lines) -def _create_table_line(event: Event, meta: TableMetaData) -> str: +def _create_table_body( + events: Iterable[Event], meta: TableMetaData, sep: str, *, bracket: bool +) -> list[str]: + return [_create_table_line(event, meta, sep=sep, bracket=bracket) for event in events] + + +def _create_table_line( + event: Event, meta: TableMetaData, sep: str, *, bracket: bool +) -> str: columns = [event[key].ljust(meta[key]) for key in TABLE_COLUMN_ORDER] - inner = " || ".join(columns) - return f"|| {inner} ||" + inner = f" {sep} ".join(columns) + return f"{sep} {inner} {sep}" if bracket else inner def _get_table_meta_data(events: Iterable[Event]) -> TableMetaData: @@ -159,17 +174,6 @@ def _get_table_meta_data(events: Iterable[Event]) -> TableMetaData: return meta -def create_email_table(events: Iterable[Event]) -> str: - table_meta_data = _get_table_meta_data(events) - date_key, _, name_key = TABLE_COLUMN_ORDER - pad_date = table_meta_data[date_key] - lines = [ - (event[date_key].ljust(pad_date) + " | " + event[name_key]) - for event in events - ] - return "\n".join(lines) - - @click.command() def group_schedule(): ics_file = get_ics(ICAL_URL)