zou 0.20.82__py3-none-any.whl → 0.20.84__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.
Files changed (114) hide show
  1. zou/__init__.py +1 -1
  2. zou/app/blueprints/assets/resources.py +1060 -153
  3. zou/app/blueprints/auth/resources.py +368 -238
  4. zou/app/blueprints/breakdown/resources.py +584 -94
  5. zou/app/blueprints/chats/resources.py +176 -37
  6. zou/app/blueprints/comments/resources.py +409 -150
  7. zou/app/blueprints/concepts/resources.py +443 -63
  8. zou/app/blueprints/crud/asset_instance.py +272 -0
  9. zou/app/blueprints/crud/attachment_file.py +263 -0
  10. zou/app/blueprints/crud/base.py +176 -69
  11. zou/app/blueprints/crud/budget.py +278 -0
  12. zou/app/blueprints/crud/budget_entry.py +269 -0
  13. zou/app/blueprints/crud/chat.py +282 -0
  14. zou/app/blueprints/crud/chat_message.py +286 -0
  15. zou/app/blueprints/crud/comments.py +312 -1
  16. zou/app/blueprints/crud/custom_action.py +268 -0
  17. zou/app/blueprints/crud/day_off.py +298 -0
  18. zou/app/blueprints/crud/department.py +268 -0
  19. zou/app/blueprints/crud/entity.py +297 -3
  20. zou/app/blueprints/crud/entity_link.py +303 -0
  21. zou/app/blueprints/crud/entity_type.py +269 -0
  22. zou/app/blueprints/crud/event.py +197 -0
  23. zou/app/blueprints/crud/file_status.py +268 -0
  24. zou/app/blueprints/crud/hardware_item.py +268 -0
  25. zou/app/blueprints/crud/metadata_descriptor.py +312 -0
  26. zou/app/blueprints/crud/milestone.py +302 -1
  27. zou/app/blueprints/crud/news.py +285 -0
  28. zou/app/blueprints/crud/notification.py +287 -0
  29. zou/app/blueprints/crud/organisation.py +269 -0
  30. zou/app/blueprints/crud/output_file.py +34 -10
  31. zou/app/blueprints/crud/output_type.py +30 -10
  32. zou/app/blueprints/crud/person.py +407 -2
  33. zou/app/blueprints/crud/playlist.py +322 -4
  34. zou/app/blueprints/crud/plugin.py +269 -0
  35. zou/app/blueprints/crud/preview_background_file.py +272 -0
  36. zou/app/blueprints/crud/preview_file.py +280 -9
  37. zou/app/blueprints/crud/production_schedule_version.py +569 -0
  38. zou/app/blueprints/crud/project.py +440 -0
  39. zou/app/blueprints/crud/project_status.py +268 -0
  40. zou/app/blueprints/crud/salary_scale.py +185 -5
  41. zou/app/blueprints/crud/schedule_item.py +305 -0
  42. zou/app/blueprints/crud/search_filter.py +302 -0
  43. zou/app/blueprints/crud/search_filter_group.py +270 -0
  44. zou/app/blueprints/crud/software.py +30 -10
  45. zou/app/blueprints/crud/status_automation.py +296 -2
  46. zou/app/blueprints/crud/studio.py +268 -0
  47. zou/app/blueprints/crud/subscription.py +279 -0
  48. zou/app/blueprints/crud/task.py +325 -5
  49. zou/app/blueprints/crud/task_status.py +301 -0
  50. zou/app/blueprints/crud/task_type.py +283 -0
  51. zou/app/blueprints/crud/time_spent.py +327 -0
  52. zou/app/blueprints/crud/working_file.py +273 -10
  53. zou/app/blueprints/departments/resources.py +302 -68
  54. zou/app/blueprints/edits/resources.py +651 -81
  55. zou/app/blueprints/entities/resources.py +104 -39
  56. zou/app/blueprints/events/resources.py +96 -8
  57. zou/app/blueprints/export/csv/assets.py +15 -5
  58. zou/app/blueprints/export/csv/base.py +12 -3
  59. zou/app/blueprints/export/csv/casting.py +32 -5
  60. zou/app/blueprints/export/csv/edits.py +15 -5
  61. zou/app/blueprints/export/csv/persons.py +24 -0
  62. zou/app/blueprints/export/csv/playlists.py +16 -5
  63. zou/app/blueprints/export/csv/projects.py +23 -0
  64. zou/app/blueprints/export/csv/shots.py +15 -5
  65. zou/app/blueprints/export/csv/task_types.py +23 -0
  66. zou/app/blueprints/export/csv/tasks.py +24 -0
  67. zou/app/blueprints/export/csv/time_spents.py +24 -0
  68. zou/app/blueprints/files/resources.py +928 -377
  69. zou/app/blueprints/index/resources.py +49 -42
  70. zou/app/blueprints/news/resources.py +47 -27
  71. zou/app/blueprints/persons/resources.py +644 -271
  72. zou/app/blueprints/playlists/resources.py +154 -72
  73. zou/app/blueprints/previews/resources.py +473 -228
  74. zou/app/blueprints/projects/__init__.py +5 -0
  75. zou/app/blueprints/projects/resources.py +987 -420
  76. zou/app/blueprints/search/resources.py +44 -32
  77. zou/app/blueprints/shots/resources.py +1338 -88
  78. zou/app/blueprints/source/csv/assets.py +44 -6
  79. zou/app/blueprints/source/csv/casting.py +43 -6
  80. zou/app/blueprints/source/csv/edits.py +47 -9
  81. zou/app/blueprints/source/csv/persons.py +43 -4
  82. zou/app/blueprints/source/csv/shots.py +47 -6
  83. zou/app/blueprints/source/csv/task_type_estimations.py +95 -35
  84. zou/app/blueprints/source/kitsu.py +433 -11
  85. zou/app/blueprints/source/otio.py +215 -20
  86. zou/app/blueprints/source/shotgun/assets.py +146 -0
  87. zou/app/blueprints/source/shotgun/base.py +85 -14
  88. zou/app/blueprints/source/shotgun/episode.py +124 -0
  89. zou/app/blueprints/source/shotgun/import_errors.py +105 -14
  90. zou/app/blueprints/source/shotgun/notes.py +132 -0
  91. zou/app/blueprints/source/shotgun/person.py +163 -0
  92. zou/app/blueprints/source/shotgun/project.py +120 -0
  93. zou/app/blueprints/source/shotgun/scene.py +120 -0
  94. zou/app/blueprints/source/shotgun/sequence.py +134 -0
  95. zou/app/blueprints/source/shotgun/shot.py +166 -0
  96. zou/app/blueprints/source/shotgun/status.py +129 -0
  97. zou/app/blueprints/source/shotgun/steps.py +138 -0
  98. zou/app/blueprints/source/shotgun/tasks.py +199 -0
  99. zou/app/blueprints/source/shotgun/team.py +132 -0
  100. zou/app/blueprints/source/shotgun/versions.py +155 -0
  101. zou/app/blueprints/tasks/resources.py +1197 -308
  102. zou/app/blueprints/user/resources.py +1808 -215
  103. zou/app/models/metadata_descriptor.py +1 -0
  104. zou/app/services/persons_service.py +1 -1
  105. zou/app/services/projects_service.py +45 -1
  106. zou/app/services/time_spents_service.py +1 -1
  107. zou/app/swagger.py +100 -27
  108. zou/migrations/versions/a1b2c3d4e5f6_add_position_to_metadata_descriptor.py +32 -0
  109. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/METADATA +18 -18
  110. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/RECORD +114 -113
  111. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/WHEEL +0 -0
  112. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/entry_points.txt +0 -0
  113. {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/licenses/LICENSE +0 -0
  114. {zou-0.20.82.dist-info → zou-0.20.84.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(