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.
- zou/__init__.py +1 -1
- zou/app/blueprints/assets/resources.py +1060 -153
- zou/app/blueprints/auth/resources.py +368 -238
- zou/app/blueprints/breakdown/resources.py +584 -94
- zou/app/blueprints/chats/resources.py +176 -37
- zou/app/blueprints/comments/resources.py +409 -150
- zou/app/blueprints/concepts/resources.py +443 -63
- 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/departments/resources.py +302 -68
- zou/app/blueprints/edits/resources.py +651 -81
- zou/app/blueprints/entities/resources.py +104 -39
- zou/app/blueprints/events/resources.py +96 -8
- 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/index/resources.py +49 -42
- zou/app/blueprints/news/resources.py +47 -27
- 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/blueprints/user/resources.py +1808 -215
- 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/app/swagger.py +100 -27
- zou/migrations/versions/a1b2c3d4e5f6_add_position_to_metadata_descriptor.py +32 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/METADATA +18 -18
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/RECORD +114 -113
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/WHEEL +0 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/entry_points.txt +0 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/licenses/LICENSE +0 -0
- {zou-0.20.82.dist-info → zou-0.20.84.dist-info}/top_level.txt +0 -0
|
@@ -14,13 +14,57 @@ class AllDepartmentSoftwareResource(Resource, ArgsMixin):
|
|
|
14
14
|
@permissions.require_admin
|
|
15
15
|
def get(self):
|
|
16
16
|
"""
|
|
17
|
-
Get all software
|
|
17
|
+
Get all department software licenses
|
|
18
18
|
---
|
|
19
|
+
description: Retrieve all software licenses organized by department.
|
|
20
|
+
Returns a dictionary where each department contains its associated
|
|
21
|
+
software licenses.
|
|
19
22
|
tags:
|
|
20
|
-
|
|
23
|
+
- Departments
|
|
21
24
|
responses:
|
|
22
|
-
|
|
23
|
-
|
|
25
|
+
200:
|
|
26
|
+
description: Department software licenses successfully retrieved
|
|
27
|
+
content:
|
|
28
|
+
application/json:
|
|
29
|
+
schema:
|
|
30
|
+
type: object
|
|
31
|
+
additionalProperties:
|
|
32
|
+
type: array
|
|
33
|
+
items:
|
|
34
|
+
type: object
|
|
35
|
+
properties:
|
|
36
|
+
id:
|
|
37
|
+
type: string
|
|
38
|
+
format: uuid
|
|
39
|
+
description: Software license unique identifier
|
|
40
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
41
|
+
name:
|
|
42
|
+
type: string
|
|
43
|
+
description: Software license name
|
|
44
|
+
example: "Maya"
|
|
45
|
+
short_name:
|
|
46
|
+
type: string
|
|
47
|
+
description: Software license short name
|
|
48
|
+
example: "MAYA"
|
|
49
|
+
file_extension:
|
|
50
|
+
type: string
|
|
51
|
+
description: Default file extension for the software license
|
|
52
|
+
example: ".ma"
|
|
53
|
+
department_id:
|
|
54
|
+
type: string
|
|
55
|
+
format: uuid
|
|
56
|
+
description: Department identifier
|
|
57
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
58
|
+
created_at:
|
|
59
|
+
type: string
|
|
60
|
+
format: date-time
|
|
61
|
+
description: Creation timestamp
|
|
62
|
+
example: "2023-01-01T12:00:00Z"
|
|
63
|
+
updated_at:
|
|
64
|
+
type: string
|
|
65
|
+
format: date-time
|
|
66
|
+
description: Last update timestamp
|
|
67
|
+
example: "2023-01-01T12:30:00Z"
|
|
24
68
|
"""
|
|
25
69
|
softwares = departments_service.get_all_software_for_departments()
|
|
26
70
|
return softwares, 200
|
|
@@ -32,28 +76,63 @@ class AddSoftwareToDepartmentResource(Resource, ArgsMixin):
|
|
|
32
76
|
@permissions.require_admin
|
|
33
77
|
def post(self, department_id):
|
|
34
78
|
"""
|
|
35
|
-
Add
|
|
79
|
+
Add software license to department
|
|
36
80
|
---
|
|
81
|
+
description: Associate a software license with a specific department.
|
|
82
|
+
This allows the department to use the specified software in budget
|
|
83
|
+
forecasting.
|
|
37
84
|
tags:
|
|
38
|
-
|
|
85
|
+
- Departments
|
|
39
86
|
parameters:
|
|
40
87
|
- in: path
|
|
41
88
|
name: department_id
|
|
42
|
-
required:
|
|
43
|
-
type: string
|
|
44
|
-
format: uuid
|
|
45
|
-
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
46
|
-
- in: body
|
|
47
|
-
name: software_id
|
|
48
|
-
required: True
|
|
89
|
+
required: true
|
|
49
90
|
type: string
|
|
50
91
|
format: uuid
|
|
51
92
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
93
|
+
description: Unique identifier of the department
|
|
94
|
+
requestBody:
|
|
95
|
+
required: true
|
|
96
|
+
content:
|
|
97
|
+
application/json:
|
|
98
|
+
schema:
|
|
99
|
+
type: object
|
|
100
|
+
required:
|
|
101
|
+
- software_id
|
|
102
|
+
properties:
|
|
103
|
+
software_id:
|
|
104
|
+
type: string
|
|
105
|
+
format: uuid
|
|
106
|
+
description: Software identifier to add to department
|
|
107
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
52
108
|
responses:
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
109
|
+
201:
|
|
110
|
+
description: Software license successfully added to department
|
|
111
|
+
content:
|
|
112
|
+
application/json:
|
|
113
|
+
schema:
|
|
114
|
+
type: object
|
|
115
|
+
properties:
|
|
116
|
+
id:
|
|
117
|
+
type: string
|
|
118
|
+
format: uuid
|
|
119
|
+
description: Software license department link unique identifier
|
|
120
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
121
|
+
department_id:
|
|
122
|
+
type: string
|
|
123
|
+
format: uuid
|
|
124
|
+
description: Department identifier
|
|
125
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
126
|
+
software_id:
|
|
127
|
+
type: string
|
|
128
|
+
format: uuid
|
|
129
|
+
description: Software license identifier
|
|
130
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
131
|
+
created_at:
|
|
132
|
+
type: string
|
|
133
|
+
format: date-time
|
|
134
|
+
description: Creation timestamp
|
|
135
|
+
example: "2023-01-01T12:00:00Z"
|
|
57
136
|
"""
|
|
58
137
|
args = self.get_args(
|
|
59
138
|
[
|
|
@@ -74,22 +153,62 @@ class SoftwareDepartmentResource(Resource, ArgsMixin):
|
|
|
74
153
|
@permissions.require_admin
|
|
75
154
|
def get(self, department_id):
|
|
76
155
|
"""
|
|
77
|
-
Get
|
|
156
|
+
Get department software licenses
|
|
78
157
|
---
|
|
158
|
+
description: Retrieve all software items that are associated with a
|
|
159
|
+
specific department.
|
|
79
160
|
tags:
|
|
80
|
-
|
|
161
|
+
- Departments
|
|
81
162
|
parameters:
|
|
82
163
|
- in: path
|
|
83
164
|
name: department_id
|
|
84
|
-
required:
|
|
165
|
+
required: true
|
|
85
166
|
type: string
|
|
86
167
|
format: uuid
|
|
87
168
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
169
|
+
description: Unique identifier of the department
|
|
88
170
|
responses:
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
171
|
+
200:
|
|
172
|
+
description: Department software licenses successfully retrieved
|
|
173
|
+
content:
|
|
174
|
+
application/json:
|
|
175
|
+
schema:
|
|
176
|
+
type: array
|
|
177
|
+
items:
|
|
178
|
+
type: object
|
|
179
|
+
properties:
|
|
180
|
+
id:
|
|
181
|
+
type: string
|
|
182
|
+
format: uuid
|
|
183
|
+
description: Software license unique identifier
|
|
184
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
185
|
+
name:
|
|
186
|
+
type: string
|
|
187
|
+
description: Software license name
|
|
188
|
+
example: "Maya"
|
|
189
|
+
short_name:
|
|
190
|
+
type: string
|
|
191
|
+
description: Software license short name
|
|
192
|
+
example: "MAYA"
|
|
193
|
+
file_extension:
|
|
194
|
+
type: string
|
|
195
|
+
description: Default file extension for the software license
|
|
196
|
+
example: ".ma"
|
|
197
|
+
department_id:
|
|
198
|
+
type: string
|
|
199
|
+
format: uuid
|
|
200
|
+
description: Department identifier
|
|
201
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
202
|
+
created_at:
|
|
203
|
+
type: string
|
|
204
|
+
format: date-time
|
|
205
|
+
description: Creation timestamp
|
|
206
|
+
example: "2023-01-01T12:00:00Z"
|
|
207
|
+
updated_at:
|
|
208
|
+
type: string
|
|
209
|
+
format: date-time
|
|
210
|
+
description: Last update timestamp
|
|
211
|
+
example: "2023-01-01T12:30:00Z"
|
|
93
212
|
"""
|
|
94
213
|
self.check_id_parameter(department_id)
|
|
95
214
|
softwares = departments_service.get_softwares_for_department(
|
|
@@ -101,28 +220,30 @@ class SoftwareDepartmentResource(Resource, ArgsMixin):
|
|
|
101
220
|
@permissions.require_admin
|
|
102
221
|
def delete(self, department_id, software_id):
|
|
103
222
|
"""
|
|
104
|
-
Remove
|
|
223
|
+
Remove software license from department
|
|
105
224
|
---
|
|
225
|
+
description: Remove a software license from a specific department.
|
|
226
|
+
This disassociates the software license from the department.
|
|
106
227
|
tags:
|
|
107
|
-
|
|
228
|
+
- Departments
|
|
108
229
|
parameters:
|
|
109
230
|
- in: path
|
|
110
|
-
name:
|
|
111
|
-
required:
|
|
231
|
+
name: department_id
|
|
232
|
+
required: true
|
|
112
233
|
type: string
|
|
113
234
|
format: uuid
|
|
114
235
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
236
|
+
description: Unique identifier of the department
|
|
115
237
|
- in: path
|
|
116
|
-
name:
|
|
117
|
-
required:
|
|
238
|
+
name: software_id
|
|
239
|
+
required: true
|
|
118
240
|
type: string
|
|
119
241
|
format: uuid
|
|
120
|
-
example:
|
|
242
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
243
|
+
description: Unique identifier of the software license to remove
|
|
121
244
|
responses:
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
404:
|
|
125
|
-
description: Department or software ID matches no department or software
|
|
245
|
+
204:
|
|
246
|
+
description: Software license successfully removed from department
|
|
126
247
|
"""
|
|
127
248
|
self.check_id_parameter(department_id)
|
|
128
249
|
self.check_id_parameter(software_id)
|
|
@@ -138,13 +259,53 @@ class AllDepartmentHardwareItemsResource(Resource, ArgsMixin):
|
|
|
138
259
|
@permissions.require_admin
|
|
139
260
|
def get(self):
|
|
140
261
|
"""
|
|
141
|
-
Get all hardware items
|
|
262
|
+
Get all department hardware items
|
|
142
263
|
---
|
|
264
|
+
description: Retrieve all hardware items organized by department.
|
|
265
|
+
Returns a dictionary where each department contains its associated
|
|
266
|
+
hardware items.
|
|
143
267
|
tags:
|
|
144
|
-
|
|
268
|
+
- Departments
|
|
145
269
|
responses:
|
|
146
|
-
|
|
147
|
-
|
|
270
|
+
200:
|
|
271
|
+
description: Department hardware items successfully retrieved
|
|
272
|
+
content:
|
|
273
|
+
application/json:
|
|
274
|
+
schema:
|
|
275
|
+
type: object
|
|
276
|
+
additionalProperties:
|
|
277
|
+
type: array
|
|
278
|
+
items:
|
|
279
|
+
type: object
|
|
280
|
+
properties:
|
|
281
|
+
id:
|
|
282
|
+
type: string
|
|
283
|
+
format: uuid
|
|
284
|
+
description: Hardware item unique identifier
|
|
285
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
286
|
+
name:
|
|
287
|
+
type: string
|
|
288
|
+
description: Hardware item name
|
|
289
|
+
example: "Workstation"
|
|
290
|
+
description:
|
|
291
|
+
type: string
|
|
292
|
+
description: Hardware item description
|
|
293
|
+
example: "High-performance workstation"
|
|
294
|
+
department_id:
|
|
295
|
+
type: string
|
|
296
|
+
format: uuid
|
|
297
|
+
description: Department identifier
|
|
298
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
299
|
+
created_at:
|
|
300
|
+
type: string
|
|
301
|
+
format: date-time
|
|
302
|
+
description: Creation timestamp
|
|
303
|
+
example: "2023-01-01T12:00:00Z"
|
|
304
|
+
updated_at:
|
|
305
|
+
type: string
|
|
306
|
+
format: date-time
|
|
307
|
+
description: Last update timestamp
|
|
308
|
+
example: "2023-01-01T12:30:00Z"
|
|
148
309
|
"""
|
|
149
310
|
hardware_items = (
|
|
150
311
|
departments_service.get_all_hardware_items_for_departments()
|
|
@@ -158,28 +319,63 @@ class AddHardwareItemToDepartmentResource(Resource, ArgsMixin):
|
|
|
158
319
|
@permissions.require_admin
|
|
159
320
|
def post(self, department_id):
|
|
160
321
|
"""
|
|
161
|
-
Add
|
|
322
|
+
Add hardware item to department
|
|
162
323
|
---
|
|
324
|
+
description: Associate a hardware item with a specific department.
|
|
325
|
+
This allows the department to use the specified hardware in budget
|
|
326
|
+
forecasting.
|
|
163
327
|
tags:
|
|
164
|
-
|
|
328
|
+
- Departments
|
|
165
329
|
parameters:
|
|
166
330
|
- in: path
|
|
167
331
|
name: department_id
|
|
168
|
-
required:
|
|
169
|
-
type: string
|
|
170
|
-
format: uuid
|
|
171
|
-
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
172
|
-
- in: body
|
|
173
|
-
name: hardware_item_id
|
|
174
|
-
required: True
|
|
332
|
+
required: true
|
|
175
333
|
type: string
|
|
176
334
|
format: uuid
|
|
177
335
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
336
|
+
description: Unique identifier of the department
|
|
337
|
+
requestBody:
|
|
338
|
+
required: true
|
|
339
|
+
content:
|
|
340
|
+
application/json:
|
|
341
|
+
schema:
|
|
342
|
+
type: object
|
|
343
|
+
required:
|
|
344
|
+
- hardware_item_id
|
|
345
|
+
properties:
|
|
346
|
+
hardware_item_id:
|
|
347
|
+
type: string
|
|
348
|
+
format: uuid
|
|
349
|
+
description: Hardware item identifier to add to department
|
|
350
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
178
351
|
responses:
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
352
|
+
201:
|
|
353
|
+
description: Hardware item successfully added to department
|
|
354
|
+
content:
|
|
355
|
+
application/json:
|
|
356
|
+
schema:
|
|
357
|
+
type: object
|
|
358
|
+
properties:
|
|
359
|
+
id:
|
|
360
|
+
type: string
|
|
361
|
+
format: uuid
|
|
362
|
+
description: Hardware department link unique identifier
|
|
363
|
+
example: c46c8gc6-eg97-6887-c292-79675204e47
|
|
364
|
+
department_id:
|
|
365
|
+
type: string
|
|
366
|
+
format: uuid
|
|
367
|
+
description: Department identifier
|
|
368
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
369
|
+
hardware_item_id:
|
|
370
|
+
type: string
|
|
371
|
+
format: uuid
|
|
372
|
+
description: Hardware item identifier
|
|
373
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
374
|
+
created_at:
|
|
375
|
+
type: string
|
|
376
|
+
format: date-time
|
|
377
|
+
description: Creation timestamp
|
|
378
|
+
example: "2023-01-01T12:00:00Z"
|
|
183
379
|
400:
|
|
184
380
|
description: Hardware item ID matches no hardware item
|
|
185
381
|
"""
|
|
@@ -204,22 +400,58 @@ class HardwareItemDepartmentResource(Resource, ArgsMixin):
|
|
|
204
400
|
@permissions.require_admin
|
|
205
401
|
def get(self, department_id):
|
|
206
402
|
"""
|
|
207
|
-
Get
|
|
403
|
+
Get department hardware items
|
|
208
404
|
---
|
|
405
|
+
description: Retrieve all hardware items that are associated with a
|
|
406
|
+
specific department.
|
|
209
407
|
tags:
|
|
210
|
-
|
|
408
|
+
- Departments
|
|
211
409
|
parameters:
|
|
212
410
|
- in: path
|
|
213
411
|
name: department_id
|
|
214
|
-
required:
|
|
412
|
+
required: true
|
|
215
413
|
type: string
|
|
216
414
|
format: uuid
|
|
217
415
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
416
|
+
description: Unique identifier of the department
|
|
218
417
|
responses:
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
418
|
+
200:
|
|
419
|
+
description: Department hardware items successfully retrieved
|
|
420
|
+
content:
|
|
421
|
+
application/json:
|
|
422
|
+
schema:
|
|
423
|
+
type: array
|
|
424
|
+
items:
|
|
425
|
+
type: object
|
|
426
|
+
properties:
|
|
427
|
+
id:
|
|
428
|
+
type: string
|
|
429
|
+
format: uuid
|
|
430
|
+
description: Hardware item unique identifier
|
|
431
|
+
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
432
|
+
name:
|
|
433
|
+
type: string
|
|
434
|
+
description: Hardware item name
|
|
435
|
+
example: "Workstation"
|
|
436
|
+
description:
|
|
437
|
+
type: string
|
|
438
|
+
description: Hardware item description
|
|
439
|
+
example: "High-performance workstation"
|
|
440
|
+
department_id:
|
|
441
|
+
type: string
|
|
442
|
+
format: uuid
|
|
443
|
+
description: Department identifier
|
|
444
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
445
|
+
created_at:
|
|
446
|
+
type: string
|
|
447
|
+
format: date-time
|
|
448
|
+
description: Creation timestamp
|
|
449
|
+
example: "2023-01-01T12:00:00Z"
|
|
450
|
+
updated_at:
|
|
451
|
+
type: string
|
|
452
|
+
format: date-time
|
|
453
|
+
description: Last update timestamp
|
|
454
|
+
example: "2023-01-01T12:30:00Z"
|
|
223
455
|
"""
|
|
224
456
|
self.check_id_parameter(department_id)
|
|
225
457
|
hardware_items = departments_service.get_hardware_items_for_department(
|
|
@@ -231,28 +463,30 @@ class HardwareItemDepartmentResource(Resource, ArgsMixin):
|
|
|
231
463
|
@permissions.require_admin
|
|
232
464
|
def delete(self, department_id, hardware_item_id):
|
|
233
465
|
"""
|
|
234
|
-
Remove
|
|
466
|
+
Remove hardware item from department
|
|
235
467
|
---
|
|
468
|
+
description: Remove a hardware item from a specific department.
|
|
469
|
+
This disassociates the hardware from the department.
|
|
236
470
|
tags:
|
|
237
|
-
|
|
471
|
+
- Departments
|
|
238
472
|
parameters:
|
|
239
473
|
- in: path
|
|
240
474
|
name: department_id
|
|
241
|
-
required:
|
|
475
|
+
required: true
|
|
242
476
|
type: string
|
|
243
477
|
format: uuid
|
|
244
478
|
example: a24a6ea4-ce75-4665-a070-57453082c25
|
|
479
|
+
description: Unique identifier of the department
|
|
245
480
|
- in: path
|
|
246
481
|
name: hardware_item_id
|
|
247
|
-
required:
|
|
482
|
+
required: true
|
|
248
483
|
type: string
|
|
249
484
|
format: uuid
|
|
250
|
-
example:
|
|
485
|
+
example: b35b7fb5-df86-5776-b181-68564193d36
|
|
486
|
+
description: Unique identifier of the hardware item to remove
|
|
251
487
|
responses:
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
404:
|
|
255
|
-
description: Department or software ID matches no department or software
|
|
488
|
+
204:
|
|
489
|
+
description: Hardware item successfully removed from department
|
|
256
490
|
"""
|
|
257
491
|
self.check_id_parameter(department_id)
|
|
258
492
|
self.check_id_parameter(hardware_item_id)
|