django-ledger 0.7.2__py3-none-any.whl → 0.7.4__py3-none-any.whl

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 (106) hide show
  1. django_ledger/__init__.py +1 -1
  2. django_ledger/contrib/django_ledger_graphene/journal_entry/schema.py +2 -3
  3. django_ledger/contrib/django_ledger_graphene/transaction/schema.py +9 -7
  4. django_ledger/forms/account.py +4 -1
  5. django_ledger/forms/journal_entry.py +19 -12
  6. django_ledger/forms/transactions.py +8 -12
  7. django_ledger/io/io_core.py +17 -12
  8. django_ledger/io/io_library.py +3 -3
  9. django_ledger/migrations/0001_initial.py +1 -1
  10. django_ledger/migrations/0019_alter_transactionmodel_amount_and_more.py +33 -0
  11. django_ledger/models/bill.py +17 -2
  12. django_ledger/models/chart_of_accounts.py +4 -0
  13. django_ledger/models/closing_entry.py +8 -6
  14. django_ledger/models/data_import.py +1 -0
  15. django_ledger/models/invoice.py +12 -4
  16. django_ledger/models/journal_entry.py +843 -481
  17. django_ledger/models/ledger.py +45 -4
  18. django_ledger/models/mixins.py +5 -5
  19. django_ledger/models/transactions.py +303 -305
  20. django_ledger/models/unit.py +42 -22
  21. django_ledger/static/django_ledger/bundle/djetler.bundle.js +1 -1
  22. django_ledger/static/django_ledger/bundle/styles.bundle.js +1 -1
  23. django_ledger/templates/django_ledger/account/tags/account_txs_table.html +1 -1
  24. django_ledger/templates/django_ledger/account/tags/accounts_table.html +1 -1
  25. django_ledger/templates/django_ledger/bills/bill_detail.html +1 -1
  26. django_ledger/templates/django_ledger/bills/bill_update.html +1 -1
  27. django_ledger/templates/django_ledger/components/icon.html +1 -1
  28. django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_imported.html +8 -1
  29. django_ledger/templates/django_ledger/financial_statements/balance_sheet.html +1 -0
  30. django_ledger/templates/django_ledger/financial_statements/tags/balance_sheet_statement.html +4 -4
  31. django_ledger/templates/django_ledger/financial_statements/tags/income_statement.html +118 -0
  32. django_ledger/templates/django_ledger/includes/nav.html +9 -5
  33. django_ledger/templates/django_ledger/invoice/includes/card_invoice.html +69 -69
  34. django_ledger/templates/django_ledger/invoice/invoice_detail.html +1 -1
  35. django_ledger/templates/django_ledger/journal_entry/je_create.html +2 -3
  36. django_ledger/templates/django_ledger/journal_entry/je_delete.html +2 -3
  37. django_ledger/templates/django_ledger/journal_entry/je_detail.html +1 -1
  38. django_ledger/templates/django_ledger/journal_entry/je_detail_txs.html +8 -8
  39. django_ledger/templates/django_ledger/journal_entry/je_list.html +16 -13
  40. django_ledger/templates/django_ledger/journal_entry/je_update.html +2 -3
  41. django_ledger/templates/django_ledger/journal_entry/tags/je_table.html +24 -24
  42. django_ledger/templates/django_ledger/journal_entry/tags/je_txs_table.html +17 -14
  43. django_ledger/templates/django_ledger/ledger/tags/ledgers_table.html +38 -37
  44. django_ledger/templates/django_ledger/transactions/tags/txs_table.html +69 -0
  45. django_ledger/templatetags/django_ledger.py +35 -48
  46. django_ledger/urls/account.py +4 -4
  47. django_ledger/views/account.py +8 -8
  48. django_ledger/views/journal_entry.py +84 -101
  49. django_ledger/views/ledger.py +16 -21
  50. django_ledger/views/mixins.py +17 -28
  51. {django_ledger-0.7.2.dist-info → django_ledger-0.7.4.dist-info}/METADATA +8 -3
  52. {django_ledger-0.7.2.dist-info → django_ledger-0.7.4.dist-info}/RECORD +56 -104
  53. assets/node_modules/node-gyp/gyp/gyp_main.py +0 -45
  54. assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSNew.py +0 -367
  55. assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSProject.py +0 -206
  56. assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings.py +0 -1270
  57. assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSSettings_test.py +0 -1547
  58. assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSToolFile.py +0 -59
  59. assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSUserFile.py +0 -153
  60. assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSUtil.py +0 -271
  61. assets/node_modules/node-gyp/gyp/pylib/gyp/MSVSVersion.py +0 -574
  62. assets/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +0 -666
  63. assets/node_modules/node-gyp/gyp/pylib/gyp/common.py +0 -654
  64. assets/node_modules/node-gyp/gyp/pylib/gyp/common_test.py +0 -78
  65. assets/node_modules/node-gyp/gyp/pylib/gyp/easy_xml.py +0 -165
  66. assets/node_modules/node-gyp/gyp/pylib/gyp/easy_xml_test.py +0 -109
  67. assets/node_modules/node-gyp/gyp/pylib/gyp/flock_tool.py +0 -55
  68. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/__init__.py +0 -0
  69. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/analyzer.py +0 -808
  70. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/android.py +0 -1173
  71. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/cmake.py +0 -1321
  72. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/compile_commands_json.py +0 -120
  73. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/dump_dependency_json.py +0 -103
  74. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/eclipse.py +0 -464
  75. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/gypd.py +0 -89
  76. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/gypsh.py +0 -58
  77. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +0 -2518
  78. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs.py +0 -3978
  79. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/msvs_test.py +0 -44
  80. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja.py +0 -2936
  81. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/ninja_test.py +0 -55
  82. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode.py +0 -1394
  83. assets/node_modules/node-gyp/gyp/pylib/gyp/generator/xcode_test.py +0 -25
  84. assets/node_modules/node-gyp/gyp/pylib/gyp/input.py +0 -3137
  85. assets/node_modules/node-gyp/gyp/pylib/gyp/input_test.py +0 -98
  86. assets/node_modules/node-gyp/gyp/pylib/gyp/mac_tool.py +0 -771
  87. assets/node_modules/node-gyp/gyp/pylib/gyp/msvs_emulation.py +0 -1271
  88. assets/node_modules/node-gyp/gyp/pylib/gyp/ninja_syntax.py +0 -174
  89. assets/node_modules/node-gyp/gyp/pylib/gyp/simple_copy.py +0 -61
  90. assets/node_modules/node-gyp/gyp/pylib/gyp/win_tool.py +0 -374
  91. assets/node_modules/node-gyp/gyp/pylib/gyp/xcode_emulation.py +0 -1939
  92. assets/node_modules/node-gyp/gyp/pylib/gyp/xcode_ninja.py +0 -302
  93. assets/node_modules/node-gyp/gyp/pylib/gyp/xcodeproj_file.py +0 -3197
  94. assets/node_modules/node-gyp/gyp/pylib/gyp/xml_fix.py +0 -65
  95. assets/node_modules/node-gyp/gyp/setup.py +0 -42
  96. assets/node_modules/node-gyp/gyp/test_gyp.py +0 -260
  97. assets/node_modules/node-gyp/gyp/tools/graphviz.py +0 -102
  98. assets/node_modules/node-gyp/gyp/tools/pretty_gyp.py +0 -156
  99. assets/node_modules/node-gyp/gyp/tools/pretty_sln.py +0 -181
  100. assets/node_modules/node-gyp/gyp/tools/pretty_vcproj.py +0 -339
  101. assets/node_modules/node-gyp/test/fixtures/test-charmap.py +0 -31
  102. assets/node_modules/node-gyp/update-gyp.py +0 -46
  103. {django_ledger-0.7.2.dist-info → django_ledger-0.7.4.dist-info}/AUTHORS.md +0 -0
  104. {django_ledger-0.7.2.dist-info → django_ledger-0.7.4.dist-info}/LICENSE +0 -0
  105. {django_ledger-0.7.2.dist-info → django_ledger-0.7.4.dist-info}/WHEEL +0 -0
  106. {django_ledger-0.7.2.dist-info → django_ledger-0.7.4.dist-info}/top_level.txt +0 -0
