Skip to content

Commit 848c3bd

Browse files
author
Jens Kürten
committed
add custom operation for part
1 parent 60664f4 commit 848c3bd

File tree

4 files changed

+84
-1
lines changed

4 files changed

+84
-1
lines changed

csfunctions/events/__init__.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@
22

33
from pydantic import Field
44

5-
from .custom_operations import CustomOperationDocumentData, CustomOperationDocumentEvent
5+
from .custom_operations import (
6+
CustomOperationDocumentData,
7+
CustomOperationDocumentEvent,
8+
CustomOperationPartData,
9+
CustomOperationPartEvent,
10+
)
611
from .dialog_data import DocumentReleasedDialogData, PartReleasedDialogData
712
from .document_create_check import DocumentCreateCheckData, DocumentCreateCheckEvent
813
from .document_field_calculation import DocumentFieldCalculationData, DocumentFieldCalculationEvent
@@ -38,6 +43,7 @@
3843
PartCreateCheckEvent,
3944
PartModifyCheckEvent,
4045
CustomOperationDocumentEvent,
46+
CustomOperationPartEvent,
4147
],
4248
Field(discriminator="name"),
4349
]
@@ -58,6 +64,7 @@
5864
PartCreateCheckData,
5965
PartModifyCheckData,
6066
CustomOperationDocumentData,
67+
CustomOperationPartData,
6168
]
6269

6370
__all__ = [
@@ -95,4 +102,6 @@
95102
"PartModifyCheckEvent",
96103
"CustomOperationDocumentData",
97104
"CustomOperationDocumentEvent",
105+
"CustomOperationPartData",
106+
"CustomOperationPartEvent",
98107
]

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
CUSTOM_OPERATION_DOCUMENT = "custom_operation_document"
23+
CUSTOM_OPERATION_PART = "custom_operation_part"
2324

2425

2526
class BaseEvent(BaseModel):

csfunctions/events/custom_operations.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from .base import BaseEvent, EventNames
88

99

10+
# ----------- DOCUMENTS -----------
1011
class CustomOperationDocumentData(BaseModel):
1112
documents: list[Document] = Field(..., description="List of documents that the custom operation was called on")
1213
parts: list[Part] = Field(..., description="List of parts that belong to the documents")
@@ -19,3 +20,20 @@ class CustomOperationDocumentEvent(BaseEvent):
1920

2021
name: Literal[EventNames.CUSTOM_OPERATION_DOCUMENT] = EventNames.CUSTOM_OPERATION_DOCUMENT
2122
data: CustomOperationDocumentData
23+
24+
25+
# ----------- PARTS -----------
26+
27+
28+
class CustomOperationPartData(BaseModel):
29+
parts: list[Part] = Field(..., description="List of parts that the custom operation was called on")
30+
documents: list[Document] = Field(..., description="List of documents that belong to the parts")
31+
32+
33+
class CustomOperationPartEvent(BaseEvent):
34+
"""
35+
Event triggered when a custom operation is called on a part.
36+
"""
37+
38+
name: Literal[EventNames.CUSTOM_OPERATION_PART] = EventNames.CUSTOM_OPERATION_PART
39+
data: CustomOperationPartData

json_schemas/request.json

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,57 @@
136136
"title": "CustomOperationDocumentEvent",
137137
"type": "object"
138138
},
139+
"CustomOperationPartData": {
140+
"properties": {
141+
"parts": {
142+
"description": "List of parts that the custom operation was called on",
143+
"items": {
144+
"$ref": "#/$defs/Part"
145+
},
146+
"title": "Parts",
147+
"type": "array"
148+
},
149+
"documents": {
150+
"description": "List of documents that belong to the parts",
151+
"items": {
152+
"$ref": "#/$defs/Document"
153+
},
154+
"title": "Documents",
155+
"type": "array"
156+
}
157+
},
158+
"required": [
159+
"parts",
160+
"documents"
161+
],
162+
"title": "CustomOperationPartData",
163+
"type": "object"
164+
},
165+
"CustomOperationPartEvent": {
166+
"description": "Event triggered when a custom operation is called on a part.",
167+
"properties": {
168+
"name": {
169+
"const": "custom_operation_part",
170+
"default": "custom_operation_part",
171+
"title": "Name",
172+
"type": "string"
173+
},
174+
"event_id": {
175+
"description": "unique identifier",
176+
"title": "Event Id",
177+
"type": "string"
178+
},
179+
"data": {
180+
"$ref": "#/$defs/CustomOperationPartData"
181+
}
182+
},
183+
"required": [
184+
"event_id",
185+
"data"
186+
],
187+
"title": "CustomOperationPartEvent",
188+
"type": "object"
189+
},
139190
"Document": {
140191
"description": "Normal Document that doesn't contain a CAD-Model.",
141192
"properties": {
@@ -3120,6 +3171,7 @@
31203171
"discriminator": {
31213172
"mapping": {
31223173
"custom_operation_document": "#/$defs/CustomOperationDocumentEvent",
3174+
"custom_operation_part": "#/$defs/CustomOperationPartEvent",
31233175
"document_create_check": "#/$defs/DocumentCreateCheckEvent",
31243176
"document_field_calculation": "#/$defs/DocumentFieldCalculationEvent",
31253177
"document_modify_check": "#/$defs/DocumentModifyCheckEvent",
@@ -3186,6 +3238,9 @@
31863238
},
31873239
{
31883240
"$ref": "#/$defs/CustomOperationDocumentEvent"
3241+
},
3242+
{
3243+
"$ref": "#/$defs/CustomOperationPartEvent"
31893244
}
31903245
],
31913246
"title": "Event"

0 commit comments

Comments
 (0)