django-ledger 0.8.2__tar.gz → 0.8.2.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.

Files changed (406) hide show
  1. {django_ledger-0.8.2/django_ledger.egg-info → django_ledger-0.8.2.1}/PKG-INFO +1 -1
  2. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/__init__.py +1 -1
  3. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/chart_of_accounts.py +160 -169
  4. {django_ledger-0.8.2 → django_ledger-0.8.2.1/django_ledger.egg-info}/PKG-INFO +1 -1
  5. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/pyproject.toml +1 -1
  6. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/AUTHORS.md +0 -0
  7. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/LICENSE +0 -0
  8. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/MANIFEST.in +0 -0
  9. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/README.md +0 -0
  10. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/admin/__init__.py +0 -0
  11. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/admin/chart_of_accounts.py +0 -0
  12. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/admin/entity.py +0 -0
  13. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/admin/ledger.py +0 -0
  14. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/apps.py +0 -0
  15. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/context.py +0 -0
  16. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/contrib/__init__.py +0 -0
  17. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/exceptions.py +0 -0
  18. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/__init__.py +0 -0
  19. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/account.py +0 -0
  20. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/app_filters.py +0 -0
  21. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/auth.py +0 -0
  22. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/bank_account.py +0 -0
  23. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/bill.py +0 -0
  24. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/chart_of_accounts.py +0 -0
  25. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/closing_entry.py +0 -0
  26. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/customer.py +0 -0
  27. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/data_import.py +0 -0
  28. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/entity.py +0 -0
  29. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/estimate.py +0 -0
  30. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/feedback.py +0 -0
  31. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/invoice.py +0 -0
  32. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/item.py +0 -0
  33. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/journal_entry.py +0 -0
  34. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/ledger.py +0 -0
  35. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/purchase_order.py +0 -0
  36. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/transactions.py +0 -0
  37. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/unit.py +0 -0
  38. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/utils.py +0 -0
  39. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/forms/vendor.py +0 -0
  40. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/io/__init__.py +0 -0
  41. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/io/io_context.py +0 -0
  42. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/io/io_core.py +0 -0
  43. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/io/io_generator.py +0 -0
  44. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/io/io_library.py +0 -0
  45. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/io/io_middleware.py +0 -0
  46. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/io/ofx.py +0 -0
  47. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/io/ratios.py +0 -0
  48. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/io/roles.py +0 -0
  49. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/management/__init__.py +0 -0
  50. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/management/commands/__init__.py +0 -0
  51. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/management/commands/generate_oauth2_codes.py +0 -0
  52. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0001_initial.py +0 -0
  53. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0002_alter_journalentrymodel_managers_and_more.py +0 -0
  54. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0003_remove_accountmodel_django_ledg_role_1bff96_idx_and_more.py +0 -0
  55. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0004_remove_itemmodel_depth_remove_itemmodel_numchild_and_more.py +0 -0
  56. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0005_remove_itemmodel_django_ledg_invento_dbf206_idx_and_more.py +0 -0
  57. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0006_alter_journalentrymodel_je_number_and_more.py +0 -0
  58. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0007_remove_customermodel_django_ledg_custome_16f95a_idx_and_more.py +0 -0
  59. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0008_closingentrymodel_closingentrytransactionmodel_and_more.py +0 -0
  60. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0009_delete_stagedtransactionmodel.py +0 -0
  61. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0010_delete_importjobmodel.py +0 -0
  62. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0011_importjobmodel_alter_accountmodel_role_and_more.py +0 -0
  63. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0012_stagedtransactionmodel_activity.py +0 -0
  64. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0013_stagedtransactionmodel_bundle_split.py +0 -0
  65. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0014_ledgermodel_ledger_xid_and_more.py +0 -0
  66. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0015_remove_chartofaccountmodel_locked_and_more.py +0 -0
  67. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0016_remove_accountmodel_django_ledg_coa_mod_e19964_idx_and_more.py +0 -0
  68. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0017_alter_accountmodel_unique_together_and_more.py +0 -0
  69. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0018_transactionmodel_cleared_transactionmodel_reconciled_and_more.py +0 -0
  70. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0019_alter_transactionmodel_amount_and_more.py +0 -0
  71. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0020_remove_bankaccountmodel_django_ledg_cash_ac_59a8af_idx_and_more.py +0 -0
  72. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0021_alter_bankaccountmodel_account_model_and_more.py +0 -0
  73. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0022_bankaccountmodel_financial_institution_and_more.py +0 -0
  74. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0023_customermodel_customer_code_customermodel_picture_and_more.py +0 -0
  75. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0024_billmodel_entity_model_invoicemodel_entity_model.py +0 -0
  76. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0025_alter_billmodel_cash_account_and_more.py +0 -0
  77. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/0026_stagedtransactionmodel_customer_model_and_more.py +0 -0
  78. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/migrations/__init__.py +0 -0
  79. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/__init__.py +0 -0
  80. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/accounts.py +0 -0
  81. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/bank_account.py +0 -0
  82. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/bill.py +0 -0
  83. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/closing_entry.py +0 -0
  84. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/coa_default.py +0 -0
  85. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/customer.py +0 -0
  86. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/data_import.py +0 -0
  87. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/deprecations.py +0 -0
  88. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/entity.py +0 -0
  89. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/estimate.py +0 -0
  90. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/invoice.py +0 -0
  91. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/items.py +0 -0
  92. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/journal_entry.py +0 -0
  93. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/ledger.py +0 -0
  94. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/mixins.py +0 -0
  95. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/purchase_order.py +0 -0
  96. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/receipt.py +0 -0
  97. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/schemas/__init__.py +0 -0
  98. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/schemas/digest.py +0 -0
  99. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/schemas/net_payable.py +0 -0
  100. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/schemas/net_receivable.py +0 -0
  101. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/schemas/pnl.py +0 -0
  102. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/signals.py +0 -0
  103. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/transactions.py +0 -0
  104. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/unit.py +0 -0
  105. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/utils.py +0 -0
  106. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/models/vendor.py +0 -0
  107. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/report/__init__.py +0 -0
  108. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/report/balance_sheet.py +0 -0
  109. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/report/cash_flow_statement.py +0 -0
  110. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/report/core.py +0 -0
  111. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/report/income_statement.py +0 -0
  112. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/settings.py +0 -0
  113. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/bundle/djetler.bundle.js +0 -0
  114. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/bundle/djetler.bundle.js.LICENSE.txt +0 -0
  115. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/css/djl_styles.css +0 -0
  116. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/img/daniel-weiss-aj2Os9mYgJU-unsplash.jpg +0 -0
  117. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/img/made-with-bulma.png +0 -0
  118. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-logo-report.png +0 -0
  119. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-logo.png +0 -0
  120. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-logo@2x.png +0 -0
  121. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-logo@3x.png +0 -0
  122. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-logo@4x.png +0 -0
  123. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-logo_1.png +0 -0
  124. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-logo_1@2x.png +0 -0
  125. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-logo_1@3x.png +0 -0
  126. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-logo_1@4x.png +0 -0
  127. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-tagline.png +0 -0
  128. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-tagline@2x.png +0 -0
  129. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-tagline@3x.png +0 -0
  130. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-tagline@4x.png +0 -0
  131. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-text.png +0 -0
  132. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-text@2x.png +0 -0
  133. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-text@3x.png +0 -0
  134. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/django-ledger-text@4x.png +0 -0
  135. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo/favicon.png +0 -0
  136. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark.png +0 -0
  137. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@0.5x.png +0 -0
  138. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@2x.png +0 -0
  139. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/django_ledger_logo_dark@3x.png +0 -0
  140. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-full-vert.png +0 -0
  141. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-full-vert@0.5x.png +0 -0
  142. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-full-vert@2x.png +0 -0
  143. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-full-vert@3x.png +0 -0
  144. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz.png +0 -0
  145. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@0.5x.png +0 -0
  146. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@2x.png +0 -0
  147. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo-full-horiz@3x.png +0 -0
  148. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo-full-vert.png +0 -0
  149. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo-full-vert@0.5x.png +0 -0
  150. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo-full-vert@2x.png +0 -0
  151. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo-full-vert@3x.png +0 -0
  152. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo.png +0 -0
  153. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo@0.5x.png +0 -0
  154. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo@2x.png +0 -0
  155. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-logo@3x.png +0 -0
  156. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz.png +0 -0
  157. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz@0.5x.png +0 -0
  158. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz@2x.png +0 -0
  159. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-full-horiz@3x.png +0 -0
  160. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-full-vert.png +0 -0
  161. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-full-vert@0.5x.png +0 -0
  162. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-full-vert@2x.png +0 -0
  163. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-full-vert@3x.png +0 -0
  164. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-horiz.png +0 -0
  165. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-horiz@0.5x.png +0 -0
  166. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-horiz@2x.png +0 -0
  167. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/static/django_ledger/logo_2/djl-txt-horiz@3x.png +0 -0
  168. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/account/account_create.html +0 -0
  169. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/account/account_create_child.html +0 -0
  170. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/account/account_detail.html +0 -0
  171. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/account/account_list.html +0 -0
  172. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/account/account_update.html +0 -0
  173. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/account/tags/account_txs_table.html +0 -0
  174. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/account/tags/accounts_table.html +0 -0
  175. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/auth/login.html +0 -0
  176. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bank_account/bank_account_create.html +0 -0
  177. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bank_account/bank_account_list.html +0 -0
  178. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bank_account/bank_account_update.html +0 -0
  179. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bank_account/tags/bank_accounts_table.html +0 -0
  180. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bills/bill_create.html +0 -0
  181. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bills/bill_delete.html +0 -0
  182. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bills/bill_detail.html +0 -0
  183. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bills/bill_list.html +0 -0
  184. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bills/bill_update.html +0 -0
  185. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bills/bill_void.html +0 -0
  186. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bills/includes/card_bill.html +0 -0
  187. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bills/tags/bill_item_formset.html +0 -0
  188. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/bills/tags/bill_table.html +0 -0
  189. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/chart_of_accounts/coa_create.html +0 -0
  190. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/chart_of_accounts/coa_list.html +0 -0
  191. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/chart_of_accounts/coa_update.html +0 -0
  192. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/chart_of_accounts/includes/coa_card.html +0 -0
  193. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/closing_entry/closing_entry_create.html +0 -0
  194. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/closing_entry/closing_entry_delete.html +0 -0
  195. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/closing_entry/closing_entry_detail.html +0 -0
  196. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/closing_entry/closing_entry_list.html +0 -0
  197. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/closing_entry/closing_entry_update.html +0 -0
  198. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/closing_entry/includes/card_closing_entry.html +0 -0
  199. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_table.html +0 -0
  200. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/closing_entry/tags/closing_entry_txs_table.html +0 -0
  201. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/activity_form.html +0 -0
  202. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/breadcrumbs.html +0 -0
  203. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/chart_container.html +0 -0
  204. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/date_picker.html +0 -0
  205. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/default_entity.html +0 -0
  206. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/feedback_button.html +0 -0
  207. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/filters.html +0 -0
  208. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/icon.html +0 -0
  209. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/menu.html +0 -0
  210. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/modals.html +0 -0
  211. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/modals_v2.html +0 -0
  212. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/components/period_navigator.html +0 -0
  213. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/customer/customer_create.html +0 -0
  214. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/customer/customer_detail.html +0 -0
  215. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/customer/customer_list.html +0 -0
  216. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/customer/customer_update.html +0 -0
  217. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/customer/includes/card_customer.html +0 -0
  218. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/customer/tags/customer_table.html +0 -0
  219. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/data_import/data_import_job_list.html +0 -0
  220. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/data_import/data_import_job_txs.html +0 -0
  221. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/data_import/import_job_create.html +0 -0
  222. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/data_import/import_job_delete.html +0 -0
  223. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/data_import/import_job_update.html +0 -0
  224. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/data_import/tags/data_import_job_list_table.html +0 -0
  225. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_imported.html +0 -0
  226. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_table.html +0 -0
  227. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/entity/entitiy_list.html +0 -0
  228. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/entity/entity_create.html +0 -0
  229. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/entity/entity_dashboard.html +0 -0
  230. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/entity/entity_delete.html +0 -0
  231. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/entity/entity_update.html +0 -0
  232. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/entity/home.html +0 -0
  233. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/entity/includes/card_entity.html +0 -0
  234. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/estimate/estimate_create.html +0 -0
  235. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/estimate/estimate_detail.html +0 -0
  236. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/estimate/estimate_list.html +0 -0
  237. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/estimate/estimate_update.html +0 -0
  238. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/estimate/includes/card_estimate.html +0 -0
  239. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/estimate/includes/estimate_item_table.html +0 -0
  240. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/estimate/includes/estimate_table.html +0 -0
  241. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/estimate/tags/ce_item_formset.html +0 -0
  242. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/expense/expense_create.html +0 -0
  243. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/expense/expense_list.html +0 -0
  244. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/expense/expense_update.html +0 -0
  245. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/expense/tags/expense_item_table.html +0 -0
  246. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/financial_statements/balance_sheet.html +0 -0
  247. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/financial_statements/cash_flow.html +0 -0
  248. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/financial_statements/income_statement.html +0 -0
  249. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html +0 -0
  250. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/financial_statements/tags/cash_flow_statement.html +0 -0
  251. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html +0 -0
  252. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/includes/breadcrumbs.html +0 -0
  253. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/includes/card_markdown.html +0 -0
  254. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/includes/footer.html +0 -0
  255. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/includes/messages.html +0 -0
  256. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/includes/nav.html +0 -0
  257. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/includes/page_header.html +0 -0
  258. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/includes/widget_bs.html +0 -0
  259. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/includes/widget_ic.html +0 -0
  260. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/includes/widget_ratios.html +0 -0
  261. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/inventory/inventory_item_create.html +0 -0
  262. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/inventory/inventory_item_list.html +0 -0
  263. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/inventory/inventory_item_update.html +0 -0
  264. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/inventory/inventory_list.html +0 -0
  265. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/inventory/inventory_recount.html +0 -0
  266. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/inventory/tags/inventory_item_table.html +0 -0
  267. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/inventory/tags/inventory_table.html +0 -0
  268. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/invoice/includes/card_invoice.html +0 -0
  269. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/invoice/invoice_create.html +0 -0
  270. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/invoice/invoice_delete.html +0 -0
  271. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/invoice/invoice_detail.html +0 -0
  272. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/invoice/invoice_list.html +0 -0
  273. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/invoice/invoice_update.html +0 -0
  274. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/invoice/tags/invoice_item_formset.html +0 -0
  275. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/invoice/tags/invoice_table.html +0 -0
  276. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/journal_entry/includes/card_journal_entry.html +0 -0
  277. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/journal_entry/je_create.html +0 -0
  278. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/journal_entry/je_delete.html +0 -0
  279. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/journal_entry/je_detail.html +0 -0
  280. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html +0 -0
  281. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/journal_entry/je_list.html +0 -0
  282. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/journal_entry/je_update.html +0 -0
  283. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/journal_entry/tags/je_table.html +0 -0
  284. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html +0 -0
  285. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/layouts/base.html +0 -0
  286. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/layouts/content_layout_1.html +0 -0
  287. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/layouts/content_layout_2.html +0 -0
  288. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/ledger/ledger_create.html +0 -0
  289. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/ledger/ledger_delete.html +0 -0
  290. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/ledger/ledger_list.html +0 -0
  291. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/ledger/ledger_update.html +0 -0
  292. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html +0 -0
  293. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/product/product_create.html +0 -0
  294. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/product/product_delete.html +0 -0
  295. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/product/product_list.html +0 -0
  296. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/product/product_update.html +0 -0
  297. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/product/tags/product_table.html +0 -0
  298. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/purchase_order/includes/card_po.html +0 -0
  299. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/purchase_order/includes/po_item_formset.html +0 -0
  300. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/purchase_order/includes/po_table.html +0 -0
  301. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/purchase_order/po_create.html +0 -0
  302. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/purchase_order/po_delete.html +0 -0
  303. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/purchase_order/po_detail.html +0 -0
  304. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/purchase_order/po_list.html +0 -0
  305. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/purchase_order/po_update.html +0 -0
  306. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/purchase_order/tags/po_item_table.html +0 -0
  307. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/receipt/customer_receipt_report.html +0 -0
  308. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/receipt/receipt_delete.html +0 -0
  309. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/receipt/receipt_detail.html +0 -0
  310. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/receipt/receipt_list.html +0 -0
  311. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/receipt/vendor_receipt_report.html +0 -0
  312. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/service/service_create.html +0 -0
  313. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/service/service_delete.html +0 -0
  314. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/service/service_list.html +0 -0
  315. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/service/service_update.html +0 -0
  316. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/service/tags/services_table.html +0 -0
  317. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/transactions/tags/txs_table.html +0 -0
  318. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/unit/unit_create.html +0 -0
  319. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/unit/unit_detail.html +0 -0
  320. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/unit/unit_list.html +0 -0
  321. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/unit/unit_update.html +0 -0
  322. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/uom/tags/uom_table.html +0 -0
  323. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/uom/uom_create.html +0 -0
  324. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/uom/uom_delete.html +0 -0
  325. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/uom/uom_list.html +0 -0
  326. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/uom/uom_update.html +0 -0
  327. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/vendor/includes/card_vendor.html +0 -0
  328. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/vendor/tags/vendor_table.html +0 -0
  329. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/vendor/vendor_create.html +0 -0
  330. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/vendor/vendor_detail.html +0 -0
  331. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/vendor/vendor_list.html +0 -0
  332. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templates/django_ledger/vendor/vendor_update.html +0 -0
  333. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templatetags/__init__.py +0 -0
  334. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/templatetags/django_ledger.py +0 -0
  335. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/__init__.py +0 -0
  336. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/base.py +0 -0
  337. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/bdd/__init__.py +0 -0
  338. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/bdd/features/steps/README.py +0 -0
  339. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_accounts.py +0 -0
  340. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_auth.py +0 -0
  341. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_bill.py +0 -0
  342. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_chart_of_accounts.py +0 -0
  343. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_closing_entry.py +0 -0
  344. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_entity.py +0 -0
  345. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_io.py +0 -0
  346. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_io_ofx/__init__.py +0 -0
  347. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_io_ofx/tests.py +0 -0
  348. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_purchase_order.py +0 -0
  349. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/tests/test_transactions.py +0 -0
  350. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/__init__.py +0 -0
  351. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/account.py +0 -0
  352. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/auth.py +0 -0
  353. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/bank_account.py +0 -0
  354. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/bill.py +0 -0
  355. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/chart_of_accounts.py +0 -0
  356. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/closing_entry.py +0 -0
  357. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/customer.py +0 -0
  358. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/data_import.py +0 -0
  359. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/djl_api.py +0 -0
  360. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/entity.py +0 -0
  361. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/estimate.py +0 -0
  362. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/feedback.py +0 -0
  363. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/financial_statement.py +0 -0
  364. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/home.py +0 -0
  365. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/inventory.py +0 -0
  366. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/invoice.py +0 -0
  367. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/item.py +0 -0
  368. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/journal_entry.py +0 -0
  369. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/ledger.py +0 -0
  370. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/purchase_order.py +0 -0
  371. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/receipt.py +0 -0
  372. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/transactions.py +0 -0
  373. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/unit.py +0 -0
  374. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/urls/vendor.py +0 -0
  375. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/utils.py +0 -0
  376. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/__init__.py +0 -0
  377. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/account.py +0 -0
  378. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/auth.py +0 -0
  379. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/bank_account.py +0 -0
  380. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/bill.py +0 -0
  381. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/chart_of_accounts.py +0 -0
  382. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/closing_entry.py +0 -0
  383. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/customer.py +0 -0
  384. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/data_import.py +0 -0
  385. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/djl_api.py +0 -0
  386. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/entity.py +0 -0
  387. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/estimate.py +0 -0
  388. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/feedback.py +0 -0
  389. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/financial_statement.py +0 -0
  390. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/home.py +0 -0
  391. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/inventory.py +0 -0
  392. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/invoice.py +0 -0
  393. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/item.py +0 -0
  394. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/journal_entry.py +0 -0
  395. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/ledger.py +0 -0
  396. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/mixins.py +0 -0
  397. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/purchase_order.py +0 -0
  398. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/receipt.py +0 -0
  399. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/transactions.py +0 -0
  400. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/unit.py +0 -0
  401. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger/views/vendor.py +0 -0
  402. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger.egg-info/SOURCES.txt +0 -0
  403. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger.egg-info/dependency_links.txt +0 -0
  404. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger.egg-info/requires.txt +0 -0
  405. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/django_ledger.egg-info/top_level.txt +0 -0
  406. {django_ledger-0.8.2 → django_ledger-0.8.2.1}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-ledger
