zou 0.19.40__py3-none-any.whl → 0.19.41__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 CHANGED
@@ -1 +1 @@
1
- __version__ = "0.19.40"
1
+ __version__ = "0.19.41"
@@ -136,43 +136,51 @@ def _get_comment_author(person_id):
136
136
 
137
137
 
138
138
  def _manage_status_change(task_status, task, comment):
139
- status_changed = task_status["id"] != task["task_status_id"]
140
- new_data = {
141
- "task_status_id": task_status["id"],
142
- "last_comment_date": comment["created_at"],
143
- }
144
- if status_changed:
145
- if task_status["is_retake"]:
146
- retake_count = task["retake_count"]
147
- if retake_count is None or retake_count == "NoneType":
148
- retake_count = 0
149
- new_data["retake_count"] = retake_count + 1
150
-
151
- if task_status["is_feedback_request"]:
152
- new_data["end_date"] = date_helpers.get_utc_now_datetime()
153
-
154
- if (
155
- task_status["short_name"] == "wip"
156
- and task["real_start_date"] is None
157
- ):
158
- new_data["real_start_date"] = datetime.datetime.now(
159
- datetime.timezone.utc
160
- )
139
+ is_last_comment = (
140
+ task["last_comment_date"] is None
141
+ or task["last_comment_date"] < comment["created_at"]
142
+ )
143
+ if not is_last_comment:
144
+ status_changed = False
145
+ task = tasks_service.reset_task_data(task["id"])
146
+ else:
147
+ status_changed = task_status["id"] != task["task_status_id"]
148
+ new_data = {
149
+ "task_status_id": task_status["id"],
150
+ "last_comment_date": comment["created_at"],
151
+ }
152
+ if status_changed:
153
+ if task_status["is_retake"]:
154
+ retake_count = task["retake_count"]
155
+ if retake_count is None or retake_count == "NoneType":
156
+ retake_count = 0
157
+ new_data["retake_count"] = retake_count + 1
158
+
159
+ if task_status["is_feedback_request"]:
160
+ new_data["end_date"] = date_helpers.get_utc_now_datetime()
161
+
162
+ if (
163
+ task_status["short_name"] == "wip"
164
+ and task["real_start_date"] is None
165
+ ):
166
+ new_data["real_start_date"] = datetime.datetime.now(
167
+ datetime.timezone.utc
168
+ )
161
169
 
162
- tasks_service.update_task(task["id"], new_data)
163
-
164
- if status_changed:
165
- events.emit(
166
- "task:status-changed",
167
- {
168
- "task_id": task["id"],
169
- "new_task_status_id": new_data["task_status_id"],
170
- "previous_task_status_id": task["task_status_id"],
171
- "person_id": comment["person_id"],
172
- },
173
- project_id=task["project_id"],
174
- )
175
- task.update(new_data)
170
+ tasks_service.update_task(task["id"], new_data)
171
+
172
+ if status_changed:
173
+ events.emit(
174
+ "task:status-changed",
175
+ {
176
+ "task_id": task["id"],
177
+ "new_task_status_id": new_data["task_status_id"],
178
+ "previous_task_status_id": task["task_status_id"],
179
+ "person_id": comment["person_id"],
180
+ },
181
+ project_id=task["project_id"],
182
+ )
183
+ task.update(new_data)
176
184
  return task, status_changed
177
185
 
178
186
 
@@ -1812,7 +1812,7 @@ def reset_task_data(task_id):
1812
1812
  )
1813
1813
  project_id = str(task.project_id)
1814
1814
  events.emit("task:update", {"task_id": task.id}, project_id)
1815
- return task.serialize()
1815
+ return task.serialize(relations=True)
1816
1816
 
1817
1817
 
1818
1818
  def get_persons_tasks_dates():
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: zou
3
- Version: 0.19.40
3
+ Version: 0.19.41
4
4
  Summary: API to store and manage the data of your animation production
5
5
  Home-page: https://zou.cg-wire.com
6
6
  Author: CG Wire
@@ -24,7 +24,7 @@ License-File: LICENSE
24
24
  Requires-Dist: babel ==2.15.0
25
25
  Requires-Dist: click ==8.1.7
26
26
  Requires-Dist: discord.py ==2.3.2
27
- Requires-Dist: email-validator ==2.1.1
27
+ Requires-Dist: email-validator ==2.2.0
28
28
  Requires-Dist: ffmpeg-python ==0.2.0
29
29
  Requires-Dist: fido2 ==1.1.3
