Pier Log Tracker — Email List to Branch POC

Added: 2026-07-15 (session 58) Type: feature

The pier log tracker page (entirely.it.com/pierlog-tracker) can now email the outstanding (waiting) list for a branch to that branch’s point of contact.

Behavior

  • Email List button appears in the filter row when a specific branch is selected (Dustin/Jacob only, gated by can_email_list).
  • Modal shows the count of waiting projects in the current view and a To field.
  • To field prefills from email_list_pocs returned by the tracker GET — currently only JES Manassas → Zoe.Kelley@groundworks.com. Other branches start blank and are filled case-by-case.
  • Email is an HTML table: Customer #, Address, Scope of Work (UND lines only), Inspection Date — sorted oldest inspection first.

Implementation

  • API: POST /portal/reconciliation/pierlog-tracker/email-list in routes/reconciliation.py (entirely-api f75b718). Frontend sends branch, to[], and the smartsuite_ids currently shown as waiting; the server re-fetches project + SOW details from Supabase so the email never trusts client row data. Sends via services/google_service.send_email (operations@unlikely.pro).
  • Default POC map: _PIERLOG_LIST_POC in routes/reconciliation.py — edit there to add standing recipients for other branches.
  • Portal: src/pages/PierLogTracker.tsx (entirely-portal f0f3f52).

Related: pierlog-upload-flow (unlikely.pl per-project RFI emails use _PIERLOG_RFI_SCHEDULERS in the same file — separate contact map).