Changeset - 6703d1af87ad
[Not reviewed]
0 2 0
Brett Smith - 3 years ago 2021-03-15 17:19:03
brettcsmith@brettcsmith.org
reports: BaseODS puts each line of strings in a P tag.

This seems to be the most straightforward way to get Calc to automatically
determine a nice row height for multi-line string cells. This has become a
lot more noticeable now that query-report supports putting postal addresses
in cells.
2 files changed with 13 insertions and 4 deletions:
0 comments (0 inline, 0 general)
conservancy_beancount/reports/core.py
Show inline comments
...
 
@@ -1438,5 +1438,11 @@ class BaseODS(BaseSpreadsheet[RT, ST], metaclass=abc.ABCMeta):
 
    def multiline_cell(self, lines: Iterable[Any], **attrs: Any) -> odf.table.TableCell:
 
        item_lines = [str(item).splitlines() for item in lines if item is not None]
 
        if any(len(seq) > 1 for seq in item_lines):
 
            for seq in item_lines:
 
                seq.append('')
 
            seq.pop()
 
        cell = odf.table.TableCell(valuetype='string', **attrs)
 
        for line in lines:
 
            cell.addElement(odf.text.P(text=str(line)))
 
        for seq in item_lines:
 
            for line in seq:
 
                cell.addElement(odf.text.P(text=line))
 
        return cell
...
 
@@ -1459,3 +1465,4 @@ class BaseODS(BaseSpreadsheet[RT, ST], metaclass=abc.ABCMeta):
 
        cell = odf.table.TableCell(valuetype='string', **attrs)
 
        cell.addElement(odf.text.P(text=text))
 
        for line in text.splitlines():
 
            cell.addElement(odf.text.P(text=line))
 
        return cell
tests/test_reports_fund.py
Show inline comments
...
 
@@ -195,3 +195,5 @@ def check_ods_sheet(sheet, account_balances, *, full):
 
            fund = next(cells).firstChild.text
 
        except (AttributeError, StopIteration):
 
        except AttributeError:
 
            fund = ''
 
        except StopIteration:
 
            continue
0 comments (0 inline, 0 general)