Fix: tag percentages incorrectly divided when transactions have multiple tags#12
Open
HessamAyoubi wants to merge 14 commits intopolius:mainfrom
Open
Fix: tag percentages incorrectly divided when transactions have multiple tags#12HessamAyoubi wants to merge 14 commits intopolius:mainfrom
HessamAyoubi wants to merge 14 commits intopolius:mainfrom
Conversation
Fixed double-counting issue in transaction total calculation
Instead of deleting immediately after confirmation, all delete actions now show a 5-second undo toast before the API call is made. Clicking "Undo" within that window cancels the deletion entirely. Changes: - web/transactions.html: Added undo toast element - web/settings.html: Added undo toast element - web/js/transactions.js: Added showUndoToast() helper; refactored submitTransactionDelete and submitTransactionDeleteMultiple to use deferred delete pattern - web/js/settings.js: Added showUndoToast() helper; refactored deleteCategorySubmit and deleteTagSubmit to use deferred delete pattern No backend changes — the undo window is entirely client-side.
Two bugs in editTransaction() caused the Name field to appear blank: 1. nameInput.addOption() was missing before nameInput.setValue(). Since TomSelect loads suggestions async (on user typing), the option didn't exist in the list yet — so setValue() silently did nothing. Tags already handled this correctly. 2. The shown.bs.modal handler was calling focus() on the name input regardless of mode. In edit mode, this triggered TomSelect's open behavior after the value was set, visually clearing the field. Focus is now only called in add mode.
Adds a dedicated Person field to transactions for tracking who in the household made each expense, replacing the workaround of using tags. Backend: - New Person model and CRUD router (GET, POST, PUT with cascade rename, DELETE with cascade clear) - person field added to Transaction (optional, defaults to empty) - Persons router registered in main.py Frontend: - Settings: Persons card alongside Categories and Tags, with full add/edit/delete (undo toast on delete) - Transactions: Person dropdown in the add/edit modal, Person column in the grid - Dashboard: "Person" group-by button on the pie chart, alongside Categories and Tags
Add monthly budget per category with progress bars on the dashboard and budget management in Settings. Includes a new Person field on transactions, undo/soft delete for transactions and settings items, and a fix for the Name field being empty when editing transactions.
Add person field to recurring transaction model, modal, and AG Grid table. Include automatic database migration for existing installations.
Warn users before adding a transaction that matches an existing one on amount, person, date, and category. Highlight duplicate groups in the transactions grid with distinct background colors. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
When a transaction had multiple tags, the dashboard breakdown was calculating
grandTotalas the sum of all tag buckets, causing double-counting and making each tag's percentage appear proportionally smaller (e.g. 2 tags → each shows ~50% instead of the correct value).Behavior
total expenses (not divided between tags).