@@ -23,7 +23,7 @@
23
23
  <td>
24
24
  <div class="dropdown is-right is-hoverable" id="tx-action-{{ tx.uuid }}">
25
25
  <div class="dropdown-trigger">
26
- <button class="button is-small is-rounded is-outlined"
26
+ <button class="button is-small is-rounded"
27
27
  aria-haspopup="true"
28
28
  aria-controls="dropdown-menu">
29
29
  <span>{% trans 'Actions' %}</span>
@@ -87,7 +87,7 @@
87
87
  <td>
88
88
  <div class="dropdown is-right is-hoverable" id="account-action-{{ account.uuid }}">
89
89
  <div class="dropdown-trigger">
90
- <button class="button is-small is-rounded is-outlined"
90
+ <button class="button is-small is-rounded"
91
91
  aria-haspopup="true"
92
92
  aria-controls="dropdown-menu">
93
93
  <span>{% trans 'Actions' %}</span>
@@ -172,7 +172,7 @@
172
172
  </h2>
173
173
  </div>
174
174
  <div class="card-content">
175
- {% bill_txs_table bill %}
175
+ {% transactions_table bill %}
176
176
  </div>
177
177
  </div>
178
178
  </div>
@@ -7,7 +7,7 @@
7
7
  <div class="container">
