Coverage for src/backend/InvenTree/stock/migrations/0071_auto_20211205_1733.py: 62%

17 statements  

« prev     ^ index     » next       coverage.py v7.15.2, created at 2026-10-07 17:47 +0000

1# Generated by Django 3.2.5 on 2021-12-05 06:33 

2 

3from django.db import migrations 

4 

5import logging 

6 

7 

8logger = logging.getLogger('inventree') 

9 

10 

11def delete_scheduled(apps, schema_editor): 

12 """ 

13 Delete all stock items which are marked as 'scheduled_for_deletion'. 

14 

15 The issue that this field was addressing has now been fixed, 

16 and so we can all move on with our lives... 

17 """ 

18 

19 StockItem = apps.get_model('stock', 'stockitem') 

20 

21 items = StockItem.objects.filter(scheduled_for_deletion=True) 

22 

23 if items.count() > 0: 23 ↛ 24line 23 didn't jump to line 24 because the condition on line 23 was never true

24 logger.info(f"Removing {items.count()} stock items scheduled for deletion") 

25 

26 # Ensure any parent / child relationships are updated! 

27 for item in items: 

28 children = StockItem.objects.filter(parent=item) 

29 children.update(parent=item.parent) 

30 

31 item.delete() 

32 

33 Task = apps.get_model('django_q', 'schedule') 

34 

35 Task.objects.filter(func='stock.tasks.delete_old_stock_items').delete() 

36 

37 

38class Migration(migrations.Migration): 

39 

40 dependencies = [ 

41 ('django_q', '0007_ormq'), 

42 ('stock', '0070_auto_20211128_0151'), 

43 ] 

44 

45 operations = [ 

46 migrations.RunPython( 

47 delete_scheduled, 

48 reverse_code=migrations.RunPython.noop, 

49 ) 

50 ]