Skip to content

Commit d8ce51d

Browse files
committed
v0.4.3.4
Removed Deprecated MPTT Dependency NodeTreeMixIn as Replacement Migrtation update (no backwards compatibility).
1 parent 677f40f commit d8ce51d

File tree

19 files changed

+104
-157
lines changed

19 files changed

+104
-157
lines changed

Pipfile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ name = "pypi"
55

66
[packages]
77
django = ">=3.2"
8-
django-mptt = ">=0.11.0"
98
ofxtools = ">=0.8.21"
109
jsonschema = ">=3.2.0"
1110
markdown = ">=3.3.4"

Pipfile.lock

Lines changed: 17 additions & 32 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

django_ledger/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
default_app_config = 'django_ledger.apps.DjangoLedgerConfig'
1010

1111
"""Django Ledger"""
12-
__version__ = '0.4.3.3'
12+
__version__ = '0.4.3.4'
1313
__license__ = 'GPLv3 License'
1414

1515
__author__ = 'Miguel Sanda'

django_ledger/io/io_mixin.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -243,7 +243,7 @@ def commit_txs(self,
243243

244244
JournalEntryModel = lazy_importer.get_journal_entry_model()
245245

246-
je_model = JournalEntryModel.objects.create(
246+
je_model = JournalEntryModel.on_coa.create(
247247
ledger=je_ledger,
248248
description=je_desc,
249249
date=je_date,

django_ledger/migrations/0001_initial.py

Lines changed: 12 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Generated by Django 3.2.4 on 2021-06-18 03:34
1+
# Generated by Django 3.2.5 on 2021-07-25 21:44
22

33
from django.conf import settings
44
import django.core.validators
@@ -7,7 +7,6 @@
77
import django.db.models.manager
88
import django_ledger.io.io_mixin
99
import django_ledger.models.entity
10-
import mptt.fields
1110
import re
1211
import uuid
1312

@@ -33,17 +32,16 @@ class Migration(migrations.Migration):
3332
('balance_type', models.CharField(choices=[('credit', 'Credit'), ('debit', 'Debit')], max_length=6, verbose_name='Account Balance Type')),
3433
('locked', models.BooleanField(default=False, verbose_name='Locked')),
3534
('active', models.BooleanField(default=False, verbose_name='Active')),
36-
('lft', models.PositiveIntegerField(editable=False)),
37-
('rght', models.PositiveIntegerField(editable=False)),
38-
('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
39-
('level', models.PositiveIntegerField(editable=False)),
4035
],
4136
options={
4237
'verbose_name': 'Account',
4338
'verbose_name_plural': 'Accounts',
4439
'ordering': ['-created'],
4540
'abstract': False,
4641
},
42+
managers=[
43+
('on_coa', django.db.models.manager.Manager()),
44+
],
4745
),
4846
migrations.CreateModel(
4947
name='BillModel',
@@ -132,13 +130,9 @@ class Migration(migrations.Migration):
132130
('name', models.CharField(blank=True, max_length=150, null=True, verbose_name='Entity Name')),
133131
('hidden', models.BooleanField(default=False)),
134132
('fy_start_month', models.IntegerField(choices=[(1, 'January'), (2, 'February'), (3, 'March'), (4, 'April'), (5, 'May'), (6, 'June'), (7, 'July'), (8, 'August'), (9, 'September'), (10, 'October'), (11, 'November'), (12, 'December')], default=1, verbose_name='Fiscal Year Start')),
135-
('lft', models.PositiveIntegerField(editable=False)),
136-
('rght', models.PositiveIntegerField(editable=False)),
137-
('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
138-
('level', models.PositiveIntegerField(editable=False)),
139133
('admin', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='admin_of', to=settings.AUTH_USER_MODEL, verbose_name='Admin')),
140134
('managers', models.ManyToManyField(related_name='managed_by', through='django_ledger.EntityManagementModel', to=settings.AUTH_USER_MODEL, verbose_name='Managers')),
141-
('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='django_ledger.entitymodel', verbose_name='Parent Entity')),
135+
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children_set', to='django_ledger.entitymodel')),
142136
],
143137
options={
144138
'verbose_name': 'Entity',
@@ -147,9 +141,6 @@ class Migration(migrations.Migration):
147141
'abstract': False,
148142
},
149143
bases=(models.Model, django_ledger.io.io_mixin.IOMixIn, django_ledger.models.entity.EntityReportManager),
150-
managers=[
151-
('_tree_manager', django.db.models.manager.Manager()),
152-
],
153144
),
154145
migrations.CreateModel(
155146
name='EntityUnitModel',
@@ -161,22 +152,15 @@ class Migration(migrations.Migration):
161152
('slug', models.SlugField()),
162153
('active', models.BooleanField(default=True, verbose_name='Is Active')),
163154
('hidden', models.BooleanField(default=False, verbose_name='Is Hidden')),
164-
('lft', models.PositiveIntegerField(editable=False)),
165-
('rght', models.PositiveIntegerField(editable=False)),
166-
('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
167-
('level', models.PositiveIntegerField(editable=False)),
168155
('entity', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='django_ledger.entitymodel', verbose_name='Unit Entity')),
169-
('parent', mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='django_ledger.entityunitmodel', verbose_name='Parent Unit')),
156+
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children_set', to='django_ledger.entityunitmodel')),
170157
],
171158
options={
172159
'verbose_name': 'Entity Unit Model',
173160
'ordering': ['-created'],
174161
'abstract': False,
175162
},
176163
bases=(django_ledger.io.io_mixin.IOMixIn, models.Model),
177-
managers=[
178-
('_tree_manager', django.db.models.manager.Manager()),
179-
],
180164
),
181165
migrations.CreateModel(
182166
name='ImportJobModel',
@@ -263,6 +247,7 @@ class Migration(migrations.Migration):
263247
('entity_unit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='django_ledger.entityunitmodel', verbose_name='Associated Entity Unit')),
264248
('invoice_model', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_ledger.invoicemodel', verbose_name='Invoice Model')),
265249
('item_model', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='django_ledger.itemmodel', verbose_name='Item Model')),
250+
('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children_set', to='django_ledger.itemthroughmodel')),
266251
],
267252
options={
268253
'abstract': False,
@@ -280,10 +265,6 @@ class Migration(migrations.Migration):
280265
('origin', models.CharField(blank=True, max_length=30, null=True, verbose_name='Origin')),
281266
('posted', models.BooleanField(default=False, verbose_name='Posted')),
282267
('locked', models.BooleanField(default=False, verbose_name='Locked')),
283-
('lft', models.PositiveIntegerField(editable=False)),
284-
('rght', models.PositiveIntegerField(editable=False)),
285-
('tree_id', models.PositiveIntegerField(db_index=True, editable=False)),
286-
('level', models.PositiveIntegerField(editable=False)),
287268
('entity_unit', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='django_ledger.entityunitmodel', verbose_name='Associated Entity Unit')),
288269
],
289270
options={
@@ -292,6 +273,9 @@ class Migration(migrations.Migration):
292273
'ordering': ['-created'],
293274
'abstract': False,
294275
},
276+
managers=[
277+
('on_coa', django.db.models.manager.Manager()),
278+
],
295279
),
296280
migrations.CreateModel(
297281
name='VendorModel',
@@ -428,7 +412,7 @@ class Migration(migrations.Migration):
428412
migrations.AddField(
429413
model_name='itemthroughmodel',
430414
name='po_model',
431-
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='django_ledger.purchaseordermodel', verbose_name='Purchase Order Model'),
415+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='django_ledger.purchaseordermodel', verbose_name='Purchase Order Model'),
432416
),
433417
migrations.AddField(
434418
model_name='itemmodel',
@@ -553,7 +537,7 @@ class Migration(migrations.Migration):
553537
migrations.AddField(
554538
model_name='accountmodel',
555539
name='parent',
556-
field=mptt.fields.TreeForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children', to='django_ledger.accountmodel', verbose_name='Parent'),
540+
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='children_set', to='django_ledger.accountmodel'),
557541
),
558542
migrations.AddIndex(
559543
model_name='vendormodel',

django_ledger/migrations/0002_alter_itemthroughmodel_po_model.py

Lines changed: 0 additions & 19 deletions
This file was deleted.

django_ledger/models/accounts.py

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,9 @@
1212
from django.db import models
1313
from django.db.models import Q
1414
from django.utils.translation import gettext_lazy as _
15-
from mptt.models import MPTTModel, TreeForeignKey
1615

1716
from django_ledger.io.roles import ACCOUNT_ROLES, BS_ROLES, GROUP_INVOICE, GROUP_BILL
18-
from django_ledger.models.mixins import CreateUpdateMixIn
17+
from django_ledger.models.mixins import CreateUpdateMixIn, NodeTreeMixIn
1918

2019
DEBIT = 'debit'
2120
CREDIT = 'credit'
@@ -69,7 +68,7 @@ def for_bill(self, user_model, entity_slug: str, coa_slug: str = None):
6968
return qs.filter(role__in=GROUP_BILL)
7069

7170

72-
class AccountModelAbstract(MPTTModel, CreateUpdateMixIn):
71+
class AccountModelAbstract(NodeTreeMixIn, CreateUpdateMixIn):
7372
"""
7473
Djetler's Base Account Model Abstract
7574
"""
@@ -83,13 +82,6 @@ class AccountModelAbstract(MPTTModel, CreateUpdateMixIn):
8382
name = models.CharField(max_length=100, verbose_name=_('Account Name'))
8483
role = models.CharField(max_length=25, choices=ACCOUNT_ROLES, verbose_name=_('Account Role'))
8584
balance_type = models.CharField(max_length=6, choices=BALANCE_TYPE, verbose_name=_('Account Balance Type'))
86-
parent = TreeForeignKey('self',
87-
null=True,
88-
blank=True,
89-
related_name='children',
90-
verbose_name=_('Parent'),
91-
db_index=True,
92-
on_delete=models.CASCADE)
9385
locked = models.BooleanField(default=False, verbose_name=_('Locked'))
9486
active = models.BooleanField(default=False, verbose_name=_('Active'))
9587
coa = models.ForeignKey('django_ledger.ChartOfAccountModel',
@@ -114,9 +106,6 @@ class Meta:
114106
models.Index(fields=['role', 'balance_type', 'active']),
115107
]
116108

117-
class MPTTMeta:
118-
order_insertion_by = ['name']
119-
120109
def __str__(self):
121110
return '{x1} - {x5}: {x2} ({x3}/{x4})'.format(x1=self.role_bs.upper(),
122111
x2=self.name,

django_ledger/models/entity.py

Lines changed: 6 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,10 @@
2020
from django.urls import reverse
2121
from django.utils.text import slugify
2222
from django.utils.translation import gettext_lazy as _
23-
from mptt.models import MPTTModel, TreeForeignKey
2423

2524
from django_ledger.io import IOMixIn
2625
from django_ledger.models.coa import ChartOfAccountModel
27-
from django_ledger.models.mixins import CreateUpdateMixIn, SlugNameMixIn, ContactInfoMixIn
26+
from django_ledger.models.mixins import CreateUpdateMixIn, SlugNameMixIn, ContactInfoMixIn, NodeTreeMixIn
2827

2928
UserModel = get_user_model()
3029

@@ -94,7 +93,7 @@ def for_user(self, user_model):
9493
)
9594

9695

97-
class EntityModelAbstract(MPTTModel,
96+
class EntityModelAbstract(NodeTreeMixIn,
9897
SlugNameMixIn,
9998
CreateUpdateMixIn,
10099
ContactInfoMixIn,
@@ -115,17 +114,12 @@ class EntityModelAbstract(MPTTModel,
115114
(12, _('December')),
116115
]
117116

118-
parent = TreeForeignKey('self',
119-
null=True,
120-
blank=True,
121-
related_name='children',
122-
verbose_name=_('Parent Entity'),
123-
on_delete=models.CASCADE)
124-
125117
uuid = models.UUIDField(default=uuid4, editable=False, primary_key=True)
126118
name = models.CharField(max_length=150, verbose_name=_('Entity Name'), null=True, blank=True)
127-
admin = models.ForeignKey(UserModel, on_delete=models.CASCADE,
128-
related_name='admin_of', verbose_name=_('Admin'))
119+
admin = models.ForeignKey(UserModel,
120+
on_delete=models.CASCADE,
121+
related_name='admin_of',
122+
verbose_name=_('Admin'))
129123
managers = models.ManyToManyField(UserModel, through='EntityManagementModel',
130124
related_name='managed_by', verbose_name=_('Managers'))
131125

@@ -143,9 +137,6 @@ class Meta:
143137
models.Index(fields=['parent'])
144138
]
145139

146-
class MPTTMeta:
147-
order_insertion_by = ['created']
148-
149140
def __str__(self):
150141
return self.name
151142

django_ledger/models/items.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from django.db.models import Q
1616
from django.utils.translation import gettext_lazy as _
1717

18-
from django_ledger.models.mixins import CreateUpdateMixIn
18+
from django_ledger.models.mixins import CreateUpdateMixIn, NodeTreeMixIn
1919
from django_ledger.settings import DJANGO_LEDGER_CURRENCY_SYMBOL as currency_symbol
2020

2121
ITEM_LIST_RANDOM_SLUG_SUFFIX = ascii_lowercase + digits
@@ -279,7 +279,7 @@ def for_po(self, entity_slug, user_model, po_pk):
279279
return qs.filter(po_model__uuid__exact=po_pk)
280280

281281

282-
class ItemThroughModelAbstract(CreateUpdateMixIn):
282+
class ItemThroughModelAbstract(NodeTreeMixIn, CreateUpdateMixIn):
283283
STATUS_NOT_ORDERED = 'not_ordered'
284284
STATUS_ORDERED = 'ordered'
285285
STATUS_IN_TRANSIT = 'in_transit'

0 commit comments

Comments
 (0)