django-ledger 0.7.1__py3-none-any.whl → 0.7.2__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.

django_ledger/__init__.py CHANGED
@@ -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.7.1'
9
+ __version__ = '0.7.2'
10
10
  __license__ = 'GPLv3 License'
11
11
 
12
12
  __author__ = 'Miguel Sanda'
@@ -330,6 +330,6 @@ class CustomerModel(CustomerModelAbstract):
330
330
  Base Customer Model Implementation
331
331
  """
332
332
 
333
- class Meta:
333
+ class Meta(CustomerModelAbstract.Meta):
334
334
  swappable = 'DJANGO_LEDGER_CUSTOMER_MODEL'
335
335
  abstract = False
@@ -32,7 +32,25 @@ class ImportJobModelManager(Manager):
32
32
 
33
33
  def get_queryset(self):
34
34
  qs = super().get_queryset()
35
- return qs.select_related(
35
+ return qs.annotate(
36
+ txs_count=Count('stagedtransactionmodel',
37
+ filter=Q(stagedtransactionmodel__parent__isnull=False)),
38
+ txs_mapped_count=Count(
39
+ 'stagedtransactionmodel__account_model_id',
40
+ filter=Q(stagedtransactionmodel__parent__isnull=False) | Q(
41
+ stagedtransactionmodel__parent__parent__isnull=False)
42
+
43
+ ),
44
+ ).annotate(
45
+ txs_pending=F('txs_count') - F('txs_mapped_count')
46
+ ).annotate(
47
+ is_complete=Case(
48
+ When(txs_count__exact=0, then=False),
49
+ When(txs_pending__exact=0, then=True),
50
+ default=False,
51
+ output_field=BooleanField()
52
+ ),
53
+ ).select_related(
36
54
  'bank_account_model',
37
55
  'bank_account_model__cash_account',
38
56
  'ledger_model'
@@ -101,7 +119,7 @@ class ImportJobModelAbstract(CreateUpdateMixIn):
101
119
  return _(f'Are you sure you want to delete Import Job {self.description}?')
102
120
 
103
121
 
104
- class StagedTransactionModelQuerySet(models.QuerySet):
122
+ class StagedTransactionModelQuerySet(QuerySet):
105
123
 
106
124
  def is_pending(self):
107
125
  return self.filter(transaction_model__isnull=True)
@@ -116,7 +134,7 @@ class StagedTransactionModelQuerySet(models.QuerySet):
116
134
  return self.filter(ready_to_import=True)
117
135
 
118
136
 
119
- class StagedTransactionModelManager(models.Manager):
137
+ class StagedTransactionModelManager(Manager):
120
138
 
121
139
  def get_queryset(self):
122
140
  qs = super().get_queryset()
@@ -1819,7 +1819,7 @@ class InvoiceModel(InvoiceModelAbstract):
1819
1819
  Base Invoice Model from Abstract.
1820
1820
  """
1821
1821
 
1822
- class Meta:
1822
+ class Meta(InvoiceModelAbstract.Meta):
1823
1823
  swappable = 'DJANGO_LEDGER_INVOICE_MODEL'
1824
1824
  abstract = False
1825
1825
 
@@ -9,6 +9,7 @@
9
9
  <th>Description</th>
10
10
  <th>Bank Account</th>
11
11
  <th>Created</th>
12
+ <th>Completed</th>
12
13
  <th>Actions</th>
13
14
  </tr>
14
15
  </thead>
@@ -19,6 +20,13 @@
19
20
  <td>{{ job.description }}</td>
20
21
  <td>{{ job.bank_account_model }}</td>
21
22
  <td>{{ job.created }}</td>
23
+ <td class="has-text-centered">
24
+ {% if job.is_complete %}
25
+ <span class="icon has-text-success">{% icon 'ant-design:check-circle-filled' 24 %}</span>
26
+ {% else %}
27
+ <span class="icon is-small has-text-danger">{% icon 'maki:roadblock-11' 24 %}</span>
28
+ {% endif %}
29
+ </td>
22
30
  <td>
23
31
  <div class="dropdown is-right" id="customer-action-{{ job.uuid }}">