3
- Version: 0.8.2
3
+ Version: 0.8.2.1
4
4
  Summary: Double entry accounting system built on the Django Web Framework.
5
5
  Author-email: Miguel Sanda <msanda@arrobalytics.com>
6
6
  Maintainer-email: Miguel Sanda <msanda@arrobalytics.com>
@@ -6,7 +6,7 @@ Copyright© EDMA Group Inc licensed under the GPLv3 Agreement.
6
6
  default_app_config = 'django_ledger.apps.DjangoLedgerConfig'
7
7
 
8
8
  """Django Ledger"""
9
- __version__ = '0.8.2'
9
+ __version__ = '0.8.2.1'
10
10
  __license__ = 'GPLv3 License'
11
11
 
12
12
  __author__ = 'Miguel Sanda'
@@ -39,13 +39,13 @@ roles to create comprehensive financial statements.
39
39
  This structure ensures a clear and organized approach to financial management within Django Ledger, facilitating
40
40
  accurate record-keeping and reporting.
41
41
  """
42
+
42
43
  import warnings
43
44
  from random import choices
44
45
  from string import ascii_lowercase, digits
45
46
  from typing import Optional, Union, Dict
46
47
  from uuid import uuid4, UUID
47
48
 
48
- from django.apps import apps
49
49
  from django.contrib.auth import get_user_model
50
50
  from django.core.exceptions import ValidationError
51
51
  from django.db import models
@@ -56,9 +56,16 @@ from django.urls import reverse
56
56
  from django.utils.translation import gettext_lazy as _
57
57
 
58
58
  from django_ledger.io import (
59
- ROOT_COA, ROOT_GROUP_LEVEL_2, ROOT_GROUP_META, ROOT_ASSETS,
60
- ROOT_LIABILITIES, ROOT_CAPITAL,
61
- ROOT_INCOME, ROOT_COGS, ROOT_EXPENSES, ROOT_GROUP
59
+ ROOT_COA,
60
+ ROOT_GROUP_LEVEL_2,
61
+ ROOT_GROUP_META,
62
+ ROOT_ASSETS,
63
+ ROOT_LIABILITIES,
64
+ ROOT_CAPITAL,
65
+ ROOT_INCOME,
66
+ ROOT_COGS,
67
+ ROOT_EXPENSES,
68
+ ROOT_GROUP,
62
69
  )
63
70
  from django_ledger.models import lazy_loader
64
71
  from django_ledger.models.accounts import AccountModel, AccountModelQuerySet
@@ -70,15 +77,12 @@ UserModel = get_user_model()
70
77
 
71
78
  SLUG_SUFFIX = ascii_lowercase + digits
72
79
 
73
- app_config = apps.get_app_config('django_ledger')
74
-
75
80
 
76
81
  class ChartOfAccountsModelValidationError(ValidationError):
77
82
  pass
78
83
 
79
84
 
80
85
  class ChartOfAccountModelQuerySet(QuerySet):
81
-
82
86
  def active(self) -> 'ChartOfAccountModelQuerySet':
83
87
  """
