Commit Graph

16 Commits

Author SHA1 Message Date
William Valentin 9a5a2f0022 Run ruff format changes and finalize indentation and lint fixes. 2025-08-09 12:10:16 -07:00
William Valentin 583f5d793a fix: Update exception handling in GraphManager and improve logger initialization tests to avoid UnboundLocalError 2025-08-08 18:13:23 -07:00
William Valentin c54095df0b feat: Improve environment variable handling and logging initialization, add fallback for canvas creation in GraphManager, and enhance SearchFilterWidget with debouncing and trace suppression 2025-08-08 17:10:38 -07:00
William Valentin 15bdc75101 feat: Enhance logging initialization and error handling, add new tasks for testing dependencies, and improve data filtering logic 2025-08-08 15:53:37 -07:00
William Valentin 9372d6ef29 feat: Implement application preferences with JSON persistence
Build and Push Docker Image / build-and-push (push) Has been cancelled
- Added preferences management in `preferences.py` with functions to load, save, get, set, and reset preferences.
- Introduced a configuration directory structure based on the operating system.
- Integrated preferences into the settings window, allowing users to reset settings and manage window geometry.
- Enhanced `search_filter.py` to support flexible date column names and improved filtering logic.
- Updated `settings_window.py` to include options for managing backup and configuration folder paths.
- Introduced an `UndoManager` class to handle undo actions for add/update/delete operations.
- Improved UIManager to support sorting in tree views and added a toast notification feature.
2025-08-07 16:26:17 -07:00
William Valentin 14d9943665 feat: Update medicine toggles to be unchecked by default for improved user experience
Build and Push Docker Image / build-and-push (push) Has been cancelled
2025-08-01 12:53:19 -07:00
William Valentin 13a4826415 feat: Enhance DataManager and GraphManager with performance optimizations and caching 2025-08-01 12:46:51 -07:00
William Valentin c755f0affc Add comprehensive tests for dose tracking functionality
- Implemented `test_dose_parsing_simple.py` to validate the dose parsing workflow.
- Created `test_dose_save.py` to verify the saving functionality of dose tracking.
- Added `test_dose_save_simple.py` for programmatic testing of dose saving without UI interaction.
- Developed `test_final_workflow.py` to test the complete dose tracking workflow, ensuring doses are preserved during edits.
- Enhanced `conftest.py` with a mock pathology manager for testing.
- Updated `test_data_manager.py` to include pathology manager in DataManager tests and ensure compatibility with new features.
2025-07-31 09:50:45 -07:00
William Valentin d7d4b332d4 Add medicine management functionality with UI and data handling
- Implemented MedicineManagementWindow for adding, editing, and removing medicines.
- Created MedicineManager to handle medicine configurations, including loading and saving to JSON.
- Updated UIManager to dynamically generate medicine-related UI components based on the MedicineManager.
- Enhanced test suite with mock objects for MedicineManager to ensure proper functionality in DataManager tests.
- Added validation for medicine input fields in the UI.
- Introduced default medicine configurations for initial setup.
2025-07-30 16:01:02 -07:00
William Valentin ea30cb88c9 feat: Update default toggle states for bupropion and propranolol to false 2025-07-30 14:46:25 -07:00
William Valentin b76191d66d feat: Implement dose calculation fix and enhance legend feature
Build and Push Docker Image / build-and-push (push) Has been cancelled
- Fixed dose calculation logic in `_calculate_daily_dose` to correctly parse timestamps with multiple colons.
- Added comprehensive test cases for various dose formats and edge cases in `test_dose_calculation.py`.
- Enhanced graph legend to display individual medicines with average dosages and track medicines without dose data.
- Updated legend styling and positioning for better readability and organization.
- Created new tests for enhanced legend functionality, including handling of medicines with and without data.
- Improved mocking for matplotlib components in tests to prevent TypeErrors.
2025-07-30 14:22:07 -07:00
William Valentin d14d19e7d9 feat: add medicine dose graph plotting and toggle functionality with comprehensive tests
Build and Push Docker Image / build-and-push (push) Has been cancelled
2025-07-30 13:18:25 -07:00
William Valentin b7c01bc373 Refactor method names for clarity and consistency across the application
Build and Push Docker Image / build-and-push (push) Has been cancelled
- Renamed `initialize_csv` to `_initialize_csv_file` in `DataManager` for better clarity.
- Updated method calls in `GraphManager` from `_create_toggle_controls` to `_create_chart_toggles` and `_on_toggle_changed` to `_handle_toggle_changed`.
- Changed method names in `MedTrackerApp` from `on_closing` to `handle_window_closing`, `add_entry` to `add_new_entry`, and `load_data` to `refresh_data_display`.
- Adjusted corresponding test method names in `TestMedTrackerApp` to reflect the new method names.
- Updated `UIManager` method names from `setup_icon` to `setup_application_icon` and adjusted related tests accordingly.
2025-07-30 12:32:17 -07:00
William Valentin 8a0b4fcdf2 Refactor imports and improve logging in multiple modules; streamline type hints and remove redundant code 2025-07-28 12:37:43 -07:00
William Valentin 4d11f28cad Enhance GraphManager with toggle controls for chart elements and update plotting logic based on toggle states 2025-07-25 10:30:22 -07:00
William Valentin 2142db7093 Refactor MedTrackerApp and UI components for improved structure and readability
- Simplified initialization logic in init.py
- Consolidated testing_mode assignment
- Removed unnecessary else statements
- Created UIManager class to handle UI-related tasks
- Modularized input frame creation, table frame creation, and graph frame creation
- Enhanced edit window creation with better organization and error handling
- Updated data management methods to improve clarity and maintainability
- Improved logging for better debugging and tracking of application flow
2025-07-23 16:10:22 -07:00