30
30
  Requires-Dist: flasgger ==0.9.7.1
@@ -40,7 +40,7 @@ Requires-Dist: flask-jwt-extended ==4.6.0
40
40
  Requires-Dist: flask-migrate ==4.0.7
41
41
  Requires-Dist: flask-socketio ==5.3.6
42
42
  Requires-Dist: flask ==3.0.3
43
- Requires-Dist: gazu ==0.10.9
43
+ Requires-Dist: gazu ==0.10.10
44
44
  Requires-Dist: gevent-websocket ==0.10.1
45
45
  Requires-Dist: gevent ==24.2.1
46
46
  Requires-Dist: gunicorn ==22.0.0
@@ -50,27 +50,27 @@ Requires-Dist: Jinja2 ==3.1.4
50
50
  Requires-Dist: ldap3 ==2.9.1
51
51
  Requires-Dist: matterhook ==0.2
52
52
  Requires-Dist: meilisearch ==0.31.3
53
- Requires-Dist: opencv-python ==4.10.0.82
53
+ Requires-Dist: opencv-python ==4.10.0.84
54
54
  Requires-Dist: OpenTimelineIO ==0.16.0
55
- Requires-Dist: orjson ==3.10.4
55
+ Requires-Dist: orjson ==3.10.5
56
56
  Requires-Dist: pillow ==10.3.0
57
- Requires-Dist: psutil ==5.9.8
57
+ Requires-Dist: psutil ==6.0.0
58
58
  Requires-Dist: psycopg[binary] ==3.1.19
59
59
  Requires-Dist: pyotp ==2.9.0
60
60
  Requires-Dist: python-nomad ==2.0.1
61
61
  Requires-Dist: python-slugify ==8.0.4
62
- Requires-Dist: python-socketio ==5.11.2
62
+ Requires-Dist: python-socketio ==5.11.3
63
63
  Requires-Dist: pytz ==2024.1
64
- Requires-Dist: redis ==5.0.5
64
+ Requires-Dist: redis ==5.0.6
65
65
  Requires-Dist: requests ==2.32.3
66
66
  Requires-Dist: rq ==1.16.2
67
67
  Requires-Dist: slackclient ==2.9.4
68
68
  Requires-Dist: sqlalchemy-utils ==0.41.2
69
- Requires-Dist: sqlalchemy ==2.0.30
69
+ Requires-Dist: sqlalchemy ==2.0.31
70
70
  Requires-Dist: ua-parser ==0.18.0
71
71
  Requires-Dist: werkzeug ==3.0.3
72
72
  Requires-Dist: numpy ==1.24.4 ; python_version == "3.8"
73
- Requires-Dist: numpy ==1.26.4 ; python_version >= "3.9"
73
+ Requires-Dist: numpy ==2.0.0 ; python_version >= "3.9"
74
74
  Provides-Extra: dev
75
75
  Requires-Dist: wheel ; extra == 'dev'
76
76
  Provides-Extra: lint
@@ -80,7 +80,7 @@ Requires-Dist: pre-commit ==3.7.1 ; (python_version >= "3.9") and extra == 'lint
80
80
  Provides-Extra: monitoring
81
81
  Requires-Dist: prometheus-flask-exporter ==0.23.0 ; extra == 'monitoring'
82
82
  Requires-Dist: pygelf ==0.4.2 ; extra == 'monitoring'
83
- Requires-Dist: sentry-sdk ==2.5.1 ; extra == 'monitoring'
83
+ Requires-Dist: sentry-sdk ==2.6.0 ; extra == 'monitoring'
84
84
  Provides-Extra: prod
85
85
  Requires-Dist: gunicorn ; extra == 'prod'
86
86
  Requires-Dist: gevent ; extra == 'prod'
@@ -1,4 +1,4 @@
1
- zou/__init__.py,sha256=Wba0D_hfEGqmaN6Y0p6NXKIGjEuwsKyocXPpQ8fUZAw,24
1
+ zou/__init__.py,sha256=dgzwiYNneoa6Prr4yKokUkQAc0JeTED_l3OscWCs9CM,24
2
2
  zou/cli.py,sha256=mnY9MoD0SjY4KFa1qyYS4E5bjEqk1UIZpH0iYeZPGh8,17508
3
3
  zou/debug.py,sha256=1fawPbkD4wn0Y9Gk0BiBFSa-CQe5agFi8R9uJYl2Uyk,520
4
4
  zou/event_stream.py,sha256=zgob2dZKray2lxPa11hdRNmOg8XRlKDdRcGdF80ylwg,8245