8
8
  <div class="columns is-multiline">
9
9
  <div class="column is-12">
10
- {% include 'django_ledger/includes/../vendor/includes/card_vendor.html' with vendor=bill_model.vendor %}
10
+ {% include 'django_ledger/vendor/includes/card_vendor.html' with vendor=bill_model.vendor %}
11
11
  </div>
12
12
  <div class="column is-12">
13
13
  {% include 'django_ledger/bills/includes/card_bill.html' with bill=bill_model style='bill-detail' entity_slug=view.kwargs.entity_slug %}
@@ -1 +1 @@
1
- <i class="iconify djl-icon-{{ size }}" data-icon="{{ icon }}" data-toggle="true"></i>
1
+ <iconify-icon class="djl-icon djl-icon-{{ size }}" icon="{{ icon }}"></iconify-icon>
@@ -7,6 +7,8 @@
7
7
  <th>Dated Posted</th>
8
8
  <th>Description</th>
9
9
  <th>Amount</th>
10
+ <th>Activity</th>
11
+ <th>Entity Unit</th>
10
12
  <th>Map To</th>
11
13
  <th>TX</th>
12
14
  <th>Actions</th>
@@ -19,10 +21,15 @@
19
21
  <td>{{ imported_tx.name }}</td>
20
22
  <td class="{% if imported_tx.get_amount < 0.00 %}has-text-danger{% endif %} has-text-centered">
21
23
  ${{ imported_tx.get_amount }}</td>
24
+ <td>{% if imported_tx.activity %}
25
+ {{ imported_tx.get_activity_display }}
26
+ {% endif %}</td>
27
+ <td>{% if imported_tx.entity_unit %}{{ imported_tx.entity_unit }}{% endif %}</td>
22
28
  <td>{{ imported_tx.account_model }}</td>
23
29
  <td>{{ imported_tx.transaction_model }}</td>
24
30
  <td class="has-text-centered">
25
- <a href="{% url 'django_ledger:je-detail' entity_slug=entity_slug ledger_pk=imported_tx.transaction_model.journal_entry.ledger_id je_pk=imported_tx.transaction_model.journal_entry_id %}" class="button is-small is-primary">{% trans 'View JE' %}</a>
31
+ <a href="{% url 'django_ledger:je-detail' entity_slug=entity_slug ledger_pk=imported_tx.transaction_model.journal_entry.ledger_id je_pk=imported_tx.transaction_model.journal_entry_id %}"
32
+ class="button is-small is-primary">{% trans 'View JE' %}</a>
26
33
  </td>
27
34
  </tr>
28
35
  {% endfor %}
@@ -42,6 +42,7 @@
42
42
  </div>
43
43
 
44
44
  {% balance_sheet_statement io_model=object %}
45
+
45
46
  {% if entity %}
46
47
  <a class="button is-fullwidth is-dark mb-1"
47
48
  href="{% url 'django_ledger:entity-dashboard' entity_slug=view.kwargs.entity_slug %}">{% trans 'Go Back' %}</a>
@@ -49,9 +49,9 @@
49
49
  <td class="has-text-centered">{{ acc.balance_type.0 | upper }}</td>
50
50
  <td class="has-text-right">{% currency_symbol %}{{ acc.balance | currency_format }}</td>
51
51
  <td>
52
- <div class="dropdown is-right is-hoverable" id="account-action-{{ account.uuid }}">
52
+ <div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
53
53
  <div class="dropdown-trigger">
54
- <button class="button is-small is-rounded is-outlined"
54
+ <button class="button is-small is-rounded"
55
55
  aria-haspopup="true"
56
56
  aria-controls="dropdown-menu">
57
57
  <span>{% trans 'Actions' %}</span>
@@ -60,9 +60,9 @@
60
60
  </div>
61
61
  <div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
62
62
  <div class="dropdown-content">
63
- <a href="{{ acc.get_absolute_url }}"
63
+ <a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
64
64
  class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
65
- <a href="{{ acc.get_update_url }}"
65
+ <a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
66
66
  class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
