You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
Fix major logic error in Credit Card Payoff calculations; interest fees were ignored for the current month/statement, resulting in "Next Payment" values significantly lower than they should be. Fixed to use the last Interest Charge retrieved via OFX (or, if no interest charges present in OFX statements, prompt users to manually enter the last Interest Charge via a new modal that will create an OFXTransaction for it) as the interest amount on the first month/statement when calculating payoffs. This fix now returns Next Payment values that aren't identical to sample cards, but are significantly closer (within 1-2%).
Issue #105 - Major refactor to the Transaction database model. This is transparent to users, but causes massive database and code changes. This is the first step in supporting Transaction splits between multiple budgets:
A new BudgetTransaction model has been added, which will support a one-to-many association between Transactions and Budgets. This model associates a Transaction with a Budget, and a currency amount counted against that Budget. This first step only supports a one-to-one relationship, but a forthcoming change will implement the one-to-many budget split for Transactions.
The database migration for this creates BudgetTransactions for every current Transaction, migrating data to the new format.
The budget_id attribute and budget relationship of the Transaction model has been removed, as that information is now in the related BudgetTransactions.
A new planned_budget_id attribute (and planned_budget relationship) has been added to the Transaction model. For Transactions that were created from ScheduledTransactions, this attribute/relationship stores the original planned budget (distinct from the actual budget now stored in BudgetTransactions).
The Transaction model now has a budget_transactions back-populated property, containing a list of all associated BudgetTransactions.
The Transaction model now has a set_budget_amounts() method which takes a single dict mapping either integer Budget IDs or Budget objects, to the Decimal amount of the Transaction allocated to that Budget. While the underlying API supports an arbitrary number of budgets, the UI and codebase currently only supports one.
The Transaction constructor now accepts a budget_amounts keyword argument that passes its value through to set_budget_amounts(), for ease of creating Transactions in one call.
Transaction.actual_amount is no longer an attribute stored in the database, but now a hybrid property (read-only) generated from the sum of amounts of all related BudgetTransactions.
Add support to serialize property values of models, in addition to attributes.
Relatively major and sweeping code refactors to support the above.
Switch tests from using deprecated pytest-capturelog to using pytest built-in log capturing.
Miscellaneous fixes to unit and acceptance tests, and docs build.
Finish converting all code, including tests and sample data, from using floats to Decimals.
Acceptance test fix so that pytest-selenium can take full page screenshots with Chromedriver.
PR #180 - Acceptance test fix so that the testflask LiveServer fixture captures server logs, and includes them in test HTML reports (this generates a temporary file per-test-run outside of pytest's control).
Fix bug found where simultaneously editing the Amount and Budget of an existing Transaction against a Standing Budget would result in incorrect changes to the balances of the Budgets.
Add a new migrations tox environment that automatically tests all database migrations (forward and reverse) and also validates that the database schema created from the migrations matches the one created from the models.
Add support for writing tests of data manipulation during database migrations, and write tests for the migration in for Issue 105, above.
Add support for BIWEEKLYBUDGET_LOG_FILE environment variable to cause Flask application logs to go to a file in addition to STDOUT.
Add support for SQL_POOL_PRE_PING environment variable to enable SQLAlchemy pool_pre_ping feature (see Disconnect Handling - Pessimistic) for resource-constrained systems.
Modify acceptance tests to retry up to 3 times, 3 seconds apart, if a ConnectionError (or subclass thereof) is raised when constructing the Selenium driver instance. This is a workaround for intermittent ConnectionResetErrors in TravisCI.
Add SQL query timing support via SQL_QUERY_PROFILE environment variable.
When running under flask rundev, append the number of milliseconds taken to serve the request to the werkzeug access log.
When running under Docker/Gunicorn, append the decimal number of seconds taken to serve the request to the Gunicorn access log.
Issue #184 - Redact database password from /help view, and change /help view to show Version containing git commit hash for pre-release/development Docker builds.
Many workarounds for flaky acceptance tests, including some for the selenium/Chrome "Element is not clickable at point... Other element would receive the click" error.
biweeklybudget.screenscraper.ScreenScraper - Save webdriver and browser logs on failure, and set Chrome to capture all logs.
biweeklybudget.screenscraper.ScreenScraper - Add option to explicitly set a User-Agent on Chrome or PhantomJS.
Issue #192 - Fix bug where the is_ fields weren't set on OFXTransactions when created via ofxgetter remote API.
ofxgetter - add support to list all accounts at the Institution of one account
ofxgetter - add ability to specify how many days of data to retrieve