monopyly 1.4.5__tar.gz → 1.4.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {monopyly-1.4.5 → monopyly-1.4.6}/PKG-INFO +3 -3
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/_version.py +2 -2
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/credit/actions.py +29 -2
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/credit/routes.py +2 -5
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/credit/statements.py +21 -1
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/css/style.css +4 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/auth/login.html +1 -1
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/auth/register.html +1 -1
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/account_summary.html +1 -1
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transaction_form/transaction_form.html +1 -1
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/card_graphic/card_back.html +1 -1
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/statement_summary.html +3 -3
- {monopyly-1.4.5 → monopyly-1.4.6}/pyproject.toml +2 -2
- {monopyly-1.4.5 → monopyly-1.4.6}/.gitignore +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/COPYING +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/LICENSE +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/README.md +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/README.md +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/__init__.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/auth/actions.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/auth/blueprint.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/auth/routes.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/auth/tools.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/banking/accounts.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/banking/actions.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/banking/banks.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/banking/blueprint.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/banking/filters.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/banking/forms.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/banking/routes.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/banking/transactions.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/cli/apps.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/cli/run.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/common/forms/__init__.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/common/forms/_forms.py +10 -10
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/common/forms/fields.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/common/forms/utils.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/common/forms/validators.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/common/transactions.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/common/utils.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/config/__init__.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/config/default_settings.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/config/settings.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/core/actions.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/core/blueprint.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/core/context_processors.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/core/filters.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/core/internal_transactions.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/core/routes.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/credit/accounts.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/credit/blueprint.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/credit/cards.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/credit/forms.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/credit/transactions/__init__.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/credit/transactions/_transactions.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/database/__init__.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/database/models.py +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/database/preloads.sql +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/database/schema.sql +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/database/views.sql +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/browserconfig.xml +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-114.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-120.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-144.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-150.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-152.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-16.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-160.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-180.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-192.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-310.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-32.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-57.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-60.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-64.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-70.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-72.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-76.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon-96.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon.ico +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/favicon/favicon.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/about/bank-account-details.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/about/bank-account-summaries.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/about/bank-accounts.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/about/credit-account-details.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/about/credit-transactions.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/about/homepage-user.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/about/homepage.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/about/statement-details.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/cards/chase-card.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/cards/discover-card.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/cards/new-card.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/cards/template-card.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/arrow-down.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/arrow-left.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/arrow-up.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/checkmark.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/delete-orange-thick.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/delete-orange.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/delete-thick.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/delete.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/edit.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/link.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/minus-thick.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/minus.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/plus-thick.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/plus.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/refresh.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/save.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/sort-asc.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/sort-desc.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/statement-pair.svg +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/statement.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/statement.svg +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/icons/x-thick.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/img/statement.png +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/jquery-3.7.0.min.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/add-subtransaction.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/add-transfer.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/autocomplete-transaction.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/bind-tag-actions.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/create-balance-chart.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/define-filter.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/display-new-account-type-inputs.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/display-new-bank-inputs.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/display-new-credit-account-inputs.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/expand-bank-account.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/expand-bank.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/expand-transaction.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/flip-card.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/hide-homepage-block.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/infer-card.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/infer-statement.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/make-payment.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/modules/ajax.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/modules/autocomplete-input.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/modules/expand-box-row.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/modules/expand-transaction.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/modules/manage-acquisition-form.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/modules/manage-overlays.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/modules/manage-subforms.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/modules/update-database-widget.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/modules/update-display-ajax.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/show-linked-transaction.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/update-account-statement-parameters.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/update-bank-name.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/update-card-status.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/update-statement-parameters.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/update-statements-display.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/static/js/update-transactions-display.js +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/account_form/account_form.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/account_form/account_form_page_new.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/account_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/account_summaries.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/account_summaries_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/accounts_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transaction_form/bank_info_form.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transaction_form/transaction_form_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transaction_form/transaction_form_page_new.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transaction_form/transaction_form_page_update.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transaction_form/transfer_form.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transactions_table/condensed_row_content.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transactions_table/expanded_row_content.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transactions_table/transaction_field_titles.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transactions_table/transactions.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/form_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transaction_form/subform.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transaction_form/subtransaction_subform.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transaction_form/transaction_form_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transactions_table/linked_bank_transaction.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transactions_table/linked_credit_transaction.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transactions_table/linked_transaction_overlay.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transactions_table/subtransactions.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transactions_table/transaction_condensed.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transactions_table/transaction_expanded.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transactions_table/transactions.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/account_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/card_form/card_form.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/card_form/card_form_page_new.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/card_form/transfer_statement_inquiry.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/card_graphic/card_front.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/card_submission_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/cards.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/cards_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/statement_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/statements.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/statements_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/tag_tree/subtag_tree.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/tag_tree/tag_tree.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/tags_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transaction_form/transaction_form.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transaction_form/transaction_form_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transaction_form/transaction_form_page_new.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transaction_form/transaction_form_page_update.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transaction_submission_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transactions_page.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transactions_table/condensed_row_content.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transactions_table/expanded_row_content.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transactions_table/transaction_field_titles.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transactions_table/transactions.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credits.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/index.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/layout.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/profile.html +0 -0
- {monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/story.html +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: monopyly
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.6
|
|
4
4
|
Summary: A homemade personal finance manager.
|
|
5
5
|
Project-URL: Download, https://pypi.org/project/monopyly
|
|
6
6
|
Project-URL: Homepage, http://monopyly.com
|
|
@@ -25,9 +25,9 @@ Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
|
|
|
25
25
|
Requires-Python: <3.11,>=3.10
|
|
26
26
|
Requires-Dist: authanor==1.1.0
|
|
27
27
|
Requires-Dist: flask-wtf==1.2.1
|
|
28
|
-
Requires-Dist: flask==3.0.
|
|
28
|
+
Requires-Dist: flask==3.0.3
|
|
29
29
|
Requires-Dist: fuisce==1.0.2
|
|
30
|
-
Requires-Dist: gunicorn==
|
|
30
|
+
Requires-Dist: gunicorn==22.0.0
|
|
31
31
|
Requires-Dist: markdown==3.6
|
|
32
32
|
Requires-Dist: python-dateutil==2.9.0
|
|
33
33
|
Requires-Dist: rich==13.7.1
|
|
@@ -13,7 +13,7 @@ def get_card_statement_grouping(cards):
|
|
|
13
13
|
|
|
14
14
|
Parameters
|
|
15
15
|
----------
|
|
16
|
-
cards : list of
|
|
16
|
+
cards : list of database.models.CreditCard
|
|
17
17
|
The database card entries for which to get statements.
|
|
18
18
|
|
|
19
19
|
Returns
|
|
@@ -31,6 +31,33 @@ def get_card_statement_grouping(cards):
|
|
|
31
31
|
return card_statements
|
|
32
32
|
|
|
33
33
|
|
|
34
|
+
def get_statement_and_transactions(statement_id, transaction_sort_order="DESC"):
|
|
35
|
+
"""
|
|
36
|
+
Given a statement ID, get the corresponding statement and transactions.
|
|
37
|
+
|
|
38
|
+
Parameters
|
|
39
|
+
----------
|
|
40
|
+
statement_id : int
|
|
41
|
+
The ID of the statement to acquire.
|
|
42
|
+
transaction_sort_order : str
|
|
43
|
+
The order to sort transactions returned for the statement. The
|
|
44
|
+
default is 'DESC' for transactions sorted in descending order.
|
|
45
|
+
|
|
46
|
+
Returns
|
|
47
|
+
-------
|
|
48
|
+
statement : database.models.CreditStatementView
|
|
49
|
+
The statement with the given ID.
|
|
50
|
+
transactions : list of database.models.CreditTransactionView
|
|
51
|
+
All transactions on the statement with the given ID.
|
|
52
|
+
"""
|
|
53
|
+
statement = CreditStatementHandler.get_entry(statement_id)
|
|
54
|
+
transactions = CreditTransactionHandler.get_transactions(
|
|
55
|
+
statement_ids=(statement_id,),
|
|
56
|
+
sort_order=transaction_sort_order,
|
|
57
|
+
)
|
|
58
|
+
return statement, transactions.all()
|
|
59
|
+
|
|
60
|
+
|
|
34
61
|
def get_potential_preceding_card(card):
|
|
35
62
|
"""
|
|
36
63
|
Get the card that this new card may be intended to replace (if any).
|
|
@@ -42,7 +69,7 @@ def get_potential_preceding_card(card):
|
|
|
42
69
|
|
|
43
70
|
Parameters
|
|
44
71
|
----------
|
|
45
|
-
card :
|
|
72
|
+
card : database.models.CreditCard
|
|
46
73
|
The new card being added to the database.
|
|
47
74
|
|
|
48
75
|
Returns
|
|
@@ -22,6 +22,7 @@ from .accounts import CreditAccountHandler
|
|
|
22
22
|
from .actions import (
|
|
23
23
|
get_card_statement_grouping,
|
|
24
24
|
get_potential_preceding_card,
|
|
25
|
+
get_statement_and_transactions,
|
|
25
26
|
make_payment,
|
|
26
27
|
transfer_credit_card_statement,
|
|
27
28
|
)
|
|
@@ -177,11 +178,7 @@ def update_statements_display():
|
|
|
177
178
|
@bp.route("/statement/<int:statement_id>")
|
|
178
179
|
@login_required
|
|
179
180
|
def load_statement_details(statement_id):
|
|
180
|
-
statement =
|
|
181
|
-
transactions = CreditTransactionHandler.get_transactions(
|
|
182
|
-
statement_ids=(statement_id,),
|
|
183
|
-
sort_order="DESC",
|
|
184
|
-
)
|
|
181
|
+
statement, transactions = get_statement_and_transactions(statement_id)
|
|
185
182
|
# Get bank accounts for potential payments
|
|
186
183
|
bank_accounts = BankAccountHandler.get_accounts()
|
|
187
184
|
return render_template(
|
|
@@ -3,6 +3,7 @@ Tools for interacting with the credit statements in the database.
|
|
|
3
3
|
"""
|
|
4
4
|
|
|
5
5
|
from authanor.database.handler import DatabaseViewHandler
|
|
6
|
+
from dateutil.relativedelta import relativedelta
|
|
6
7
|
|
|
7
8
|
from ..common.utils import get_next_occurrence_of_day
|
|
8
9
|
from ..database.models import (
|
|
@@ -136,7 +137,7 @@ class CreditStatementHandler(
|
|
|
136
137
|
|
|
137
138
|
Returns
|
|
138
139
|
-------
|
|
139
|
-
statement : database.models.
|
|
140
|
+
statement : database.models.CreditStatement
|
|
140
141
|
The inferred statement entry for the transaction.
|
|
141
142
|
"""
|
|
142
143
|
issue_day = card.account.statement_issue_day
|
|
@@ -146,6 +147,25 @@ class CreditStatementHandler(
|
|
|
146
147
|
statement = cls.add_statement(card, issue_date)
|
|
147
148
|
return statement
|
|
148
149
|
|
|
150
|
+
@classmethod
|
|
151
|
+
@DatabaseViewHandler.view_query
|
|
152
|
+
def get_prior_statement(cls, statement):
|
|
153
|
+
"""
|
|
154
|
+
Given a statement, get the immediately preceding statement.
|
|
155
|
+
|
|
156
|
+
Parameters
|
|
157
|
+
----------
|
|
158
|
+
statement : database.models.CreditStatement
|
|
159
|
+
The statement for which to find the preceding statement.
|
|
160
|
+
|
|
161
|
+
Returns
|
|
162
|
+
-------
|
|
163
|
+
statement : database.models.CreditStatementView
|
|
164
|
+
The statement immediately preceding the given statement.
|
|
165
|
+
"""
|
|
166
|
+
issue_date = statement.issue_date + relativedelta(months=-1)
|
|
167
|
+
return cls.find_statement(statement.card.id, issue_date=issue_date)
|
|
168
|
+
|
|
149
169
|
@classmethod
|
|
150
170
|
def add_statement(cls, card, issue_date, due_date=None):
|
|
151
171
|
"""Add a statement to the database."""
|
|
@@ -1664,6 +1664,10 @@ form .autocomplete-box .item.active {
|
|
|
1664
1664
|
text-align: center;
|
|
1665
1665
|
}
|
|
1666
1666
|
|
|
1667
|
+
.details .summary-box .balance .dollar-sign {
|
|
1668
|
+
margin-right: 5px;
|
|
1669
|
+
}
|
|
1670
|
+
|
|
1667
1671
|
.details .summary-box .projected-balance .amount {
|
|
1668
1672
|
color: var(--moneytree);
|
|
1669
1673
|
font-weight: 500;
|
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
<input name="username" id="username" required>
|
|
11
11
|
<label for="password">Password</label>
|
|
12
12
|
<input type="password" name="password" id="password" required>
|
|
13
|
-
<input class="button" type="submit" value="Log In"
|
|
13
|
+
<input class="button" type="submit" value="Log In" />
|
|
14
14
|
</form>
|
|
15
15
|
{% endblock %}
|
|
@@ -10,6 +10,6 @@
|
|
|
10
10
|
<input name="username" id="username" required>
|
|
11
11
|
<label for="password">Password</label>
|
|
12
12
|
<input type="password" name="password" id="password" required>
|
|
13
|
-
<input class="button" type="submit" value="Register"
|
|
13
|
+
<input class="button" type="submit" value="Register" />
|
|
14
14
|
</form>
|
|
15
15
|
{% endblock %}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<div class="options">
|
|
11
11
|
|
|
12
12
|
<label class="toggle-switch-gadget" for="card-{{ card.id }}-status">
|
|
13
|
-
<input id="card-{{ card.id }}-status" data-card-id="{{ card.id }}" type="checkbox"
|
|
13
|
+
<input id="card-{{ card.id }}-status" data-card-id="{{ card.id }}" type="checkbox"{{ ' checked' if card.active else '' }} />
|
|
14
14
|
|
|
15
15
|
<div class="option">
|
|
16
16
|
<div class="text">
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
</div>
|
|
10
10
|
|
|
11
11
|
<div class="balance">
|
|
12
|
-
<div>$</div>
|
|
12
|
+
<div class="dollar-sign">$</div>
|
|
13
13
|
<div>{{ statement.balance|currency }}</div>
|
|
14
14
|
</div>
|
|
15
15
|
|
|
@@ -47,8 +47,8 @@
|
|
|
47
47
|
|
|
48
48
|
<div class="form-line">
|
|
49
49
|
<div class="dollar-sign">$</div>
|
|
50
|
-
<input id="pay-amount" type="text" name="pay_amount" value="{{ statement.balance|currency }}" maxlength="8"/>
|
|
51
|
-
<input id="pay-date" type="text" name="pay_date" value="{{ date_today }}" maxlength="10"/>
|
|
50
|
+
<input id="pay-amount" type="text" name="pay_amount" value="{{ statement.balance|currency }}" maxlength="8" />
|
|
51
|
+
<input id="pay-date" type="text" name="pay_date" value="{{ date_today }}" maxlength="10" />
|
|
52
52
|
</div>
|
|
53
53
|
|
|
54
54
|
<div class="form-line">
|
|
@@ -12,10 +12,10 @@ license = { text = 'GNU GPLv3' }
|
|
|
12
12
|
requires-python = '>=3.10,<3.11'
|
|
13
13
|
dependencies = [
|
|
14
14
|
'authanor==1.1.0',
|
|
15
|
-
'Flask==3.0.
|
|
15
|
+
'Flask==3.0.3',
|
|
16
16
|
'Flask-WTF==1.2.1',
|
|
17
17
|
'fuisce==1.0.2',
|
|
18
|
-
'gunicorn==
|
|
18
|
+
'gunicorn==22.0.0',
|
|
19
19
|
'Markdown==3.6',
|
|
20
20
|
'python-dateutil==2.9.0',
|
|
21
21
|
'rich==13.7.1',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -34,16 +34,6 @@ class EntryForm(FlaskForm, metaclass=AbstractEntryFormMixinMeta):
|
|
|
34
34
|
"""
|
|
35
35
|
Generate a duplicate prepopulated form.
|
|
36
36
|
|
|
37
|
-
Notes
|
|
38
|
-
-----
|
|
39
|
-
WTForms requires that a form be instantiated in order to be
|
|
40
|
-
able to properly introspect fields. Because of this, this method
|
|
41
|
-
will only return a duplicate form matching the type of the
|
|
42
|
-
form instance used to call it. Using the form's process method
|
|
43
|
-
will not properly handle enumeration of field lists, so it
|
|
44
|
-
can not be used as a replacement for populating an existing
|
|
45
|
-
form.
|
|
46
|
-
|
|
47
37
|
Parameters
|
|
48
38
|
----------
|
|
49
39
|
entry : database.models.Model
|
|
@@ -55,6 +45,16 @@ class EntryForm(FlaskForm, metaclass=AbstractEntryFormMixinMeta):
|
|
|
55
45
|
form : EntryForm
|
|
56
46
|
A duplicate form, prepopulated with the collected database
|
|
57
47
|
information.
|
|
48
|
+
|
|
49
|
+
Notes
|
|
50
|
+
-----
|
|
51
|
+
WTForms requires that a form be instantiated in order to be
|
|
52
|
+
able to properly introspect fields. Because of this, this method
|
|
53
|
+
will only return a duplicate form matching the type of the
|
|
54
|
+
form instance used to call it. Using the form's process method
|
|
55
|
+
will not properly handle enumeration of field lists, so it
|
|
56
|
+
can not be used as a replacement for populating an existing
|
|
57
|
+
form.
|
|
58
58
|
"""
|
|
59
59
|
data = self.gather_entry_data(entry)
|
|
60
60
|
return self.__class__(data=data)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/account_form/account_form_page_new.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transaction_form/bank_info_form.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transaction_form/transfer_form.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/banking/transactions_table/transactions.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transactions_table/subtransactions.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/common/transactions_table/transactions.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/card_form/card_form_page_new.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transaction_form/transaction_form.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transaction_submission_page.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monopyly-1.4.5 → monopyly-1.4.6}/monopyly/templates/credit/transactions_table/transactions.html
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|