zou 0.20.83__py3-none-any.whl → 0.20.85__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zou/__init__.py +1 -1
- zou/app/blueprints/comments/resources.py +32 -35
- zou/app/blueprints/concepts/resources.py +23 -8
- zou/app/blueprints/crud/asset_instance.py +272 -0
- zou/app/blueprints/crud/attachment_file.py +263 -0
- zou/app/blueprints/crud/base.py +176 -69
- zou/app/blueprints/crud/budget.py +278 -0
- zou/app/blueprints/crud/budget_entry.py +269 -0
- zou/app/blueprints/crud/chat.py +282 -0
- zou/app/blueprints/crud/chat_message.py +286 -0
- zou/app/blueprints/crud/comments.py +312 -1
- zou/app/blueprints/crud/custom_action.py +268 -0
- zou/app/blueprints/crud/day_off.py +298 -0
- zou/app/blueprints/crud/department.py +268 -0
- zou/app/blueprints/crud/entity.py +297 -3
- zou/app/blueprints/crud/entity_link.py +303 -0
- zou/app/blueprints/crud/entity_type.py +269 -0
- zou/app/blueprints/crud/event.py +197 -0
- zou/app/blueprints/crud/file_status.py +268 -0
- zou/app/blueprints/crud/hardware_item.py +268 -0
- zou/app/blueprints/crud/metadata_descriptor.py +312 -0
- zou/app/blueprints/crud/milestone.py +302 -1
- zou/app/blueprints/crud/news.py +285 -0
- zou/app/blueprints/crud/notification.py +287 -0
- zou/app/blueprints/crud/organisation.py +269 -0
- zou/app/blueprints/crud/output_file.py +34 -10
- zou/app/blueprints/crud/output_type.py +30 -10
- zou/app/blueprints/crud/person.py +407 -2
- zou/app/blueprints/crud/playlist.py +322 -4
- zou/app/blueprints/crud/plugin.py +269 -0
- zou/app/blueprints/crud/preview_background_file.py +272 -0
- zou/app/blueprints/crud/preview_file.py +280 -9
- zou/app/blueprints/crud/production_schedule_version.py +569 -0
- zou/app/blueprints/crud/project.py +440 -0
- zou/app/blueprints/crud/project_status.py +268 -0
- zou/app/blueprints/crud/salary_scale.py +185 -5
- zou/app/blueprints/crud/schedule_item.py +305 -0
- zou/app/blueprints/crud/search_filter.py +302 -0
- zou/app/blueprints/crud/search_filter_group.py +270 -0
- zou/app/blueprints/crud/software.py +30 -10
- zou/app/blueprints/crud/status_automation.py +296 -2
- zou/app/blueprints/crud/studio.py +268 -0
- zou/app/blueprints/crud/subscription.py +279 -0
- zou/app/blueprints/crud/task.py +325 -5
- zou/app/blueprints/crud/task_status.py +301 -0
- zou/app/blueprints/crud/task_type.py +283 -0
- zou/app/blueprints/crud/time_spent.py +327 -0
- zou/app/blueprints/crud/working_file.py +273 -10
- zou/app/blueprints/export/csv/assets.py +15 -5
- zou/app/blueprints/export/csv/base.py +12 -3
- zou/app/blueprints/export/csv/casting.py +32 -5
- zou/app/blueprints/export/csv/edits.py +15 -5
- zou/app/blueprints/export/csv/persons.py +24 -0
- zou/app/blueprints/export/csv/playlists.py +16 -5
- zou/app/blueprints/export/csv/projects.py +23 -0
- zou/app/blueprints/export/csv/shots.py +15 -5
- zou/app/blueprints/export/csv/task_types.py +23 -0
- zou/app/blueprints/export/csv/tasks.py +24 -0
- zou/app/blueprints/export/csv/time_spents.py +24 -0
- zou/app/blueprints/files/resources.py +928 -377
- zou/app/blueprints/news/resources.py +7 -5
- zou/app/blueprints/persons/resources.py +644 -271
- zou/app/blueprints/playlists/resources.py +154 -72
- zou/app/blueprints/previews/resources.py +473 -228
- zou/app/blueprints/projects/__init__.py +5 -0
- zou/app/blueprints/projects/resources.py +987 -420
- zou/app/blueprints/search/resources.py +44 -32
- zou/app/blueprints/shots/resources.py +1338 -88
- zou/app/blueprints/source/csv/assets.py +44 -6
- zou/app/blueprints/source/csv/casting.py +43 -6
- zou/app/blueprints/source/csv/edits.py +47 -9
- zou/app/blueprints/source/csv/persons.py +43 -4
- zou/app/blueprints/source/csv/shots.py +47 -6
- zou/app/blueprints/source/csv/task_type_estimations.py +95 -35
- zou/app/blueprints/source/kitsu.py +433 -11
- zou/app/blueprints/source/otio.py +215 -20
- zou/app/blueprints/source/shotgun/assets.py +146 -0
- zou/app/blueprints/source/shotgun/base.py +85 -14
- zou/app/blueprints/source/shotgun/episode.py +124 -0
- zou/app/blueprints/source/shotgun/import_errors.py +105 -14
- zou/app/blueprints/source/shotgun/notes.py +132 -0
- zou/app/blueprints/source/shotgun/person.py +163 -0
- zou/app/blueprints/source/shotgun/project.py +120 -0
- zou/app/blueprints/source/shotgun/scene.py +120 -0
- zou/app/blueprints/source/shotgun/sequence.py +134 -0
- zou/app/blueprints/source/shotgun/shot.py +166 -0
- zou/app/blueprints/source/shotgun/status.py +129 -0
- zou/app/blueprints/source/shotgun/steps.py +138 -0
- zou/app/blueprints/source/shotgun/tasks.py +199 -0
- zou/app/blueprints/source/shotgun/team.py +132 -0
- zou/app/blueprints/source/shotgun/versions.py +155 -0
- zou/app/blueprints/tasks/resources.py +1197 -308
- zou/app/models/metadata_descriptor.py +1 -0
- zou/app/services/persons_service.py +1 -1
- zou/app/services/projects_service.py +45 -1
- zou/app/services/time_spents_service.py +1 -1
- zou/migrations/versions/a1b2c3d4e5f6_add_position_to_metadata_descriptor.py +32 -0
- {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/METADATA +18 -18
- {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/RECORD +103 -102
- {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/WHEEL +0 -0
- {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/entry_points.txt +0 -0
- {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/licenses/LICENSE +0 -0
- {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/top_level.txt +0 -0
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
from flask_jwt_extended import jwt_required
|
|
2
|
+
|
|
1
3
|
from zou.app.models.production_schedule_version import (
|
|
2
4
|
ProductionScheduleVersion,
|
|
3
5
|
ProductionScheduleVersionTaskLink,
|
|
@@ -24,6 +26,144 @@ class ProductionScheduleVersionsResource(BaseModelsResource):
|
|
|
24
26
|
else:
|
|
25
27
|
return permissions.check_admin_permissions()
|
|
26
28
|
|
|
29
|
+
@jwt_required()
|
|
30
|
+
def get(self):
|
|
31
|
+
"""
|
|
32
|
+
Get production schedule versions
|
|
33
|
+
---
|
|
34
|
+
tags:
|
|
35
|
+
- Crud
|
|
36
|
+
description: Retrieve all production schedule versions. Supports
|
|
37
|
+
filtering via query parameters and pagination. Vendor and
|
|
38
|
+
client access is blocked. Requires project access or admin
|
|
39
|
+
permissions.
|
|
40
|
+
parameters:
|
|
41
|
+
- in: query
|
|
42
|
+
name: page
|
|
43
|
+
required: false
|
|
44
|
+
schema:
|
|
45
|
+
type: integer
|
|
46
|
+
example: 1
|
|
47
|
+
description: Page number for pagination
|
|
48
|
+
- in: query
|
|
49
|
+
name: limit
|
|
50
|
+
required: false
|
|
51
|
+
schema:
|
|
52
|
+
type: integer
|
|
53
|
+
example: 50
|
|
54
|
+
description: Number of results per page
|
|
55
|
+
- in: query
|
|
56
|
+
name: relations
|
|
57
|
+
required: false
|
|
58
|
+
schema:
|
|
59
|
+
type: boolean
|
|
60
|
+
default: false
|
|
61
|
+
example: false
|
|
62
|
+
description: Whether to include relations
|
|
63
|
+
- in: query
|
|
64
|
+
name: project_id
|
|
65
|
+
required: false
|
|
66
|
+
schema:
|
|
67
|
+
type: string
|
|
68
|
+
format: uuid
|
|
69
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
70
|
+
description: Filter by project ID
|
|
71
|
+
responses:
|
|
72
|
+
200:
|
|
73
|
+
description: Production schedule versions retrieved successfully
|
|
74
|
+
content:
|
|
75
|
+
application/json:
|
|
76
|
+
schema:
|
|
77
|
+
oneOf:
|
|
78
|
+
- type: array
|
|
79
|
+
items:
|
|
80
|
+
type: object
|
|
81
|
+
- type: object
|
|
82
|
+
properties:
|
|
83
|
+
data:
|
|
84
|
+
type: array
|
|
85
|
+
items:
|
|
86
|
+
type: object
|
|
87
|
+
example: []
|
|
88
|
+
total:
|
|
89
|
+
type: integer
|
|
90
|
+
example: 100
|
|
91
|
+
nb_pages:
|
|
92
|
+
type: integer
|
|
93
|
+
example: 2
|
|
94
|
+
limit:
|
|
95
|
+
type: integer
|
|
96
|
+
example: 50
|
|
97
|
+
offset:
|
|
98
|
+
type: integer
|
|
99
|
+
example: 0
|
|
100
|
+
page:
|
|
101
|
+
type: integer
|
|
102
|
+
example: 1
|
|
103
|
+
400:
|
|
104
|
+
description: Invalid filter format or query error
|
|
105
|
+
"""
|
|
106
|
+
return super().get()
|
|
107
|
+
|
|
108
|
+
@jwt_required()
|
|
109
|
+
def post(self):
|
|
110
|
+
"""
|
|
111
|
+
Create production schedule version
|
|
112
|
+
---
|
|
113
|
+
tags:
|
|
114
|
+
- Crud
|
|
115
|
+
description: Create a new production schedule version with data
|
|
116
|
+
provided in the request body. JSON format is expected.
|
|
117
|
+
Requires manager access to the project.
|
|
118
|
+
requestBody:
|
|
119
|
+
required: true
|
|
120
|
+
content:
|
|
121
|
+
application/json:
|
|
122
|
+
schema:
|
|
123
|
+
type: object
|
|
124
|
+
required:
|
|
125
|
+
- name
|
|
126
|
+
- project_id
|
|
127
|
+
properties:
|
|
128
|
+
name:
|
|
129
|
+
type: string
|
|
130
|
+
example: Schedule Version 1
|
|
131
|
+
project_id:
|
|
132
|
+
type: string
|
|
133
|
+
format: uuid
|
|
134
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
135
|
+
responses:
|
|
136
|
+
201:
|
|
137
|
+
description: Production schedule version created successfully
|
|
138
|
+
content:
|
|
139
|
+
application/json:
|
|
140
|
+
schema:
|
|
141
|
+
type: object
|
|
142
|
+
properties:
|
|
143
|
+
id:
|
|
144
|
+
type: string
|
|
145
|
+
format: uuid
|
|
146
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
147
|
+
name:
|
|
148
|
+
type: string
|
|
149
|
+
example: Schedule Version 1
|
|
150
|
+
project_id:
|
|
151
|
+
type: string
|
|
152
|
+
format: uuid
|
|
153
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
154
|
+
created_at:
|
|
155
|
+
type: string
|
|
156
|
+
format: date-time
|
|
157
|
+
example: "2024-01-15T10:30:00Z"
|
|
158
|
+
updated_at:
|
|
159
|
+
type: string
|
|
160
|
+
format: date-time
|
|
161
|
+
example: "2024-01-15T10:30:00Z"
|
|
162
|
+
400:
|
|
163
|
+
description: Invalid data format or validation error
|
|
164
|
+
"""
|
|
165
|
+
return super().post()
|
|
166
|
+
|
|
27
167
|
def check_create_permissions(self, data):
|
|
28
168
|
return user_service.check_manager_project_access(
|
|
29
169
|
project_id=data["project_id"]
|
|
@@ -42,6 +182,149 @@ class ProductionScheduleVersionResource(BaseModelResource):
|
|
|
42
182
|
raise permissions.PermissionDenied
|
|
43
183
|
return user_service.check_project_access(instance_dict["project_id"])
|
|
44
184
|
|
|
185
|
+
@jwt_required()
|
|
186
|
+
def get(self, instance_id):
|
|
187
|
+
"""
|
|
188
|
+
Get production schedule version
|
|
189
|
+
---
|
|
190
|
+
tags:
|
|
191
|
+
- Crud
|
|
192
|
+
description: Retrieve a production schedule version by its ID
|
|
193
|
+
and return it as a JSON object. Supports including relations.
|
|
194
|
+
Vendor and client access is blocked. Requires project access.
|
|
195
|
+
parameters:
|
|
196
|
+
- in: path
|
|
197
|
+
name: instance_id
|
|
198
|
+
required: true
|
|
199
|
+
schema:
|
|
200
|
+
type: string
|
|
201
|
+
format: uuid
|
|
202
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
203
|
+
- in: query
|
|
204
|
+
name: relations
|
|
205
|
+
required: false
|
|
206
|
+
schema:
|
|
207
|
+
type: boolean
|
|
208
|
+
default: true
|
|
209
|
+
example: true
|
|
210
|
+
description: Whether to include relations
|
|
211
|
+
responses:
|
|
212
|
+
200:
|
|
213
|
+
description: Production schedule version retrieved successfully
|
|
214
|
+
content:
|
|
215
|
+
application/json:
|
|
216
|
+
schema:
|
|
217
|
+
type: object
|
|
218
|
+
properties:
|
|
219
|
+
id:
|
|
220
|
+
type: string
|
|
221
|
+
format: uuid
|
|
222
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
223
|
+
name:
|
|
224
|
+
type: string
|
|
225
|
+
example: Schedule Version 1
|
|
226
|
+
project_id:
|
|
227
|
+
type: string
|
|
228
|
+
format: uuid
|
|
229
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
230
|
+
created_at:
|
|
231
|
+
type: string
|
|
232
|
+
format: date-time
|
|
233
|
+
example: "2024-01-15T10:30:00Z"
|
|
234
|
+
updated_at:
|
|
235
|
+
type: string
|
|
236
|
+
format: date-time
|
|
237
|
+
example: "2024-01-15T10:30:00Z"
|
|
238
|
+
400:
|
|
239
|
+
description: Invalid ID format or query error
|
|
240
|
+
"""
|
|
241
|
+
return super().get(instance_id)
|
|
242
|
+
|
|
243
|
+
@jwt_required()
|
|
244
|
+
def put(self, instance_id):
|
|
245
|
+
"""
|
|
246
|
+
Update production schedule version
|
|
247
|
+
---
|
|
248
|
+
tags:
|
|
249
|
+
- Crud
|
|
250
|
+
description: Update a production schedule version with data
|
|
251
|
+
provided in the request body. JSON format is expected.
|
|
252
|
+
Requires manager access to the project.
|
|
253
|
+
parameters:
|
|
254
|
+
- in: path
|
|
255
|
+
name: instance_id
|
|
256
|
+
required: true
|
|
257
|
+
schema:
|
|
258
|
+
type: string
|
|
259
|
+
format: uuid
|
|
260
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
261
|
+
requestBody:
|
|
262
|
+
required: true
|
|
263
|
+
content:
|
|
264
|
+
application/json:
|
|
265
|
+
schema:
|
|
266
|
+
type: object
|
|
267
|
+
properties:
|
|
268
|
+
name:
|
|
269
|
+
type: string
|
|
270
|
+
example: Updated Schedule Version 1
|
|
271
|
+
responses:
|
|
272
|
+
200:
|
|
273
|
+
description: Production schedule version updated successfully
|
|
274
|
+
content:
|
|
275
|
+
application/json:
|
|
276
|
+
schema:
|
|
277
|
+
type: object
|
|
278
|
+
properties:
|
|
279
|
+
id:
|
|
280
|
+
type: string
|
|
281
|
+
format: uuid
|
|
282
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
283
|
+
name:
|
|
284
|
+
type: string
|
|
285
|
+
example: Updated Schedule Version 1
|
|
286
|
+
project_id:
|
|
287
|
+
type: string
|
|
288
|
+
format: uuid
|
|
289
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
290
|
+
created_at:
|
|
291
|
+
type: string
|
|
292
|
+
format: date-time
|
|
293
|
+
example: "2024-01-15T10:30:00Z"
|
|
294
|
+
updated_at:
|
|
295
|
+
type: string
|
|
296
|
+
format: date-time
|
|
297
|
+
example: "2024-01-15T11:00:00Z"
|
|
298
|
+
400:
|
|
299
|
+
description: Invalid data format or validation error
|
|
300
|
+
"""
|
|
301
|
+
return super().put(instance_id)
|
|
302
|
+
|
|
303
|
+
@jwt_required()
|
|
304
|
+
def delete(self, instance_id):
|
|
305
|
+
"""
|
|
306
|
+
Delete production schedule version
|
|
307
|
+
---
|
|
308
|
+
tags:
|
|
309
|
+
- Crud
|
|
310
|
+
description: Delete a production schedule version by its ID.
|
|
311
|
+
Returns empty response on success.
|
|
312
|
+
parameters:
|
|
313
|
+
- in: path
|
|
314
|
+
name: instance_id
|
|
315
|
+
required: true
|
|
316
|
+
schema:
|
|
317
|
+
type: string
|
|
318
|
+
format: uuid
|
|
319
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
320
|
+
responses:
|
|
321
|
+
204:
|
|
322
|
+
description: Production schedule version deleted successfully
|
|
323
|
+
400:
|
|
324
|
+
description: Integrity error or cannot delete
|
|
325
|
+
"""
|
|
326
|
+
return super().delete(instance_id)
|
|
327
|
+
|
|
45
328
|
def check_update_permissions(self, instance_dict, data):
|
|
46
329
|
return user_service.check_manager_project_access(
|
|
47
330
|
project_id=instance_dict["project_id"]
|
|
@@ -63,6 +346,147 @@ class ProductionScheduleVersionTaskLinksResource(BaseModelsResource):
|
|
|
63
346
|
else:
|
|
64
347
|
return permissions.check_admin_permissions()
|
|
65
348
|
|
|
349
|
+
@jwt_required()
|
|
350
|
+
def get(self):
|
|
351
|
+
"""
|
|
352
|
+
Get production schedule version task links
|
|
353
|
+
---
|
|
354
|
+
tags:
|
|
355
|
+
- Crud
|
|
356
|
+
description: Retrieve all production schedule version task
|
|
357
|
+
links. Supports filtering via query parameters and pagination.
|
|
358
|
+
Vendor and client access is blocked. Requires project access
|
|
359
|
+
or admin permissions.
|
|
360
|
+
parameters:
|
|
361
|
+
- in: query
|
|
362
|
+
name: page
|
|
363
|
+
required: false
|
|
364
|
+
schema:
|
|
365
|
+
type: integer
|
|
366
|
+
example: 1
|
|
367
|
+
description: Page number for pagination
|
|
368
|
+
- in: query
|
|
369
|
+
name: limit
|
|
370
|
+
required: false
|
|
371
|
+
schema:
|
|
372
|
+
type: integer
|
|
373
|
+
example: 50
|
|
374
|
+
description: Number of results per page
|
|
375
|
+
- in: query
|
|
376
|
+
name: relations
|
|
377
|
+
required: false
|
|
378
|
+
schema:
|
|
379
|
+
type: boolean
|
|
380
|
+
default: false
|
|
381
|
+
example: false
|
|
382
|
+
description: Whether to include relations
|
|
383
|
+
- in: query
|
|
384
|
+
name: project_id
|
|
385
|
+
required: false
|
|
386
|
+
schema:
|
|
387
|
+
type: string
|
|
388
|
+
format: uuid
|
|
389
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
390
|
+
description: Filter by project ID
|
|
391
|
+
responses:
|
|
392
|
+
200:
|
|
393
|
+
description: Task links retrieved successfully
|
|
394
|
+
content:
|
|
395
|
+
application/json:
|
|
396
|
+
schema:
|
|
397
|
+
oneOf:
|
|
398
|
+
- type: array
|
|
399
|
+
items:
|
|
400
|
+
type: object
|
|
401
|
+
- type: object
|
|
402
|
+
properties:
|
|
403
|
+
data:
|
|
404
|
+
type: array
|
|
405
|
+
items:
|
|
406
|
+
type: object
|
|
407
|
+
example: []
|
|
408
|
+
total:
|
|
409
|
+
type: integer
|
|
410
|
+
example: 100
|
|
411
|
+
nb_pages:
|
|
412
|
+
type: integer
|
|
413
|
+
example: 2
|
|
414
|
+
limit:
|
|
415
|
+
type: integer
|
|
416
|
+
example: 50
|
|
417
|
+
offset:
|
|
418
|
+
type: integer
|
|
419
|
+
example: 0
|
|
420
|
+
page:
|
|
421
|
+
type: integer
|
|
422
|
+
example: 1
|
|
423
|
+
400:
|
|
424
|
+
description: Invalid filter format or query error
|
|
425
|
+
"""
|
|
426
|
+
return super().get()
|
|
427
|
+
|
|
428
|
+
@jwt_required()
|
|
429
|
+
def post(self):
|
|
430
|
+
"""
|
|
431
|
+
Create production schedule version task link
|
|
432
|
+
---
|
|
433
|
+
tags:
|
|
434
|
+
- Crud
|
|
435
|
+
description: Create a link between a production schedule version
|
|
436
|
+
and a task. JSON format is expected. Task and schedule version
|
|
437
|
+
must be in the same project. Requires manager access to the
|
|
438
|
+
project.
|
|
439
|
+
requestBody:
|
|
440
|
+
required: true
|
|
441
|
+
content:
|
|
442
|
+
application/json:
|
|
443
|
+
schema:
|
|
444
|
+
type: object
|
|
445
|
+
required:
|
|
446
|
+
- production_schedule_version_id
|
|
447
|
+
- task_id
|
|
448
|
+
properties:
|
|
449
|
+
production_schedule_version_id:
|
|
450
|
+
type: string
|
|
451
|
+
format: uuid
|
|
452
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
453
|
+
task_id:
|
|
454
|
+
type: string
|
|
455
|
+
format: uuid
|
|
456
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
457
|
+
responses:
|
|
458
|
+
201:
|
|
459
|
+
description: Task link created successfully
|
|
460
|
+
content:
|
|
461
|
+
application/json:
|
|
462
|
+
schema:
|
|
463
|
+
type: object
|
|
464
|
+
properties:
|
|
465
|
+
id:
|
|
466
|
+
type: string
|
|
467
|
+
format: uuid
|
|
468
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
469
|
+
production_schedule_version_id:
|
|
470
|
+
type: string
|
|
471
|
+
format: uuid
|
|
472
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
473
|
+
task_id:
|
|
474
|
+
type: string
|
|
475
|
+
format: uuid
|
|
476
|
+
example: c24a6ea4-ce75-4665-a070-57453082c25
|
|
477
|
+
created_at:
|
|
478
|
+
type: string
|
|
479
|
+
format: date-time
|
|
480
|
+
example: "2024-01-15T10:30:00Z"
|
|
481
|
+
updated_at:
|
|
482
|
+
type: string
|
|
483
|
+
format: date-time
|
|
484
|
+
example: "2024-01-15T10:30:00Z"
|
|
485
|
+
400:
|
|
486
|
+
description: Invalid data format or task and schedule version not in same project
|
|
487
|
+
"""
|
|
488
|
+
return super().post()
|
|
489
|
+
|
|
66
490
|
def check_create_permissions(self, data):
|
|
67
491
|
project_id_from_production_version_schedule = (
|
|
68
492
|
schedule_service.get_production_schedule_version(
|
|
@@ -101,6 +525,151 @@ class ProductionScheduleVersionTaskLinkResource(BaseModelResource):
|
|
|
101
525
|
task = tasks_service.get_task(instance_dict["task_id"])
|
|
102
526
|
return user_service.check_project_access(task["project_id"])
|
|
103
527
|
|
|
528
|
+
@jwt_required()
|
|
529
|
+
def get(self, instance_id):
|
|
530
|
+
"""
|
|
531
|
+
Get production schedule version task link
|
|
532
|
+
---
|
|
533
|
+
tags:
|
|
534
|
+
- Crud
|
|
535
|
+
description: Retrieve a production schedule version task link
|
|
536
|
+
by its ID and return it as a JSON object. Supports including
|
|
537
|
+
relations. Vendor and client access is blocked. Requires
|
|
538
|
+
project access.
|
|
539
|
+
parameters:
|
|
540
|
+
- in: path
|
|
541
|
+
name: instance_id
|
|
542
|
+
required: true
|
|
543
|
+
schema:
|
|
544
|
+
type: string
|
|
545
|
+
format: uuid
|
|
546
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
547
|
+
- in: query
|
|
548
|
+
name: relations
|
|
549
|
+
required: false
|
|
550
|
+
schema:
|
|
551
|
+
type: boolean
|
|
552
|
+
default: true
|
|
553
|
+
example: true
|
|
554
|
+
description: Whether to include relations
|
|
555
|
+
responses:
|
|
556
|
+
200:
|
|
557
|
+
description: Task link retrieved successfully
|
|
558
|
+
content:
|
|
559
|
+
application/json:
|
|
560
|
+
schema:
|
|
561
|
+
type: object
|
|
562
|
+
properties:
|
|
563
|
+
id:
|
|
564
|
+
type: string
|
|
565
|
+
format: uuid
|
|
566
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
567
|
+
production_schedule_version_id:
|
|
568
|
+
type: string
|
|
569
|
+
format: uuid
|
|
570
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
571
|
+
task_id:
|
|
572
|
+
type: string
|
|
573
|
+
format: uuid
|
|
574
|
+
example: c24a6ea4-ce75-4665-a070-57453082c25
|
|
575
|
+
created_at:
|
|
576
|
+
type: string
|
|
577
|
+
format: date-time
|
|
578
|
+
example: "2024-01-15T10:30:00Z"
|
|
579
|
+
updated_at:
|
|
580
|
+
type: string
|
|
581
|
+
format: date-time
|
|
582
|
+
example: "2024-01-15T10:30:00Z"
|
|
583
|
+
400:
|
|
584
|
+
description: Invalid ID format or query error
|
|
585
|
+
"""
|
|
586
|
+
return super().get(instance_id)
|
|
587
|
+
|
|
588
|
+
@jwt_required()
|
|
589
|
+
def put(self, instance_id):
|
|
590
|
+
"""
|
|
591
|
+
Update production schedule version task link
|
|
592
|
+
---
|
|
593
|
+
tags:
|
|
594
|
+
- Crud
|
|
595
|
+
description: Update a production schedule version task link
|
|
596
|
+
with data provided in the request body. JSON format is
|
|
597
|
+
expected. Protected fields cannot be changed. Requires
|
|
598
|
+
manager access to the project.
|
|
599
|
+
parameters:
|
|
600
|
+
- in: path
|
|
601
|
+
name: instance_id
|
|
602
|
+
required: true
|
|
603
|
+
schema:
|
|
604
|
+
type: string
|
|
605
|
+
format: uuid
|
|
606
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
607
|
+
requestBody:
|
|
608
|
+
required: true
|
|
609
|
+
content:
|
|
610
|
+
application/json:
|
|
611
|
+
schema:
|
|
612
|
+
type: object
|
|
613
|
+
properties: {}
|
|
614
|
+
responses:
|
|
615
|
+
200:
|
|
616
|
+
description: Task link updated successfully
|
|
617
|
+
content:
|
|
618
|
+
application/json:
|
|
619
|
+
schema:
|
|
620
|
+
type: object
|
|
621
|
+
properties:
|
|
622
|
+
id:
|
|
623
|
+
type: string
|
|
624
|
+
format: uuid
|
|
625
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
626
|
+
production_schedule_version_id:
|
|
627
|
+
type: string
|
|
628
|
+
format: uuid
|
|
629
|
+
example: b24a6ea4-ce75-4665-a070-57453082c25
|
|
630
|
+
task_id:
|
|
631
|
+
type: string
|
|
632
|
+
format: uuid
|
|
633
|
+
example: c24a6ea4-ce75-4665-a070-57453082c25
|
|
634
|
+
created_at:
|
|
635
|
+
type: string
|
|
636
|
+
format: date-time
|
|
637
|
+
example: "2024-01-15T10:30:00Z"
|
|
638
|
+
updated_at:
|
|
639
|
+
type: string
|
|
640
|
+
format: date-time
|
|
641
|
+
example: "2024-01-15T11:00:00Z"
|
|
642
|
+
400:
|
|
643
|
+
description: Invalid data format or validation error
|
|
644
|
+
"""
|
|
645
|
+
return super().put(instance_id)
|
|
646
|
+
|
|
647
|
+
@jwt_required()
|
|
648
|
+
def delete(self, instance_id):
|
|
649
|
+
"""
|
|
650
|
+
Delete production schedule version task link
|
|
651
|
+
---
|
|
652
|
+
tags:
|
|
653
|
+
- Crud
|
|
654
|
+
description: Delete a production schedule version task link
|
|
655
|
+
by its ID. Returns empty response on success. Requires
|
|
656
|
+
manager access to the project.
|
|
657
|
+
parameters:
|
|
658
|
+
- in: path
|
|
659
|
+
name: instance_id
|
|
660
|
+
required: true
|
|
661
|
+
schema:
|
|
662
|
+
type: string
|
|
663
|
+
format: uuid
|
|
664
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
665
|
+
responses:
|
|
666
|
+
204:
|
|
667
|
+
description: Task link deleted successfully
|
|
668
|
+
400:
|
|
669
|
+
description: Integrity error or cannot delete
|
|
670
|
+
"""
|
|
671
|
+
return super().delete(instance_id)
|
|
672
|
+
|
|
104
673
|
def check_update_permissions(self, instance_dict, data):
|
|
105
674
|
task = tasks_service.get_task(instance_dict["task_id"])
|
|
106
675
|
return user_service.check_manager_project_access(
|