django-ledger 0.5.2.6__tar.gz → 0.8.1__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.
Potentially problematic release.
This version of django-ledger might be problematic. Click here for more details.
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/AUTHORS.md +8 -2
- django_ledger-0.8.1/MANIFEST.in +8 -0
- django_ledger-0.8.1/PKG-INFO +275 -0
- django_ledger-0.8.1/README.md +242 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/__init__.py +1 -4
- django_ledger-0.8.1/django_ledger/admin/__init__.py +10 -0
- django_ledger-0.8.1/django_ledger/admin/chart_of_accounts.py +134 -0
- django_ledger-0.8.1/django_ledger/admin/entity.py +214 -0
- django_ledger-0.8.1/django_ledger/admin/ledger.py +286 -0
- django_ledger-0.8.1/django_ledger/context.py +12 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/exceptions.py +3 -3
- django_ledger-0.8.1/django_ledger/forms/account.py +162 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/bank_account.py +21 -14
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/bill.py +22 -38
- django_ledger-0.8.1/django_ledger/forms/chart_of_accounts.py +82 -0
- django_ledger-0.8.1/django_ledger/forms/closing_entry.py +64 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/customer.py +9 -2
- django_ledger-0.8.1/django_ledger/forms/data_import.py +317 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/entity.py +4 -12
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/estimate.py +4 -7
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/invoice.py +11 -16
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/item.py +175 -80
- django_ledger-0.8.1/django_ledger/forms/journal_entry.py +93 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/ledger.py +20 -4
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/purchase_order.py +2 -4
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/transactions.py +16 -22
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/vendor.py +8 -1
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/io/__init__.py +2 -1
- django_ledger-0.8.1/django_ledger/io/io_context.py +153 -0
- django_ledger-0.8.1/django_ledger/io/io_core.py +2149 -0
- django-ledger-0.5.2.6/django_ledger/io/data_generator.py → django_ledger-0.8.1/django_ledger/io/io_generator.py +364 -286
- django_ledger-0.8.1/django_ledger/io/io_library.py +623 -0
- django_ledger-0.8.1/django_ledger/io/io_middleware.py +466 -0
- django_ledger-0.8.1/django_ledger/io/ofx.py +96 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/io/ratios.py +13 -13
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/io/roles.py +299 -48
- django_ledger-0.8.1/django_ledger/management/commands/generate_oauth2_codes.py +41 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/migrations/0001_initial.py +432 -153
- django_ledger-0.8.1/django_ledger/migrations/0002_alter_journalentrymodel_managers_and_more.py +24 -0
- django_ledger-0.8.1/django_ledger/migrations/0003_remove_accountmodel_django_ledg_role_1bff96_idx_and_more.py +69 -0
- django_ledger-0.8.1/django_ledger/migrations/0004_remove_itemmodel_depth_remove_itemmodel_numchild_and_more.py +25 -0
- django_ledger-0.8.1/django_ledger/migrations/0005_remove_itemmodel_django_ledg_invento_dbf206_idx_and_more.py +47 -0
- django_ledger-0.8.1/django_ledger/migrations/0006_alter_journalentrymodel_je_number_and_more.py +24 -0
- django_ledger-0.8.1/django_ledger/migrations/0007_remove_customermodel_django_ledg_custome_16f95a_idx_and_more.py +47 -0
- django_ledger-0.8.1/django_ledger/migrations/0008_closingentrymodel_closingentrytransactionmodel_and_more.py +147 -0
- django_ledger-0.8.1/django_ledger/migrations/0009_delete_stagedtransactionmodel.py +16 -0
- django_ledger-0.8.1/django_ledger/migrations/0010_delete_importjobmodel.py +16 -0
- django_ledger-0.8.1/django_ledger/migrations/0011_importjobmodel_alter_accountmodel_role_and_more.py +72 -0
- django_ledger-0.8.1/django_ledger/migrations/0012_stagedtransactionmodel_activity.py +18 -0
- django_ledger-0.8.1/django_ledger/migrations/0013_stagedtransactionmodel_bundle_split.py +18 -0
- django_ledger-0.8.1/django_ledger/migrations/0014_ledgermodel_ledger_xid_and_more.py +22 -0
- django_ledger-0.8.1/django_ledger/migrations/0015_remove_chartofaccountmodel_locked_and_more.py +22 -0
- django_ledger-0.8.1/django_ledger/migrations/0016_remove_accountmodel_django_ledg_coa_mod_e19964_idx_and_more.py +44 -0
- django_ledger-0.8.1/django_ledger/migrations/0017_alter_accountmodel_unique_together_and_more.py +31 -0
- django_ledger-0.8.1/django_ledger/migrations/0018_transactionmodel_cleared_transactionmodel_reconciled_and_more.py +37 -0
- django_ledger-0.8.1/django_ledger/migrations/0019_alter_transactionmodel_amount_and_more.py +33 -0
- django_ledger-0.8.1/django_ledger/migrations/0020_remove_bankaccountmodel_django_ledg_cash_ac_59a8af_idx_and_more.py +44 -0
- django_ledger-0.8.1/django_ledger/migrations/0021_alter_bankaccountmodel_account_model_and_more.py +32 -0
- django_ledger-0.8.1/django_ledger/migrations/0022_bankaccountmodel_financial_institution_and_more.py +52 -0
- django_ledger-0.8.1/django_ledger/migrations/0023_customermodel_customer_code_customermodel_picture_and_more.py +51 -0
- django_ledger-0.8.1/django_ledger/migrations/0024_billmodel_entity_model_invoicemodel_entity_model.py +24 -0
- django_ledger-0.8.1/django_ledger/migrations/0025_alter_billmodel_cash_account_and_more.py +70 -0
- django_ledger-0.8.1/django_ledger/migrations/0026_stagedtransactionmodel_customer_model_and_more.py +56 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/models/__init__.py +6 -4
- django_ledger-0.8.1/django_ledger/models/accounts.py +1153 -0
- django_ledger-0.8.1/django_ledger/models/bank_account.py +242 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/models/bill.py +760 -458
- django_ledger-0.8.1/django_ledger/models/chart_of_accounts.py +926 -0
- django_ledger-0.8.1/django_ledger/models/closing_entry.py +550 -0
- django_ledger-0.8.1/django_ledger/models/coa_default.py +375 -0
- django_ledger-0.8.1/django_ledger/models/customer.py +381 -0
- django_ledger-0.8.1/django_ledger/models/data_import.py +1699 -0
- django_ledger-0.8.1/django_ledger/models/deprecations.py +61 -0
- django_ledger-0.8.1/django_ledger/models/entity.py +3517 -0
- django_ledger-0.8.1/django_ledger/models/estimate.py +1646 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/models/invoice.py +529 -244
- django_ledger-0.8.1/django_ledger/models/items.py +1792 -0
- django_ledger-0.8.1/django_ledger/models/journal_entry.py +1795 -0
- django_ledger-0.8.1/django_ledger/models/ledger.py +840 -0
- django_ledger-0.8.1/django_ledger/models/mixins.py +1594 -0
- django_ledger-0.8.1/django_ledger/models/purchase_order.py +1267 -0
- django_ledger-0.8.1/django_ledger/models/receipt.py +1083 -0
- django_ledger-0.8.1/django_ledger/models/signals.py +55 -0
- django_ledger-0.8.1/django_ledger/models/transactions.py +716 -0
- django_ledger-0.8.1/django_ledger/models/unit.py +286 -0
- django_ledger-0.8.1/django_ledger/models/utils.py +201 -0
- django_ledger-0.8.1/django_ledger/models/vendor.py +401 -0
- django_ledger-0.8.1/django_ledger/report/balance_sheet.py +244 -0
- django_ledger-0.8.1/django_ledger/report/cash_flow_statement.py +234 -0
- django_ledger-0.8.1/django_ledger/report/core.py +215 -0
- django_ledger-0.8.1/django_ledger/report/income_statement.py +320 -0
- django_ledger-0.8.1/django_ledger/settings.py +150 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/bundle/djetler.bundle.js +2 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/bundle/djetler.bundle.js.LICENSE.txt +25 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/bundle/styles.bundle.js +1 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/css/djl_styles.css +273 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo/django-ledger-logo-report.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@0.5x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@2x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@3x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-full-vert.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-full-vert@0.5x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-full-vert@2x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-full-vert@3x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@0.5x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@2x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@3x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo-full-vert.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo-full-vert@0.5x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo-full-vert@2x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo-full-vert@3x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo@0.5x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo@2x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-logo@3x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz@0.5x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz@2x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz@3x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-full-vert.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-full-vert@0.5x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-full-vert@2x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-full-vert@3x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-horiz.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-horiz@0.5x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-horiz@2x.png +0 -0
- django_ledger-0.8.1/django_ledger/static/django_ledger/logo_2/djl-txt-horiz@3x.png +0 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/account/account_create.html +27 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/account/account_list.html +25 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/account/account_update.html +27 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/account/tags/account_txs_table.html +13 -7
- django_ledger-0.8.1/django_ledger/templates/django_ledger/account/tags/accounts_table.html +127 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/auth/login.html +4 -1
- django_ledger-0.8.1/django_ledger/templates/django_ledger/bank_account/bank_account_create.html +36 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bank_account/tags/bank_accounts_table.html +2 -2
- django_ledger-0.8.1/django_ledger/templates/django_ledger/bills/bill_create.html +50 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bills/bill_detail.html +35 -9
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bills/bill_list.html +0 -1
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bills/bill_update.html +7 -7
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bills/includes/card_bill.html +85 -85
- django_ledger-0.8.1/django_ledger/templates/django_ledger/chart_of_accounts/coa_create.html +25 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/chart_of_accounts/coa_list.html +36 -0
- {django-ledger-0.5.2.6/django_ledger/templates/django_ledger/code_of_accounts → django_ledger-0.8.1/django_ledger/templates/django_ledger/chart_of_accounts}/coa_update.html +3 -6
- django_ledger-0.8.1/django_ledger/templates/django_ledger/chart_of_accounts/includes/coa_card.html +80 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/closing_entry/closing_entry_create.html +31 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/closing_entry/closing_entry_delete.html +29 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/closing_entry/closing_entry_detail.html +41 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html +123 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/closing_entry/closing_entry_update.html +41 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html +67 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_table.html +56 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html +27 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/components/icon.html +1 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/components/menu.html +76 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/period_navigator.html +5 -3
- django_ledger-0.8.1/django_ledger/templates/django_ledger/customer/customer_detail.html +87 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/customer/customer_list.html +0 -1
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/customer/tags/customer_table.html +30 -2
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/data_import/data_import_job_txs.html +7 -5
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/data_import/data_import_ofx.html → django_ledger-0.8.1/django_ledger/templates/django_ledger/data_import/import_job_create.html +18 -2
- django_ledger-0.8.1/django_ledger/templates/django_ledger/data_import/import_job_delete.html +28 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/data_import/import_job_update.html +24 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/data_import/tags/data_import_job_list_table.html +16 -12
- django_ledger-0.8.1/django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_imported.html +62 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_table.html +107 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/entity/entity_dashboard.html +6 -6
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/entity/includes/card_entity.html +13 -6
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/estimate/estimate_detail.html +4 -4
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html +5 -13
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/estimate/includes/estimate_item_table.html +2 -2
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html +3 -17
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/expense/tags/expense_item_table.html +7 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html +11 -7
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/financial_statements/cash_flow.html +16 -8
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/financial_statements/income_statement.html +10 -5
- django_ledger-0.8.1/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html +164 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/financial_statements/tags/cash_flow_statement.html +19 -7
- django_ledger-0.8.1/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html +434 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/includes/footer.html +2 -2
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/includes/nav.html +15 -5
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/includes/page_header.html +2 -2
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/includes/widget_ic.html +1 -1
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/includes/widget_ratios.html +18 -24
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html +74 -45
- django_ledger-0.8.1/django_ledger/templates/django_ledger/invoice/invoice_create.html +52 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/invoice/invoice_detail.html +35 -10
- django_ledger-0.8.1/django_ledger/templates/django_ledger/invoice/invoice_list.html +116 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/invoice/invoice_update.html +6 -6
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/invoice/tags/invoice_table.html +2 -2
- django_ledger-0.8.1/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html +59 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/journal_entry/je_create.html +7 -4
- django_ledger-0.8.1/django_ledger/templates/django_ledger/journal_entry/je_delete.html +30 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/journal_entry/je_detail.html +40 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html +91 -0
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/invoice/invoice_list.html → django_ledger-0.8.1/django_ledger/templates/django_ledger/journal_entry/je_list.html +44 -21
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/journal_entry/je_update.html +2 -3
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/journal_entry/tags/jes_table.html → django_ledger-0.8.1/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html +30 -24
- django_ledger-0.8.1/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html +69 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/layouts/base.html +14 -4
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/layouts/content_layout_1.html +1 -1
- django_ledger-0.8.1/django_ledger/templates/django_ledger/ledger/ledger_delete.html +31 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/ledger/ledger_list.html +146 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html +142 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/product/product_delete.html +1 -11
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/product/product_list.html +2 -4
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/product/tags/pns_table.html → django_ledger-0.8.1/django_ledger/templates/django_ledger/product/tags/product_table.html +13 -11
- django_ledger-0.8.1/django_ledger/templates/django_ledger/receipt/customer_receipt_report.html +115 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/receipt/receipt_delete.html +30 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/receipt/receipt_detail.html +89 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/receipt/receipt_list.html +134 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/receipt/vendor_receipt_report.html +115 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/service/service_create.html +38 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/service/service_delete.html +32 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/service/service_list.html +23 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/service/service_update.html +34 -0
- django_ledger-0.8.1/django_ledger/templates/django_ledger/service/tags/services_table.html +55 -0
- {django-ledger-0.5.2.6/django_ledger/templates/django_ledger/transaction → django_ledger-0.8.1/django_ledger/templates/django_ledger/transactions}/tags/txs_table.html +18 -15
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/unit/unit_list.html +2 -5
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/vendor/tags/vendor_table.html +35 -3
- django_ledger-0.8.1/django_ledger/templates/django_ledger/vendor/vendor_detail.html +86 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templatetags/django_ledger.py +442 -233
- django_ledger-0.8.1/django_ledger/tests/base.py +296 -0
- django_ledger-0.8.1/django_ledger/tests/test_accounts.py +151 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/tests/test_auth.py +6 -8
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/tests/test_bill.py +62 -68
- django_ledger-0.8.1/django_ledger/tests/test_chart_of_accounts.py +46 -0
- django_ledger-0.8.1/django_ledger/tests/test_closing_entry.py +65 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/tests/test_entity.py +46 -19
- django_ledger-0.8.1/django_ledger/tests/test_io.py +214 -0
- django_ledger-0.8.1/django_ledger/tests/test_io_ofx/tests.py +52 -0
- django_ledger-0.8.1/django_ledger/tests/test_purchase_order.py +184 -0
- django_ledger-0.8.1/django_ledger/tests/test_transactions.py +289 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/__init__.py +4 -2
- django_ledger-0.8.1/django_ledger/urls/account.py +50 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/bill.py +3 -3
- django_ledger-0.8.1/django_ledger/urls/chart_of_accounts.py +33 -0
- django_ledger-0.8.1/django_ledger/urls/closing_entry.py +39 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/customer.py +3 -0
- django_ledger-0.8.1/django_ledger/urls/data_import.py +24 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/djl_api.py +0 -1
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/entity.py +1 -1
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/financial_statement.py +54 -37
- django_ledger-0.8.1/django_ledger/urls/item.py +42 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/journal_entry.py +16 -4
- django_ledger-0.8.1/django_ledger/urls/ledger.py +60 -0
- django_ledger-0.8.1/django_ledger/urls/receipt.py +102 -0
- django_ledger-0.8.1/django_ledger/urls/transactions.py +5 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/unit.py +1 -1
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/vendor.py +1 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/utils.py +11 -62
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/__init__.py +7 -4
- django_ledger-0.8.1/django_ledger/views/account.py +259 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/auth.py +1 -1
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/bank_account.py +18 -24
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/bill.py +148 -152
- django_ledger-0.8.1/django_ledger/views/chart_of_accounts.py +128 -0
- django_ledger-0.8.1/django_ledger/views/closing_entry.py +221 -0
- django_ledger-0.8.1/django_ledger/views/customer.py +140 -0
- django_ledger-0.8.1/django_ledger/views/data_import.py +270 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/djl_api.py +13 -11
- django_ledger-0.8.1/django_ledger/views/entity.py +250 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/estimate.py +44 -53
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/feedback.py +1 -1
- django_ledger-0.8.1/django_ledger/views/financial_statement.py +199 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/home.py +1 -1
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/inventory.py +23 -22
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/invoice.py +46 -48
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/item.py +220 -98
- django_ledger-0.8.1/django_ledger/views/journal_entry.py +291 -0
- django_ledger-0.8.1/django_ledger/views/ledger.py +346 -0
- django_ledger-0.8.1/django_ledger/views/mixins.py +643 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/purchase_order.py +41 -55
- django_ledger-0.8.1/django_ledger/views/receipt.py +294 -0
- django_ledger-0.8.1/django_ledger/views/transactions.py +7 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/views/unit.py +88 -64
- django_ledger-0.8.1/django_ledger/views/vendor.py +135 -0
- django_ledger-0.8.1/django_ledger.egg-info/PKG-INFO +275 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger.egg-info/SOURCES.txt +135 -58
- django_ledger-0.8.1/django_ledger.egg-info/requires.txt +7 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger.egg-info/top_level.txt +1 -2
- django_ledger-0.8.1/pyproject.toml +84 -0
- django-ledger-0.5.2.6/PKG-INFO +0 -276
- django-ledger-0.5.2.6/README.md +0 -250
- django-ledger-0.5.2.6/dev_env/asgi.py +0 -7
- django-ledger-0.5.2.6/dev_env/settings.py +0 -148
- django-ledger-0.5.2.6/dev_env/urls.py +0 -22
- django-ledger-0.5.2.6/dev_env/wsgi.py +0 -7
- django-ledger-0.5.2.6/django_ledger/admin.py +0 -160
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/accounts/schema.py +0 -33
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/api.py +0 -55
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/apps.py +0 -6
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/auth/mutations.py +0 -49
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/auth/schema.py +0 -6
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/bank_account/mutations.py +0 -62
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/bank_account/schema.py +0 -34
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/bill/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/bill/schema.py +0 -34
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/coa/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/coa/schema.py +0 -44
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/customers/mutations.py +0 -71
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/customers/schema.py +0 -45
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/data_import/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/data_import/schema.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/entity/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/entity/schema.py +0 -34
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/item/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/item/schema.py +0 -29
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/journal_entry/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/journal_entry/schema.py +0 -36
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/ledger/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/ledger/schema.py +0 -31
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/purchase_order/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/purchase_order/schema.py +0 -30
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/transaction/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/transaction/schema.py +0 -33
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/unit/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/unit/schema.py +0 -26
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/vendor/mutations.py +0 -0
- django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/vendor/schema.py +0 -35
- django-ledger-0.5.2.6/django_ledger/forms/account.py +0 -144
- django-ledger-0.5.2.6/django_ledger/forms/coa.py +0 -52
- django-ledger-0.5.2.6/django_ledger/forms/data_import.py +0 -105
- django-ledger-0.5.2.6/django_ledger/forms/journal_entry.py +0 -51
- django-ledger-0.5.2.6/django_ledger/io/financial_statements.py +0 -126
- django-ledger-0.5.2.6/django_ledger/io/io_context.py +0 -206
- django-ledger-0.5.2.6/django_ledger/io/io_mixin.py +0 -509
- django-ledger-0.5.2.6/django_ledger/io/ofx.py +0 -49
- django-ledger-0.5.2.6/django_ledger/migrations/0002_alter_entitymodel_default_coa.py +0 -19
- django-ledger-0.5.2.6/django_ledger/models/accounts.py +0 -279
- django-ledger-0.5.2.6/django_ledger/models/bank_account.py +0 -149
- django-ledger-0.5.2.6/django_ledger/models/coa.py +0 -161
- django-ledger-0.5.2.6/django_ledger/models/coa_default.py +0 -159
- django-ledger-0.5.2.6/django_ledger/models/customer.py +0 -182
- django-ledger-0.5.2.6/django_ledger/models/data_import.py +0 -108
- django-ledger-0.5.2.6/django_ledger/models/entity.py +0 -1219
- django-ledger-0.5.2.6/django_ledger/models/estimate.py +0 -735
- django-ledger-0.5.2.6/django_ledger/models/items.py +0 -895
- django-ledger-0.5.2.6/django_ledger/models/journal_entry.py +0 -517
- django-ledger-0.5.2.6/django_ledger/models/ledger.py +0 -129
- django-ledger-0.5.2.6/django_ledger/models/mixins.py +0 -771
- django-ledger-0.5.2.6/django_ledger/models/purchase_order.py +0 -576
- django-ledger-0.5.2.6/django_ledger/models/transactions.py +0 -233
- django-ledger-0.5.2.6/django_ledger/models/unit.py +0 -104
- django-ledger-0.5.2.6/django_ledger/models/utils.py +0 -142
- django-ledger-0.5.2.6/django_ledger/models/vendor.py +0 -144
- django-ledger-0.5.2.6/django_ledger/settings.py +0 -117
- django-ledger-0.5.2.6/django_ledger/static/django_ledger/bundle/djetler.bundle.js +0 -2
- django-ledger-0.5.2.6/django_ledger/static/django_ledger/bundle/styles.bundle.js +0 -1
- django-ledger-0.5.2.6/django_ledger/static/django_ledger/img/django_ledger_screenshot.png +0 -0
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/account/account_create.html +0 -21
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/account/account_list.html +0 -16
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/account/account_update.html +0 -25
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/account/tags/accounts_table.html +0 -90
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/bank_account/bank_account_create.html +0 -27
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/bills/bill_create.html +0 -46
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/components/icon.html +0 -1
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/components/menu.html +0 -61
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_imported.html +0 -31
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_table.html +0 -66
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html +0 -168
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html +0 -100
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/invoice/invoice_create.html +0 -45
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html +0 -27
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/journal_entry/je_detail.html +0 -27
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/journal_entry/je_list.html +0 -18
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/ledger/ledger_list.html +0 -13
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html +0 -52
- django-ledger-0.5.2.6/django_ledger/templates/django_ledger/transaction/txs.html +0 -56
- django-ledger-0.5.2.6/django_ledger/tests/base.py +0 -150
- django-ledger-0.5.2.6/django_ledger/urls/account.py +0 -33
- django-ledger-0.5.2.6/django_ledger/urls/chart_of_accounts.py +0 -7
- django-ledger-0.5.2.6/django_ledger/urls/data_import.py +0 -15
- django-ledger-0.5.2.6/django_ledger/urls/item.py +0 -34
- django-ledger-0.5.2.6/django_ledger/urls/ledger.py +0 -8
- django-ledger-0.5.2.6/django_ledger/urls/transactions.py +0 -9
- django-ledger-0.5.2.6/django_ledger/views/account.py +0 -216
- django-ledger-0.5.2.6/django_ledger/views/coa.py +0 -41
- django-ledger-0.5.2.6/django_ledger/views/customer.py +0 -105
- django-ledger-0.5.2.6/django_ledger/views/data_import.py +0 -269
- django-ledger-0.5.2.6/django_ledger/views/entity.py +0 -456
- django-ledger-0.5.2.6/django_ledger/views/journal_entry.py +0 -191
- django-ledger-0.5.2.6/django_ledger/views/ledger.py +0 -212
- django-ledger-0.5.2.6/django_ledger/views/mixins.py +0 -450
- django-ledger-0.5.2.6/django_ledger/views/transactions.py +0 -98
- django-ledger-0.5.2.6/django_ledger/views/vendor.py +0 -101
- django-ledger-0.5.2.6/django_ledger.egg-info/PKG-INFO +0 -276
- django-ledger-0.5.2.6/django_ledger.egg-info/requires.txt +0 -27
- django-ledger-0.5.2.6/docs/source/conf.py +0 -67
- django-ledger-0.5.2.6/pyproject.toml +0 -49
- django-ledger-0.5.2.6/setup.py +0 -5
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/LICENSE +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/apps.py +0 -0
- {django-ledger-0.5.2.6/dev_env → django_ledger-0.8.1/django_ledger/contrib}/__init__.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/__init__.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/app_filters.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/auth.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/feedback.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/unit.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/forms/utils.py +0 -0
- {django-ledger-0.5.2.6/django_ledger/contrib → django_ledger-0.8.1/django_ledger/management}/__init__.py +0 -0
- {django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene → django_ledger-0.8.1/django_ledger/management/commands}/__init__.py +0 -0
- {django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/customers → django_ledger-0.8.1/django_ledger/migrations}/__init__.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/models/schemas/__init__.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/models/schemas/digest.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/models/schemas/net_payable.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/models/schemas/net_receivable.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/models/schemas/pnl.py +0 -0
- {django-ledger-0.5.2.6/django_ledger/migrations → django_ledger-0.8.1/django_ledger/report}/__init__.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/img/daniel-weiss-aj2Os9mYgJU-unsplash.jpg +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/img/made-with-bulma.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-logo.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-logo@2x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-logo@3x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-logo@4x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-logo_1.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-logo_1@2x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-logo_1@3x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-logo_1@4x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-tagline.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-tagline@2x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-tagline@3x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-tagline@4x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-text.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-text@2x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-text@3x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/django-ledger-text@4x.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/static/django_ledger/logo/favicon.png +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/account/account_create_child.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/account/account_detail.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bank_account/bank_account_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bank_account/bank_account_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bills/bill_delete.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bills/bill_void.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html +0 -0
- {django-ledger-0.5.2.6/django_ledger/templates/django_ledger/bills/includes → django_ledger-0.8.1/django_ledger/templates/django_ledger/bills/tags}/bill_table.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/activity_form.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/breadcrumbs.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/chart_container.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/date_picker.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/default_entity.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/feedback_button.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/filters.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/modals.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/components/modals_v2.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/customer/customer_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/customer/customer_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/customer/includes/card_customer.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/data_import/data_import_job_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/entity/entitiy_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/entity/entity_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/entity/entity_delete.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/entity/entity_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/entity/home.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/estimate/estimate_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/estimate/estimate_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/estimate/estimate_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/expense/expense_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/expense/expense_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/expense/expense_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/includes/breadcrumbs.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/includes/card_markdown.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/includes/messages.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/includes/widget_bs.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/inventory/inventory_item_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/inventory/inventory_item_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/inventory/inventory_item_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/inventory/inventory_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/inventory/inventory_recount.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/inventory/tags/inventory_item_table.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/inventory/tags/inventory_table.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/invoice/invoice_delete.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/layouts/content_layout_2.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/ledger/ledger_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/ledger/ledger_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/product/product_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/product/product_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/purchase_order/includes/po_table.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/purchase_order/po_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/purchase_order/po_delete.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/purchase_order/po_detail.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/purchase_order/po_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/purchase_order/po_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/purchase_order/tags/po_item_table.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/unit/unit_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/unit/unit_detail.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/unit/unit_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/uom/tags/uom_table.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/uom/uom_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/uom/uom_delete.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/uom/uom_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/uom/uom_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/vendor/includes/card_vendor.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/vendor/vendor_create.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/vendor/vendor_list.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templates/django_ledger/vendor/vendor_update.html +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/templatetags/__init__.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/tests/__init__.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/tests/bdd/__init__.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/tests/bdd/features/steps/README.py +0 -0
- /django-ledger-0.5.2.6/django_ledger/contrib/django_ledger_graphene/accounts/mutations.py → /django_ledger-0.8.1/django_ledger/tests/test_io_ofx/__init__.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/auth.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/bank_account.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/estimate.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/feedback.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/home.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/inventory.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/invoice.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger/urls/purchase_order.py +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/django_ledger.egg-info/dependency_links.txt +0 -0
- {django-ledger-0.5.2.6 → django_ledger-0.8.1}/setup.cfg +0 -0
|
@@ -7,12 +7,18 @@ Django Ledger was created by [Miguel Sanda](https://github.com/elarroba).
|
|
|
7
7
|
### Project Maintainers
|
|
8
8
|
* Miguel Sanda [@elarroba](https://github.com/elarroba)
|
|
9
9
|
|
|
10
|
-
### Developers
|
|
10
|
+
### Developers
|
|
11
11
|
* Miguel Sanda [@elarroba](https://github.com/elarroba)
|
|
12
|
+
|
|
13
|
+
### Contributors
|
|
12
14
|
* Michael Noel [@mnooel](https://github.com/mnooel)
|
|
13
15
|
* Eric Owuor [@Ericpaul](https://github.com/25-do)
|
|
16
|
+
* Pranav P Tulshyan
|
|
14
17
|
|
|
15
18
|
### Accountants, CPAs & Bookkeepers
|
|
16
19
|
* Miguel Sanda [@elarroba](https://github.com/elarroba)
|
|
17
20
|
* Albert Salazar [@Beachwood619](https://github.com/Beachwood619)
|
|
18
|
-
* Michael Noel, CPA [@mnooel](https://github.com/mnooel)
|
|
21
|
+
* Michael Noel, CPA [@mnooel](https://github.com/mnooel)
|
|
22
|
+
|
|
23
|
+
### Documentation Contributors
|
|
24
|
+
* Miguel Sanda [@elarroba](https://github.com/elarroba)
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: django-ledger
|
|
3
|
+
Version: 0.8.1
|
|
4
|
+
Summary: Double entry accounting system built on the Django Web Framework.
|
|
5
|
+
Author-email: Miguel Sanda <msanda@arrobalytics.com>
|
|
6
|
+
Maintainer-email: Miguel Sanda <msanda@arrobalytics.com>
|
|
7
|
+
License: GPLv3 License
|
|
8
|
+
Project-URL: Homepage, https://www.djangoledger.com
|
|
9
|
+
Project-URL: Bug Tracker, https://github.com/arrobalytics/django-ledger/issues
|
|
10
|
+
Project-URL: Documentation, https://django-ledger.readthedocs.io/en/latest/
|
|
11
|
+
Project-URL: Source Code, https://github.com/arrobalytics/django-ledger
|
|
12
|
+
Keywords: django,finance,bookkeeping,accounting,balance sheet,income statement,general ledger,money,engine
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
15
|
+
Classifier: Topic :: Office/Business :: Financial :: Accounting
|
|
16
|
+
Classifier: Framework :: Django :: 4.0
|
|
17
|
+
Classifier: Framework :: Django :: 5.0
|
|
18
|
+
Classifier: Intended Audience :: Financial and Insurance Industry
|
|
19
|
+
Classifier: Intended Audience :: End Users/Desktop
|
|
20
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
License-File: AUTHORS.md
|
|
25
|
+
Requires-Dist: django>=4.2
|
|
26
|
+
Requires-Dist: django-treebeard>=4.7.1
|
|
27
|
+
Requires-Dist: faker>=37.6.0
|
|
28
|
+
Requires-Dist: fpdf2>=2.8.4
|
|
29
|
+
Requires-Dist: markdown>=3.9
|
|
30
|
+
Requires-Dist: ofxtools>=0.9.5
|
|
31
|
+
Requires-Dist: pillow>=11.3.0
|
|
32
|
+
Dynamic: license-file
|
|
33
|
+
|
|
34
|
+

|
|
35
|
+
|
|
36
|
+
# Django Ledger
|
|
37
|
+
|
|
38
|
+
## A Double Entry Accounting Engine for Django
|
|
39
|
+
|
|
40
|
+
Django Ledger is a powerful financial management system built on the Django Web Framework. It offers a simplified API
|
|
41
|
+
for handling complex accounting tasks in financially driven applications.
|
|
42
|
+
|
|
43
|
+
Created and developed by [Miguel Sanda](https://www.miguelsanda.com).
|
|
44
|
+
|
|
45
|
+
[FREE Get Started Guide](https://www.djangoledger.com/get-started) | [Join our Discord](https://discord.gg/c7PZcbYgrc) | [Documentation](https://django-ledger.readthedocs.io/en/latest/) | [QuickStart Notebook](https://github.com/arrobalytics/django-ledger/blob/develop/notebooks/QuickStart%20Notebook.ipynb)
|
|
46
|
+
|
|
47
|
+
## Key Features
|
|
48
|
+
|
|
49
|
+
- High-level API
|
|
50
|
+
- Double entry accounting
|
|
51
|
+
- Hierarchical Chart of Accounts
|
|
52
|
+
- Financial statements (Income Statement, Balance Sheet, Cash Flow)
|
|
53
|
+
- Purchase Orders, Sales Orders, Bills, and Invoices
|
|
54
|
+
- Financial ratio calculations
|
|
55
|
+
- Multi-tenancy support
|
|
56
|
+
- Ledgers, Journal Entries & Transactions
|
|
57
|
+
- OFX & QFX file import
|
|
58
|
+
- Closing Entries
|
|
59
|
+
- Inventory management
|
|
60
|
+
- Unit of Measures
|
|
61
|
+
- Bank account information
|
|
62
|
+
- Django Admin integration
|
|
63
|
+
- Built-in Entity Management UI
|
|
64
|
+
|
|
65
|
+
## Getting Involved
|
|
66
|
+
|
|
67
|
+
All pull requests are welcome, as long as they address bugfixes, enhancements, new ideas, or add value to the project in
|
|
68
|
+
any shape or form.
|
|
69
|
+
|
|
70
|
+
Please refrain from submitting pull requests that focus solely on code linting, auto-generated code,
|
|
71
|
+
refactoring, or similar cosmetic non-value add changes.
|
|
72
|
+
|
|
73
|
+
- **Feature Requests/Bug Reports**: Open an issue in the repository
|
|
74
|
+
- **For software customization, advanced features and consulting services**:
|
|
75
|
+
[Contact us](https://www.miguelsanda.com/work-with-me/) or email msanda@arrobalytics.com
|
|
76
|
+
- **Contribute**: See
|
|
77
|
+
our [contribution guidelines](https://github.com/arrobalytics/django-ledger/blob/master/Contribute.md)
|
|
78
|
+
|
|
79
|
+
## Who Should Contribute?
|
|
80
|
+
|
|
81
|
+
We're looking for contributors with:
|
|
82
|
+
|
|
83
|
+
- Python and Django programming skills
|
|
84
|
+
- Finance and accounting expertise
|
|
85
|
+
- Interest in developing a robust accounting engine API
|
|
86
|
+
|
|
87
|
+
If you have relevant experience, especially in accounting, we welcome your pull requests or direct contact.
|
|
88
|
+
|
|
89
|
+
# Installation
|
|
90
|
+
|
|
91
|
+
Django Ledger is a [Django](https://www.djangoproject.com/) application. If you haven't, you need working knowledge of
|
|
92
|
+
Django and a working Django project before you can use Django Ledger. A good place to start
|
|
93
|
+
is [here](https://docs.djangoproject.com/en/4.2/intro/tutorial01/#creating-a-project).
|
|
94
|
+
|
|
95
|
+
Make sure you refer to the django version you are using.
|
|
96
|
+
|
|
97
|
+
The easiest way to start is to use the zero-config Django Ledger starter template. See
|
|
98
|
+
details [here](https://github.com/arrobalytics/django-ledger-starter).
|
|
99
|
+
Otherwise, you may create your project from scratch.
|
|
100
|
+
|
|
101
|
+
## Adding Django Ledger to an existing project.
|
|
102
|
+
|
|
103
|
+
### Add django_ledger to INSTALLED_APPS in you new Django Project.
|
|
104
|
+
|
|
105
|
+
```python
|
|
106
|
+
INSTALLED_APPS = [
|
|
107
|
+
...,
|
|
108
|
+
'django_ledger',
|
|
109
|
+
...,
|
|
110
|
+
]
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Add Django Ledger Context Preprocessor
|
|
114
|
+
|
|
115
|
+
```python
|
|
116
|
+
TEMPLATES = [
|
|
117
|
+
{
|
|
118
|
+
'OPTIONS': {
|
|
119
|
+
'context_processors': [
|
|
120
|
+
'...',
|
|
121
|
+
'django_ledger.context.django_ledger_context' # Add this line to a context_processors list..
|
|
122
|
+
],
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
]
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Perform database migrations:
|
|
129
|
+
|
|
130
|
+
```shell
|
|
131
|
+
python manage.py migrate
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
* Add URLs to your project's __urls.py__:
|
|
135
|
+
|
|
136
|
+
```python
|
|
137
|
+
from django.urls import include, path
|
|
138
|
+
|
|
139
|
+
urlpatterns = [
|
|
140
|
+
...,
|
|
141
|
+
path('ledger/', include('django_ledger.urls', namespace='django_ledger')),
|
|
142
|
+
...,
|
|
143
|
+
]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
### Run your project:
|
|
147
|
+
|
|
148
|
+
```shell
|
|
149
|
+
python manage.py runserver
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
* Navigate to Django Ledger root view assigned in your project urlpatterns setting (
|
|
153
|
+
typically http://127.0.0.1:8000/ledger
|
|
154
|
+
if you followed this installation guide).
|
|
155
|
+
* Use your superuser credentials to login.
|
|
156
|
+
|
|
157
|
+
## Deprecated behavior setting (v0.8.0+)
|
|
158
|
+
|
|
159
|
+
Starting with version v0.8.0, Django Ledger introduces the DJANGO_LEDGER_USE_DEPRECATED_BEHAVIOR setting to control
|
|
160
|
+
access to deprecated features and legacy behaviors.
|
|
161
|
+
|
|
162
|
+
- Default: False (deprecated features are disabled by default)
|
|
163
|
+
- To temporarily keep using deprecated features while you transition, set this to True in your Django settings.
|
|
164
|
+
|
|
165
|
+
## Setting Up Django Ledger for Development
|
|
166
|
+
|
|
167
|
+
Django Ledger comes with a basic development environment already configured under __dev_env/__ folder not to be used
|
|
168
|
+
for production environments. If you want to contribute to the project perform the following steps:
|
|
169
|
+
|
|
170
|
+
1. Navigate to your projects directory.
|
|
171
|
+
2. Clone the repo from github and CD into project.
|
|
172
|
+
|
|
173
|
+
```shell
|
|
174
|
+
git clone https://github.com/arrobalytics/django-ledger.git && cd django-ledger
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
3. Install PipEnv, if not already installed:
|
|
178
|
+
|
|
179
|
+
```shell
|
|
180
|
+
pip install -U pipenv
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
4. Create virtual environment.
|
|
184
|
+
|
|
185
|
+
```shell
|
|
186
|
+
pipenv install
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
If using a specific version of Python you may specify the path.
|
|
190
|
+
|
|
191
|
+
```shell
|
|
192
|
+
pipenv install --python PATH_TO_INTERPRETER
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
5. Activate environment.
|
|
196
|
+
|
|
197
|
+
```shell
|
|
198
|
+
pipenv shell
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
6. Apply migrations.
|
|
202
|
+
|
|
203
|
+
```shell
|
|
204
|
+
python manage.py migrate
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
7. Create a Development Django user.
|
|
208
|
+
|
|
209
|
+
```shell
|
|
210
|
+
python manage.py createsuperuser
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
8. Run development server.
|
|
214
|
+
|
|
215
|
+
```shell
|
|
216
|
+
python manage.py runserver
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
# How To Set Up Django Ledger for Development using Docker
|
|
220
|
+
|
|
221
|
+
1. Navigate to your projects directory.
|
|
222
|
+
|
|
223
|
+
2. Give executable permissions to entrypoint.sh
|
|
224
|
+
|
|
225
|
+
```shell
|
|
226
|
+
sudo chmod +x entrypoint.sh
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
3. Add host '0.0.0.0' into ALLOWED_HOSTS in settings.py.
|
|
230
|
+
|
|
231
|
+
4. Build the image and run the container.
|
|
232
|
+
|
|
233
|
+
```shell
|
|
234
|
+
docker compose up --build
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
5. Add Django Superuser by running command in seprate terminal
|
|
238
|
+
|
|
239
|
+
```shell
|
|
240
|
+
docker ps
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Select container id of running container and execute following command
|
|
244
|
+
|
|
245
|
+
```shell
|
|
246
|
+
docker exec -it containerId /bin/sh
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
```shell
|
|
250
|
+
python manage.py createsuperuser
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
6. Navigate to http://0.0.0.0:8000/ on browser.
|
|
254
|
+
|
|
255
|
+
# Run Test Suite
|
|
256
|
+
|
|
257
|
+
After setting up your development environment you may run tests.
|
|
258
|
+
|
|
259
|
+
```shell
|
|
260
|
+
python manage.py test django_ledger
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
# Screenshots
|
|
264
|
+
|
|
265
|
+

|
|
266
|
+

|
|
267
|
+

|
|
268
|
+

|
|
269
|
+

|
|
270
|
+
|
|
271
|
+
# Financial Statements Screenshots
|
|
272
|
+
|
|
273
|
+

|
|
274
|
+

|
|
275
|
+

|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+

|
|
2
|
+
|
|
3
|
+
# Django Ledger
|
|
4
|
+
|
|
5
|
+
## A Double Entry Accounting Engine for Django
|
|
6
|
+
|
|
7
|
+
Django Ledger is a powerful financial management system built on the Django Web Framework. It offers a simplified API
|
|
8
|
+
for handling complex accounting tasks in financially driven applications.
|
|
9
|
+
|
|
10
|
+
Created and developed by [Miguel Sanda](https://www.miguelsanda.com).
|
|
11
|
+
|
|
12
|
+
[FREE Get Started Guide](https://www.djangoledger.com/get-started) | [Join our Discord](https://discord.gg/c7PZcbYgrc) | [Documentation](https://django-ledger.readthedocs.io/en/latest/) | [QuickStart Notebook](https://github.com/arrobalytics/django-ledger/blob/develop/notebooks/QuickStart%20Notebook.ipynb)
|
|
13
|
+
|
|
14
|
+
## Key Features
|
|
15
|
+
|
|
16
|
+
- High-level API
|
|
17
|
+
- Double entry accounting
|
|
18
|
+
- Hierarchical Chart of Accounts
|
|
19
|
+
- Financial statements (Income Statement, Balance Sheet, Cash Flow)
|
|
20
|
+
- Purchase Orders, Sales Orders, Bills, and Invoices
|
|
21
|
+
- Financial ratio calculations
|
|
22
|
+
- Multi-tenancy support
|
|
23
|
+
- Ledgers, Journal Entries & Transactions
|
|
24
|
+
- OFX & QFX file import
|
|
25
|
+
- Closing Entries
|
|
26
|
+
- Inventory management
|
|
27
|
+
- Unit of Measures
|
|
28
|
+
- Bank account information
|
|
29
|
+
- Django Admin integration
|
|
30
|
+
- Built-in Entity Management UI
|
|
31
|
+
|
|
32
|
+
## Getting Involved
|
|
33
|
+
|
|
34
|
+
All pull requests are welcome, as long as they address bugfixes, enhancements, new ideas, or add value to the project in
|
|
35
|
+
any shape or form.
|
|
36
|
+
|
|
37
|
+
Please refrain from submitting pull requests that focus solely on code linting, auto-generated code,
|
|
38
|
+
refactoring, or similar cosmetic non-value add changes.
|
|
39
|
+
|
|
40
|
+
- **Feature Requests/Bug Reports**: Open an issue in the repository
|
|
41
|
+
- **For software customization, advanced features and consulting services**:
|
|
42
|
+
[Contact us](https://www.miguelsanda.com/work-with-me/) or email msanda@arrobalytics.com
|
|
43
|
+
- **Contribute**: See
|
|
44
|
+
our [contribution guidelines](https://github.com/arrobalytics/django-ledger/blob/master/Contribute.md)
|
|
45
|
+
|
|
46
|
+
## Who Should Contribute?
|
|
47
|
+
|
|
48
|
+
We're looking for contributors with:
|
|
49
|
+
|
|
50
|
+
- Python and Django programming skills
|
|
51
|
+
- Finance and accounting expertise
|
|
52
|
+
- Interest in developing a robust accounting engine API
|
|
53
|
+
|
|
54
|
+
If you have relevant experience, especially in accounting, we welcome your pull requests or direct contact.
|
|
55
|
+
|
|
56
|
+
# Installation
|
|
57
|
+
|
|
58
|
+
Django Ledger is a [Django](https://www.djangoproject.com/) application. If you haven't, you need working knowledge of
|
|
59
|
+
Django and a working Django project before you can use Django Ledger. A good place to start
|
|
60
|
+
is [here](https://docs.djangoproject.com/en/4.2/intro/tutorial01/#creating-a-project).
|
|
61
|
+
|
|
62
|
+
Make sure you refer to the django version you are using.
|
|
63
|
+
|
|
64
|
+
The easiest way to start is to use the zero-config Django Ledger starter template. See
|
|
65
|
+
details [here](https://github.com/arrobalytics/django-ledger-starter).
|
|
66
|
+
Otherwise, you may create your project from scratch.
|
|
67
|
+
|
|
68
|
+
## Adding Django Ledger to an existing project.
|
|
69
|
+
|
|
70
|
+
### Add django_ledger to INSTALLED_APPS in you new Django Project.
|
|
71
|
+
|
|
72
|
+
```python
|
|
73
|
+
INSTALLED_APPS = [
|
|
74
|
+
...,
|
|
75
|
+
'django_ledger',
|
|
76
|
+
...,
|
|
77
|
+
]
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Add Django Ledger Context Preprocessor
|
|
81
|
+
|
|
82
|
+
```python
|
|
83
|
+
TEMPLATES = [
|
|
84
|
+
{
|
|
85
|
+
'OPTIONS': {
|
|
86
|
+
'context_processors': [
|
|
87
|
+
'...',
|
|
88
|
+
'django_ledger.context.django_ledger_context' # Add this line to a context_processors list..
|
|
89
|
+
],
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
]
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Perform database migrations:
|
|
96
|
+
|
|
97
|
+
```shell
|
|
98
|
+
python manage.py migrate
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
* Add URLs to your project's __urls.py__:
|
|
102
|
+
|
|
103
|
+
```python
|
|
104
|
+
from django.urls import include, path
|
|
105
|
+
|
|
106
|
+
urlpatterns = [
|
|
107
|
+
...,
|
|
108
|
+
path('ledger/', include('django_ledger.urls', namespace='django_ledger')),
|
|
109
|
+
...,
|
|
110
|
+
]
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Run your project:
|
|
114
|
+
|
|
115
|
+
```shell
|
|
116
|
+
python manage.py runserver
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
* Navigate to Django Ledger root view assigned in your project urlpatterns setting (
|
|
120
|
+
typically http://127.0.0.1:8000/ledger
|
|
121
|
+
if you followed this installation guide).
|
|
122
|
+
* Use your superuser credentials to login.
|
|
123
|
+
|
|
124
|
+
## Deprecated behavior setting (v0.8.0+)
|
|
125
|
+
|
|
126
|
+
Starting with version v0.8.0, Django Ledger introduces the DJANGO_LEDGER_USE_DEPRECATED_BEHAVIOR setting to control
|
|
127
|
+
access to deprecated features and legacy behaviors.
|
|
128
|
+
|
|
129
|
+
- Default: False (deprecated features are disabled by default)
|
|
130
|
+
- To temporarily keep using deprecated features while you transition, set this to True in your Django settings.
|
|
131
|
+
|
|
132
|
+
## Setting Up Django Ledger for Development
|
|
133
|
+
|
|
134
|
+
Django Ledger comes with a basic development environment already configured under __dev_env/__ folder not to be used
|
|
135
|
+
for production environments. If you want to contribute to the project perform the following steps:
|
|
136
|
+
|
|
137
|
+
1. Navigate to your projects directory.
|
|
138
|
+
2. Clone the repo from github and CD into project.
|
|
139
|
+
|
|
140
|
+
```shell
|
|
141
|
+
git clone https://github.com/arrobalytics/django-ledger.git && cd django-ledger
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
3. Install PipEnv, if not already installed:
|
|
145
|
+
|
|
146
|
+
```shell
|
|
147
|
+
pip install -U pipenv
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
4. Create virtual environment.
|
|
151
|
+
|
|
152
|
+
```shell
|
|
153
|
+
pipenv install
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
If using a specific version of Python you may specify the path.
|
|
157
|
+
|
|
158
|
+
```shell
|
|
159
|
+
pipenv install --python PATH_TO_INTERPRETER
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
5. Activate environment.
|
|
163
|
+
|
|
164
|
+
```shell
|
|
165
|
+
pipenv shell
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
6. Apply migrations.
|
|
169
|
+
|
|
170
|
+
```shell
|
|
171
|
+
python manage.py migrate
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
7. Create a Development Django user.
|
|
175
|
+
|
|
176
|
+
```shell
|
|
177
|
+
python manage.py createsuperuser
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
8. Run development server.
|
|
181
|
+
|
|
182
|
+
```shell
|
|
183
|
+
python manage.py runserver
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
# How To Set Up Django Ledger for Development using Docker
|
|
187
|
+
|
|
188
|
+
1. Navigate to your projects directory.
|
|
189
|
+
|
|
190
|
+
2. Give executable permissions to entrypoint.sh
|
|
191
|
+
|
|
192
|
+
```shell
|
|
193
|
+
sudo chmod +x entrypoint.sh
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
3. Add host '0.0.0.0' into ALLOWED_HOSTS in settings.py.
|
|
197
|
+
|
|
198
|
+
4. Build the image and run the container.
|
|
199
|
+
|
|
200
|
+
```shell
|
|
201
|
+
docker compose up --build
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
5. Add Django Superuser by running command in seprate terminal
|
|
205
|
+
|
|
206
|
+
```shell
|
|
207
|
+
docker ps
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
Select container id of running container and execute following command
|
|
211
|
+
|
|
212
|
+
```shell
|
|
213
|
+
docker exec -it containerId /bin/sh
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
```shell
|
|
217
|
+
python manage.py createsuperuser
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
6. Navigate to http://0.0.0.0:8000/ on browser.
|
|
221
|
+
|
|
222
|
+
# Run Test Suite
|
|
223
|
+
|
|
224
|
+
After setting up your development environment you may run tests.
|
|
225
|
+
|
|
226
|
+
```shell
|
|
227
|
+
python manage.py test django_ledger
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
# Screenshots
|
|
231
|
+
|
|
232
|
+

|
|
233
|
+

|
|
234
|
+

|
|
235
|
+

|
|
236
|
+

|
|
237
|
+
|
|
238
|
+
# Financial Statements Screenshots
|
|
239
|
+
|
|
240
|
+

|
|
241
|
+

|
|
242
|
+

|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Django Ledger created by Miguel Sanda <msanda@arrobalytics.com>.
|
|
3
3
|
Copyright© EDMA Group Inc licensed under the GPLv3 Agreement.
|
|
4
|
-
|
|
5
|
-
Contributions to this module:
|
|
6
|
-
Miguel Sanda <msanda@arrobalytics.com>
|
|
7
4
|
"""
|
|
8
5
|
|
|
9
6
|
default_app_config = 'django_ledger.apps.DjangoLedgerConfig'
|
|
10
7
|
|
|
11
8
|
"""Django Ledger"""
|
|
12
|
-
__version__ = '0.
|
|
9
|
+
__version__ = '0.8.1'
|
|
13
10
|
__license__ = 'GPLv3 License'
|
|
14
11
|
|
|
15
12
|
__author__ = 'Miguel Sanda'
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
from django.contrib import admin
|
|
2
|
+
|
|
3
|
+
from django_ledger.admin.chart_of_accounts import ChartOfAccountsModelAdmin
|
|
4
|
+
from django_ledger.admin.entity import EntityModelAdmin
|
|
5
|
+
from django_ledger.admin.ledger import LedgerModelAdmin
|
|
6
|
+
from django_ledger.models import EntityModel, ChartOfAccountModel, LedgerModel
|
|
7
|
+
|
|
8
|
+
admin.site.register(EntityModel, EntityModelAdmin)
|
|
9
|
+
admin.site.register(ChartOfAccountModel, ChartOfAccountsModelAdmin)
|
|
10
|
+
admin.site.register(LedgerModel, LedgerModelAdmin)
|