Skip to content

Commit f5678be

Browse files
author
Jens Kürten
committed
ec status check event
1 parent 41c7e4e commit f5678be

File tree

4 files changed

+50
-0
lines changed

4 files changed

+50
-0
lines changed

csfunctions/events/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
from .dummy import DummyEvent, DummyEventData
1212
from .engineering_change_release import EngineeringChangeRelease, EngineeringChangeReleaseData
1313
from .engineering_change_release_check import EngineeringChangeReleaseCheck, EngineeringChangeReleaseCheckData
14+
from .engineering_change_status_change_check import (
15+
EngineeringChangeStatusChangeCheck,
16+
EngineeringChangeStatusChangeCheckData,
17+
)
1418
from .engineering_change_status_changed import EngineeringChangeStatusChanged, EngineeringChangeStatusChangedData
1519
from .field_value_calculation import FieldValueCalculationData, FieldValueCalculationEvent
1620
from .part_create_check import PartCreateCheckData, PartCreateCheckEvent
@@ -33,6 +37,7 @@
3337
EngineeringChangeRelease,
3438
EngineeringChangeReleaseCheck,
3539
EngineeringChangeStatusChanged,
40+
EngineeringChangeStatusChangeCheck,
3641
WorkflowTaskTriggerEvent,
3742
DocumentCreateCheckEvent,
3843
DocumentModifyCheckEvent,
@@ -53,6 +58,7 @@
5358
EngineeringChangeReleaseData,
5459
EngineeringChangeReleaseCheckData,
5560
EngineeringChangeStatusChangedData,
61+
EngineeringChangeStatusChangeCheckData,
5662
WorkflowTaskTriggerEventData,
5763
DocumentCreateCheckData,
5864
DocumentModifyCheckData,
@@ -72,6 +78,7 @@
7278
"EngineeringChangeRelease",
7379
"EngineeringChangeReleaseCheck",
7480
"EngineeringChangeStatusChanged",
81+
"EngineeringChangeStatusChangeCheck",
7582
"WorkflowTaskTriggerEvent",
7683
"DocumentReleaseData",
7784
"DocumentReleaseCheckData",
@@ -83,6 +90,7 @@
8390
"EngineeringChangeReleaseData",
8491
"EngineeringChangeReleaseCheckData",
8592
"EngineeringChangeStatusChangedData",
93+
"EngineeringChangeStatusChangeCheckData",
8694
"WorkflowTaskTriggerEventData",
8795
"DocumentReleaseDialogData",
8896
"PartReleaseDialogData",

csfunctions/events/base.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ class EventNames(str, Enum):
2020
PART_CREATE_CHECK = "part_create_check"
2121
PART_MODIFY_CHECK = "part_modify_check"
2222
ENGINEERING_CHANGE_STATUS_CHANGED = "engineering_change_status_changed"
23+
ENGINEERING_CHANGE_STATUS_CHANGE_CHECK = "engineering_change_status_change_check"
2324

2425

2526
class BaseEvent(BaseModel):
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
from typing import Literal
2+
3+
from pydantic import BaseModel, Field
4+
5+
from csfunctions.objects import Document, EngineeringChange, Part
6+
7+
from .base import BaseEvent, EventNames
8+
9+
10+
class EngineeringChangeStatusChangeCheckData(BaseModel):
11+
engineering_change: EngineeringChange = Field(
12+
..., description="The engineering change that will have its status modified"
13+
)
14+
target_status: int = Field(..., description="The target status of the engineering change")
15+
documents: list[Document] = Field(..., description="List of documents attached to the engineering change")
16+
parts: list[Part] = Field(..., description="List of parts attached to the engineering change")
17+
18+
19+
class EngineeringChangeStatusChangeCheck(BaseEvent):
20+
name: Literal[EventNames.ENGINEERING_CHANGE_STATUS_CHANGE_CHECK] = EventNames.ENGINEERING_CHANGE_STATUS_CHANGE_CHECK
21+
data: EngineeringChangeStatusChangeCheckData

docs/reference/events.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,3 +285,23 @@ This event is fired **after** an engineering change's status has been modified.
285285
|prev_status|str|The previous status of the engineering change|
286286
|documents|list[[Document](objects.md#document)]|List of documents attached to the engineering change|
287287
|parts|list[[Part](objects.md#part)]|List of parts attached to the engineering change|
288+
289+
## EngineeringChangeStatusChangeCheck
290+
`csfunctions.events.EngineeringChangeStatusChangeCheck`
291+
292+
This event is fired when a user tries to modify an engineering change's status. Raising an exception will prevent the status change.
293+
294+
**Supported actions:**
295+
296+
- [AbortAndShowErrorAction](actions.md#AbortAndShowErrorAction)
297+
298+
**EngineeringChangeStatusChangeCheck.name:** engineering_change_status_change_check
299+
300+
**EngineeringChangeStatusChangeCheck.data:**
301+
302+
|Attribute|Type|Description|
303+
|-|-|-|
304+
|engineering_change|[EngineeringChange](objects.md#engineeringchange)|The engineering change that will have its status modified|
305+
|target_status|int|The status the engineering change will be set to|
306+
|documents|list[[Document](objects.md#document)]|List of documents attached to the engineering change|
307+
|parts|list[[Part](objects.md#part)]|List of parts attached to the engineering change|

0 commit comments

Comments
 (0)