67
67
  </div>
68
68
  </div>
@@ -12,6 +12,7 @@
12
12
  {% endif %}
13
13
  <th>{% trans 'Balance Type' %}</th>
14
14
  <th>{% trans 'Balance' %}</th>
15
+ <th>{% trans 'Actions' %}</th>
15
16
  </tr>
16
17
 
17
18
  {# OPERATING INCOME #}
@@ -23,7 +24,9 @@
23
24
  {% endif %}
24
25
  <td></td>
25
26
  <td></td>
27
+ <td></td>
26
28
  </tr>
29
+
27
30
  {% for acc in tx_digest.income_statement.operating.revenues %}
28
31
  <tr>
29
32
  <td class="has-text-right">{{ acc.code }}</td>
@@ -39,8 +42,29 @@
39
42
  {% endif %}
40
43
  </td>
41
44
  <td>{% currency_symbol %}{{ acc.balance | currency_format }}</td>
45
+ <td>
46
+ <div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
47
+ <div class="dropdown-trigger">
48
+ <button class="button is-small is-rounded"
49
+ aria-haspopup="true"
50
+ aria-controls="dropdown-menu">
51
+ <span>{% trans 'Actions' %}</span>
52
+ <span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
53
+ </button>
54
+ </div>
55
+ <div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
56
+ <div class="dropdown-content">
57
+ <a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
58
+ class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
59
+ <a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
60
+ class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </td>
42
65
  </tr>
43
66
  {% endfor %}
67
+
44
68
  <tr>
45
69
  <td></td>
46
70
  {% if tx_digest.by_unit %}
@@ -50,6 +74,7 @@
50
74
  <td><h2 class="is-size-5 has-text-right">{% trans 'Net Operating Revenues' %}</h2></td>
51
75
  <td class="is-size-5 has-text-weight-bold">
52
76
  {% currency_symbol %}{{ tx_digest.income_statement.operating.net_operating_revenue | currency_format }}</td>
77
+ <td></td>
53
78
  </tr>
54
79
 
55
80
  {# COGS #}
@@ -61,6 +86,7 @@
61
86
  {% endif %}
62
87
  <td></td>
63
88
  <td></td>
89
+ <td></td>
64
90
  </tr>
65
91
  {% for acc in tx_digest.income_statement.operating.cogs %}
66
92
  <tr>
@@ -77,8 +103,29 @@
77
103
  {% endif %}
78
104
  </td>
79
105
  <td>{% currency_symbol %}{{ acc.balance | reverse_sign | currency_format }}</td>
106
+ <td>
107
+ <div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
108
+ <div class="dropdown-trigger">
109
+ <button class="button is-small is-rounded"
110
+ aria-haspopup="true"
111
+ aria-controls="dropdown-menu">
112
+ <span>{% trans 'Actions' %}</span>
113
+ <span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
114
+ </button>
115
+ </div>
116
+ <div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
117
+ <div class="dropdown-content">
118
+ <a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
119
+ class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
120
+ <a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
121
+ class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
122
+ </div>
123
+ </div>
124
+ </div>
125
+ </td>
80
126
  </tr>
81
127
  {% endfor %}
128
+
82
129
  <tr>
83
130
  <td></td>
84
131
  {% if tx_digest.by_unit %}
@@ -88,6 +135,7 @@
88
135
  <td><h2 class="is-size-5 has-text-right">{% trans 'Net COGS' %}</h2></td>
89
136
  <td class="is-size-5 has-text-weight-bold">
90
137
  {% currency_symbol %}{{ tx_digest.income_statement.operating.net_cogs | currency_format }}</td>
138
+ <td></td>
91
139
  </tr>
92
140
 
93
141
  {# GROSS PROFIT #}
@@ -100,6 +148,7 @@
100
148
  <td><h2 class="is-size-4 has-text-right">{% trans 'Gross Profit' %}</h2></td>
101
149
  <td class="is-size-4 has-text-weight-bold">
102
150
  {% currency_symbol %}{{ tx_digest.income_statement.operating.gross_profit | currency_format }}</td>
151
+ <td></td>
103
152
  </tr>
104
153
 
105
154
  {# OPERATING EXPENSES #}
@@ -111,6 +160,7 @@
111
160
  {% endif %}
112
161
  <td></td>
113
162
  <td></td>
163
+ <td></td>
114
164
  </tr>
115
165
  {% for acc in tx_digest.income_statement.operating.expenses %}
116
166
  <tr>
@@ -127,6 +177,26 @@
127
177
  {% endif %}
128
178
  </td>
129
179
  <td>{% currency_symbol %}{{ acc.balance | reverse_sign | currency_format }}</td>
180
+ <td>
181
+ <div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
182
+ <div class="dropdown-trigger">
183
+ <button class="button is-small is-rounded"
184
+ aria-haspopup="true"
185
+ aria-controls="dropdown-menu">
186
+ <span>{% trans 'Actions' %}</span>
187
+ <span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
188
+ </button>
189
+ </div>
190
+ <div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
191
+ <div class="dropdown-content">
192
+ <a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
193
+ class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
194
+ <a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
195
+ class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
196
+ </div>
197
+ </div>
198
+ </div>
199
+ </td>
130
200
  </tr>
131
201
  {% endfor %}
132
202
  <tr>
@@ -138,6 +208,7 @@
138
208
  <td><h2 class="is-size-5 has-text-right">{% trans 'Net Operating Expenses' %}</h2></td>
139
209
  <td class="is-size-5 has-text-weight-bold">
140
210
  {% currency_symbol %}{{ tx_digest.income_statement.operating.net_operating_expenses | reverse_sign | currency_format }}</td>
211
+ <td></td>
141
212
  </tr>
142
213
 
143
214
 
@@ -151,6 +222,7 @@
151
222
  <td><h2 class="is-size-4 has-text-right">{% trans 'Net Operating Income (Loss)' %}</h2></td>
152
223
  <td class="is-size-3">
153
224
  {% currency_symbol %}{{ tx_digest.income_statement.operating.net_operating_income| currency_format }}</td>
225
+ <td></td>
154
226
  </tr>
155
227
 
156
228
  {# OTHER REVENUES #}
@@ -162,6 +234,7 @@
162
234
  {% endif %}
163
235
  <td></td>
164
236
  <td></td>
237
+ <td></td>
165
238
  </tr>
166
239
  {% for acc in tx_digest.income_statement.other.revenues %}
167
240
  <tr>
@@ -178,6 +251,26 @@
178
251
  {% endif %}
179
252
  </td>
180
253
  <td class="is-size-5">{% currency_symbol %}{{ acc.balance | currency_format }}</td>
254
+ <td>
255
+ <div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
256
+ <div class="dropdown-trigger">
257
+ <button class="button is-small is-rounded"
258
+ aria-haspopup="true"
259
+ aria-controls="dropdown-menu">
260
+ <span>{% trans 'Actions' %}</span>
261
+ <span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
262
+ </button>
263
+ </div>
264
+ <div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
265
+ <div class="dropdown-content">
266
+ <a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
267
+ class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
268
+ <a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
269
+ class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
270
+ </div>
271
+ </div>
272
+ </div>
273
+ </td>
181
274
  </tr>
182
275
  {% endfor %}
183
276
  <tr>
@@ -189,6 +282,7 @@
189
282
  <td><h2 class="is-size-5 has-text-right">{% trans 'Net Other Revenues' %}</h2></td>
190
283
  <td class="is-size-5 has-text-weight-bold">
191
284
  {% currency_symbol %}{{ tx_digest.income_statement.other.net_other_revenues | currency_format }}</td>
285
+ <td></td>
192
286
  </tr>
193
287
 
194
288
 
@@ -201,6 +295,7 @@
201
295
  {% endif %}
202
296
  <td></td>
203
297
  <td></td>
298
+ <td></td>
204
299
  </tr>
205
300
  {% for acc in tx_digest.income_statement.other.expenses %}
206
301
  <tr>
@@ -217,6 +312,26 @@
217
312
  {% endif %}
218
313
  </td>
219
314
  <td class="is-size-5">{% currency_symbol %}{{ acc.balance | reverse_sign | currency_format }}</td>
315
+ <td>
316
+ <div class="dropdown is-hoverable" id="account-action-{{ account.uuid }}">
317
+ <div class="dropdown-trigger">
318
+ <button class="button is-small is-rounded"
319
+ aria-haspopup="true"
320
+ aria-controls="dropdown-menu">
321
+ <span>{% trans 'Actions' %}</span>
322
+ <span class="icon is-small">{% icon 'bi:arrow-down' 24 %}</span>
323
+ </button>
324
+ </div>
325
+ <div class="dropdown-menu" id="dropdown-menu-{{ acc.uuid }}" role="menu">
326
+ <div class="dropdown-content">
327
+ <a href="{% url 'django_ledger:account-detail' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
328
+ class="dropdown-item has-text-success">{% trans 'Detail' %}</a>
329
+ <a href="{% url 'django_ledger:account-update' entity_slug=entity_slug coa_slug=acc.coa_slug account_pk=acc.account_uuid %}"
330
+ class="dropdown-item has-text-warning">{% trans 'Update' %}</a>
331
+ </div>
332
+ </div>
333
+ </div>
334
+ </td>
220
335
  </tr>
221
336
  {% endfor %}
222
337
  <tr>
@@ -228,6 +343,7 @@
228
343
  <td><h2 class="is-size-5 has-text-right">{% trans 'Net Other Expenses' %}</h2></td>
229
344
  <td class="is-size-5 has-text-weight-bold">
230
345
  {% currency_symbol %}{{ tx_digest.income_statement.other.net_other_expenses | currency_format }}</td>
346
+ <td></td>
231
347
  </tr>
232
348
 
233
349
  {# NET OTHER INCOME/LOSS #}
@@ -240,6 +356,7 @@
240
356
  <td><h2 class="is-size-4 has-text-right">{% trans 'Net Other Income (Loss)' %}</h2></td>
241
357
  <td class="is-size-3">
242
358
  {% currency_symbol %}{{ tx_digest.income_statement.other.net_other_income | currency_format }}</td>
359
+ <td></td>
243
360
  </tr>
244
361
 
245
362
 
@@ -255,6 +372,7 @@
255
372
  <td><h2 class="is-size-3 has-text-right">{% trans 'Net Income' %}</h2></td>
256
373
  <td class="is-size-3 has-text-weight-bold">
257
374
  {% currency_symbol %}{{ tx_digest.income_statement.net_income| currency_format }}</td>
375
+ <td></td>
258
376
  </tr>
259
377
 
260
378
  </table>
@@ -28,11 +28,15 @@
28
28
  <div class="navbar-item">CE TO: {{ tx_digest_context.IO_RESULT.ce_to_date | date }}</div>
29
29
  {% endif %}
30
30
  <div class="navbar-item">
31
- <a href="{% url 'django_ledger:logout' %}"
32
- id="djl-el=logout-button-nav"
33
- class="button is-small is-danger is-outlined">
34
- {% trans 'Logout' %}
35
- </a>
31
+ <form action="{% url 'django_ledger:logout' %}" method="POST">
32
+ {% csrf_token %}
33
+ <button
34
+ id="djl-el=logout-button-nav"
35
+ class="button is-small is-danger is-outlined"
36
+ type="submit">
37
+ {% trans 'Logout' %}
38
+ </button>
39
+ </form>
36
40
  </div>
37
41
  <div class="navbar-item">{% feedback_button %}</div>
38
42
  <div class="navbar-item">v{% current_version %}</div>
@@ -53,85 +53,85 @@
53
53
  {% trans 'Invoice Info' %}</h2>
54
54
  </div>
55
55
  <div class="card-content has-text-centered">
56
- {% if invoice.is_draft %}
57
- <h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-warning">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
58
- <p class="is-size-3 has-text-dark">{% trans 'Amount Due' %}:
59
- <span class="has-text-weight-bold">
56
+ {% if invoice.is_draft %}
57
+ <h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-warning">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
58
+ <p class="is-size-3 has-text-dark">{% trans 'Amount Due' %}:
59
+ <span class="has-text-weight-bold">
60
60
  {% currency_symbol %}{{ invoice.amount_due | currency_format }}
61
61
  </span>
62
- </p>
63
- <p class="is-size-3 has-text-dark">{% trans 'Due Date' %}:
64
- <span class="has-text-weight-bold">{{ invoice.date_due | timeuntil }}</span>
65
- </p>
66
- <p class="is-size-3">{% trans 'Is Accrued' %}:
67
- {% if invoice.accrue %}
68
- <span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
69
- {% else %}
70
- <span class="icon has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
71
- {% endif %}
72
- </p>
73
- {% elif invoice.is_review %}
74
- <h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-warning">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
75
- <p class="is-size-3 has-text-dark">{% trans 'Amount Due' %}:
76
- <span class="has-text-weight-bold">
62
+ </p>
63
+ <p class="is-size-3 has-text-dark">{% trans 'Due Date' %}:
64
+ <span class="has-text-weight-bold">{{ invoice.date_due | timeuntil }}</span>
65
+ </p>
66
+ <p class="is-size-3">{% trans 'Is Accrued' %}:
67
+ {% if invoice.accrue %}
68
+ <span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
69
+ {% else %}
70
+ <span class="icon has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
71
+ {% endif %}
72
+ </p>
73
+ {% elif invoice.is_review %}
74
+ <h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-warning">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
75
+ <p class="is-size-3 has-text-dark">{% trans 'Amount Due' %}:
76
+ <span class="has-text-weight-bold">
77
77
  {% currency_symbol %}{{ invoice.amount_due | currency_format }}
78
78
  </span>
79
- </p>
80
- <p class="is-size-3 has-text-dark">{% trans 'Due Date' %}:
81
- <span class="has-text-weight-bold">{{ invoice.date_due | timeuntil }}</span>
82
- </p>
83
- <p class="is-size-3">{% trans 'Is Accrued' %}:
84
- {% if invoice.accrue %}
85
- <span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
86
- {% else %}
87
- <span class="icon has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
88
- {% endif %}
89
- </p>
90
- {% if invoice.xref %}
91
- <p class="is-size-5 is-italic">{% trans 'External Ref' %}: {{ invoice.xref }}</p>
79
+ </p>
80
+ <p class="is-size-3 has-text-dark">{% trans 'Due Date' %}:
81
+ <span class="has-text-weight-bold">{{ invoice.date_due | timeuntil }}</span>
82
+ </p>
83
+ <p class="is-size-3">{% trans 'Is Accrued' %}:
84
+ {% if invoice.accrue %}
85
+ <span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
86
+ {% else %}
87
+ <span class="icon has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
92
88
  {% endif %}
89
+ </p>
90
+ {% if invoice.xref %}
91
+ <p class="is-size-5 is-italic">{% trans 'External Ref' %}: {{ invoice.xref }}</p>
92
+ {% endif %}
93
93
 
94
- {% elif invoice.is_approved %}
95
- <h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-info">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
96
- <p class="is-size-3 has-text-dark">{% trans 'Amount Due' %}:
97
- <span class="has-text-weight-bold">
94
+ {% elif invoice.is_approved %}
95
+ <h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-info">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
96
+ <p class="is-size-3 has-text-dark">{% trans 'Amount Due' %}:
97
+ <span class="has-text-weight-bold">
98
98
  {% currency_symbol %}{{ invoice.amount_due | currency_format }}
99
99
  </span>
100
- </p>
101
- <p class="is-size-3 has-text-dark">{% trans 'Due Date' %}:
102
- <span class="has-text-weight-bold">{{ invoice.date_due | timeuntil }}</span>
103
- </p>
104
- <p class="is-size-3">{% trans 'Is Accrued' %}:
105
- {% if invoice.accrue %}
106
- <span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
107
- {% else %}
108
- <span class="icon has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
109
- {% endif %}
110
- </p>
111
- <p class="is-size-3 has-text-weight-bold">{% trans 'Amount Paid' %}:
112
- {% currency_symbol %}{{ invoice.amount_paid | currency_format }}</p>
113
- <p class="is-size-5">{% trans 'Progressed' %}: {{ invoice.get_progress | percentage }}</p><br>
114
- <progress class="progress is-medium is-success"
115
- value="{{ invoice.get_progress_percent }}"
116
- max="100">
117
- {{ invoice.get_progress | percentage }}
118
- </progress>
119
- {% elif invoice.is_paid %}
120
- <h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-success">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
121
- <p class="is-size-3 has-text-dark">{% trans 'Amount Paid' %}:
122
- <span class="has-text-weight-bold">
100
+ </p>
101
+ <p class="is-size-3 has-text-dark">{% trans 'Due Date' %}:
102
+ <span class="has-text-weight-bold">{{ invoice.date_due | timeuntil }}</span>
103
+ </p>
104
+ <p class="is-size-3">{% trans 'Is Accrued' %}:
105
+ {% if invoice.accrue %}
106
+ <span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
107
+ {% else %}
108
+ <span class="icon has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
109
+ {% endif %}
110
+ </p>
111
+ <p class="is-size-3 has-text-weight-bold">{% trans 'Amount Paid' %}:
112
+ {% currency_symbol %}{{ invoice.amount_paid | currency_format }}</p>
113
+ <p class="is-size-5">{% trans 'Progressed' %}: {{ invoice.get_progress | percentage }}</p><br>
114
+ <progress class="progress is-medium is-success"
115
+ value="{{ invoice.get_progress_percent }}"
116
+ max="100">
117
+ {{ invoice.get_progress | percentage }}
118
+ </progress>
119
+ {% elif invoice.is_paid %}
120
+ <h3 class="is-size-3 has-text-centered has-text-weight-bold has-text-success">{% trans 'This invoice is' %} {{ invoice.get_invoice_status_display }}</h3>
121
+ <p class="is-size-3 has-text-dark">{% trans 'Amount Paid' %}:
122
+ <span class="has-text-weight-bold">
123
123
  {% currency_symbol %}{{ invoice.amount_paid | currency_format }}
124
124
  </span>
125
- </p>
126
- <p class="is-size-3 has-text-dark">{% trans 'Paid Date' %}:
127
- <span class="has-text-weight-bold">{{ invoice.date_paid | date }}</span>
128
- {% else %}
129
- <p class="is-size-3 has-text-dark">Invoice Amount:
130
- <span class="has-text-weight-bold">{% currency_symbol %}{{ invoice.amount_due | currency_format }}</span>
131
- </p>
132
- <p class="is-size-3 has-text-danger-dark">{{ invoice.get_invoice_status_display | upper }}</p>
133
- {% endif %}
134
- </div>
125
+ </p>
126
+ <p class="is-size-3 has-text-dark">{% trans 'Paid Date' %}:
127
+ <span class="has-text-weight-bold">{{ invoice.date_paid | date }}</span>
128
+ {% else %}
129
+ <p class="is-size-3 has-text-dark">Invoice Amount:
130
+ <span class="has-text-weight-bold">{% currency_symbol %}{{ invoice.amount_due | currency_format }}</span>
131
+ </p>
132
+ <p class="is-size-3 has-text-danger-dark">{{ invoice.get_invoice_status_display | upper }}</p>
133
+ {% endif %}
134
+ </div>
135
135
  <footer class="card-footer">
136
136
  <a href="{% url 'django_ledger:invoice-update' entity_slug=entity_slug invoice_pk=invoice.uuid %}"
137
137
  class="card-footer-item has-text-primary has-text-centered">{% trans 'Update' %}</a>
@@ -158,7 +158,7 @@
158
158
  </h2>
159
159
  </div>
160
160
  <div class="card-content">
161
- {% invoice_txs_table invoice %}
161
+ {% transactions_table invoice %}
162
162
  </div>
163
163
  </div>
164
164
  </div>
@@ -10,14 +10,13 @@
10
10
  </div>
11
11
  <div class="column is-4">
12
12
  <div class="box">
13
- <form method="post"
14
- action="{% url 'django_ledger:je-create' entity_slug=view.kwargs.entity_slug ledger_pk=view.kwargs.ledger_pk %}">
13
+ <form method="post">
15
14
  {% csrf_token %}
16
15
  {{ form.as_p }}
17
16
  <button class="button is-outlined is-primary is-fullwidth djetler_my_1" type="submit">Create
18
17
  </button>
19
18
  <a class="button is-small is-dark is-fullwidth"
20
- href="{% url 'django_ledger:je-list' entity_slug=view.kwargs.entity_slug ledger_pk=view.kwargs.ledger_pk %}">Back</a>
19
+ href="{{ ledger_model.get_journal_entry_list_url }}">Back</a>
21
20
  </form>
22
21
  </div>
23
22
  </div>
@@ -6,15 +6,14 @@
6
6
  {% block view_content %}
7
7
  <div class="columns is-centered">
8
8
  <div class="column is-6">
9
- <form action="{% url 'django_ledger:je-delete' entity_slug=view.kwargs.entity_slug ledger_pk=je_model.ledger_id je_pk=je_model.uuid %}"
10
- method="post">
9
+ <form method="post">
11
10
  {% csrf_token %}
12
11
  <div class="card">
13
12
  <div class="card-content has-text-centered">
14
13
  <p class="title has-text-weight-light">{{ je_model.get_delete_message }}</p>
15
14
  </div>
16
15
  <div class="card-content has-text-centered">
17
- <a href="{% url 'django_ledger:home' %}"
16
+ <a href="{{ je_model.get_journal_entry_list_url }}"
18
17
  class="button is-primary">{% trans 'Go Back' %}</a>
19
18
  <button type="submit" class="button is-danger">{% trans 'Delete' %}</button>
20
19
  </div>
@@ -14,7 +14,7 @@
14
14
  <div class="card-header-title">{% trans 'Journal Entry Transactions' %}</div>
15
15
  </div>
16
16
  <div class="card-content">
17
- {% journal_entry_txs_table journal_entry %}
17
+ {% transactions_table journal_entry %}
18
18
  <a class="button is-primary is-outlined"
19
19
  href="{% url 'django_ledger:je-detail-txs' entity_slug=view.kwargs.entity_slug ledger_pk=view.kwargs.ledger_pk je_pk=journal_entry.uuid %}">
20
20
  {% trans 'Edit TXS' %}