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.
Files changed (103) hide show
  1. zou/__init__.py +1 -1
  2. zou/app/blueprints/comments/resources.py +32 -35
  3. zou/app/blueprints/concepts/resources.py +23 -8
  4. zou/app/blueprints/crud/asset_instance.py +272 -0
  5. zou/app/blueprints/crud/attachment_file.py +263 -0
  6. zou/app/blueprints/crud/base.py +176 -69
  7. zou/app/blueprints/crud/budget.py +278 -0
  8. zou/app/blueprints/crud/budget_entry.py +269 -0
  9. zou/app/blueprints/crud/chat.py +282 -0
  10. zou/app/blueprints/crud/chat_message.py +286 -0
  11. zou/app/blueprints/crud/comments.py +312 -1
  12. zou/app/blueprints/crud/custom_action.py +268 -0
  13. zou/app/blueprints/crud/day_off.py +298 -0
  14. zou/app/blueprints/crud/department.py +268 -0
  15. zou/app/blueprints/crud/entity.py +297 -3
  16. zou/app/blueprints/crud/entity_link.py +303 -0
  17. zou/app/blueprints/crud/entity_type.py +269 -0
  18. zou/app/blueprints/crud/event.py +197 -0
  19. zou/app/blueprints/crud/file_status.py +268 -0
  20. zou/app/blueprints/crud/hardware_item.py +268 -0
  21. zou/app/blueprints/crud/metadata_descriptor.py +312 -0
  22. zou/app/blueprints/crud/milestone.py +302 -1
  23. zou/app/blueprints/crud/news.py +285 -0
  24. zou/app/blueprints/crud/notification.py +287 -0
  25. zou/app/blueprints/crud/organisation.py +269 -0
  26. zou/app/blueprints/crud/output_file.py +34 -10
  27. zou/app/blueprints/crud/output_type.py +30 -10
  28. zou/app/blueprints/crud/person.py +407 -2
  29. zou/app/blueprints/crud/playlist.py +322 -4
  30. zou/app/blueprints/crud/plugin.py +269 -0
  31. zou/app/blueprints/crud/preview_background_file.py +272 -0
  32. zou/app/blueprints/crud/preview_file.py +280 -9
  33. zou/app/blueprints/crud/production_schedule_version.py +569 -0
  34. zou/app/blueprints/crud/project.py +440 -0
  35. zou/app/blueprints/crud/project_status.py +268 -0
  36. zou/app/blueprints/crud/salary_scale.py +185 -5
  37. zou/app/blueprints/crud/schedule_item.py +305 -0
  38. zou/app/blueprints/crud/search_filter.py +302 -0
  39. zou/app/blueprints/crud/search_filter_group.py +270 -0
  40. zou/app/blueprints/crud/software.py +30 -10
  41. zou/app/blueprints/crud/status_automation.py +296 -2
  42. zou/app/blueprints/crud/studio.py +268 -0
  43. zou/app/blueprints/crud/subscription.py +279 -0
  44. zou/app/blueprints/crud/task.py +325 -5
  45. zou/app/blueprints/crud/task_status.py +301 -0
  46. zou/app/blueprints/crud/task_type.py +283 -0
  47. zou/app/blueprints/crud/time_spent.py +327 -0
  48. zou/app/blueprints/crud/working_file.py +273 -10
  49. zou/app/blueprints/export/csv/assets.py +15 -5
  50. zou/app/blueprints/export/csv/base.py +12 -3
  51. zou/app/blueprints/export/csv/casting.py +32 -5
  52. zou/app/blueprints/export/csv/edits.py +15 -5
  53. zou/app/blueprints/export/csv/persons.py +24 -0
  54. zou/app/blueprints/export/csv/playlists.py +16 -5
  55. zou/app/blueprints/export/csv/projects.py +23 -0
  56. zou/app/blueprints/export/csv/shots.py +15 -5
  57. zou/app/blueprints/export/csv/task_types.py +23 -0
  58. zou/app/blueprints/export/csv/tasks.py +24 -0
  59. zou/app/blueprints/export/csv/time_spents.py +24 -0
  60. zou/app/blueprints/files/resources.py +928 -377
  61. zou/app/blueprints/news/resources.py +7 -5
  62. zou/app/blueprints/persons/resources.py +644 -271
  63. zou/app/blueprints/playlists/resources.py +154 -72
  64. zou/app/blueprints/previews/resources.py +473 -228
  65. zou/app/blueprints/projects/__init__.py +5 -0
  66. zou/app/blueprints/projects/resources.py +987 -420
  67. zou/app/blueprints/search/resources.py +44 -32
  68. zou/app/blueprints/shots/resources.py +1338 -88
  69. zou/app/blueprints/source/csv/assets.py +44 -6
  70. zou/app/blueprints/source/csv/casting.py +43 -6
  71. zou/app/blueprints/source/csv/edits.py +47 -9
  72. zou/app/blueprints/source/csv/persons.py +43 -4
  73. zou/app/blueprints/source/csv/shots.py +47 -6
  74. zou/app/blueprints/source/csv/task_type_estimations.py +95 -35
  75. zou/app/blueprints/source/kitsu.py +433 -11
  76. zou/app/blueprints/source/otio.py +215 -20
  77. zou/app/blueprints/source/shotgun/assets.py +146 -0
  78. zou/app/blueprints/source/shotgun/base.py +85 -14
  79. zou/app/blueprints/source/shotgun/episode.py +124 -0
  80. zou/app/blueprints/source/shotgun/import_errors.py +105 -14
  81. zou/app/blueprints/source/shotgun/notes.py +132 -0
  82. zou/app/blueprints/source/shotgun/person.py +163 -0
  83. zou/app/blueprints/source/shotgun/project.py +120 -0
  84. zou/app/blueprints/source/shotgun/scene.py +120 -0
  85. zou/app/blueprints/source/shotgun/sequence.py +134 -0
  86. zou/app/blueprints/source/shotgun/shot.py +166 -0
  87. zou/app/blueprints/source/shotgun/status.py +129 -0
  88. zou/app/blueprints/source/shotgun/steps.py +138 -0
  89. zou/app/blueprints/source/shotgun/tasks.py +199 -0
  90. zou/app/blueprints/source/shotgun/team.py +132 -0
  91. zou/app/blueprints/source/shotgun/versions.py +155 -0
  92. zou/app/blueprints/tasks/resources.py +1197 -308
  93. zou/app/models/metadata_descriptor.py +1 -0
  94. zou/app/services/persons_service.py +1 -1
  95. zou/app/services/projects_service.py +45 -1
  96. zou/app/services/time_spents_service.py +1 -1
  97. zou/migrations/versions/a1b2c3d4e5f6_add_position_to_metadata_descriptor.py +32 -0
  98. {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/METADATA +18 -18
  99. {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/RECORD +103 -102
  100. {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/WHEEL +0 -0
  101. {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/entry_points.txt +0 -0
  102. {zou-0.20.83.dist-info → zou-0.20.85.dist-info}/licenses/LICENSE +0 -0
  103. {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.chat import Chat
2
4
 
3
5
  from zou.app.blueprints.crud.base import BaseModelResource, BaseModelsResource
@@ -7,7 +9,287 @@ class ChatsResource(BaseModelsResource):
7
9
  def __init__(self):
8
10
  BaseModelsResource.__init__(self, Chat)
9
11
 
12
+ @jwt_required()
13
+ def get(self):
14
+ """
15
+ Get chats
16
+ ---
17
+ tags:
18
+ - Crud
19
+ description: Retrieve all chats. Supports filtering via query
20
+ parameters and pagination.
21
+ parameters:
22
+ - in: query
23
+ name: page
24
+ required: false
25
+ schema:
26
+ type: integer
27
+ example: 1
28
+ description: Page number for pagination
29
+ - in: query
30
+ name: limit
31
+ required: false
32
+ schema:
33
+ type: integer
34
+ example: 50
35
+ description: Number of results per page
36
+ - in: query
37
+ name: relations
38
+ required: false
39
+ schema:
40
+ type: boolean
41
+ default: false
42
+ example: false
43
+ description: Whether to include relations
44
+ responses:
45
+ 200:
46
+ description: Chats retrieved successfully
47
+ content:
48
+ application/json:
49
+ schema:
50
+ oneOf:
51
+ - type: array
52
+ items:
53
+ type: object
54
+ - type: object
55
+ properties:
56
+ data:
57
+ type: array
58
+ items:
59
+ type: object
60
+ example: []
61
+ total:
62
+ type: integer
63
+ example: 100
64
+ nb_pages:
65
+ type: integer
66
+ example: 2
67
+ limit:
68
+ type: integer
69
+ example: 50
70
+ offset:
71
+ type: integer
72
+ example: 0
73
+ page:
74
+ type: integer
75
+ example: 1
76
+ 400:
77
+ description: Invalid filter format or query error
78
+ """
79
+ return super().get()
80
+
81
+ @jwt_required()
82
+ def post(self):
83
+ """
84
+ Create chat
85
+ ---
86
+ tags:
87
+ - Crud
88
+ description: Create a new chat with data provided in the request
89
+ body. JSON format is expected.
90
+ requestBody:
91
+ required: true
92
+ content:
93
+ application/json:
94
+ schema:
95
+ type: object
96
+ required:
97
+ - object_id
98
+ - object_type
99
+ properties:
100
+ object_id:
101
+ type: string
102
+ format: uuid
103
+ example: a24a6ea4-ce75-4665-a070-57453082c25
104
+ object_type:
105
+ type: string
106
+ example: Asset
107
+ name:
108
+ type: string
109
+ example: Chat Name
110
+ responses:
111
+ 201:
112
+ description: Chat created successfully
113
+ content:
114
+ application/json:
115
+ schema:
116
+ type: object
117
+ properties:
118
+ id:
119
+ type: string
120
+ format: uuid
121
+ example: a24a6ea4-ce75-4665-a070-57453082c25
122
+ object_id:
123
+ type: string
124
+ format: uuid
125
+ example: b24a6ea4-ce75-4665-a070-57453082c25
126
+ object_type:
127
+ type: string
128
+ example: Asset
129
+ name:
130
+ type: string
131
+ example: Chat Name
132
+ created_at:
133
+ type: string
134
+ format: date-time
135
+ example: "2024-01-15T10:30:00Z"
136
+ updated_at:
137
+ type: string
138
+ format: date-time
139
+ example: "2024-01-15T10:30:00Z"
140
+ 400:
141
+ description: Invalid data format or validation error
142
+ """
143
+ return super().post()
144
+
10
145
 
11
146
  class ChatResource(BaseModelResource):
12
147
  def __init__(self):
13
148
  BaseModelResource.__init__(self, Chat)
149
+
150
+ @jwt_required()
151
+ def get(self, instance_id):
152
+ """
153
+ Get chat
154
+ ---
155
+ tags:
156
+ - Crud
157
+ description: Retrieve a chat by its ID and return it as a JSON
158
+ object. Supports including relations.
159
+ parameters:
160
+ - in: path
161
+ name: instance_id
162
+ required: true
163
+ schema:
164
+ type: string
165
+ format: uuid
166
+ example: a24a6ea4-ce75-4665-a070-57453082c25
167
+ - in: query
168
+ name: relations
169
+ required: false
170
+ schema:
171
+ type: boolean
172
+ default: true
173
+ example: true
174
+ description: Whether to include relations
175
+ responses:
176
+ 200:
177
+ description: Chat retrieved successfully
178
+ content:
179
+ application/json:
180
+ schema:
181
+ type: object
182
+ properties:
183
+ id:
184
+ type: string
185
+ format: uuid
186
+ example: a24a6ea4-ce75-4665-a070-57453082c25
187
+ object_id:
188
+ type: string
189
+ format: uuid
190
+ example: b24a6ea4-ce75-4665-a070-57453082c25
191
+ object_type:
192
+ type: string
193
+ example: Asset
194
+ name:
195
+ type: string
196
+ example: Chat Name
197
+ created_at:
198
+ type: string
199
+ format: date-time
200
+ example: "2024-01-15T10:30:00Z"
201
+ updated_at:
202
+ type: string
203
+ format: date-time
204
+ example: "2024-01-15T10:30:00Z"
205
+ 400:
206
+ description: Invalid ID format or query error
207
+ """
208
+ return super().get(instance_id)
209
+
210
+ @jwt_required()
211
+ def put(self, instance_id):
212
+ """
213
+ Update chat
214
+ ---
215
+ tags:
216
+ - Crud
217
+ description: Update a chat with data provided in the request body.
218
+ JSON format is expected.
219
+ parameters:
220
+ - in: path
221
+ name: instance_id
222
+ required: true
223
+ schema:
224
+ type: string
225
+ format: uuid
226
+ example: a24a6ea4-ce75-4665-a070-57453082c25
227
+ requestBody:
228
+ required: true
229
+ content:
230
+ application/json:
231
+ schema:
232
+ type: object
233
+ properties:
234
+ name:
235
+ type: string
236
+ example: Updated Chat Name
237
+ responses:
238
+ 200:
239
+ description: Chat updated successfully
240
+ content:
241
+ application/json:
242
+ schema:
243
+ type: object
244
+ properties:
245
+ id:
246
+ type: string
247
+ format: uuid
248
+ example: a24a6ea4-ce75-4665-a070-57453082c25
249
+ object_id:
250
+ type: string
251
+ format: uuid
252
+ example: b24a6ea4-ce75-4665-a070-57453082c25
253
+ object_type:
254
+ type: string
255
+ example: Asset
256
+ name:
257
+ type: string
258
+ example: Updated Chat Name
259
+ created_at:
260
+ type: string
261
+ format: date-time
262
+ example: "2024-01-15T10:30:00Z"
263
+ updated_at:
264
+ type: string
265
+ format: date-time
266
+ example: "2024-01-15T11:00:00Z"
267
+ 400:
268
+ description: Invalid data format or validation error
269
+ """
270
+ return super().put(instance_id)
271
+
272
+ @jwt_required()
273
+ def delete(self, instance_id):
274
+ """
275
+ Delete chat
276
+ ---
277
+ tags:
278
+ - Crud
279
+ description: Delete a chat by its ID. Returns empty response on
280
+ success.
281
+ parameters:
282
+ - in: path
283
+ name: instance_id
284
+ required: true
285
+ schema:
286
+ type: string
287
+ format: uuid
288
+ example: a24a6ea4-ce75-4665-a070-57453082c25
289
+ responses:
290
+ 204:
291
+ description: Chat deleted successfully
292
+ 400:
293
+ description: Integrity error or cannot delete
294
+ """
295
+ return super().delete(instance_id)
@@ -1,3 +1,5 @@
1
+ from flask_jwt_extended import jwt_required
2
+
1
3
  from zou.app.models.chat_message import ChatMessage
2
4
 
3
5
  from zou.app.blueprints.crud.base import BaseModelResource, BaseModelsResource
@@ -7,7 +9,291 @@ class ChatMessagesResource(BaseModelsResource):
7
9
  def __init__(self):
8
10
  BaseModelsResource.__init__(self, ChatMessage)
9
11
 
12
+ @jwt_required()
13
+ def get(self):
14
+ """
15
+ Get chat messages
16
+ ---
17
+ tags:
18
+ - Crud
19
+ description: Retrieve all chat messages. Supports filtering via
20
+ query parameters and pagination.
21
+ parameters:
22
+ - in: query
23
+ name: page
24
+ required: false
25
+ schema:
26
+ type: integer
27
+ example: 1
28
+ description: Page number for pagination
29
+ - in: query
30
+ name: limit
31
+ required: false
32
+ schema:
33
+ type: integer
34
+ example: 50
35
+ description: Number of results per page
36
+ - in: query
37
+ name: relations
38
+ required: false
39
+ schema:
40
+ type: boolean
41
+ default: false
42
+ example: false
43
+ description: Whether to include relations
44
+ responses:
45
+ 200:
46
+ description: Chat messages retrieved successfully
47
+ content:
48
+ application/json:
49
+ schema:
50
+ oneOf:
51
+ - type: array
52
+ items:
53
+ type: object
54
+ - type: object
55
+ properties:
56
+ data:
57
+ type: array
58
+ items:
59
+ type: object
60
+ example: []
61
+ total:
62
+ type: integer
63
+ example: 100
64
+ nb_pages:
65
+ type: integer
66
+ example: 2
67
+ limit:
68
+ type: integer
69
+ example: 50
70
+ offset:
71
+ type: integer
72
+ example: 0
73
+ page:
74
+ type: integer
75
+ example: 1
76
+ 400:
77
+ description: Invalid filter format or query error
78
+ """
79
+ return super().get()
80
+
81
+ @jwt_required()
82
+ def post(self):
83
+ """
84
+ Create chat message
85
+ ---
86
+ tags:
87
+ - Crud
88
+ description: Create a new chat message with data provided in the
89
+ request body. JSON format is expected.
90
+ requestBody:
91
+ required: true
92
+ content:
93
+ application/json:
94
+ schema:
95
+ type: object
96
+ required:
97
+ - chat_id
98
+ - person_id
99
+ properties:
100
+ chat_id:
101
+ type: string
102
+ format: uuid
103
+ example: a24a6ea4-ce75-4665-a070-57453082c25
104
+ person_id:
105
+ type: string
106
+ format: uuid
107
+ example: b24a6ea4-ce75-4665-a070-57453082c25
108
+ text:
109
+ type: string
110
+ example: Message text
111
+ responses:
112
+ 201:
113
+ description: Chat message created successfully
114
+ content:
115
+ application/json:
116
+ schema:
117
+ type: object
118
+ properties:
119
+ id:
120
+ type: string
121
+ format: uuid
122
+ example: a24a6ea4-ce75-4665-a070-57453082c25
123
+ chat_id:
124
+ type: string
125
+ format: uuid
126
+ example: b24a6ea4-ce75-4665-a070-57453082c25
127
+ person_id:
128
+ type: string
129
+ format: uuid
130
+ example: c24a6ea4-ce75-4665-a070-57453082c25
131
+ text:
132
+ type: string
133
+ example: Message text
134
+ created_at:
135
+ type: string
136
+ format: date-time
137
+ example: "2024-01-15T10:30:00Z"
138
+ updated_at:
139
+ type: string
140
+ format: date-time
141
+ example: "2024-01-15T10:30:00Z"
142
+ 400:
143
+ description: Invalid data format or validation error
144
+ """
145
+ return super().post()
146
+
10
147
 
11
148
  class ChatMessageResource(BaseModelResource):
12
149
  def __init__(self):
13
150
  BaseModelResource.__init__(self, ChatMessage)
151
+
152
+ @jwt_required()
153
+ def get(self, instance_id):
154
+ """
155
+ Get chat message
156
+ ---
157
+ tags:
158
+ - Crud
159
+ description: Retrieve a chat message by its ID and return it as a
160
+ JSON object. Supports including relations.
161
+ parameters:
162
+ - in: path
163
+ name: instance_id
164
+ required: true
165
+ schema:
166
+ type: string
167
+ format: uuid
168
+ example: a24a6ea4-ce75-4665-a070-57453082c25
169
+ - in: query
170
+ name: relations
171
+ required: false
172
+ schema:
173
+ type: boolean
174
+ default: true
175
+ example: true
176
+ description: Whether to include relations
177
+ responses:
178
+ 200:
179
+ description: Chat message retrieved successfully
180
+ content:
181
+ application/json:
182
+ schema:
183
+ type: object
184
+ properties:
185
+ id:
186
+ type: string
187
+ format: uuid
188
+ example: a24a6ea4-ce75-4665-a070-57453082c25
189
+ chat_id:
190
+ type: string
191
+ format: uuid
192
+ example: b24a6ea4-ce75-4665-a070-57453082c25
193
+ person_id:
194
+ type: string
195
+ format: uuid
196
+ example: c24a6ea4-ce75-4665-a070-57453082c25
197
+ text:
198
+ type: string
199
+ example: Message text
200
+ created_at:
201
+ type: string
202
+ format: date-time
203
+ example: "2024-01-15T10:30:00Z"
204
+ updated_at:
205
+ type: string
206
+ format: date-time
207
+ example: "2024-01-15T10:30:00Z"
208
+ 400:
209
+ description: Invalid ID format or query error
210
+ """
211
+ return super().get(instance_id)
212
+
213
+ @jwt_required()
214
+ def put(self, instance_id):
215
+ """
216
+ Update chat message
217
+ ---
218
+ tags:
219
+ - Crud
220
+ description: Update a chat message with data provided in the
221
+ request body. JSON format is expected.
222
+ parameters:
223
+ - in: path
224
+ name: instance_id
225
+ required: true
226
+ schema:
227
+ type: string
228
+ format: uuid
229
+ example: a24a6ea4-ce75-4665-a070-57453082c25
230
+ requestBody:
231
+ required: true
232
+ content:
233
+ application/json:
234
+ schema:
235
+ type: object
236
+ properties:
237
+ text:
238
+ type: string
239
+ example: Updated message text
240
+ responses:
241
+ 200:
242
+ description: Chat message updated successfully
243
+ content:
244
+ application/json:
245
+ schema:
246
+ type: object
247
+ properties:
248
+ id:
249
+ type: string
250
+ format: uuid
251
+ example: a24a6ea4-ce75-4665-a070-57453082c25
252
+ chat_id:
253
+ type: string
254
+ format: uuid
255
+ example: b24a6ea4-ce75-4665-a070-57453082c25
256
+ person_id:
257
+ type: string
258
+ format: uuid
259
+ example: c24a6ea4-ce75-4665-a070-57453082c25
260
+ text:
261
+ type: string
262
+ example: Updated message text
263
+ created_at:
264
+ type: string
265
+ format: date-time
266
+ example: "2024-01-15T10:30:00Z"
267
+ updated_at:
268
+ type: string
269
+ format: date-time
270
+ example: "2024-01-15T11:00:00Z"
271
+ 400:
272
+ description: Invalid data format or validation error
273
+ """
274
+ return super().put(instance_id)
275
+
276
+ @jwt_required()
277
+ def delete(self, instance_id):
278
+ """
279
+ Delete chat message
280
+ ---
281
+ tags:
282
+ - Crud
283
+ description: Delete a chat message by its ID. Returns empty
284
+ response on success.
285
+ parameters:
286
+ - in: path
287
+ name: instance_id
288
+ required: true
289
+ schema:
290
+ type: string
291
+ format: uuid
292
+ example: a24a6ea4-ce75-4665-a070-57453082c25
293
+ responses:
294
+ 204:
295
+ description: Chat message deleted successfully
296
+ 400:
297
+ description: Integrity error or cannot delete
298
+ """
299
+ return super().delete(instance_id)