Skip to content

Commit d20f192

Browse files
committed
Add PropertyRadar CSV import with list associations and TDD tests
Major improvements: - PropertyRadar import now creates/associates campaign lists - Added comprehensive TDD tests for list associations - Fixed campaign list service statistics handling - Added detailed CSV import planning document Changes: - Enhanced PropertyRadarImportService with list_name parameter - Service creates CampaignList when list_name provided - Associates all imported contacts via CampaignListMember - Returns enhanced statistics with list information - Fixed CampaignListServiceRefactored.get_list_stats() - Added limit parameter to get_list_contacts() Tests added: - Unit tests for PropertyRadar list associations (8 tests) - Integration tests for PropertyRadar list workflow (6 tests) - Service tests for contact counting (9 tests) - Route tests for list detail display (5 tests) - Repository tests for list filtering Documentation: - Created comprehensive implementation plan for CSV import fixes - Detailed analysis of current issues and proposed solutions - Phased implementation approach with acceptance criteria Next steps: - Implement duplicate detection strategies - Fix progress bar calculation - Add transaction management for list associations 🤖 Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
1 parent fd812ab commit d20f192

9 files changed

Lines changed: 2799 additions & 17 deletions

app.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1346,18 +1346,24 @@ def _create_propertyradar_import_service(db_session):
13461346
from repositories.property_repository import PropertyRepository
13471347
from repositories.contact_repository import ContactRepository
13481348
from repositories.csv_import_repository import CSVImportRepository
1349+
from repositories.campaign_list_repository import CampaignListRepository
1350+
from repositories.campaign_list_member_repository import CampaignListMemberRepository
13491351

13501352
logger.info("Initializing PropertyRadarImportService")
13511353

13521354
# Create repository instances
13531355
property_repo = PropertyRepository(session=db_session)
13541356
contact_repo = ContactRepository(session=db_session)
13551357
csv_import_repo = CSVImportRepository(session=db_session)
1358+
campaign_list_repo = CampaignListRepository(session=db_session)
1359+
campaign_list_member_repo = CampaignListMemberRepository(session=db_session)
13561360

13571361
return PropertyRadarImportService(
13581362
property_repository=property_repo,
13591363
contact_repository=contact_repo,
13601364
csv_import_repository=csv_import_repo,
1365+
campaign_list_repository=campaign_list_repo,
1366+
campaign_list_member_repository=campaign_list_member_repo,
13611367
session=db_session
13621368
)
13631369

0 commit comments

Comments
 (0)