84
88
  QuerySet method to retrieve active items.
@@ -113,10 +117,7 @@ class ChartOfAccountModelQuerySet(QuerySet):
113
117
  return self
114
118
 
115
119
  return self.filter(
116
- (
117
- Q(entity__admin=user_model) |
118
- Q(entity__managers__in=[user_model])
119
- )
120
+ (Q(entity__admin=user_model) | Q(entity__managers__in=[user_model]))
120
121
  )
121
122
 
122
123
 
@@ -128,49 +129,56 @@ class ChartOfAccountModelManager(Manager):
128
129
 
129
130
  def get_queryset(self) -> ChartOfAccountModelQuerySet:
130
131
  qs = ChartOfAccountModelQuerySet(self.model, using=self._db)
131
- return qs.annotate(
132
- _entity_slug=F('entity__slug'),
133
- accountmodel_total__count=Count(
134
- 'accountmodel',
135
- # excludes coa root accounts...
136
- filter=Q(accountmodel__depth__gt=2)
137
- ),
138
- accountmodel_locked__count=Count(
139
- 'accountmodel',
140
- # excludes coa root accounts...
141
- filter=Q(accountmodel__depth__gt=2) & Q(accountmodel__locked=True)
142
- ),
143
- accountmodel_active__count=Count(
144
- 'accountmodel',
145
- # excludes coa root accounts...
146
- filter=Q(accountmodel__depth__gt=2) & Q(accountmodel__active=True)
147
- ),
148
- # Root-group presence and uniqueness checks:
149
- accountmodel_rootgroup__count=Count(
150
- 'accountmodel',
151
- filter=Q(accountmodel__role__in=ROOT_GROUP)
152
- ),
153
- accountmodel_rootgroup_roles__distinct_count=Count(
154
- 'accountmodel__role',
155
- filter=Q(accountmodel__role__in=ROOT_GROUP_META),
156
- distinct=True
157
- ),
158
- ).annotate(
159
- configured=models.Case(
160
- models.When(
161
- Q(accountmodel_rootgroup__count__gte=1) &
162
- Q(accountmodel_rootgroup__count=F('accountmodel_rootgroup_roles__distinct_count')),
163
- then=Value(True, output_field=BooleanField()),
132
+ return (
133
+ qs.annotate(
134
+ _entity_slug=F('entity__slug'),
135
+ accountmodel_total__count=Count(
136
+ 'accountmodel',
137
+ # excludes coa root accounts...
138
+ filter=Q(accountmodel__depth__gt=2),
139
+ ),
140
+ accountmodel_locked__count=Count(
141
+ 'accountmodel',
142
+ # excludes coa root accounts...
143
+ filter=Q(accountmodel__depth__gt=2) & Q(accountmodel__locked=True),
144
+ ),
145
+ accountmodel_active__count=Count(
146
+ 'accountmodel',
147
+ # excludes coa root accounts...
148
+ filter=Q(accountmodel__depth__gt=2) & Q(accountmodel__active=True),
149
+ ),
150
+ # Root-group presence and uniqueness checks:
151
+ accountmodel_rootgroup__count=Count(
152
+ 'accountmodel', filter=Q(accountmodel__role__in=ROOT_GROUP)
164
153
  ),
165
- default=Value(False, output_field=BooleanField()),
166
- output_field=BooleanField()
154
+ accountmodel_rootgroup_roles__distinct_count=Count(
155
+ 'accountmodel__role',
156
+ filter=Q(accountmodel__role__in=ROOT_GROUP_META),
157
+ distinct=True,
158
+ ),
159
+ )
160
+ .annotate(
161
+ configured=models.Case(
162
+ models.When(
163
+ Q(accountmodel_rootgroup__count__gte=1)
164
+ & Q(
165
+ accountmodel_rootgroup__count=F(
166
+ 'accountmodel_rootgroup_roles__distinct_count'
167
+ )
168
+ ),
169
+ then=Value(True, output_field=BooleanField()),
170
+ ),
171
+ default=Value(False, output_field=BooleanField()),
172
+ output_field=BooleanField(),
173
+ )
167
174
  )
168
- ).select_related('entity')
175
+ .select_related('entity')
176
+ )
169
177
 
170
178
  @deprecated_entity_slug_behavior
171
- def for_entity(self,
172
- entity_model: Union['EntityModel | str | UUID'] = None,
173
- **kwargs) -> ChartOfAccountModelQuerySet:
179
+ def for_entity(
180
+ self, entity_model: 'Union[EntityModel | str | UUID]' = None, **kwargs
181
+ ) -> ChartOfAccountModelQuerySet:
174
182
  """
175
183
  Fetches a QuerySet of ChartOfAccountsModel associated with a specific EntityModel & UserModel.
176
184
  May pass an instance of EntityModel or a String representing the EntityModel slug.
@@ -195,7 +203,7 @@ class ChartOfAccountModelManager(Manager):
195
203
  'user_model parameter is deprecated and will be removed in a future release. '
196
204
  'Use for_user(user_model).for_entity(entity_model) instead to keep current behavior.',
197
205
  DeprecationWarning,
198
- stacklevel=2
206
+ stacklevel=2,
199
207
  )
200
208
  if DJANGO_LEDGER_USE_DEPRECATED_BEHAVIOR:
201
209
  qs = qs.for_user(kwargs['user_model'])
@@ -232,21 +240,23 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
232
240
  """
233
241
 
234
242
  uuid = models.UUIDField(default=uuid4, editable=False, primary_key=True)
235
- entity = models.ForeignKey('django_ledger.EntityModel',
236
- verbose_name=_('Entity'),
237
- on_delete=models.CASCADE)
243
+ entity = models.ForeignKey(
244
+ 'django_ledger.EntityModel', verbose_name=_('Entity'), on_delete=models.CASCADE
245
+ )
238
246
  active = models.BooleanField(default=True, verbose_name=_('Is Active'))
239
- description = models.TextField(verbose_name=_('CoA Description'), null=True, blank=True)
240
- objects = ChartOfAccountModelManager.from_queryset(queryset_class=ChartOfAccountModelQuerySet)()
247
+ description = models.TextField(
248
+ verbose_name=_('CoA Description'), null=True, blank=True
249
+ )
250
+ objects = ChartOfAccountModelManager.from_queryset(
251
+ queryset_class=ChartOfAccountModelQuerySet
252
+ )()
241
253
 
242
254
  class Meta:
243
255
  abstract = True
244
256
  ordering = ['-created']
245
257
  verbose_name = _('Chart of Account')
246
258
  verbose_name_plural = _('Chart of Accounts')
247
- indexes = [
248
- models.Index(fields=['entity'])
249
- ]
259
+ indexes = [models.Index(fields=['entity'])]
250
260
 
251
261
  def __str__(self):
252
262
  if self.name is not None:
@@ -265,7 +275,7 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
265
275
  return getattr(self, 'configured')
266
276
  except AttributeError:
267
277
  pass
268
- account_qs = self.accountmodel_set.filter(role__in=[ROOT_GROUP])
278
+ account_qs = self.accountmodel_set.filter(role__in=ROOT_GROUP)
269
279
  self.configured = len(account_qs) == len(ROOT_GROUP)
270
280
  return self.configured
271
281
 
@@ -289,7 +299,9 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
289
299
 
290
300
  if len(existing_root_roles) > 0:
291
301
  if raise_exception:
292
- raise ChartOfAccountsModelValidationError(message=f'Root Nodes already Exist in CoA {self.uuid}...')
302
+ raise ChartOfAccountsModelValidationError(
303
+ message=f'Root Nodes already Exist in CoA {self.uuid}...'
304
+ )
293
305
  return
294
306
 
295
307
  if ROOT_COA not in existing_root_roles:
@@ -305,12 +317,14 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
305
317
  role_default=True,
306
318
  active=False,
307
319
  locked=True,
308
- balance_type=role_meta['balance_type']
320
+ balance_type=role_meta['balance_type'],
309
321
  )
310
322
  AccountModel.add_root(instance=root_account)
311
323
 
312
324
  # must retrieve root model after added pero django-treebeard documentation...
313
- coa_root_account_model = AccountModel.objects.get(uuid__exact=account_pk)
325
+ coa_root_account_model = AccountModel.objects.get(
326
+ uuid__exact=account_pk
327
+ )
314
328
 
315
329
  for root_role in ROOT_GROUP_LEVEL_2:
316
330
  if root_role not in existing_root_roles:
@@ -326,8 +340,9 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
326
340
  role_default=True,
327
341
  active=False,
328
342
  locked=True,
329
- balance_type=role_meta['balance_type']
330
- ))
343
+ balance_type=role_meta['balance_type'],
344
+ )
345
+ )
331
346
  self.configured = True
