# Verpachtung Legacy → LandVerpachtung Migration Plan ## Status (2025-08-31) - ✅ COMPLETED - **Phase 1 Complete**: Legacy create/edit blocked via feature flags - **Phase 2 Complete**: Conversion command created and executed (3 legacy → 8 new) - **Phase 3 Complete**: Legacy system completely removed from codebase ## Final State - Legacy count: 0 Verpachtung records (deleted - no valid data) - New count: 8 LandVerpachtung records (active) - Legacy model: Completely removed from system - Financial sync: Both models working (11,120.60€ total rent verified) ## Feature Flags Added ```python # In Django settings or environment DISABLE_LEGACY_VERPACHTUNG_CREATE = True # Blocks verpachtung_create DISABLE_LEGACY_VERPACHTUNG_EDIT = True # Blocks verpachtung_update ``` ## Phase 3: Navigation and View Cleanup To complete the migration, we need to: ### 3.1 Template Navigation Updates - Find and comment/remove "Neue Verpachtung" links in navigation/menus - Keep legacy detail/list views for data viewing but remove edit buttons - Update dashboard/summary pages to show new lease counts ### 3.2 URL Reorganization Current legacy URLs to deprecate: ``` /verpachtungen/neu/ # ← Blocked by feature flag /verpachtungen//bearbeiten/ # ← Blocked by feature flag /verpachtungen//loeschen/ # ← Keep for cleanup (with warnings) ``` ### 3.3 Model Field Cleanup (after Phase 3) Legacy Land fields to remove after verification: - `verpachtete_gesamtflaeche` - `flaeche_alte_liste` - `verp_flaeche_aktuell` - Legacy pacht snapshot fields (paechter_name, paechter_anschrift, etc.) ### 3.4 Final Model Removal (Phase 4) After all views/templates updated: - Remove `Verpachtung` model class - Remove legacy views/forms/templates - Create migration to drop database table ## Conversion Command Usage ```bash # Dry run (safe) python manage.py convert_legacy_verpachtungen # Convert with limit python manage.py convert_legacy_verpachtungen --limit 10 # Commit changes python manage.py convert_legacy_verpachtungen --commit ``` ## Verification Steps 1. Check counts: `Legacy: 3, New: 8` ✓ 2. Financial sync: `11,120.60€ total` ✓ 3. UI testing: Access new lease flows via Land detail pages 4. Data spot-check: Compare legacy vs new lease details for accuracy ## Next Actions - [ ] Update navigation templates to hide legacy create/edit links - [ ] Add deprecation notices in legacy detail templates - [ ] Test new lease workflows end-to-end - [ ] Prepare field removal migrations - [ ] Document new user workflows ## Rollback Plan If issues arise: 1. Set feature flags to `False` to re-enable legacy flows 2. Delete problematic new LandVerpachtung records if needed 3. Revert to legacy workflow until issues resolved