@@ -185,7 +185,7 @@ zou/app/services/backup_service.py,sha256=_ZtZp6wkcVYnHxBosziwLGdrTvsUttXGphiydq
185
185
  zou/app/services/base_service.py,sha256=OZd0STFh-DyBBdwsmA7DMMnrwv4C8wJUbShvZ1isndU,1383
186
186
  zou/app/services/breakdown_service.py,sha256=p93HncjC36qbmvZiB259QGRtciS37N-s_7IWVAQx5eE,26727
187
187
  zou/app/services/chats_service.py,sha256=V1RmQeQnsH1xvtbs6wcjEpudQS547eJBM7bgJr9-qYM,8270
188
- zou/app/services/comments_service.py,sha256=d7-St48KSl4gH4EFzrXoWmGHpXUpQgQ-QdB_9cVGWZs,18215
188
+ zou/app/services/comments_service.py,sha256=87UXq8zPfx-oDQzcHXR-REzNUbHAIxuLwpp6jRU6kHQ,18606
189
189
  zou/app/services/concepts_service.py,sha256=KGvk6lF5udj3SWn40X9KE8OAigrLCZUKEz9_CW7EMgQ,11440
190
190
  zou/app/services/custom_actions_service.py,sha256=fWISEOOdthadrxeHuacEel5Xj6msn0yWXJQDG1gzvsY,297
191
191
  zou/app/services/deletion_service.py,sha256=ddaup7i_CTugcJDrynczNcfhjSKgDeGhPQjQ68We_l8,17255
@@ -210,7 +210,7 @@ zou/app/services/shots_service.py,sha256=3L5lhmwPudQ8R40hYopx4cn8OxEy0HWYQ-2yrRI
210
210
  zou/app/services/stats_service.py,sha256=cAlc92i9d6eYtsuwe3hYHYwdytg8KEMi1-TADfysJwM,11733
211
211
  zou/app/services/status_automations_service.py,sha256=tVio7Sj7inhvKS4UOyRhcdpwr_KNP96hT1o0X7XcGF4,715
212
212
  zou/app/services/sync_service.py,sha256=gtYRSTK3GzraMEETErW9g_dog9BlXkBg1OZ2VnpC7s4,41754
213
- zou/app/services/tasks_service.py,sha256=L9wIhk-QHm7sS3e_yQQDHcMiimyrA2u55XfZS_76Zu0,67783
213
+ zou/app/services/tasks_service.py,sha256=05Vy7cBhHFr7PYBuTNiggw1TydtOhP5ekuBoTZLTLOA,67797
214
214
  zou/app/services/telemetry_services.py,sha256=xQm1h1t_JxSFW59zQGf4NuNdUi1UfMa_6pQ-ytRbmGA,1029
215
215
  zou/app/services/time_spents_service.py,sha256=TBLC1O9Dg_UbciG5Nw-dejqX2-5n6q44lACeN6OnUkQ,15206
216
216
  zou/app/services/user_service.py,sha256=BiOhPV7O-vowet7jOksjXk2V4yxZkdqsIyNboJ-Oz_A,46595
@@ -405,9 +405,9 @@ zou/remote/normalize_movie.py,sha256=zNfEY3N1UbAHZfddGONTg2Sff3ieLVWd4dfZa1dpnes
405
405
  zou/remote/playlist.py,sha256=AsDo0bgYhDcd6DfNRV6r6Jj3URWwavE2ZN3VkKRPbLU,3293
406
406
  zou/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
407
407
  zou/utils/movie.py,sha256=u9LCEOvmkxwm-KiZ6jKNdB9LSC6XXUDwJpVx8LkDwJg,16416
408
- zou-0.19.40.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
409
- zou-0.19.40.dist-info/METADATA,sha256=zUxsoGiVmtZg2g1oGAulhVvV0IsvyCRDSRM5AV89Lpc,6678
410
- zou-0.19.40.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
411
- zou-0.19.40.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
412
- zou-0.19.40.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
413
- zou-0.19.40.dist-info/RECORD,,
408
+ zou-0.19.41.dist-info/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
409
+ zou-0.19.41.dist-info/METADATA,sha256=1FpQO4yRb6Vnjh-WRIRJHy5oomUM079NszNxHU8P1BM,6678
410
+ zou-0.19.41.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
411
+ zou-0.19.41.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
412
+ zou-0.19.41.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
413
+ zou-0.19.41.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.43.0)
2
+ Generator: setuptools (70.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
File without changes