332
347
 
333
348
  def get_coa_root_accounts_qs(self) -> AccountModelQuerySet:
@@ -350,10 +365,12 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
350
365
  qs = self.get_coa_root_accounts_qs()
351
366
  return qs.get(role__exact=ROOT_COA)
352
367
 
353
- def get_account_root_node(self,
354
- account_model: AccountModel,
355
- root_account_qs: Optional[AccountModelQuerySet] = None,
356
- as_queryset: bool = False) -> AccountModel:
368
+ def get_account_root_node(
369
+ self,
370
+ account_model: AccountModel,
371
+ root_account_qs: Optional[AccountModelQuerySet] = None,
372
+ as_queryset: bool = False,
373
+ ) -> AccountModel:
357
374
  """
358
375
  Fetches the root node of the ChartOfAccountModel instance. The root node is the highest level of the CoA
359
376
  hierarchy. It can be used to traverse the hierarchy of the CoA structure downstream.
@@ -381,7 +398,9 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
381
398
 
382
399
  if account_model.coa_model_id != self.uuid:
383
400
  raise ChartOfAccountsModelValidationError(
384
- message=_(f'The account model {account_model} is not part of the chart of accounts {self.name}.'),
401
+ message=_(
402
+ f'The account model {account_model} is not part of the chart of accounts {self.name}.'
403
+ ),
385
404
  )
386
405
 
387
406
  # Chart of Accounts hasn't been configured...
@@ -389,26 +408,39 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
389
408
  self.configure(raise_exception=True)
390
409
 
391
410
  if not account_model.is_root_account():
392
-
393
411
  if not root_account_qs:
394
412
  root_account_qs = self.get_coa_root_accounts_qs()
395
413
 
396
414
  if account_model.is_asset():
397
- qs = root_account_qs.filter(code__exact=ROOT_GROUP_META[ROOT_ASSETS]['code'])
415
+ qs = root_account_qs.filter(
416
+ code__exact=ROOT_GROUP_META[ROOT_ASSETS]['code']
417
+ )
398
418
  elif account_model.is_liability():
399
- qs = root_account_qs.filter(code__exact=ROOT_GROUP_META[ROOT_LIABILITIES]['code'])
419
+ qs = root_account_qs.filter(
420
+ code__exact=ROOT_GROUP_META[ROOT_LIABILITIES]['code']
421
+ )
400
422
  elif account_model.is_capital():
401
- qs = root_account_qs.filter(code__exact=ROOT_GROUP_META[ROOT_CAPITAL]['code'])
423
+ qs = root_account_qs.filter(
424
+ code__exact=ROOT_GROUP_META[ROOT_CAPITAL]['code']
425
+ )
402
426
  elif account_model.is_income():
403
- qs = root_account_qs.filter(code__exact=ROOT_GROUP_META[ROOT_INCOME]['code'])
427
+ qs = root_account_qs.filter(
428
+ code__exact=ROOT_GROUP_META[ROOT_INCOME]['code']
429
+ )
404
430
  elif account_model.is_cogs():
405
- qs = root_account_qs.filter(code__exact=ROOT_GROUP_META[ROOT_COGS]['code'])
431
+ qs = root_account_qs.filter(
432
+ code__exact=ROOT_GROUP_META[ROOT_COGS]['code']
433
+ )
406
434
  elif account_model.is_expense():
407
- qs = root_account_qs.filter(code__exact=ROOT_GROUP_META[ROOT_EXPENSES]['code'])
435
+ qs = root_account_qs.filter(
436
+ code__exact=ROOT_GROUP_META[ROOT_EXPENSES]['code']
437
+ )
408
438
  else:
409
- raise ChartOfAccountsModelValidationError(message=f'Unable to locate Balance Sheet'
410
- ' root node for account code: '
411
- f'{account_model.code} {account_model.name}')
439
+ raise ChartOfAccountsModelValidationError(
440
+ message=f'Unable to locate Balance Sheet'
441
+ ' root node for account code: '
442
+ f'{account_model.code} {account_model.name}'
443
+ )
412
444
  if as_queryset:
413
445
  return qs
414
446
  return qs.get()
@@ -490,15 +522,12 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
490
522
  message=_(f'CoA {self.uuid} already has a slug')
491
523
  )
492
524
  return
493
- self.slug = f'coa-{self.entity.slug[-5:]}-' + ''.join(choices(SLUG_SUFFIX, k=15))
525
+ self.slug = f'coa-{self.entity.slug[-5:]}-' + ''.join(
526
+ choices(SLUG_SUFFIX, k=15)
527
+ )
494
528
 
495
529
  if commit:
496
- self.save(
497
- update_fields=[
498
- 'slug',
499
- 'updated'
500
- ]
501
- )
530
+ self.save(update_fields=['slug', 'updated'])
502
531
 
503
532
  def is_default(self) -> bool:
504
533
  """
