Conversation
Introduces TuttleMac, a native macOS app built with SwiftUI and SPM that reuses the existing Python business logic via PythonKit. Implements Dashboard, Timeline, Projects, Contracts, Clients, Contacts, and Invoicing views with a native look and feel. Adds a Flet-free bridge.py serialization layer and fixes the Flet import chain so core intents can be used without Flet installed. Co-authored-by: Cursor <cursoragent@cursor.com>
- Replaced specific model types (ClientModel, ContactModel, etc.) with a generic Entity type across various view models and views. - Updated data fetching and processing logic to accommodate the new Entity structure, enhancing flexibility and reducing redundancy. - Adjusted UI components to access properties dynamically from the Entity type, improving maintainability. - Refactored PythonBridge to streamline interactions with Python data, ensuring consistent handling of model data across the application.
- Introduced dedicated form sheets for creating and editing clients, contacts, contracts, and projects within the BusinessViewModel. - Enhanced the ClientsView, ContactsView, ContractsView, and ProjectsView to include buttons for adding and editing entities, improving user interaction. - Implemented validation logic in forms to ensure required fields are filled before submission. - Integrated form sheets with the existing view model to handle data saving and loading seamlessly. - Updated UI components to maintain a consistent look and feel across the application.
…tion - Introduced a new `setProjectStatus` method in `BusinessViewModel` to toggle project completion status and refresh project data. - Enhanced `ProjectsView` and `InvoicingView` to support a segmented view mode (list and board) for better user experience. - Implemented `KanbanBoardView` for visual project and invoice management, allowing drag-and-drop functionality between columns. - Added `InvoiceColumn` and `ProjectColumn` enums to define invoice and project states, respectively, with associated colors and icons. - Created `InvoiceCardContent` and `ProjectCardContent` views for displaying invoice and project details in the Kanban board layout. - Updated filtering logic for projects and invoices to support search functionality in both list and board views. - Integrated state management for invoice and project movements across different columns, ensuring accurate status updates. - Enhanced UI components for a consistent look and feel across the application.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Introduces TuttleMac, a native macOS app built with SwiftUI and SPM that
reuses the existing Python business logic via PythonKit. Implements
Dashboard, Timeline, Projects, Contracts, Clients, Contacts, and Invoicing
views with a native look and feel. Adds a Flet-free bridge.py serialization
layer and fixes the Flet import chain so core intents can be used without
Flet installed.
Co-authored-by: Cursor cursoragent@cursor.com