zou 1.0.3__py3-none-any.whl → 1.0.5__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 (43) hide show
  1. zou/__init__.py +1 -1
  2. zou/app/blueprints/crud/person.py +1 -0
  3. zou/app/blueprints/crud/task_type.py +10 -0
  4. zou/app/blueprints/events/resources.py +24 -9
  5. zou/app/blueprints/files/resources.py +2 -0
  6. zou/app/blueprints/index/resources.py +76 -66
  7. zou/app/blueprints/news/resources.py +2 -2
  8. zou/app/blueprints/playlists/resources.py +8 -2
  9. zou/app/blueprints/previews/resources.py +46 -3
  10. zou/app/config.py +2 -0
  11. zou/app/file_trees/default.json +6 -0
  12. zou/app/file_trees/simple.json +6 -0
  13. zou/app/mixin.py +9 -0
  14. zou/app/models/plugin.py +21 -2
  15. zou/app/models/preview_file.py +2 -0
  16. zou/app/services/comments_service.py +2 -1
  17. zou/app/services/deletion_service.py +14 -5
  18. zou/app/services/events_service.py +12 -2
  19. zou/app/services/file_tree_service.py +10 -5
  20. zou/app/services/notifications_service.py +11 -2
  21. zou/app/services/persons_service.py +1 -0
  22. zou/app/services/plugins_service.py +83 -11
  23. zou/app/services/preview_files_service.py +18 -3
  24. zou/app/services/schedule_service.py +2 -1
  25. zou/app/services/tasks_service.py +1 -1
  26. zou/app/services/user_service.py +3 -0
  27. zou/app/utils/commands.py +1 -1
  28. zou/app/utils/plugins.py +114 -10
  29. zou/cli.py +15 -5
  30. zou/migrations/versions/12208e50bf18_add_json_data_field_to_preview_files.py +38 -0
  31. zou/migrations/versions/35ebb38695cd_add_icon_field_to_plugins.py +36 -0
  32. zou/migrations/versions/9a9df20ea5a7_add_frontend_options_to_plugins.py +40 -0
  33. zou/migrations/versions/a0f668430352_add_created_by_field_to_playlists.py +16 -8
  34. zou/plugin_template/__init__.py +2 -13
  35. zou/plugin_template/migrations/env.py +9 -0
  36. zou/plugin_template/models.py +2 -2
  37. zou/plugin_template/{routes.py → resources.py} +4 -0
  38. {zou-1.0.3.dist-info → zou-1.0.5.dist-info}/METADATA +1 -1
  39. {zou-1.0.3.dist-info → zou-1.0.5.dist-info}/RECORD +43 -40
  40. {zou-1.0.3.dist-info → zou-1.0.5.dist-info}/WHEEL +0 -0
  41. {zou-1.0.3.dist-info → zou-1.0.5.dist-info}/entry_points.txt +0 -0
  42. {zou-1.0.3.dist-info → zou-1.0.5.dist-info}/licenses/LICENSE +0 -0
  43. {zou-1.0.3.dist-info → zou-1.0.5.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,36 @@
1
+ """add icon field to plugins
2
+
3
+ Revision ID: 35ebb38695cd
4
+ Revises: 9a9df20ea5a7
5
+ Create Date: 2025-12-24 11:39:42.229109
6
+
7
+ """
8
+
9
+ from alembic import op
10
+ import sqlalchemy as sa
11
+ import sqlalchemy_utils
12
+
13
+
14
+ # revision identifiers, used by Alembic.
15
+ revision = "35ebb38695cd"
16
+ down_revision = "9a9df20ea5a7"
17
+ branch_labels = None
18
+ depends_on = None
19
+
20
+
21
+ def upgrade():
22
+ # ### commands auto generated by Alembic - please adjust! ###
23
+ with op.batch_alter_table("plugin", schema=None) as batch_op:
24
+ batch_op.add_column(
25
+ sa.Column("icon", sa.String(length=255), nullable=True)
26
+ )
27
+
28
+ # ### end Alembic commands ###
29
+
30
+
31
+ def downgrade():
32
+ # ### commands auto generated by Alembic - please adjust! ###
33
+ with op.batch_alter_table("plugin", schema=None) as batch_op:
34
+ batch_op.drop_column("icon")
35
+
36
+ # ### end Alembic commands ###
@@ -0,0 +1,40 @@
1
+ """add frontend options to plugins
2
+
3
+ Revision ID: 9a9df20ea5a7
4
+ Revises: 12208e50bf18
5
+ Create Date: 2025-12-23 00:47:50.621868
6
+
7
+ """
8
+
9
+ from alembic import op
10
+ import sqlalchemy as sa
11
+ import sqlalchemy_utils
12
+
13
+
14
+ # revision identifiers, used by Alembic.
15
+ revision = "9a9df20ea5a7"
16
+ down_revision = "12208e50bf18"
17
+ branch_labels = None
18
+ depends_on = None
19
+
20
+
21
+ def upgrade():
22
+ # ### commands auto generated by Alembic - please adjust! ###
23
+ with op.batch_alter_table("plugin", schema=None) as batch_op:
24
+ batch_op.add_column(
25
+ sa.Column("frontend_project_enabled", sa.Boolean(), nullable=True)
26
+ )
27
+ batch_op.add_column(
28
+ sa.Column("frontend_studio_enabled", sa.Boolean(), nullable=True)
29
+ )
30
+
31
+ # ### end Alembic commands ###
32
+
33
+
34
+ def downgrade():
35
+ # ### commands auto generated by Alembic - please adjust! ###
36
+ with op.batch_alter_table("plugin", schema=None) as batch_op:
37
+ batch_op.drop_column("frontend_studio_enabled")
38
+ batch_op.drop_column("frontend_project_enabled")
39
+
40
+ # ### end Alembic commands ###
@@ -5,6 +5,7 @@ Revises: a1b2c3d4e5f6
5
5
  Create Date: 2025-12-03 12:10:52.626583
6
6
 
7
7
  """
8
+
8
9
  from alembic import op
9
10
  import sqlalchemy as sa
10
11
  import sqlalchemy_utils
@@ -12,25 +13,32 @@ import sqlalchemy_utils
12
13
  import uuid
13
14
 
14
15
  # revision identifiers, used by Alembic.
15
- revision = 'a0f668430352'
16
- down_revision = 'a1b2c3d4e5f6'
16
+ revision = "a0f668430352"
17
+ down_revision = "a1b2c3d4e5f6"
17
18
  branch_labels = None
18
19
  depends_on = None
19
20
 
20
21
 
21
22
  def upgrade():
22
23
  # ### commands auto generated by Alembic - please adjust! ###
23
- with op.batch_alter_table('playlist', schema=None) as batch_op:
24
- batch_op.add_column(sa.Column('created_by', sqlalchemy_utils.types.uuid.UUIDType(binary=False), default=uuid.uuid4, nullable=True))
25
- batch_op.create_foreign_key(None, 'person', ['created_by'], ['id'])
24
+ with op.batch_alter_table("playlist", schema=None) as batch_op:
25
+ batch_op.add_column(
26
+ sa.Column(
27
+ "created_by",
28
+ sqlalchemy_utils.types.uuid.UUIDType(binary=False),
29
+ default=uuid.uuid4,
30
+ nullable=True,
31
+ )
32
+ )
33
+ batch_op.create_foreign_key(None, "person", ["created_by"], ["id"])
26
34
 
27
35
  # ### end Alembic commands ###
28
36
 
29
37
 
30
38
  def downgrade():
31
39
  # ### commands auto generated by Alembic - please adjust! ###
32
- with op.batch_alter_table('playlist', schema=None) as batch_op:
33
- batch_op.drop_constraint(None, type_='foreignkey')
34
- batch_op.drop_column('created_by')
40
+ with op.batch_alter_table("playlist", schema=None) as batch_op:
41
+ batch_op.drop_constraint(None, type_="foreignkey")
42
+ batch_op.drop_column("created_by")
35
43
 
36
44
  # ### end Alembic commands ###
@@ -1,18 +1,7 @@
1
- from . import routes
2
- from flask import Blueprint
3
- from zou.app.utils.api import configure_api_from_blueprint
1
+ from . import resources
4
2
 
5
3
 
6
- def init_plugin(app, manifest):
7
- """
8
- Init the plugin.
9
- """
10
- app.logger.info("Loading plugin...")
11
- routes_tuples = [(f"/hello-world", routes.HelloWorld)]
12
-
13
- blueprint = Blueprint(manifest["id"], manifest["id"])
14
- configure_api_from_blueprint(blueprint, routes_tuples)
15
- app.register_blueprint(blueprint, url_prefix=f"/{manifest['id']}")
4
+ routes = [(f"/hello-world", resources.HelloWorld)]
16
5
 
17
6
 
18
7
  def pre_install(manifest):
@@ -1,11 +1,14 @@
1
1
  import importlib.util
2
2
  import logging
3
3
  import sys
4
+
4
5
  from alembic import context
5
6
  from sqlalchemy import create_engine, pool
7
+
6
8
  from pathlib import Path
7
9
  from logging.config import fileConfig
8
10
 
11
+ from zou.app import db
9
12
  from zou.app.utils.plugins import PluginManifest
10
13
 
11
14
  plugin_path = Path(__file__).resolve().parents[1]
@@ -18,6 +21,12 @@ module = importlib.util.module_from_spec(spec)
18
21
  sys.modules[module_name] = module
19
22
  spec.loader.exec_module(module)
20
23
 
24
+ # Add zou tables
25
+ module.plugin_metadata.tables = {
26
+ **db.metadata.tables,
27
+ **module.plugin_metadata.tables,
28
+ }
29
+
21
30
  # Database URL (passed by Alembic)
22
31
  config = context.config
23
32
  url = config.get_main_option("sqlalchemy.url")
@@ -10,8 +10,8 @@ PluginBase = declarative_base(metadata=plugin_metadata)
10
10
 
11
11
  class Count(PluginBase, BaseMixin, SerializerMixin):
12
12
  """
13
- Describe a plugin.
13
+ A simple model to keep track of a count.
14
14
  """
15
15
 
16
- __tablename__ = "toto_count"
16
+ __tablename__ = "hello_count"
17
17
  count = Column(Integer, nullable=False, default=0)
@@ -1,8 +1,12 @@
1
1
  from flask_restful import Resource
2
+ from flask_jwt_extended import jwt_required
3
+
2
4
  from .models import Count
3
5
 
4
6
 
5
7
  class HelloWorld(Resource):
8
+
9
+ @jwt_required()
6
10
  def get(self):
7
11
  if not Count.query.first():
8
12
  c = Count.create()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zou
3
- Version: 1.0.3
3
+ Version: 1.0.5
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
@@ -1,12 +1,12 @@
1
- zou/__init__.py,sha256=2plzdEEb24FLjE2I2XyBBcJEPYWHccNL4SgtLC_6erg,22
2
- zou/cli.py,sha256=N9FyrL4TDgIiCUa-I3xIzOgiVLM14kz8_QLQ48y51oE,22767
1
+ zou/__init__.py,sha256=B9kKWJLln1i8LjtkcYecvNWGLTrez4gCUOHtnPlInFo,22
2
+ zou/cli.py,sha256=m2TcWtyPiPqBxTms3ndeLZ8L8tz3s74VKrB7NKga0ks,23141
3
3
  zou/debug.py,sha256=1fawPbkD4wn0Y9Gk0BiBFSa-CQe5agFi8R9uJYl2Uyk,520
4
4
  zou/event_stream.py,sha256=9O1PE_vDW8p3yfHJNSZ8w0ybD-660x8oGN0izgJdTjM,8575
5
5
  zou/job_settings.py,sha256=_aqBhujt2Q8sXRWIbgbDf-LUdXRdBimdtTc-fZbiXoY,202
6
6
  zou/app/__init__.py,sha256=zGmaBGBHSS_Px34I3_WZmcse62G_AZJArjm4F6TwmRk,7100
7
7
  zou/app/api.py,sha256=pg6_EPyy7EEE6Z3ycDsvovveIZCS5oHUJ82PEzyF5_U,3855
8
- zou/app/config.py,sha256=6Yka0ox6GFOOYZavSDxAiFAslgFMJs12wpypPDjxjXs,6820
9
- zou/app/mixin.py,sha256=MGRrwLLRjWQtXHZ1YTaMgR5Jc8khnOrFqkvy2hzP5QY,5211
8
+ zou/app/config.py,sha256=NsN14Ev5gtUMIRTccRanUq4dCZGgaFU5zt1ZguGYYl8,6938
9
+ zou/app/mixin.py,sha256=qmb4uJyPIdlL3M_gyds1N9m7s-ZCvQypP7iDqgfNJmU,5551
10
10
  zou/app/swagger.py,sha256=jFwyp3wefTgaFvxQjcZMvDU8OAXiDfAJgBQU3eB9yA8,56740
11
11
  zou/app/blueprints/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
12
12
  zou/app/blueprints/assets/__init__.py,sha256=T2zhDagHjXF6jRwOQ8vqokZTkBHyY7XtTI0Rlooamjs,2931
@@ -46,7 +46,7 @@ zou/app/blueprints/crud/notification.py,sha256=U2GzIHGqy-CDm9XQRd983NyVSLaFNUieR
46
46
  zou/app/blueprints/crud/organisation.py,sha256=zrLy9Zr8oIvXKTgxd_DNKtC8FNzfEm6hHUFfe6Dvpv4,9861
47
47
  zou/app/blueprints/crud/output_file.py,sha256=UBlI75wHY94ej2xBeSsECHd7ru4la2KsrIn6S2b5P1E,4939
48
48
  zou/app/blueprints/crud/output_type.py,sha256=MijUbT4-hyFiM_VEUj5LwRNLW_6DI8zc7UaPKg1kLyg,2789
49
- zou/app/blueprints/crud/person.py,sha256=3NHEDZGNSUqNIPLMiAeXSV1Tzny5SIuATa3uaqLA8yc,23771
49
+ zou/app/blueprints/crud/person.py,sha256=UMv7iqRR0YKTJXVnztDUk2QaQxQIcv4I2Mean4o2zo8,23831
50
50
  zou/app/blueprints/crud/playlist.py,sha256=JGVGzcfCDmtp_NDs8C5Agl23Qsny0ATGIP5KVHcx4Rk,13505
51
51
  zou/app/blueprints/crud/plugin.py,sha256=dPlII76DQv9ucpz7dLiIdt6arYfACmhHtCRDGRTdTQ0,8752
52
52
  zou/app/blueprints/crud/preview_background_file.py,sha256=z1BDSmf1gapaZgOWhGNkcmmNsLJLmh69xsRzDvXGU7g,11346
@@ -64,7 +64,7 @@ zou/app/blueprints/crud/studio.py,sha256=DOOE_BQ4lmvj9MSqQ6pbVKM9_zjyRlWj5E5iB_S
64
64
  zou/app/blueprints/crud/subscription.py,sha256=M7NlH9fiZF4fyule8_EVysOKGhpWKbOB8hGkXNH9-lY,9523
65
65
  zou/app/blueprints/crud/task.py,sha256=fyalRleGimhGNx3GyuL1gDWDdmRIpzA72esvXAEp3gE,16454
66
66
  zou/app/blueprints/crud/task_status.py,sha256=ZEwscafVd68660lwvFhFYbvalHepTdZOLWvsjyYikEY,11135
67
- zou/app/blueprints/crud/task_type.py,sha256=5anx9Q3rvblZ5OoJus2fNFiysDX8dMHXO0WDaIt1e6Q,10788
67
+ zou/app/blueprints/crud/task_type.py,sha256=nJg423oMwQkIg0YPtG6Ss_XkTvBBH6AIeuW2IdMZRG4,11215
68
68
  zou/app/blueprints/crud/time_spent.py,sha256=d6S2qpAN5j81qZjzqndqV7xHfH85MjNXUtnboBCVS8c,13862
69
69
  zou/app/blueprints/crud/working_file.py,sha256=Z8EtZRHnbKE8JeEK0zncY4DXuDUT40Xb72ZCzY28U2A,11996
70
70
  zou/app/blueprints/departments/__init__.py,sha256=JOm02h7xBusV3MIKrjOtH6rjSD0EOH-r0fxMVmqpVdU,1134
@@ -74,7 +74,7 @@ zou/app/blueprints/edits/resources.py,sha256=TLdajQm-b9q-QjBo__NeX95VvxUCLUovj34
74
74
  zou/app/blueprints/entities/__init__.py,sha256=v-qt2dl3s3tmK_ur-cpDHNPmcL0A6xCybczyuidjUCo,713
75
75
  zou/app/blueprints/entities/resources.py,sha256=KDvGz7xtEkG5cE_oe8ivdX_NqmBhQcpV6Em35WX8zIY,11262
76
76
  zou/app/blueprints/events/__init__.py,sha256=Vb0gO7Bpj_2Dpx9hhKd2SZW2qqnJrFVoDpJjFOmoMZw,394
77
- zou/app/blueprints/events/resources.py,sha256=K85om5n0WjBahUp2vE56Mf1VLExrdCLLQXL2C_lE0ic,7119
77
+ zou/app/blueprints/events/resources.py,sha256=N_KFpwo9IJucZhZN67mqIYfAuYVW50c1f_dReGys88Y,7736
78
78
  zou/app/blueprints/export/__init__.py,sha256=W3U93VD-dHlozFVSt_RDvP7h7K_FqgHPLA__W5H1DkE,1574
79
79
  zou/app/blueprints/export/csv/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
80
80
  zou/app/blueprints/export/csv/assets.py,sha256=QzRoX00bOX6M1ISPPWqhmNZPDah36avit72mBE1_A28,6282
@@ -89,17 +89,17 @@ zou/app/blueprints/export/csv/task_types.py,sha256=CCPQcn9_WlzmCG7VQ9iSNSAG59sWU
89
89
  zou/app/blueprints/export/csv/tasks.py,sha256=D5sK-3arRE6VtIv6oYJ2gyLdRaiqFEPB9hbvHG-LI-Q,5083
90
90
  zou/app/blueprints/export/csv/time_spents.py,sha256=1-TfPASW_Tlti1xy8lR2I7ia4Z5T-E0xoCLg6NTAAWA,3797
91
91
  zou/app/blueprints/files/__init__.py,sha256=7Wty30JW2OXIn-tBFXOWWmPuHnsnxPpH3jNtHvvr9tY,3987
92
- zou/app/blueprints/files/resources.py,sha256=_IB67MU4mjpXF7YW0uw7qENhY7nzhuc6NraQC1jNA_M,108132
92
+ zou/app/blueprints/files/resources.py,sha256=7un7T6P3Q7X6dpPgw-rEPrQecoJNIEGqrtu2Q4lRBGQ,108238
93
93
  zou/app/blueprints/index/__init__.py,sha256=Dh3oQiirpg8RCkfVOuk3irIjSvUvuRf0jPxE6oGubz0,828
94
- zou/app/blueprints/index/resources.py,sha256=MwgaolpjsuR6OoGLG-PoPXSFAEnE_kvrB4Mx-r0G_rw,15371
94
+ zou/app/blueprints/index/resources.py,sha256=vCyW-LkLZacx3-E3kfbNfPTMHkgn7Tmhoha6DODXDYI,15771
95
95
  zou/app/blueprints/news/__init__.py,sha256=HxBXjC15dVbotNAZ0CLf02iwUjxJr20kgf8_kT_9nwM,505
96
- zou/app/blueprints/news/resources.py,sha256=784QCo6y4CpSRccR3Wep4Q8Phw1M3SIFWEf7xoYZHWg,12808
96
+ zou/app/blueprints/news/resources.py,sha256=FfYLp4PprTBZmpZ_vNV0K5RnBr2oAO49Llwr6InBaKA,12806
97
97
  zou/app/blueprints/persons/__init__.py,sha256=0cnHHw3K_8OEMm0qOi3wKVomSAg9IJSnVjAXabMeHks,3893
98
98
  zou/app/blueprints/persons/resources.py,sha256=-2FV1rDkMDtEvrUkbHdHFC7lTCoWRkxjIvSzAviwlwY,60634
99
99
  zou/app/blueprints/playlists/__init__.py,sha256=gI6dV102RwsztOnUDk53BErYd9zrjA43gfNgGeYwfFU,1700
100
- zou/app/blueprints/playlists/resources.py,sha256=2NA5UAnl7JQUIB0WbmMmXnFqKB6pEdbgWqhlNqdxyE8,28978
100
+ zou/app/blueprints/playlists/resources.py,sha256=Ol0bQKcX4dtlduBaBD5OQm0jXMu-kqvO-YTLjw13a4A,29303
101
101
  zou/app/blueprints/previews/__init__.py,sha256=ihC6OQ9AUjnZ2JeMnjRh_tKGO0UmAjOwhZnOivc3BnQ,4460
102
- zou/app/blueprints/previews/resources.py,sha256=uCSQ1ytpCGHvbg-NcWtY0vEQWznxb2mLKN0V-BR03Ko,61722
102
+ zou/app/blueprints/previews/resources.py,sha256=I40l_e9N3pz62iQfPYNt2RyNDMM8V0A6S6Wnx8F6BtM,63128
103
103
  zou/app/blueprints/projects/__init__.py,sha256=mUQI2C_6GfH-JkhPEOpGsGCYBbCr__c5CWPaW7sKH4c,6103
104
104
  zou/app/blueprints/projects/resources.py,sha256=q4hEOkA7vOfncrEeoXb6FQJ2TwVo0xKs44M0SAu4ZHc,87747
105
105
  zou/app/blueprints/search/__init__.py,sha256=QCjQIY_85l_orhdEiqav_GifjReuwsjZggN3V0GeUVY,356
@@ -138,8 +138,8 @@ zou/app/blueprints/tasks/__init__.py,sha256=udtTZJVViawRAPu8dO_OoyVzQTheLYWTHeTn
138
138
  zou/app/blueprints/tasks/resources.py,sha256=y4wXvi3y0UJObvfTN6Zk2n64CAu2tqYymbmXYOxgmns,101277
139
139
  zou/app/blueprints/user/__init__.py,sha256=H9zCHcVobC6jq6dTToXKAjnZmDA0a9gChHiIP3BcZsc,4586
140
140
  zou/app/blueprints/user/resources.py,sha256=7nNkgVsZOCGLwlKCdtnVdkJGoCBjMGawGCFjFo26i1o,123927
141
- zou/app/file_trees/default.json,sha256=ryUrEmQYE8B_WkzCoQLgmem3N9yNwMIWx9G8p3HfG9o,2310
142
- zou/app/file_trees/simple.json,sha256=VBI43Z3rjQxtTpVCq3ktUgS0UB8x-aTowKL9LXuXCFI,3149
141
+ zou/app/file_trees/default.json,sha256=09DXrJKYMct7dG3VxmJiZ16mWa_l268wZt80sMDPPRI,2696
142
+ zou/app/file_trees/simple.json,sha256=dqDFCxLiblNtB9wOpJaTp1JE-dwEDZzrruX-WvpDDHU,3591
143
143
  zou/app/indexer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
144
144
  zou/app/indexer/indexing.py,sha256=s8Jx62itbeptPlxnl1tFozF3e5HKxEMq-pOnwomVumE,3718
145
145
  zou/app/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -172,9 +172,9 @@ zou/app/models/output_file.py,sha256=hyLGrpsgrk0aisDXppRQrB7ItCwyuyw-X0ZwVAHabsA
172
172
  zou/app/models/output_type.py,sha256=us_lCUCEvuP4vi_XmmOcEl1J2MtZhMX5ZheBqEFCgWA,381
173
173
  zou/app/models/person.py,sha256=GhjiXxOXMPdeDHArTbbZDQt-9LLtJpq_HFF-7WVRlaM,8047
174
174
  zou/app/models/playlist.py,sha256=bae19fczYpdBFbYMVPraQZ3XuqeW2_vQFlMuodrHlbo,1629
175
- zou/app/models/plugin.py,sha256=zNs9Qi1h_v_6edZs5GHRSKItaAG4Gnlk1FQKumiiv68,766
175
+ zou/app/models/plugin.py,sha256=9CbLac2Ti_73wJoFXRX9Obw7j4W__IYF1LouyqQRenY,1601
176
176
  zou/app/models/preview_background_file.py,sha256=j8LgRmY7INnlB07hFwwB-8ssQrRC8vsb8VcpsTbt6tA,559
177
- zou/app/models/preview_file.py,sha256=ofN0aTvjc7eYBMj7OjUs3Yhw9_HZGOYB9ftbH3XAVCM,3587
177
+ zou/app/models/preview_file.py,sha256=6NIFag1uB8ksD7Y_zh0m7Zmekktv45m4lWPfGYfeSQM,3664
178
178
  zou/app/models/production_schedule_version.py,sha256=MXKi99RSQ7gYk06Fmy06s8OTsurj0ZrNPM7do2p4HIQ,2414
179
179
  zou/app/models/project.py,sha256=e1BtWhZmTjAvI7-IicwN-NS63-_F-PQyhWO5Om2m-xc,9523
180
180
  zou/app/models/project_status.py,sha256=pExaHH7x4Eu8xOqD3_mRRbMzjT2jJZ8rm-9jo7yUGXA,390
@@ -200,38 +200,38 @@ zou/app/services/base_service.py,sha256=OZd0STFh-DyBBdwsmA7DMMnrwv4C8wJUbShvZ1is
200
200
  zou/app/services/breakdown_service.py,sha256=-bH1KUq9-No_OKnQtWK4XEU1w7uDPJnzWFMrKNkS1K0,27593
201
201
  zou/app/services/budget_service.py,sha256=uMU1vJr7kyxtkvMz_Nm7DyhW6qvSGYGqRHEQTxsHYCc,5468
202
202
  zou/app/services/chats_service.py,sha256=pqnT-RCltdf9Dp4t-2NtOSawGk0jyNhVPTgERZ_nYvk,8297
203
- zou/app/services/comments_service.py,sha256=Rey8mWbW2qWrjwIEjIMImYcCHPoivaEImKqwFX5ob0Q,22257
203
+ zou/app/services/comments_service.py,sha256=cJ4K0GI8_VkCIBw4CLBW8bOrBOaG8Qj4EI4AcOZKAR8,22310
204
204
  zou/app/services/concepts_service.py,sha256=uH0leb23Op48wc1bHlUV2-I97QROsIemKr80F0UwnoM,11213
205
205
  zou/app/services/custom_actions_service.py,sha256=fWISEOOdthadrxeHuacEel5Xj6msn0yWXJQDG1gzvsY,297
206
- zou/app/services/deletion_service.py,sha256=cVo-zdjTAF23-kyed0qoRH0ICqlr1-iPYTL3T1wwrP8,17627
206
+ zou/app/services/deletion_service.py,sha256=Wr0pcwvaT2PPGYwtv9Sd7dvTucvRsl7EWBaoIchDW-I,17929
207
207
  zou/app/services/departments_service.py,sha256=7jLKH7ziToc6uHZsZKdBUzN2Ubi2YloHCX7PecE51LU,4596
208
208
  zou/app/services/edits_service.py,sha256=hfg6Fk9J9W41Qyw96UF35cSgbXqCYci6H8OY5rL_cIk,12075
209
209
  zou/app/services/emails_service.py,sha256=6Ye4dUB_04XItdH6mynCERYP2Jj5wYTYrJQfir7slDA,14993
210
210
  zou/app/services/entities_service.py,sha256=mSVoKt06pF9-7H5eD43UpfwOpSGWKjrE7F7eo0IBjw8,17788
211
- zou/app/services/events_service.py,sha256=Ew-bY5hqrWLmpbVj1_xd3E2S3JtyAGzdgw2XjudTZjc,2700
211
+ zou/app/services/events_service.py,sha256=lsBzNo4zez9ucYZQLUDJh_hv37KyOO_OoSxZiEHB72E,3128
212
212
  zou/app/services/exception.py,sha256=VaQbvvv7yJ-lCFOlvAPKkYPuw7MjCaSAo1F40fS3kZ8,4478
213
- zou/app/services/file_tree_service.py,sha256=sz2Eq4S5VqEU7AupmKtRzX2W8ouUheTyYWkgiMf2G6o,33857
213
+ zou/app/services/file_tree_service.py,sha256=AcRWNMT0qoLKj35kQsnmWDBrfkuT3B5I26nnqjo3mjI,33969
214
214
  zou/app/services/files_service.py,sha256=df1_9v-vwE5HVi9XjtilTPWHuiWunvrwPyQh_IXupNM,28517
215
215
  zou/app/services/index_service.py,sha256=IaffQz_oj6GPEbuDp4a2qnSc6n-hhIcmA_LrTm3Wots,10201
216
216
  zou/app/services/names_service.py,sha256=TOSrintROmxcAlcFQE0i2E3PBLnw81GAztNselpTn18,2947
217
217
  zou/app/services/news_service.py,sha256=oXdEiSaTdkpYutm_UtmNWTDw4BPUBMFJDOEHhJ28q6w,10047
218
- zou/app/services/notifications_service.py,sha256=FsZ7rFv8p_4bVn0IlpW7TIo5rDQoupO7ARK9dH3Mdb0,17095
219
- zou/app/services/persons_service.py,sha256=XtaYofeYgjNIaQ-nvynj15jW2yDWEqdUtJgf7l0SgDg,16450
218
+ zou/app/services/notifications_service.py,sha256=YaLtOc0vUlIhnVUu7u6F2RZzBeUu8fGC7QdAR2SG_y0,17354
219
+ zou/app/services/persons_service.py,sha256=94M6uOUobl0dGL_vw2nmbwwRN8jjWezjhzlBTdbowXc,16480
220
220
  zou/app/services/playlists_service.py,sha256=ftEP7LFyPAXogssOYi3TGZstdn2k9eq5o5FveYC25TI,33282
221
- zou/app/services/plugins_service.py,sha256=dbU-2f7t3eo6VISQBsASM8Or4Y8ha6Vt8ZHgtizdOi0,1917
222
- zou/app/services/preview_files_service.py,sha256=mxOc1bBjlA3a900QU6fUufBM1JmAzr5D8jvcf_HAkXM,36178
221
+ zou/app/services/plugins_service.py,sha256=ZCgGVw6ZFNBN8zfZNZb7KbcaTHMm3QR8EMu1MV0rDCo,4330
222
+ zou/app/services/preview_files_service.py,sha256=nHjRa_5zwGUZDbrYDwhEBMNzgaGCAwrQCn-HhONfXKI,36734
223
223
  zou/app/services/projects_service.py,sha256=OBKFEYna-hi1WfVM3FtcYCpe_AoHVP3C3zSk97VPNKQ,23665
224
224
  zou/app/services/scenes_service.py,sha256=iXN19HU4njPF5VtZXuUrVJ-W23ZQuQNPC3ADXltbWtU,992
225
- zou/app/services/schedule_service.py,sha256=cG8RRjdjMX4_D04cSt-WkqBCNeCQMLyX0O-I99DwCqI,14474
225
+ zou/app/services/schedule_service.py,sha256=cD1jeoaC7fyYsUQoHh1EU1eFEMvmcHMblTD86iDGuX8,14513
226
226
  zou/app/services/shots_service.py,sha256=yb6nlRTn2ap2zDEQ_Cwsi48HJnZPGNNbD_NhaQyPVfk,54708
227
227
  zou/app/services/stats_service.py,sha256=e9h090eZWADtzXycy1WOup_jlxGwQojrr1y_PDcVatc,13156
228
228
  zou/app/services/status_automations_service.py,sha256=tVio7Sj7inhvKS4UOyRhcdpwr_KNP96hT1o0X7XcGF4,715
229
229
  zou/app/services/sync_service.py,sha256=iWxx1kOGEXympHmSBBQWtDZWNtumdxp8kppee0OefMo,41811
230
- zou/app/services/tasks_service.py,sha256=ZLUi6_XhLU_SLwERFHx4QwcXdS-ncrVH_rIl-Lt-9yE,69993
230
+ zou/app/services/tasks_service.py,sha256=34ozKuBjSKkirJJk3Wf6J-U3LrOWb3Oo1TqKvmAIJI8,70014
231
231
  zou/app/services/telemetry_services.py,sha256=xQm1h1t_JxSFW59zQGf4NuNdUi1UfMa_6pQ-ytRbmGA,1029
232
232
  zou/app/services/templates_service.py,sha256=vz4ACtLW-NZcLB-2uisQgGvU9vGFeIL9fUEaCULX8W0,38070
233
233
  zou/app/services/time_spents_service.py,sha256=CO3CXpGCNqOtBRxPo_H9tqEIrhCG7crFvgSkhAl1Vys,18634
234
- zou/app/services/user_service.py,sha256=LduyajzSyDPec2r3opQQPm4H7yTmNDqF3pSblSGHjmU,54028
234
+ zou/app/services/user_service.py,sha256=h5SUU-Y6KJzAgEukWFCl8q8lpT1MKXtWp5yXXEl7eMk,54124
235
235
  zou/app/stores/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
236
236
  zou/app/stores/auth_tokens_store.py,sha256=-qOJPybLHvnMOq3PWk073OW9HJwOHGhFLZeOIlX1UVw,1290
237
237
  zou/app/stores/file_store.py,sha256=yLQDM6mNbj9oe0vsWdBqun7D8Dw-eSjD1yHCCftX0OI,4045
@@ -243,7 +243,7 @@ zou/app/utils/auth.py,sha256=o9lOGgj3nkfsupfhLBre5fUuT1HBZgXVJU06lrdZGag,996
243
243
  zou/app/utils/cache.py,sha256=MRluTvGG67ybOkyzgD70B6PGKMdRyFdTc0AYy3dEQe8,1210
244
244
  zou/app/utils/chats.py,sha256=ORngxQ3IQQF0QcVFJLxJ-RaU4ksQ9-0M8cmPa0pc0Ho,4302
245
245
  zou/app/utils/colors.py,sha256=LaGV17NL_8xY0XSp8snGWz5UMwGnm0KPWXyE5BTMG6w,200
246
- zou/app/utils/commands.py,sha256=64wRBPvwiZNVATspvI8a4-_uzNALTLelkSNjDJtAKmE,30112
246
+ zou/app/utils/commands.py,sha256=6flky8hObUv0DuHhmgz0xGSSgu0PgR4xlDpvSA8cSII,30136
247
247
  zou/app/utils/csv_utils.py,sha256=GiI8SeUqmIh9o1JwhZGkQXU_0K0EcPrRHYIZ8bMoYzk,1228
248
248
  zou/app/utils/date_helpers.py,sha256=jFxDPCbAasg0I1gsC72AKEbGcx5c4pLqXZkSfZ4wLdQ,4724
249
249
  zou/app/utils/dbhelpers.py,sha256=RSJuoxLexGJyME16GQCs-euFLBR0u-XAFdJ1KMSv5M8,1143
@@ -258,7 +258,7 @@ zou/app/utils/git.py,sha256=MhmAYvEY-bXsnLvcHUW_NY5V636lJL3H-cdNrTHgLGk,114
258
258
  zou/app/utils/logs.py,sha256=lB6kyFmeANxCILUULLqGN8fuq9IY5FcbrVWmLdqWs2U,1404
259
259
  zou/app/utils/monitoring.py,sha256=XCpl0QshKD_tSok1vrIu9lB97JsvKLhvxJo3UyeqEoQ,2153
260
260
  zou/app/utils/permissions.py,sha256=Oq91C_lN6aGVCtCVUqQhijMQEjXOiMezbngpjybzzQk,3426
261
- zou/app/utils/plugins.py,sha256=6mjt3nijyPBdWpkmMnsbefSooXv4lqvxWG-7AF4PeQ8,9622
261
+ zou/app/utils/plugins.py,sha256=BnLKQdExVt_LHhJreIQEIN_ntreZOBXDKh0AIrEfm6A,12834
262
262
  zou/app/utils/query.py,sha256=q8ETGPAqnz0Pt9xWoQt5o7FFAVYUKVCJiWpwefIr-iU,4592
263
263
  zou/app/utils/redis.py,sha256=xXEh9pl-3qPbr89dKHvcXSUTC6hd77vv_N8PVcRRZTE,377
264
264
  zou/app/utils/remote_job.py,sha256=QPxcCWEv-NM1Q4IQawAyJAiSORwkMeOlByQb9OCShEw,2522
@@ -284,6 +284,7 @@ zou/migrations/versions/0cf5e0e035fa_drop_column_tasktype_for_shots.py,sha256=9p
284
284
  zou/migrations/versions/0ec3762a745d_add_attachment_table.py,sha256=JDvrRgC9lfO8HH3PS1JzauEANz9TaTCGPiJj5lVuGOw,1819
285
285
  zou/migrations/versions/0ef6416a507b_.py,sha256=rT4hvfT5GwS6nCz2kco7V0kJXel-v0xndnEgYsQx1qY,1975
286
286
  zou/migrations/versions/10cf267d95c9_fix_schedule_item.py,sha256=p_IDPtPGGnbu-DqKpx5IjwFcWUi1o9fb2TB6PHPuSQ4,1836
287
+ zou/migrations/versions/12208e50bf18_add_json_data_field_to_preview_files.py,sha256=YwPDj6O5Z8t9wK3VWTe_N3YUq9vFzuw0pvRglAmrKFw,963
287
288
  zou/migrations/versions/16328eae4b5f_add_new_constraint_for_timespent.py,sha256=xGq1YSvoo-6RME4sBYIZY4NVUB_qkt2hNMvA-nlJmZ0,1809
288
289
  zou/migrations/versions/16df47d76c64_add_some_indexes.py,sha256=gHwD3WuTw45hY9UTUzrThofO0Wf107mnJrPsqzkb_hA,4413
289
290
  zou/migrations/versions/17ef8f7be758_disallow_null_choicetype.py,sha256=73sljp681nQmrOvxllT-Np8hHjTrQ7CQ9hhkacHMGsg,15432
@@ -309,6 +310,7 @@ zou/migrations/versions/328fd44c6347_add_entity_created_by.py,sha256=-1J-ndc30OS
309
310
  zou/migrations/versions/32f134ff1201_add_is_shared_flag_to_filters.py,sha256=Hm436fq7VYMJ1gTzvG4razVEFzdmq7vbF2pmAIgxqdw,809
310
311
  zou/migrations/versions/346250b5304c_add_position_to_preview_files.py,sha256=8s54X-Yj7lUsiBhcXWiKKRbZrqT_3rIX9D1WJnjpMeU,699
311
312
  zou/migrations/versions/3476e147e632_add_acks_to_comments.py,sha256=p2fIMOqw9a899RDv78YFQKm6IGd7L1IVRSJsUAs3nVQ,1306
313
+ zou/migrations/versions/35ebb38695cd_add_icon_field_to_plugins.py,sha256=Qpy86R9j8BQ51Uu2Z3sikQ2vGmz_fsC5TZP4FsUkObg,850
312
314
  zou/migrations/versions/389cfb9de776_.py,sha256=6qlOJEZFfzUXj1IPr41YC-ZlTuiKWxfTqHIQB57afGI,972
313
315
  zou/migrations/versions/38baa9a23b3d_.py,sha256=k0DYeGhb99IBZ55mjBjuCe9kW1kUP4ErrlAwXjBKvqM,653
314
316
  zou/migrations/versions/398150912a3f_validation_status_preview.py,sha256=h63o9_Y86ue9klU3qkFgyic9xaMvq9s4Yqo-Tv7HQ7U,979
@@ -394,13 +396,14 @@ zou/migrations/versions/971dbf5a0faf_add_short_name_for_asset_type_entity_.py,sh
394
396
  zou/migrations/versions/98c90621cf58_add_for_client_flag_to_playlist.py,sha256=8sgLpFpRaTDmxy5dzwR8sQGx3iMQoUH1-IN641AXEUY,721
395
397
  zou/migrations/versions/99825b9cc778_.py,sha256=vleoLh_fCLwNnCmgZkW5x1-lJ09CgjPdH1oUZZhA8CU,3240
396
398
  zou/migrations/versions/9a09467f9b2c_.py,sha256=cjSO3cXzHHhlcaQhShF9WlxmBWIfwLYSyIb9C6B5Dwc,1246
399
+ zou/migrations/versions/9a9df20ea5a7_add_frontend_options_to_plugins.py,sha256=_PFBQQuT2K_P131wXGdGbwpO_-dIcdPwc0eKzl8syB8,1060
397
400
  zou/migrations/versions/9af2df17a9d5_add_hardware_table.py,sha256=G-iJIPE_HXuaqXBIeoI-Bsa98v-D0X_vqMmSpCk6BSs,1389
398
401
  zou/migrations/versions/9b85c14fa8a7_add_day_off_new_columns.py,sha256=u6n5X_hwoeH9XnkWHB4PvVvGVrkddgDamweMrlPFQ9I,2106
399
402
  zou/migrations/versions/9bd17364fc18_.py,sha256=nruaGMczzkWkya_D11QEU3uiU1UVEUItM6svSBjOw2c,1890
400
403
  zou/migrations/versions/9d3bb33c6fc6_add_department_keys_to_filter_models.py,sha256=xUd0OIqp0q9l-pC6wCn2tfgCi6maeud6jf1CYGCHnxA,2084
401
404
  zou/migrations/versions/9e5b3a9b0cee_add_new_column_metadatadescriptor_data_type_.py,sha256=HT34AjM9yN1IvLrCzx4-YOiocFDnPQ-FJ05icPCBnNo,5517
402
405
  zou/migrations/versions/9f8445f9b42c_add_man_days_fields.py,sha256=muFsM2g_m-L5Zss36roTsjCoSDdhu_e4hVQntiNHyiY,828
403
- zou/migrations/versions/a0f668430352_add_created_by_field_to_playlists.py,sha256=lrAzEPD57OAji4zZmyN42iCTA1sr8-4y-HbXy4nhobg,1070
406
+ zou/migrations/versions/a0f668430352_add_created_by_field_to_playlists.py,sha256=u0QE2LinaIBwIE4zGawFWJF9c2UvXqJlhV-PWLrM4S0,1172
404
407
  zou/migrations/versions/a1b2c3d4e5f6_add_position_to_metadata_descriptor.py,sha256=6WLafF57oAI80tc0qZUzoHJ86poyMXcOTzzuFsLNgEM,728
405
408
  zou/migrations/versions/a23682ccc1f1_.py,sha256=dVOUWldUZyLuLc6_HrgKUI5XH5-6Vjwai6Ew9kygkHw,1663
406
409
  zou/migrations/versions/a252a094e977_add_descriptions_for_entities_tasks_and_.py,sha256=T6V1n09fUAsZNiCYh0zwi2B6ZtCBPOdXDixqdunDI54,1012
@@ -463,11 +466,11 @@ zou/migrations/versions/fc322f908695_.py,sha256=KT3BfEVbbvlMDvC_tP2Y96fh9v3TjxOS
463
466
  zou/migrations/versions/fee7c696166e_.py,sha256=jVvkr0uY5JPtC_I9h18DELo_eRu99RdOYMtEcaUnNXc,1839
464
467
  zou/migrations/versions/feffd3c5b806_introduce_concepts.py,sha256=wFNAtTTDHa01AdoXhRDayCVdB33stUFn6whc3opg2vQ,4774
465
468
  zou/migrations/versions/ffeed4956ab1_add_more_details_to_projects.py,sha256=cgRcg4IRW9kJ-A9-fVb5y5IXwRd74czomSVqMz3fVJo,1164
466
- zou/plugin_template/__init__.py,sha256=f-p3Ds5rRK48camU6WCflKkpdYi9IhLPaifqluFygVw,772
467
- zou/plugin_template/models.py,sha256=ExGehrSCC5vhrFeabgqicDZclLiFlIyUHonTOC61A_4,459
468
- zou/plugin_template/routes.py,sha256=w0KNl2YoErxwnCoTt1EQiaUUCDDgSTNJd9dY6wfCCV4,341
469
+ zou/plugin_template/__init__.py,sha256=H_E0a7HSr4aqMX_1mb5vkrwRdFMjmG_02RC65oZp7Ck,381
470
+ zou/plugin_template/models.py,sha256=xiA8MHt1527j99Wgk2A4gDbRXDqcW3z9TaYwJDT0PkM,482
471
+ zou/plugin_template/resources.py,sha256=ZrR1S_jfHCs7NCaMt6WRTqpczSnJKjI_1KF-nbGN7Tc,407
469
472
  zou/plugin_template/migrations/alembic.ini,sha256=skJWHDQKAhG_DCx0AM58QOx_54nEdcUEvUrR2dSXxGc,770
470
- zou/plugin_template/migrations/env.py,sha256=QEv3_y4ynLhq2kiH6Huw0yUKW-KTjzoqn7TGB6Ryxbo,2053
473
+ zou/plugin_template/migrations/env.py,sha256=rRrkFBz2UyITt54O9c1I7RzOHIqzfUxnfpS79toa82Q,2195
471
474
  zou/plugin_template/migrations/script.py.mako,sha256=FrHLRpJcpRUI3pK_qYEohmCNbc9JRJFNP0P8Atjj-iw,518
472
475
  zou/remote/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
473
476
  zou/remote/config_payload.py,sha256=pcKy6bJak41lc8Btq0gYMpHRJuG8y2Ae7lbZDOdchNQ,1907
@@ -475,9 +478,9 @@ zou/remote/normalize_movie.py,sha256=zNfEY3N1UbAHZfddGONTg2Sff3ieLVWd4dfZa1dpnes
475
478
  zou/remote/playlist.py,sha256=AsDo0bgYhDcd6DfNRV6r6Jj3URWwavE2ZN3VkKRPbLU,3293
476
479
  zou/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
477
480
  zou/utils/movie.py,sha256=d67fIL9dVBKt-E_qCGXRbNNdbJaJR5sHvZeX3hf8ldE,16559
478
- zou-1.0.3.dist-info/licenses/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
479
- zou-1.0.3.dist-info/METADATA,sha256=rFFzVXfuB7IqirHHztqP8hMLdzfEHVZ8SbhsMFZuVaY,6695
480
- zou-1.0.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
481
- zou-1.0.3.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
482
- zou-1.0.3.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
483
- zou-1.0.3.dist-info/RECORD,,
481
+ zou-1.0.5.dist-info/licenses/LICENSE,sha256=dql8h4yceoMhuzlcK0TT_i-NgTFNIZsgE47Q4t3dUYI,34520
482
+ zou-1.0.5.dist-info/METADATA,sha256=GZdobpPCjsFUmKZk8nq-Vzcl3qKh7RK8wvnndW3q48E,6695
483
+ zou-1.0.5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
484
+ zou-1.0.5.dist-info/entry_points.txt,sha256=PelQoIx3qhQ_Tmne7wrLY-1m2izuzgpwokoURwSohy4,130
485
+ zou-1.0.5.dist-info/top_level.txt,sha256=4S7G_jk4MzpToeDItHGjPhHx_fRdX52zJZWTD4SL54g,4
486
+ zou-1.0.5.dist-info/RECORD,,
File without changes