# Views Module Structure This directory contains the refactored views from the original monolithic `views.py` file. ## File Organization ### `__init__.py` Central import file that exports all views for easy access. This allows other modules to import views using: ```python from mainapp.views import ObjItemListView, custom_logout ``` ### `base.py` Basic views and utilities: - `ActionsPageView` - Displays the actions page - `custom_logout()` - Custom logout function ### `objitem.py` ObjItem CRUD operations and related views: - `ObjItemListView` - List view with filtering and pagination - `ObjItemFormView` - Base class for create/update operations - `ObjItemCreateView` - Create new ObjItem - `ObjItemUpdateView` - Update existing ObjItem - `ObjItemDeleteView` - Delete ObjItem - `ObjItemDetailView` - Read-only detail view - `DeleteSelectedObjectsView` - Bulk delete operation ### `data_import.py` Data import views for various formats: - `AddSatellitesView` - Add satellites to database - `AddTranspondersView` - Upload and parse transponder data from XML - `LoadExcelDataView` - Load data from Excel files - `LoadCsvDataView` - Load data from CSV files - `UploadVchLoadView` - Upload VCH load data from HTML - `LinkVchSigmaView` - Link VCH data with Sigma parameters - `ProcessKubsatView` - Process Kubsat event data ### `api.py` API endpoints for AJAX requests: - `GetLocationsView` - Get locations by satellite ID in GeoJSON format - `LyngsatDataAPIView` - Get LyngSat source data - `SigmaParameterDataAPIView` - Get SigmaParameter data - `SourceObjItemsAPIView` - Get ObjItems related to a Source - `LyngsatTaskStatusAPIView` - Get Celery task status ### `lyngsat.py` LyngSat related views: - `LinkLyngsatSourcesView` - Link LyngSat sources to objects - `FillLyngsatDataView` - Fill data from Lyngsat website - `LyngsatTaskStatusView` - Track Lyngsat data filling task status - `ClearLyngsatCacheView` - Clear LyngSat cache ### `source.py` Source related views: - `SourceListView` - List view for Source objects with filtering ### `map.py` Map related views: - `ShowMapView` - Display objects on map (admin interface) - `ShowSelectedObjectsMapView` - Display selected objects on map - `ClusterTestView` - Test view for clustering functionality ## Migration Notes The original `views.py` has been renamed to `views_old.py` as a backup. All imports have been updated in: - `dbapp/mainapp/urls.py` - `dbapp/dbapp/urls.py` ## Benefits of This Structure 1. **Better Organization** - Related views are grouped together 2. **Easier Maintenance** - Smaller files are easier to navigate and modify 3. **Clear Responsibilities** - Each file has a specific purpose 4. **Improved Testability** - Easier to write focused unit tests 5. **Better Collaboration** - Multiple developers can work on different files without conflicts