@@ -549,9 +578,11 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
549
578
  message=f'Invalid root queryset for CoA {self.name}'
550
579
  )
551
580
 
552
- def insert_account(self,
553
- account_model: AccountModel,
554
- root_account_qs: Optional[AccountModelQuerySet] = None):
581
+ def insert_account(
582
+ self,
583
+ account_model: AccountModel,
584
+ root_account_qs: Optional[AccountModelQuerySet] = None,
585
+ ):
555
586
  """
556
587
  This method inserts the given account model into the chart of accounts (COA) instance.
557
588
  It first verifies if the account model's COA model ID matches the COA's UUID. If not, it
@@ -599,21 +630,22 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
599
630
  self.validate_account_model_qs(root_account_qs)
600
631
 
601
632
  account_root_node: AccountModel = self.get_account_root_node(
602
- account_model=account_model,
603
- root_account_qs=root_account_qs
633
+ account_model=account_model, root_account_qs=root_account_qs
604
634
  )
605
635
 
606
636
  account_root_node.add_child(instance=account_model)
607
637
  coa_accounts_qs = self.get_non_root_coa_accounts_qs()
608
638
  return coa_accounts_qs.get(uuid__exact=account_model.uuid)
609
639
 
610
- def create_account(self,
611
- code: str,
612
- role: str,
613
- name: str,
614
- balance_type: str,
615
- active: bool,
616
- root_account_qs: Optional[AccountModelQuerySet] = None):
640
+ def create_account(
641
+ self,
642
+ code: str,
643
+ role: str,
644
+ name: str,
645
+ balance_type: str,
646
+ active: bool,
647
+ root_account_qs: Optional[AccountModelQuerySet] = None,
648
+ ):
617
649
  """