24
32
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: django-ledger
3
- Version: 0.7.1
3
+ Version: 0.7.2
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>
@@ -48,7 +48,7 @@ assets/node_modules/node-gyp/gyp/tools/pretty_gyp.py,sha256=2ZCRPW-MZfK7gdnCIaqh
48
48
  assets/node_modules/node-gyp/gyp/tools/pretty_sln.py,sha256=b_Fxm-SXUCPL3Tix4EyNwZNmQ-zkeRIFFmuL0R5wFhw,5482
49
49
  assets/node_modules/node-gyp/gyp/tools/pretty_vcproj.py,sha256=AwQrxK1F-jhjsbbT35XQjrvWNbc3IBFaKXoJogqMh_o,10633
50
50
  assets/node_modules/node-gyp/test/fixtures/test-charmap.py,sha256=5raXzaQnO2eJnrlFtlDtWftryhZX7Fj0amFW3hdSnhE,547
51
- django_ledger/__init__.py,sha256=F00HXUYiLYru2tz50vigBnkAjc7Y_amyDn-nIpAtNDs,380
51
+ django_ledger/__init__.py,sha256=CX_J_4RTT4BUlffHbyF7VMYkSXKUovsClUss_XdeLJY,380
52
52
  django_ledger/apps.py,sha256=H-zEWUjKGakgSDSZmLIoXChZ2h6e0dth0ZO5SpoT-8U,163
53
53
  django_ledger/exceptions.py,sha256=rML8sQQ0Hq-DYMLZ76dfw2RYSAsXWUoyHuyC_yP9o1o,491
54
54
  django_ledger/settings.py,sha256=LX2QVtwm4YwAJrfN1VplJlQ310-NeIg-wpRz5QdFJTk,8906
@@ -152,11 +152,11 @@ django_ledger/models/bill.py,sha256=nNjoZLHT5jqhDiBpCeFdJP59TKwLTBTlbZMg4lGqhPE,
152
152
  django_ledger/models/chart_of_accounts.py,sha256=YxTmqy3FrTmqUCub-18GTtTRDCqVpWTzC_FmDPTlVJ4,30227
153
153
  django_ledger/models/closing_entry.py,sha256=MKCy-q0LJUL2LP3g3y-OwP0SdcJAPssXwhLCKgp1nM0,17912
154
154
  django_ledger/models/coa_default.py,sha256=CK4vOZ73QePciZUL93wigDXpxKamdXAKBaQR7r-G7tk,27482
155
- django_ledger/models/customer.py,sha256=jhNQzBJXU6tawEpGWlXyg-hdRjlZIg8oIpUldf-nKiM,11778
156
- django_ledger/models/data_import.py,sha256=O7zH9O4mVtuWBUJw_V0NB2ygXgQ7lKM6yxRdzATng24,19675
155
+ django_ledger/models/customer.py,sha256=EeynuiYFx7ME7iCtUzvaURUnY4yRqKA-9hrSiv6Bs0Y,11806
156
+ django_ledger/models/data_import.py,sha256=lAWoEw9Bh-0R1no4HjHaO6c8Fps2bn3qtEaAAFt894M,20414
157
157
  django_ledger/models/entity.py,sha256=XXvpD-AMcNQP6k6JlHy9dAHUfIQQesvaRol9sJCBais,123770
158
158
  django_ledger/models/estimate.py,sha256=EPkGMJwn3bkyYYeVHOfyLeWqtlJIyjF8fUc36dLz_18,58107
159
- django_ledger/models/invoice.py,sha256=rrQBn0tXkLRw2RD74Hv-gj3t97ePAyHxGJHIrkxnQc8,62840
159
+ django_ledger/models/invoice.py,sha256=bbFq1vEQRJ3NcScutOM1LB3Vg0XELxK856Ned_u3NfI,62867
160
160
  django_ledger/models/items.py,sha256=-l_ibAiJTu4dO7TZUdGD4sq524Ew8oIwhq_hiHVUDeY,55251
161
161
  django_ledger/models/journal_entry.py,sha256=KlATZhW7lT4L5hy0GRQMdkrqcgaiGVREwQU7kEO09sI,54293
162
162
  django_ledger/models/ledger.py,sha256=68OHNANMK050_7s5NEj-n2FBY8JUnBaVsHDm2LItrMs,25034
