Commit Graph

81 Commits

Author SHA1 Message Date
8dd7ae8c95 feat(dashboard): add admin-only Last Synced column
Adds a "Last Synced" column visible only to admins, positioned as the
last column. Displays the sync timestamp formatted as YYYY-MM-DD.
Includes the column in the visibility toggle modal.
2026-05-12 23:57:26 -07:00
616ffde402 fix: exclude archived projects from oldest-percent sync selection
Archived projects should not count toward the N% fraction nor be selected for syncing.
2026-05-12 23:44:52 -07:00
eb78676cdb feat: add script to backfill is_archived field on existing projects
One-time migration to set is_archived = (phase_name == 'Archived') for all projects already in Firestore.
2026-05-12 23:40:46 -07:00
3633923fa7 refactor: overhaul sync script with CLI modes, batch writes, and archive tracking
Add argparse with full/last_n/oldest_percent/hybrid/single sync modes.

Implement batch Firestore writes to reduce API overhead.

Add is_archived flag based on phase_name during sync.

Track last_synced_at on each project for incremental sync.

Improve logging with structured prefixes and worker summaries.

Remove dead code (duplicate date function, sync_single helper).
2026-05-12 23:40:25 -07:00
c62de705de feat: exclude archived projects from dashboard and query results
Add is_archived == False filter to all project queries so archived cases are hidden from users.
2026-05-12 23:39:49 -07:00
3ed260ef23 feat: add last_synced_at field to ProjectModel
Track when each project was last synced from Filevine for incremental sync strategies.
2026-05-12 23:39:30 -07:00
9df9e003c1 refactor: use requests Session for connection pooling and clean up debug output
Replace per-request requests.get/post with a shared Session for connection reuse.

Remove verbose print statements and add structured [WARN] prefixes to error logs.
2026-05-12 23:38:46 -07:00
dc81c8e2a7 fixes 2026-04-01 13:51:25 -07:00
c3263a0eaf undid 2026-02-19 20:29:51 -08:00
607e65560c resets passwords 2026-01-29 20:51:14 -08:00
86a09225e7 fixes 2026-01-28 13:10:56 -08:00
dc6c24ca6d fixes 2026-01-27 22:06:18 -08:00
6cde9ab75f progress 2026-01-03 21:28:34 -08:00
a1b836b392 fixes export 2025-12-17 16:14:02 -08:00
234578b646 supports lookup by domains 2025-12-09 22:01:06 -08:00
c3108ff68c Improvement 2025-12-05 00:10:08 -08:00
c3e943f135 final tweaks. 2025-12-04 10:55:23 -08:00
f915e33dab project overview. 2025-11-21 08:46:07 -08:00
aca18b781b supports export 2025-11-20 22:53:16 -08:00
5afb05d261 adds per page 2025-11-20 22:42:33 -08:00
d7afd31911 swaps column order 2025-11-20 22:20:45 -08:00
3216f0faf6 tweak 2025-11-18 23:38:09 -08:00
b90e859f35 visual tweak 2025-11-18 23:35:53 -08:00
e187af14b8 tweak 2025-11-18 23:30:36 -08:00
0bb071f337 formatting improvements. 2025-11-18 23:11:14 -08:00
5524d7308c only load 7 days 2025-11-10 10:52:57 -08:00
e04346a0f2 chore: remove unused cache.py file
File was identified as unused with no external references in the codebase.

This cleanup reduces codebase clutter and potential confusion.
2025-11-10 10:22:34 -08:00
bb238440cf add simulation opetion 2025-11-09 21:58:02 -08:00
a52dc04844 syncing 2025-11-09 21:46:35 -08:00
82d2269566 changes 2025-11-09 21:38:45 -08:00
cbe6964910 deploy script 2025-11-09 21:26:45 -08:00
da1606c7f2 login page looks better 2025-11-09 21:24:08 -08:00
1126b15144 allows admins to create new users 2025-11-09 21:16:48 -08:00
fbcf901c8d Update admin interface: enhance user management UI and fix admin.py logic 2025-11-09 21:10:37 -08:00
6c3ad7b18d progress. 2025-11-09 21:00:45 -08:00
bafa9190e2 much better 2025-11-09 20:44:26 -08:00
b3a96cab1e changes 2025-11-09 20:22:15 -08:00
662be72f6a feat: Implement comprehensive project data model and synchronization system
- Added ProjectModel class in models/project_model.py to define structure for Filevine project data with proper type hints and conversion methods (to_dict/from_dict)
- Implemented get_firestore_document() helper function in app.py for retrieving specific Firestore documents
- Enhanced dashboard pagination in app.py with improved error handling and debugging output for property contacts and project IDs
- Overhauled sync.py with:
  * Parallel processing using ThreadPoolExecutor for efficient project synchronization
  * Comprehensive extraction of project data from Filevine forms (newFileReview, datesAndDeadlines, propertyInfo, etc.)
  * Improved error handling and logging throughout the sync process
  * Proper handling of date conversions and field mappings from Filevine to Firestore
  * Added property contacts email extraction and viewing_emails array population
  * Added support for filtering projects by specific ProjectId (15914808) for targeted sync
- Added proper initialization of Filevine client in worker threads using thread-local storage
- Improved handling of optional fields and default values in ProjectModel
- Added detailed logging for progress tracking during synchronization

This implementation enables reliable synchronization of Filevine project data to Firestore with proper data modeling and error handling, supporting the dashboard's data requirements.
2025-11-09 20:21:53 -08:00
Bryce
0d0d0554a6 Update app.py to reflect latest changes in API routing and error handling 2025-11-09 19:47:09 -08:00
Bryce
903ffbbf42 progress 2025-11-09 19:41:37 -08:00
Bryce
5a61777128 extracted client 2025-11-09 15:57:22 -08:00
66e44d42a9 changes 2025-11-09 15:45:51 -08:00
a776ac2383 pagination 2025-11-07 16:50:11 -08:00
e25ace802e multi 2025-11-07 15:06:25 -08:00
cfd7020e1b multi 2025-11-07 15:03:20 -08:00
76e966fb0b fixes 2025-11-07 14:35:46 -08:00
706807654b Hide/show columns. 2025-11-07 11:16:34 -08:00
5dfcb6ff44 big progress on saving visible columns. 2025-11-07 11:03:03 -08:00
19f308ede5 cloaking 2025-11-07 10:08:28 -08:00
30c5613937 progress 2025-11-07 10:02:33 -08:00