Sort alphabetical locality then by name.
This commit is contained in:
@ -5,6 +5,7 @@ import tempfile
|
||||
import jinja2
|
||||
import os
|
||||
from playwright.sync_api import sync_playwright
|
||||
from itertools import groupby
|
||||
|
||||
def is_number(s):
|
||||
"""Returns True if s can be interpreted as a float."""
|
||||
@ -37,9 +38,15 @@ def main():
|
||||
reader = csv.DictReader(f, delimiter='\t')
|
||||
rows = list(reader)
|
||||
|
||||
# 2. Sort rows by sending locality
|
||||
rows = sorted(rows, key=lambda r: r.get("Sending locality:", "").strip())
|
||||
# 2. Sort rows by sending locality first, then by name
|
||||
rows = sorted(rows, key=lambda r: (
|
||||
r.get("Sending locality:", "").strip(),
|
||||
r.get("Name (last, first): ", "").strip()
|
||||
))
|
||||
# Group rows by locality to generate separate pdfs
|
||||
grouped_rows = groupby(rows, key=lambda r: r.get("Sending locality:", "").strip())
|
||||
|
||||
|
||||
# Known columns to skip
|
||||
skip_cols = {
|
||||
'Timestamp',
|
||||
@ -51,7 +58,7 @@ def main():
|
||||
# 3. Process each row into a data structure for Jinja2
|
||||
processed_rows = []
|
||||
for row in rows:
|
||||
name = row.get('Name (last, first):', '').strip()
|
||||
#name = row.get('Name (last, first):', '').strip() # TODO: Refactor: This isn't working because it's 'Name (last, first): '. Unused for now.
|
||||
locality = row.get('Sending locality:', '').strip()
|
||||
|
||||
q_and_a = []
|
||||
@ -90,7 +97,7 @@ def main():
|
||||
})
|
||||
|
||||
processed_rows.append({
|
||||
"name": name,
|
||||
# "name": name,
|
||||
"locality": locality,
|
||||
"entries": q_and_a
|
||||
})
|
||||
|
Reference in New Issue
Block a user