Files
TimeTracker/app
Dries Peeters 25ea52c029 feat: Implement CRM features and fix migration issues
- Add CRM models: Contact, ContactCommunication, Deal, DealActivity, Lead, LeadActivity
  - Support multiple contacts per client with primary contact designation
  - Track sales pipeline with deals and opportunities
  - Manage leads with conversion tracking
  - Record communication history with contacts

- Add CRM routes and templates
  - Contact management (list, create, view, edit, delete)
  - Deal management with pipeline view
  - Lead management with conversion workflow
  - Communication history tracking

- Fix SQLAlchemy relationship conflicts
  - Specify foreign_keys for Deal.lead relationship to resolve ambiguity
  - Remove duplicate backref definitions in DealActivity and LeadActivity

- Improve migration 062 robustness
  - Add index existence checks before creation
  - Handle partial migration states gracefully
  - Support both assigned_to and assignee_id column names

- Add error handling for missing CRM tables
  - Gracefully handle cases where migration 063 hasn't run yet
  - Prevent application crashes when CRM tables don't exist

- Add database migration 063 for CRM features
  - Create contacts, contact_communications, deals, deal_activities, leads, lead_activities tables
  - Set up proper foreign key relationships and indexes

- Update documentation
  - Add CRM features to FEATURES_COMPLETE.md
  - Create CRM implementation documentation
  - Add feature gap analysis documentation
2025-11-23 20:38:35 +01:00
..