@@ -289,7 +289,7 @@ django_ledger/templates/django_ledger/data_import/data_import_job_txs.html,sha25
289
289
  django_ledger/templates/django_ledger/data_import/import_job_create.html,sha256=d3cr04L6I8E4XFBfjSCSC4Z-_OxUOa_6b5Idp6XSWvg,2873
290
290
  django_ledger/templates/django_ledger/data_import/import_job_delete.html,sha256=qgobtrI-WNYFqhn8de05mcD-FQ0UGSLT6ZoaBlblXAU,944
291
291
  django_ledger/templates/django_ledger/data_import/import_job_update.html,sha256=ZDy391RSOXUq3keUs48QrVrI_ZicdNvDeLT_JacH17M,887
292
- django_ledger/templates/django_ledger/data_import/tags/data_import_job_list_table.html,sha256=JrKMiM63kY_xtpnNwHpFAovTMW5cX3_YJA9Hty0KxR0,2488
292
+ django_ledger/templates/django_ledger/data_import/tags/data_import_job_list_table.html,sha256=y_U1xixMC9YPR4aq6F_cNpyb-dZ5qcVh9D6HSN9Xpps,2919
293
293
  django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_imported.html,sha256=e8dLP-VEPSh901KmpBSIZ635cPMM67okWzilbNpGNh4,1298
294
294
  django_ledger/templates/django_ledger/data_import/tags/data_import_job_txs_table.html,sha256=f-RJr7uw4v_s3XqMA9T7n0JDeIL0s-xdbdLmM1grvCk,3835
295
295
  django_ledger/templates/django_ledger/entity/entitiy_list.html,sha256=onM9uaWTm2oQ00OPIH5ki2FEfgjx7_EIOT8akuAhQM4,1507
@@ -457,9 +457,9 @@ django_ledger/views/purchase_order.py,sha256=CyftKrQWV1SBz7W0CvZOfZ81OPEiBHPD7b9
457
457
  django_ledger/views/transactions.py,sha256=3ijtJzdLPFkqG7OYpe-7N4QVjCyR2yl5ht_9RyfquBA,212
458
458
  django_ledger/views/unit.py,sha256=MF9tEeWCOt5XrtK-UFmHFisyBM-h3WzgL6v8IX2Ynbk,10446
459
459
  django_ledger/views/vendor.py,sha256=qlkd3gsjZ6RYuPrRYDVZp-Im65calM9ed3KxsaT4cxw,3467
460
- django_ledger-0.7.1.dist-info/AUTHORS.md,sha256=ShPwf-qniJkbjRzX5_lqhmgoLMEYMSHSwKPXHZtWmyk,824
461
- django_ledger-0.7.1.dist-info/LICENSE,sha256=ixuiBLtpoK3iv89l7ylKkg9rs2GzF9ukPH7ynZYzK5s,35148
462
- django_ledger-0.7.1.dist-info/METADATA,sha256=4f7K_hEZLKSR3V6tyn2jLM5zOqMxLNtX1eMOwww3YOU,8607
463
- django_ledger-0.7.1.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
464
- django_ledger-0.7.1.dist-info/top_level.txt,sha256=fmHWehb2HfoDncQ3eQtYzeYc-gJMywf6q_ZpKBjwzoQ,38
465
- django_ledger-0.7.1.dist-info/RECORD,,
460
+ django_ledger-0.7.2.dist-info/AUTHORS.md,sha256=ShPwf-qniJkbjRzX5_lqhmgoLMEYMSHSwKPXHZtWmyk,824
461
+ django_ledger-0.7.2.dist-info/LICENSE,sha256=ixuiBLtpoK3iv89l7ylKkg9rs2GzF9ukPH7ynZYzK5s,35148
462
+ django_ledger-0.7.2.dist-info/METADATA,sha256=XZ4MPmKkapPS3_Bjm64jcJOrHqRFFe6q652qqTtIa7g,8607
463
+ django_ledger-0.7.2.dist-info/WHEEL,sha256=OVMc5UfuAQiSplgO0_WdW7vXVGAt9Hdd6qtN4HotdyA,91
464
+ django_ledger-0.7.2.dist-info/top_level.txt,sha256=fmHWehb2HfoDncQ3eQtYzeYc-gJMywf6q_ZpKBjwzoQ,38
465
+ django_ledger-0.7.2.dist-info/RECORD,,