Skip to content

Commit

Permalink
People import error: tell the user what in the header is not as expected
Browse files Browse the repository at this point in the history
  • Loading branch information
Tschuppi81 committed Jul 12, 2024
1 parent 293f160 commit d97f690
Showing 1 changed file with 11 additions and 3 deletions.
14 changes: 11 additions & 3 deletions src/onegov/people/cli.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import sys

import click
import re
import transaction
Expand Down Expand Up @@ -93,7 +95,7 @@ def export_xlsx(filename: str) -> 'Callable[[CoreRequest, Framework], None]':
Example:
onegov-people --select '/org/govikon' export people.xlsx
onegov-people --select '/onegov_org/govikon' export people.xlsx
"""

Expand Down Expand Up @@ -129,7 +131,7 @@ def import_xlsx(file: IO[bytes]) -> 'Callable[[CoreRequest, Framework], None]':
Example:
onegov-people --select '/org/govikon' import people.xlsx
onegov-people --select '/onegov_org/govikon' import people.xlsx
"""

Expand All @@ -150,7 +152,13 @@ def _import(request: 'CoreRequest', app: 'Framework') -> None:
for index, row in enumerate(sheet.rows):
values = tuple(cell.value for cell in row)
if not index:
assert values == tuple(EXPORT_FIELDS.keys())
if values != tuple(EXPORT_FIELDS.keys()):
click.echo('Error in column headers')
click.echo('\nExpected - Current')
for exp, cur in zip(tuple(EXPORT_FIELDS.keys()), values):
color = 'green' if exp == cur else 'red'
click.secho(f'{exp} - {cur}', fg=color)
sys.exit('\nAborting import')

Check warning on line 161 in src/onegov/people/cli.py

View check run for this annotation

Codecov / codecov/patch

src/onegov/people/cli.py#L155-L161

Added lines #L155 - L161 were not covered by tests
else:
session.add(
Person(**dict(zip(EXPORT_FIELDS.values(), values)))
Expand Down

0 comments on commit d97f690

Please sign in to comment.