618
650
  Proper method for inserting a new Account Model into a CoA.
619
651
  Use this in liu of the direct instantiation of the AccountModel of using the django related manager.
@@ -644,13 +676,12 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
644
676
  role=role,
645
677
  active=active,
646
678
  balance_type=balance_type,
647
- coa_model=self
679
+ coa_model=self,
648
680
  )
649
681
  account_model.clean()
650
682
 
651
683
  account_model = self.insert_account(
652
- account_model=account_model,
653
- root_account_qs=root_account_qs
684
+ account_model=account_model, root_account_qs=root_account_qs
654
685
  )
655
686
  return account_model
656
687
 
@@ -666,7 +697,9 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
666
697
  account_qs.update(locked=False)
667
698
  return account_qs
668
699
 
669
- def mark_as_default(self, commit: bool = False, raise_exception: bool = False, **kwargs):
700
+ def mark_as_default(
701
+ self, commit: bool = False, raise_exception: bool = False, **kwargs
702
+ ):
670
703
  """
671
704
  Marks the current Chart of Accounts instances as default for the EntityModel.
672
705
 
@@ -686,24 +719,18 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
686
719
  if not self.can_mark_as_default():
687
720
  if raise_exception:
688
721
  raise ChartOfAccountsModelValidationError(
689
- message=_(f'The Chart of Accounts {self.slug} cannot be marked as default')
722
+ message=_(
723
+ f'The Chart of Accounts {self.slug} cannot be marked as default'
724
+ )
690
725
  )
691
726
  return
692
727
  self.entity.default_coa_id = self.uuid
693
728
  self.clean()
694
729
  if commit:
695
- self.entity.save(
696
- update_fields=[
697
- 'default_coa_id',
698
- 'updated'
699
- ]
700
- )
730
+ self.entity.save(update_fields=['default_coa_id', 'updated'])
701
731
 
702
732
  def can_mark_as_default(self):
703
- return all([
704
- self.is_active(),
705
- not self.is_default()
706
- ])
733
+ return all([self.is_active(), not self.is_default()])
707
734
 
708
735
  def can_activate(self) -> bool:
709
736
  """
