2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-12-14 00:09:56 +00:00

Refactor states/status (#4857)

* add file for states

* move general definition out

* add some tests and docs

* add tests for invalid definitions

* make status_label tag generic

* move templatetags

* remove unused tag

* rename test file

* make status label a lookup

* rename tags

* move import structure

* add missing tag

* collect states dynamically

* fix context function

* move api function out

* add tests for tags

* rename tests

* refactor imports

* Add test for API function

* improve errors and add tests for imporved errors

* make test calls simpler

* refactor definitions to use enums

* switch to enum

* refactor definitions to use enums

* fix lookup

* fix tag name

* make _TAG lookup a function

* cleanup BaseEnum

* make _TAG definition simpler

* restructure status codes to enum

* reduce LoC

* type status codes as int

* add specific function for template context

* Add definition for lookups

* fix filter lookup

* TEST: "fix" action lookup

* Add missing migrations

* Make all group code references explict

* change default on models to value

* switch to IntEnum

* move groups into a seperate class

* only request _TAG if it exsists

* use value and list

* use dedicated groups

* fix stock assigment

* fix order code

* more fixes

* fix borked change

* fix render lookup

* add group

* fix import

* fix syntax

* clenup

* fix migrations

* fix typo

* fix wrong value usage

* fix test

* remove group section

* remove group section

* add more test cases

* Add more docstring

* move choices out of migrations

* change import ordeR?

* last try before I revert

* Update part.migrations.0112

- Add custom migration class which handles errors

* Add unit test for migration

- Ensure that the new fields are added to the model

* Update reference to PR

---------

Co-authored-by: Oliver Walters <oliver.henry.walters@gmail.com>
This commit is contained in:
Matthias Mair
2023-06-09 02:27:26 +02:00
committed by GitHub
parent 005c8341bf
commit 5d1d8ec889
51 changed files with 677 additions and 586 deletions

View File

@@ -34,8 +34,8 @@ from InvenTree.fields import InvenTreeModelMoneyField, InvenTreeURLField
from InvenTree.models import (InvenTreeAttachment, InvenTreeBarcodeMixin,
InvenTreeNotesMixin, InvenTreeTree,
MetadataMixin, extract_int)
from InvenTree.status_codes import (SalesOrderStatus, StockHistoryCode,
StockStatus)
from InvenTree.status_codes import (SalesOrderStatusGroups, StockHistoryCode,
StockStatus, StockStatusGroups)
from part import models as PartModels
from plugin.events import trigger_event
from users.models import Owner
@@ -334,7 +334,7 @@ class StockItem(InvenTreeBarcodeMixin, InvenTreeNotesMixin, MetadataMixin, commo
customer=None,
consumed_by=None,
is_building=False,
status__in=StockStatus.AVAILABLE_CODES
status__in=StockStatusGroups.AVAILABLE_CODES
)
# A query filter which can be used to filter StockItem objects which have expired
@@ -806,7 +806,7 @@ class StockItem(InvenTreeBarcodeMixin, InvenTreeNotesMixin, MetadataMixin, commo
)
status = models.PositiveIntegerField(
default=StockStatus.OK,
default=StockStatus.OK.value,
choices=StockStatus.items(),
validators=[MinValueValidator(0)])
@@ -1082,12 +1082,12 @@ class StockItem(InvenTreeBarcodeMixin, InvenTreeNotesMixin, MetadataMixin, commo
if active is True:
query = query.filter(
line__order__status__in=SalesOrderStatus.OPEN,
line__order__status__in=SalesOrderStatusGroups.OPEN,
shipment__shipment_date=None
)
elif active is False:
query = query.exclude(
line__order__status__in=SalesOrderStatus.OPEN
line__order__status__in=SalesOrderStatusGroups.OPEN,
).exclude(
shipment__shipment_date=None
)
@@ -1346,7 +1346,7 @@ class StockItem(InvenTreeBarcodeMixin, InvenTreeNotesMixin, MetadataMixin, commo
entry = StockItemTracking.objects.create(
item=self,
tracking_type=entry_type,
tracking_type=entry_type.value,
user=user,
date=datetime.now(),
notes=notes,