mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
Add "scheduled_for_deletion" field to StockItem
- If set to True, this StockItem will be deleted (soon) by the background worker - As deletion takes significant time, this prevents delete operations from blocking the UI
This commit is contained in:
parent
4b1c2677c5
commit
7d3cd03d6c
@ -653,6 +653,9 @@ class StockList(generics.ListCreateAPIView):
|
|||||||
|
|
||||||
queryset = StockItemSerializer.annotate_queryset(queryset)
|
queryset = StockItemSerializer.annotate_queryset(queryset)
|
||||||
|
|
||||||
|
# Do not expose StockItem objects which are scheduled for deletion
|
||||||
|
queryset = queryset.filter(scheduled_for_deletion=False)
|
||||||
|
|
||||||
return queryset
|
return queryset
|
||||||
|
|
||||||
def filter_queryset(self, queryset):
|
def filter_queryset(self, queryset):
|
||||||
|
@ -0,0 +1,18 @@
|
|||||||
|
# Generated by Django 3.2.4 on 2021-09-07 06:27
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('stock', '0065_auto_20210701_0509'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='stockitem',
|
||||||
|
name='scheduled_for_deletion',
|
||||||
|
field=models.BooleanField(default=False, help_text='This StockItem will be deleted by the background worker', verbose_name='Scheduled for deletion'),
|
||||||
|
),
|
||||||
|
]
|
@ -209,7 +209,8 @@ class StockItem(MPTTModel):
|
|||||||
belongs_to=None,
|
belongs_to=None,
|
||||||
customer=None,
|
customer=None,
|
||||||
is_building=False,
|
is_building=False,
|
||||||
status__in=StockStatus.AVAILABLE_CODES
|
status__in=StockStatus.AVAILABLE_CODES,
|
||||||
|
scheduled_for_deletion=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
# A query filter which can be used to filter StockItem objects which have expired
|
# A query filter which can be used to filter StockItem objects which have expired
|
||||||
@ -588,6 +589,12 @@ class StockItem(MPTTModel):
|
|||||||
help_text=_('Select Owner'),
|
help_text=_('Select Owner'),
|
||||||
related_name='stock_items')
|
related_name='stock_items')
|
||||||
|
|
||||||
|
scheduled_for_deletion = models.BooleanField(
|
||||||
|
default=False,
|
||||||
|
verbose_name=_('Scheduled for deletion'),
|
||||||
|
help_text=_('This StockItem will be deleted by the background worker'),
|
||||||
|
)
|
||||||
|
|
||||||
def is_stale(self):
|
def is_stale(self):
|
||||||
"""
|
"""
|
||||||
Returns True if this Stock item is "stale".
|
Returns True if this Stock item is "stale".
|
||||||
|
Loading…
Reference in New Issue
Block a user