mirror of
https://github.com/inventree/InvenTree.git
synced 2025-04-29 20:16:44 +00:00
Migrate InvenTreeTree to using MPTT model
This commit is contained in:
parent
b3a5dbb5db
commit
2f11fccb73
@ -11,10 +11,12 @@ from rest_framework.exceptions import ValidationError
|
|||||||
from django.db.models.signals import pre_delete
|
from django.db.models.signals import pre_delete
|
||||||
from django.dispatch import receiver
|
from django.dispatch import receiver
|
||||||
|
|
||||||
|
from mptt.models import MPTTModel, TreeForeignKey
|
||||||
|
|
||||||
from .validators import validate_tree_name
|
from .validators import validate_tree_name
|
||||||
|
|
||||||
|
|
||||||
class InvenTreeTree(models.Model):
|
class InvenTreeTree(MPTTModel):
|
||||||
""" Provides an abstracted self-referencing tree model for data categories.
|
""" Provides an abstracted self-referencing tree model for data categories.
|
||||||
|
|
||||||
- Each Category has one parent Category, which can be blank (for a top-level Category).
|
- Each Category has one parent Category, which can be blank (for a top-level Category).
|
||||||
@ -30,6 +32,9 @@ class InvenTreeTree(models.Model):
|
|||||||
abstract = True
|
abstract = True
|
||||||
unique_together = ('name', 'parent')
|
unique_together = ('name', 'parent')
|
||||||
|
|
||||||
|
class MPTTMeta:
|
||||||
|
order_insertion_by = ['name']
|
||||||
|
|
||||||
name = models.CharField(
|
name = models.CharField(
|
||||||
blank=False,
|
blank=False,
|
||||||
max_length=100,
|
max_length=100,
|
||||||
|
37
InvenTree/part/migrations/0019_auto_20190908_0404.py
Normal file
37
InvenTree/part/migrations/0019_auto_20190908_0404.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# Generated by Django 2.2.5 on 2019-09-08 04:04
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('part', '0018_auto_20190907_0941'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='partcategory',
|
||||||
|
name='level',
|
||||||
|
field=models.PositiveIntegerField(default=0, editable=False),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='partcategory',
|
||||||
|
name='lft',
|
||||||
|
field=models.PositiveIntegerField(default=0, editable=False),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='partcategory',
|
||||||
|
name='rght',
|
||||||
|
field=models.PositiveIntegerField(default=0, editable=False),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='partcategory',
|
||||||
|
name='tree_id',
|
||||||
|
field=models.PositiveIntegerField(db_index=True, default=0, editable=False),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
]
|
21
InvenTree/part/migrations/0020_auto_20190908_0404.py
Normal file
21
InvenTree/part/migrations/0020_auto_20190908_0404.py
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# Generated by Django 2.2.5 on 2019-09-08 04:04
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
from part import models
|
||||||
|
|
||||||
|
|
||||||
|
def update_tree(apps, schema_editor):
|
||||||
|
# Update the PartCategory MPTT model
|
||||||
|
|
||||||
|
models.PartCategory.objects.rebuild()
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('part', '0019_auto_20190908_0404'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(update_tree)
|
||||||
|
]
|
37
InvenTree/stock/migrations/0011_auto_20190908_0404.py
Normal file
37
InvenTree/stock/migrations/0011_auto_20190908_0404.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
# Generated by Django 2.2.5 on 2019-09-08 04:04
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('stock', '0010_stockitem_build'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='stocklocation',
|
||||||
|
name='level',
|
||||||
|
field=models.PositiveIntegerField(default=0, editable=False),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='stocklocation',
|
||||||
|
name='lft',
|
||||||
|
field=models.PositiveIntegerField(default=0, editable=False),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='stocklocation',
|
||||||
|
name='rght',
|
||||||
|
field=models.PositiveIntegerField(default=0, editable=False),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='stocklocation',
|
||||||
|
name='tree_id',
|
||||||
|
field=models.PositiveIntegerField(db_index=True, default=0, editable=False),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
]
|
22
InvenTree/stock/migrations/0012_auto_20190908_0405.py
Normal file
22
InvenTree/stock/migrations/0012_auto_20190908_0405.py
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Generated by Django 2.2.5 on 2019-09-08 04:05
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
|
||||||
|
from stock import models
|
||||||
|
|
||||||
|
|
||||||
|
def update_tree(apps, schema_editor):
|
||||||
|
# Update the StockLocation MPTT model
|
||||||
|
|
||||||
|
models.StockLocation.objects.rebuild()
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('stock', '0011_auto_20190908_0404'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(update_tree)
|
||||||
|
]
|
Loading…
x
Reference in New Issue
Block a user