@@ -723,12 +750,11 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
723
750
  -------
724
751
  True if the object can be deactivated, False otherwise.
725
752
  """
726
- return all([
727
- self.is_active(),
728
- not self.is_default()
729
- ])
753
+ return all([self.is_active(), not self.is_default()])
730
754
 
731
- def mark_as_active(self, commit: bool = False, raise_exception: bool = False, **kwargs):
755
+ def mark_as_active(
756
+ self, commit: bool = False, raise_exception: bool = False, **kwargs
757
+ ):
732
758
  """
733
759
  Marks the current Chart of Accounts as Active.
734
760
 
@@ -749,13 +775,11 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
749
775
  self.active = True
750
776
  self.clean()
751
777
  if commit:
752
- self.save(
753
- update_fields=[
754
- 'active',
755
- 'updated'
756
- ])
778
+ self.save(update_fields=['active', 'updated'])
757
779
 
758
- def mark_as_inactive(self, commit: bool = False, raise_exception: bool = False, **kwargs):
780
+ def mark_as_inactive(
781
+ self, commit: bool = False, raise_exception: bool = False, **kwargs
782
+ ):
759
783
  """
760
784
  Marks the current Chart of Accounts as Active.
761
785
 
@@ -776,11 +800,7 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
776
800
  self.active = False
777
801
  self.clean()
778
802
  if commit:
779
- self.save(
780
- update_fields=[
781
- 'active',
782
- 'updated'
783
- ])
803
+ self.save(update_fields=['active', 'updated'])
784
804
 
785
805
  # URLS....
786
806
  def mark_as_default_url(self) -> str:
@@ -794,10 +814,7 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
794
814
  """
795
815
  return reverse(
796
816
  viewname='django_ledger:coa-action-mark-as-default',
797
- kwargs={
798
- 'entity_slug': self.entity_slug,
799
- 'coa_slug': self.slug
800
- }
817
+ kwargs={'entity_slug': self.entity_slug, 'coa_slug': self.slug},
801
818
  )
802
819
 
803
820
  def mark_as_active_url(self) -> str:
@@ -811,10 +828,7 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
811
828
  """
812
829
  return reverse(
813
830
  viewname='django_ledger:coa-action-mark-as-active',
814
- kwargs={
815
- 'entity_slug': self.entity_slug,
816
- 'coa_slug': self.slug
817
- }
831
+ kwargs={'entity_slug': self.entity_slug, 'coa_slug': self.slug},
818
832
  )
819
833
 
820
834
  def mark_as_inactive_url(self) -> str:
@@ -828,74 +842,51 @@ class ChartOfAccountModelAbstract(SlugNameMixIn, CreateUpdateMixIn):
828
842
  """
829
843
  return reverse(
830
844
  viewname='django_ledger:coa-action-mark-as-inactive',
831
- kwargs={
832
- 'entity_slug': self.entity_slug,
833
- 'coa_slug': self.slug
834
- }
845
+ kwargs={'entity_slug': self.entity_slug, 'coa_slug': self.slug},
835
846
  )
836
847
 
837
848
  def get_coa_list_url(self):
838
849
  return reverse(
839
- viewname='django_ledger:coa-list',
840
- kwargs={
841
- 'entity_slug': self.entity_slug
842
- }
850
+ viewname='django_ledger:coa-list', kwargs={'entity_slug': self.entity_slug}
843
851
  )
844
852
 
845
853
  def get_coa_list_inactive_url(self):
846
854
  return reverse(
847
855
  viewname='django_ledger:coa-list-inactive',
848
- kwargs={
849
- 'entity_slug': self.entity_slug
850
- }
856
+ kwargs={'entity_slug': self.entity_slug},
851
857
  )
852
858
 
853
859
  def get_coa_create_url(self):
854
860
  return reverse(
855
861
  viewname='django_ledger:coa-create',
856
- kwargs={
857
- 'entity_slug': self.entity_slug
858
- }
862
+ kwargs={'entity_slug': self.entity_slug},
859
863
  )
860
864
 
861
865
  def get_absolute_url(self) -> str:
862
866
  return reverse(
863
867
  viewname='django_ledger:coa-detail',
864
- kwargs={
865
- 'entity_slug': self.entity_slug,
866
- 'coa_slug': self.slug
867
- }
868
+ kwargs={'entity_slug': self.entity_slug, 'coa_slug': self.slug},
868
869
  )
869
870
 
870
871
  def get_update_url(self) -> str:
871
872
  return reverse(
872
873
  viewname='django_ledger:coa-update',
873
- kwargs={
874
- 'entity_slug': self.entity_slug,
875
- 'coa_slug': self.slug
876
- }
874
+ kwargs={'entity_slug': self.entity_slug, 'coa_slug': self.slug},
877
875
  )
878
876
 
879
877
  def get_account_list_url(self):
880
-
881
878
  if not self.slug:
882
879
  self.generate_slug(commit=True)
883
880
 
884
881
  return reverse(
885
882
  viewname='django_ledger:account-list',
886
- kwargs={
887
- 'entity_slug': self.entity_slug,
888
- 'coa_slug': self.slug
889
- }
883
+ kwargs={'entity_slug': self.entity_slug, 'coa_slug': self.slug},
890
884
  )
891
885
 
892
886
  def get_create_coa_account_url(self):
893
887
  return reverse(
894
888
  viewname='django_ledger:account-create',
895
- kwargs={
896
- 'coa_slug': self.slug,
897
- 'entity_slug': self.entity_slug
898
- }
889
+ kwargs={'coa_slug': self.slug, 'entity_slug': self.entity_slug},
899
890
  )
900
891
 
901
892
  def clean(self):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-ledger
3
- Version: 0.8.2
3
+ Version: 0.8.2.1
4
4
  Summary: Double entry accounting system built on the Django Web Framework.
5
5
  Author-email: Miguel Sanda <msanda@arrobalytics.com>
6
6
  Maintainer-email: Miguel Sanda <msanda@arrobalytics.com>
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "django-ledger"
3
- version = "0.8.2"
3
+ version = "0.8.2.1"
4
4
  readme = "README.md"
5
5
  requires-python = ">=3.11"
6
6
  description = "Double entry accounting system built on the Django Web Framework."
File without changes
File without changes